|
|
|
|
@ -82,6 +82,7 @@ folder_symbol = '\U0001f4c2' # 📂
|
|
|
|
|
refresh_symbol = '\U0001f504' # 🔄
|
|
|
|
|
save_style_symbol = '\U0001f4be' # 💾
|
|
|
|
|
apply_style_symbol = '\U0001f4cb' # 📋
|
|
|
|
|
clear_prompt_symbol = '\U0001F5D1' # 🗑️
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def plaintext_to_html(text):
|
|
|
|
|
@ -316,6 +317,17 @@ def create_seed_inputs():
|
|
|
|
|
return seed, reuse_seed, subseed, reuse_subseed, subseed_strength, seed_resize_from_h, seed_resize_from_w, seed_checkbox
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def connect_clear_prompt(button):
|
|
|
|
|
"""Given clear button, prompt, and token_counter objects, setup clear prompt button click event"""
|
|
|
|
|
button.click(
|
|
|
|
|
_js="clear_prompt",
|
|
|
|
|
fn=None,
|
|
|
|
|
inputs=[],
|
|
|
|
|
outputs=[],
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def connect_reuse_seed(seed: gr.Number, reuse_seed: gr.Button, generation_info: gr.Textbox, dummy_component, is_subseed):
|
|
|
|
|
""" Connects a 'reuse (sub)seed' button's click event so that it copies last used
|
|
|
|
|
(sub)seed value from generation info the to the seed field. If copying subseed and subseed strength
|
|
|
|
|
@ -392,6 +404,12 @@ def create_toprow(is_img2img):
|
|
|
|
|
save_style = gr.Button(value=save_style_symbol, elem_id="style_create")
|
|
|
|
|
prompt_style_apply = gr.Button(value=apply_style_symbol, elem_id="style_apply")
|
|
|
|
|
|
|
|
|
|
clear_prompt_button = gr.Button(
|
|
|
|
|
value=clear_prompt_symbol,
|
|
|
|
|
elem_id="clear_prompt",
|
|
|
|
|
visible=opts.clear_prompt_visible
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
token_counter = gr.HTML(value="<span></span>", elem_id=f"{id_part}_token_counter")
|
|
|
|
|
token_button = gr.Button(visible=False, elem_id=f"{id_part}_token_button")
|
|
|
|
|
|
|
|
|
|
@ -429,7 +447,7 @@ def create_toprow(is_img2img):
|
|
|
|
|
prompt_style2 = gr.Dropdown(label="Style 2", elem_id=f"{id_part}_style2_index", choices=[k for k, v in shared.prompt_styles.styles.items()], value=next(iter(shared.prompt_styles.styles.keys())))
|
|
|
|
|
prompt_style2.save_to_config = True
|
|
|
|
|
|
|
|
|
|
return prompt, roll, prompt_style, negative_prompt, prompt_style2, submit, button_interrogate, button_deepbooru, prompt_style_apply, save_style, paste, token_counter, token_button
|
|
|
|
|
return prompt, roll, prompt_style, negative_prompt, prompt_style2, submit, button_interrogate, button_deepbooru, prompt_style_apply, save_style, paste, token_counter, token_button, clear_prompt_button
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def setup_progressbar(progressbar, preview, id_part, textinfo=None):
|
|
|
|
|
@ -616,10 +634,14 @@ def create_ui():
|
|
|
|
|
modules.scripts.scripts_txt2img.initialize_scripts(is_img2img=False)
|
|
|
|
|
|
|
|
|
|
with gr.Blocks(analytics_enabled=False) as txt2img_interface:
|
|
|
|
|
txt2img_prompt, roll, txt2img_prompt_style, txt2img_negative_prompt, txt2img_prompt_style2, submit, _, _, txt2img_prompt_style_apply, txt2img_save_style, txt2img_paste, token_counter, token_button = create_toprow(is_img2img=False)
|
|
|
|
|
txt2img_prompt, roll, txt2img_prompt_style, txt2img_negative_prompt, txt2img_prompt_style2, submit, _, _,txt2img_prompt_style_apply, txt2img_save_style, txt2img_paste, token_counter, token_button, clear_prompt_button = create_toprow(is_img2img=False)
|
|
|
|
|
|
|
|
|
|
dummy_component = gr.Label(visible=False)
|
|
|
|
|
txt_prompt_img = gr.File(label="", elem_id="txt2img_prompt_image", file_count="single", type="bytes", visible=False)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
with gr.Row(elem_id='txt2img_progress_row'):
|
|
|
|
|
with gr.Column(scale=1):
|
|
|
|
|
pass
|
|
|
|
|
@ -664,6 +686,7 @@ def create_ui():
|
|
|
|
|
|
|
|
|
|
connect_reuse_seed(seed, reuse_seed, generation_info, dummy_component, is_subseed=False)
|
|
|
|
|
connect_reuse_seed(subseed, reuse_subseed, generation_info, dummy_component, is_subseed=True)
|
|
|
|
|
connect_clear_prompt(clear_prompt_button)
|
|
|
|
|
|
|
|
|
|
txt2img_args = dict(
|
|
|
|
|
fn=wrap_gradio_gpu_call(modules.txt2img.txt2img),
|
|
|
|
|
@ -770,7 +793,8 @@ def create_ui():
|
|
|
|
|
modules.scripts.scripts_img2img.initialize_scripts(is_img2img=True)
|
|
|
|
|
|
|
|
|
|
with gr.Blocks(analytics_enabled=False) as img2img_interface:
|
|
|
|
|
img2img_prompt, roll, img2img_prompt_style, img2img_negative_prompt, img2img_prompt_style2, submit, img2img_interrogate, img2img_deepbooru, img2img_prompt_style_apply, img2img_save_style, img2img_paste, token_counter, token_button = create_toprow(is_img2img=True)
|
|
|
|
|
img2img_prompt, roll, img2img_prompt_style, img2img_negative_prompt, img2img_prompt_style2, submit, img2img_interrogate, img2img_deepbooru, img2img_prompt_style_apply, img2img_save_style, img2img_paste,token_counter, token_button, clear_prompt_button = create_toprow(is_img2img=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
with gr.Row(elem_id='img2img_progress_row'):
|
|
|
|
|
img2img_prompt_img = gr.File(label="", elem_id="img2img_prompt_image", file_count="single", type="bytes", visible=False)
|
|
|
|
|
@ -860,6 +884,7 @@ def create_ui():
|
|
|
|
|
|
|
|
|
|
connect_reuse_seed(seed, reuse_seed, generation_info, dummy_component, is_subseed=False)
|
|
|
|
|
connect_reuse_seed(subseed, reuse_subseed, generation_info, dummy_component, is_subseed=True)
|
|
|
|
|
connect_clear_prompt(clear_prompt_button)
|
|
|
|
|
|
|
|
|
|
img2img_prompt_img.change(
|
|
|
|
|
fn=modules.images.image_data,
|
|
|
|
|
|