feat: tabs system

This commit is contained in:
Artemy 2023-04-16 08:51:33 +03:00
parent 5b33b2cd66
commit ca3d0969bc
6 changed files with 92 additions and 47 deletions

73
app.py
View file

@ -1,55 +1,34 @@
import gradio as gr
from processing.stacking import stacking
import sys
import importlib
import pathlib
import os
import copy
from tabs import tabs
tabs_dir = pathlib.Path(__file__).parent / "tabs"
all_tabs = []
tab = None
for tab_name in tabs:
old_path = copy.deepcopy(sys.path)
sys.path = [os.path.join(tabs_dir, tab_name)] + sys.path
try:
if tab is None:
tab = importlib.import_module(f"app")
else:
tab = importlib.reload(tab)
all_tabs.append((tab_name, tab.app))
except Exception as e:
print(f"Error loading tab: {e}")
with gr.Blocks() as app:
with gr.Tab("Stacking"):
gr.Markdown("Stacking images.")
with gr.Row():
with gr.Column():
directory = gr.Text(
placeholder="A directory with many images of the same size", lines=1, label="Directory")
methods = gr.Dropdown(
choices=["denoise", "startracks", "noise extractor", "untrack"], value="denoise", label="Method")
submit = gr.Button("Submit")
with gr.Column():
output = gr.Gallery()
submit.click(stacking, inputs=[
directory, methods], outputs=[output])
with gr.Tab("Bulk processing"):
gr.Markdown(
"Mass processing of images one at a time and saving to video if needed. # **WIP, not working**")
with gr.Row():
with gr.Column():
directory = gr.Text(
placeholder="A directory with many images of the same size", lines=1, label="Directory")
methods = gr.Dropdown(
choices=["denoise", "startracks", "noise extractor", "untrack"], value="denoise", label="Method")
submit = gr.Button("Submit")
with gr.Tab("Video to images"):
gr.Markdown(
"Convert video to images. # **WIP, not working**")
with gr.Row():
with gr.Column():
video = gr.Video(label="Video")
format = gr.Radio(
choices=["png", "jpg"], value="png", label="Format of image")
submit = gr.Button("Submit")
with gr.Tab("Images to video"):
gr.Markdown("Convert images to video. # **WIP, not working**")
with gr.Row():
with gr.Column():
directory = gr.Text(
placeholder="A directory with many images of the same size", lines=1, label="Directory")
fps = gr.Number(label="FPS")
submit = gr.Button("Submit")
for tab_name, tab in all_tabs:
with gr.Tab(tab_name):
tab.render()
app.launch()

View file

@ -0,0 +1,13 @@
import gradio as gr
from processing.bulk import images_to_video
with gr.Blocks() as app:
gr.Markdown(
"Mass processing of images one at a time and saving to video if needed. # **WIP, not working**")
with gr.Row():
with gr.Column():
directory = gr.Text(
placeholder="A directory with many images of the same size", lines=1, label="Directory")
methods = gr.Dropdown(
choices=["denoise", "startracks", "noise extractor", "untrack"], value="denoise", label="Method")
submit = gr.Button("Submit")

View file

@ -0,0 +1,17 @@
import gradio as gr
from processing.bulk import images_to_video
with gr.Blocks() as app:
gr.Markdown("Convert images to video. # **WIP, not working**")
with gr.Row():
with gr.Column():
directory = gr.Text(
placeholder="A directory with many images of the same size", lines=1, label="Directory")
fps = gr.Number(label="FPS")
submit = gr.Button("Submit")
submit.click(
fn=images_to_video,
inputs=[directory, fps],
)

18
tabs/Stacking/app.py Normal file
View file

@ -0,0 +1,18 @@
import gradio as gr
from processing.stacking import stacking
with gr.Blocks() as app:
gr.Markdown("Stacking images.")
with gr.Row():
with gr.Column():
directory = gr.Text(
placeholder="A directory with many images of the same size", lines=1, label="Directory")
methods = gr.Dropdown(
choices=["denoise", "startracks", "noise extractor", "untrack"], value="denoise", label="Method")
submit = gr.Button("Submit")
with gr.Column():
output = gr.Gallery()
submit.click(stacking, inputs=[
directory, methods], outputs=[output])

View file

@ -0,0 +1,12 @@
import gradio as gr
with gr.Blocks() as app:
gr.Markdown(
"Convert video to images. # **WIP, not working**")
with gr.Row():
with gr.Column():
video = gr.Video(label="Video")
format = gr.Radio(
choices=["png", "jpg"], value="png", label="Format of image")
submit = gr.Button("Submit")

6
tabs/__init__.py Normal file
View file

@ -0,0 +1,6 @@
tabs = [
"Stacking",
"Bulk processing",
"Images to video",
"Video to images"
]