aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAUTOMATIC <16777216c@gmail.com>2022-10-14 18:15:03 +0300
committerAUTOMATIC <16777216c@gmail.com>2022-10-14 18:15:03 +0300
commit0aec19d7837d8564355fdb286541db7165852e41 (patch)
tree3befe3e678e2005a8965b96d2dec2460dc25a805
parent33ae6be55eaedabd49c8c888ec0b37c612618fdf (diff)
make pasting into img2img prompt work
make image params request not use temp files
-rw-r--r--modules/images.py36
-rw-r--r--modules/ui.py9
2 files changed, 21 insertions, 24 deletions
diff --git a/modules/images.py b/modules/images.py
index f1155b7f..68cdbc93 100644
--- a/modules/images.py
+++ b/modules/images.py
@@ -1,4 +1,5 @@
import datetime
+import io
import math
import os
from collections import namedtuple
@@ -465,21 +466,20 @@ def save_image(image, path, basename, seed=None, prompt=None, extension='png', i
return fullfn, txt_fullfn
-def image_data(image_path):
- file, ext = os.path.splitext(image_path.name)
- data = {}
- if "png" in ext:
- image = Image.open(image_path.name, "r")
- print(f"Image data requested for {image_path.name} {image.format} of {type(image)}")
- try:
- data = image.text["parameters"]
- except Exception as e:
- print(f"Exception: {e}")
- pass
- print(f"Image data: {data}")
- if "txt" in ext:
- myfile = open(image_path.name, 'r')
- data = myfile.read()
- myfile.close()
-
- return data, None
+def image_data(data):
+ try:
+ image = Image.open(io.BytesIO(data))
+ textinfo = image.text["parameters"]
+ return textinfo, None
+ except Exception:
+ pass
+
+ try:
+ text = data.decode('utf8')
+ assert len(text) < 10000
+ return text, None
+
+ except Exception:
+ pass
+
+ return '', None
diff --git a/modules/ui.py b/modules/ui.py
index 0a3ee887..6266db49 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -514,7 +514,7 @@ def create_ui(wrap_gradio_gpu_call):
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, paste, token_counter, token_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="file", 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):
@@ -620,7 +620,6 @@ def create_ui(wrap_gradio_gpu_call):
txt_prompt_img.change(
fn=modules.images.image_data,
- # _js = "get_extras_tab_index",
inputs=[
txt_prompt_img
],
@@ -692,8 +691,7 @@ def create_ui(wrap_gradio_gpu_call):
img2img_prompt, roll, img2img_prompt_style, img2img_negative_prompt, img2img_prompt_style2, submit, img2img_interrogate, img2img_deepbooru, img2img_prompt_style_apply, img2img_save_style, paste, token_counter, token_button = create_toprow(is_img2img=True)
with gr.Row(elem_id='img2img_progress_row'):
- img2img_prompt_img = gr.File(label="", elem_id="txt_prompt_image", file_count="single", type="file",
- visible=False)
+ img2img_prompt_img = gr.File(label="", elem_id="img2img_prompt_image", file_count="single", type="bytes", visible=False)
with gr.Column(scale=1):
pass
@@ -791,9 +789,8 @@ def create_ui(wrap_gradio_gpu_call):
img2img_prompt_img.change(
fn=modules.images.image_data,
- # _js = "get_extras_tab_index",
inputs=[
- txt_prompt_img
+ img2img_prompt_img
],
outputs=[
img2img_prompt,