|
import gradio as gr |
|
from modules import scripts, shared, ui_common, postprocessing, call_queue |
|
import modules.generation_parameters_copypaste as parameters_copypaste |
|
|
|
|
|
def create_ui(): |
|
tab_index = gr.State(value=0) |
|
|
|
with gr.Row(equal_height=False, variant='compact'): |
|
with gr.Column(variant='compact'): |
|
with gr.Tabs(elem_id="mode_extras"): |
|
with gr.TabItem('Single Image', id="single_image", elem_id="extras_single_tab") as tab_single: |
|
extras_image = gr.Image(label="Source", source="upload", interactive=True, type="pil", elem_id="extras_image") |
|
|
|
with gr.TabItem('Batch Process', id="batch_process", elem_id="extras_batch_process_tab") as tab_batch: |
|
image_batch = gr.Files(label="Batch Process", interactive=True, elem_id="extras_image_batch") |
|
|
|
with gr.TabItem('Batch from Directory', id="batch_from_directory", elem_id="extras_batch_directory_tab") as tab_batch_dir: |
|
extras_batch_input_dir = gr.Textbox(label="Input directory", **shared.hide_dirs, placeholder="A directory on the same machine where the server is running.", elem_id="extras_batch_input_dir") |
|
extras_batch_output_dir = gr.Textbox(label="Output directory", **shared.hide_dirs, placeholder="Leave blank to save images to the default path.", elem_id="extras_batch_output_dir") |
|
show_extras_results = gr.Checkbox(label='Show result images', value=True, elem_id="extras_show_extras_results") |
|
|
|
submit = gr.Button('Generate', elem_id="extras_generate", variant='primary') |
|
|
|
script_inputs = scripts.scripts_postproc.setup_ui() |
|
|
|
with gr.Column(): |
|
result_images, html_info_x, html_info, html_log = ui_common.create_output_panel("extras", shared.opts.outdir_extras_samples) |
|
|
|
tab_single.select(fn=lambda: 0, inputs=[], outputs=[tab_index]) |
|
tab_batch.select(fn=lambda: 1, inputs=[], outputs=[tab_index]) |
|
tab_batch_dir.select(fn=lambda: 2, inputs=[], outputs=[tab_index]) |
|
|
|
submit.click( |
|
fn=call_queue.wrap_gradio_gpu_call(postprocessing.run_postprocessing, extra_outputs=[None, '']), |
|
inputs=[ |
|
tab_index, |
|
extras_image, |
|
image_batch, |
|
extras_batch_input_dir, |
|
extras_batch_output_dir, |
|
show_extras_results, |
|
*script_inputs |
|
], |
|
outputs=[ |
|
result_images, |
|
html_info_x, |
|
html_info, |
|
] |
|
) |
|
|
|
parameters_copypaste.add_paste_fields("extras", extras_image, None) |
|
|
|
extras_image.change( |
|
fn=scripts.scripts_postproc.image_changed, |
|
inputs=[], outputs=[] |
|
) |
|
|