buttons for sending images to tabs
This commit is contained in:
parent
78c3735fdd
commit
38a483f976
115
webui.py
115
webui.py
@ -40,6 +40,9 @@ import signal
|
|||||||
import tqdm
|
import tqdm
|
||||||
import re
|
import re
|
||||||
import threading
|
import threading
|
||||||
|
import time
|
||||||
|
import base64
|
||||||
|
import io
|
||||||
|
|
||||||
import k_diffusion.sampling
|
import k_diffusion.sampling
|
||||||
from ldm.util import instantiate_from_config
|
from ldm.util import instantiate_from_config
|
||||||
@ -1285,6 +1288,22 @@ def txt2img(prompt: str, negative_prompt: str, steps: int, sampler_index: int, u
|
|||||||
|
|
||||||
return processed.images, processed.js(), plaintext_to_html(processed.info)
|
return processed.images, processed.js(), plaintext_to_html(processed.info)
|
||||||
|
|
||||||
|
def image_from_url_text(filedata):
|
||||||
|
if filedata.startswith("data:image/png;base64,"):
|
||||||
|
filedata = filedata[len("data:image/png;base64,"):]
|
||||||
|
|
||||||
|
filedata = base64.decodebytes(filedata.encode('utf-8'))
|
||||||
|
image = Image.open(io.BytesIO(filedata))
|
||||||
|
return image
|
||||||
|
|
||||||
|
|
||||||
|
def send_gradio_gallery_to_image(x):
|
||||||
|
if len(x) == 0:
|
||||||
|
return None
|
||||||
|
|
||||||
|
return image_from_url_text(x[0])
|
||||||
|
|
||||||
|
|
||||||
def save_files(js_data, images):
|
def save_files(js_data, images):
|
||||||
import csv
|
import csv
|
||||||
|
|
||||||
@ -1295,9 +1314,6 @@ def save_files(js_data, images):
|
|||||||
data = json.loads(js_data)
|
data = json.loads(js_data)
|
||||||
|
|
||||||
with open("log/log.csv", "a", encoding="utf8", newline='') as file:
|
with open("log/log.csv", "a", encoding="utf8", newline='') as file:
|
||||||
import time
|
|
||||||
import base64
|
|
||||||
|
|
||||||
at_start = file.tell() == 0
|
at_start = file.tell() == 0
|
||||||
writer = csv.writer(file)
|
writer = csv.writer(file)
|
||||||
if at_start:
|
if at_start:
|
||||||
@ -1352,12 +1368,15 @@ with gr.Blocks(analytics_enabled=False) as txt2img_interface:
|
|||||||
|
|
||||||
with gr.Column(variant='panel'):
|
with gr.Column(variant='panel'):
|
||||||
with gr.Group():
|
with gr.Group():
|
||||||
gallery = gr.Gallery(label='Output')
|
txt2img_gallery = gr.Gallery(label='Output')
|
||||||
|
|
||||||
with gr.Group():
|
with gr.Group():
|
||||||
with gr.Row():
|
with gr.Row():
|
||||||
interrupt = gr.Button('Interrupt')
|
|
||||||
save = gr.Button('Save')
|
save = gr.Button('Save')
|
||||||
|
send_to_img2img = gr.Button('Send to img2img')
|
||||||
|
send_to_inpaint = gr.Button('Send to inpaint')
|
||||||
|
send_to_extras = gr.Button('Send to extras')
|
||||||
|
interrupt = gr.Button('Interrupt')
|
||||||
|
|
||||||
with gr.Group():
|
with gr.Group():
|
||||||
html_info = gr.HTML()
|
html_info = gr.HTML()
|
||||||
@ -1381,7 +1400,7 @@ with gr.Blocks(analytics_enabled=False) as txt2img_interface:
|
|||||||
code
|
code
|
||||||
],
|
],
|
||||||
outputs=[
|
outputs=[
|
||||||
gallery,
|
txt2img_gallery,
|
||||||
generation_info,
|
generation_info,
|
||||||
html_info
|
html_info
|
||||||
]
|
]
|
||||||
@ -1400,7 +1419,7 @@ with gr.Blocks(analytics_enabled=False) as txt2img_interface:
|
|||||||
fn=wrap_gradio_call(save_files),
|
fn=wrap_gradio_call(save_files),
|
||||||
inputs=[
|
inputs=[
|
||||||
generation_info,
|
generation_info,
|
||||||
gallery,
|
txt2img_gallery,
|
||||||
],
|
],
|
||||||
outputs=[
|
outputs=[
|
||||||
html_info,
|
html_info,
|
||||||
@ -1742,12 +1761,13 @@ with gr.Blocks(analytics_enabled=False) as img2img_interface:
|
|||||||
|
|
||||||
with gr.Column(variant='panel'):
|
with gr.Column(variant='panel'):
|
||||||
with gr.Group():
|
with gr.Group():
|
||||||
gallery = gr.Gallery(label='Output')
|
img2img_gallery = gr.Gallery(label='Output')
|
||||||
|
|
||||||
with gr.Group():
|
with gr.Group():
|
||||||
with gr.Row():
|
with gr.Row():
|
||||||
interrupt = gr.Button('Interrupt')
|
interrupt = gr.Button('Interrupt')
|
||||||
save = gr.Button('Save')
|
save = gr.Button('Save')
|
||||||
|
img2img_send_to_extras = gr.Button('Send to extras')
|
||||||
|
|
||||||
with gr.Group():
|
with gr.Group():
|
||||||
html_info = gr.HTML()
|
html_info = gr.HTML()
|
||||||
@ -1815,7 +1835,7 @@ with gr.Blocks(analytics_enabled=False) as img2img_interface:
|
|||||||
inpaint_full_res,
|
inpaint_full_res,
|
||||||
],
|
],
|
||||||
outputs=[
|
outputs=[
|
||||||
gallery,
|
img2img_gallery,
|
||||||
generation_info,
|
generation_info,
|
||||||
html_info
|
html_info
|
||||||
]
|
]
|
||||||
@ -1834,7 +1854,7 @@ with gr.Blocks(analytics_enabled=False) as img2img_interface:
|
|||||||
fn=wrap_gradio_call(save_files),
|
fn=wrap_gradio_call(save_files),
|
||||||
inputs=[
|
inputs=[
|
||||||
generation_info,
|
generation_info,
|
||||||
gallery,
|
img2img_gallery,
|
||||||
],
|
],
|
||||||
outputs=[
|
outputs=[
|
||||||
html_info,
|
html_info,
|
||||||
@ -1843,6 +1863,19 @@ with gr.Blocks(analytics_enabled=False) as img2img_interface:
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
send_to_img2img.click(
|
||||||
|
fn=send_gradio_gallery_to_image,
|
||||||
|
inputs=[txt2img_gallery],
|
||||||
|
outputs=[init_img],
|
||||||
|
)
|
||||||
|
|
||||||
|
send_to_inpaint.click(
|
||||||
|
fn=send_gradio_gallery_to_image,
|
||||||
|
inputs=[txt2img_gallery],
|
||||||
|
outputs=[init_img_with_mask],
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def upscale_with_realesrgan(image, RealESRGAN_upscaling, RealESRGAN_model_index):
|
def upscale_with_realesrgan(image, RealESRGAN_upscaling, RealESRGAN_model_index):
|
||||||
info = realesrgan_models[RealESRGAN_model_index]
|
info = realesrgan_models[RealESRGAN_model_index]
|
||||||
@ -1887,22 +1920,52 @@ def run_extras(image, GFPGAN_strength, RealESRGAN_upscaling, RealESRGAN_model_in
|
|||||||
return image, '', ''
|
return image, '', ''
|
||||||
|
|
||||||
|
|
||||||
extras_interface = gr.Interface(
|
with gr.Blocks(analytics_enabled=False) as extras_interface:
|
||||||
wrap_gradio_gpu_call(run_extras),
|
with gr.Row().style(equal_height=False):
|
||||||
inputs=[
|
with gr.Column(variant='panel'):
|
||||||
gr.Image(label="Source", source="upload", interactive=True, type="pil"),
|
with gr.Group():
|
||||||
gr.Slider(minimum=0.0, maximum=1.0, step=0.001, label="GFPGAN strength", value=1, interactive=have_gfpgan),
|
image = gr.Image(label="Source", source="upload", interactive=True, type="pil")
|
||||||
gr.Slider(minimum=1.0, maximum=4.0, step=0.05, label="Real-ESRGAN upscaling", value=2, interactive=have_realesrgan),
|
gfpgan_strength = gr.Slider(minimum=0.0, maximum=1.0, step=0.001, label="GFPGAN strength", value=1, interactive=have_gfpgan)
|
||||||
gr.Radio(label='Real-ESRGAN model', choices=[x.name for x in realesrgan_models], value=realesrgan_models[0].name, type="index", interactive=have_realesrgan),
|
realesrgan_resize = gr.Slider(minimum=1.0, maximum=4.0, step=0.05, label="Real-ESRGAN upscaling", value=2, interactive=have_realesrgan)
|
||||||
],
|
realesrgan_model = gr.Radio(label='Real-ESRGAN model', choices=[x.name for x in realesrgan_models], value=realesrgan_models[0].name, type="index", interactive=have_realesrgan)
|
||||||
outputs=[
|
|
||||||
gr.Image(label="Result"),
|
submit = gr.Button('Generate', elem_id="extras_generate", variant='primary')
|
||||||
gr.HTML(),
|
|
||||||
gr.HTML(),
|
with gr.Column(variant='panel'):
|
||||||
],
|
result_image = gr.Image(label="Result")
|
||||||
allow_flagging="never",
|
html_info_x = gr.HTML()
|
||||||
analytics_enabled=False,
|
html_info = gr.HTML()
|
||||||
)
|
|
||||||
|
extras_args = dict(
|
||||||
|
fn=wrap_gradio_gpu_call(run_extras),
|
||||||
|
inputs=[
|
||||||
|
image,
|
||||||
|
gfpgan_strength,
|
||||||
|
realesrgan_resize,
|
||||||
|
realesrgan_model,
|
||||||
|
],
|
||||||
|
outputs=[
|
||||||
|
result_image,
|
||||||
|
html_info_x,
|
||||||
|
html_info,
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
submit.click(**extras_args)
|
||||||
|
|
||||||
|
send_to_extras.click(
|
||||||
|
fn=send_gradio_gallery_to_image,
|
||||||
|
inputs=[txt2img_gallery],
|
||||||
|
outputs=[image],
|
||||||
|
)
|
||||||
|
|
||||||
|
img2img_send_to_extras.click(
|
||||||
|
fn=send_gradio_gallery_to_image,
|
||||||
|
inputs=[img2img_gallery],
|
||||||
|
outputs=[image],
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def run_pnginfo(image):
|
def run_pnginfo(image):
|
||||||
|
Loading…
Reference in New Issue
Block a user