aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAUTOMATIC <16777216c@gmail.com>2022-10-14 17:14:24 +0300
committerAUTOMATIC <16777216c@gmail.com>2022-10-14 17:14:24 +0300
commita156c097ab68fd18145547630d32fbab0673ea53 (patch)
treec13499a44ea40b24b6f25fbf743570ac95c120cf
parente644b5a80beb54b6df4caa63fb19d889dd4ceff6 (diff)
parent54e0051bdd7dea7348825c09600ec61ea0771cb8 (diff)
Merge branch 'param-loading'
-rw-r--r--javascript/dragdrop.js3
-rw-r--r--javascript/imageParams.js22
-rw-r--r--modules/images.py20
-rw-r--r--modules/ui.py30
4 files changed, 74 insertions, 1 deletions
diff --git a/javascript/dragdrop.js b/javascript/dragdrop.js
index 5aac57f7..cf900f50 100644
--- a/javascript/dragdrop.js
+++ b/javascript/dragdrop.js
@@ -53,6 +53,9 @@ window.document.addEventListener('dragover', e => {
window.document.addEventListener('drop', e => {
const target = e.composedPath()[0];
+ if (target.placeholder === "Prompt") {
+ return;
+ }
const imgWrap = target.closest('[data-testid="image"]');
if ( !imgWrap ) {
return;
diff --git a/javascript/imageParams.js b/javascript/imageParams.js
new file mode 100644
index 00000000..f9d0c0aa
--- /dev/null
+++ b/javascript/imageParams.js
@@ -0,0 +1,22 @@
+window.onload = (function(){
+ window.addEventListener('drop', e => {
+ const target = e.composedPath()[0];
+ const idx = selected_gallery_index();
+ let prompt_target = "txt2img_prompt_image";
+ if (idx === 1) {
+ prompt_target = "img2img_prompt_image";
+ }
+ if (target.placeholder === "Prompt") {
+ e.stopPropagation();
+ e.preventDefault();
+ const imgParent = gradioApp().getElementById(prompt_target);
+ const files = e.dataTransfer.files;
+ const fileInput = imgParent.querySelector('input[type="file"]');
+ if ( fileInput ) {
+ fileInput.files = files;
+ fileInput.dispatchEvent(new Event('change'));
+ }
+ }
+ });
+
+}); \ No newline at end of file
diff --git a/modules/images.py b/modules/images.py
index c0a90676..f1155b7f 100644
--- a/modules/images.py
+++ b/modules/images.py
@@ -463,3 +463,23 @@ def save_image(image, path, basename, seed=None, prompt=None, extension='png', i
txt_fullfn = None
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
diff --git a/modules/ui.py b/modules/ui.py
index d66ddc14..0a3ee887 100644
--- a/modules/ui.py
+++ b/modules/ui.py
@@ -433,7 +433,6 @@ def create_toprow(is_img2img):
with gr.Column(scale=80):
with gr.Row():
prompt = gr.Textbox(label="Prompt", elem_id=f"{id_part}_prompt", show_label=False, placeholder="Prompt", lines=2)
-
with gr.Column(scale=1, elem_id="roll_col"):
roll = gr.Button(value=art_symbol, elem_id="roll", visible=len(shared.artist_db.artists) > 0)
paste = gr.Button(value=paste_symbol, elem_id="paste")
@@ -515,6 +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)
with gr.Row(elem_id='txt2img_progress_row'):
with gr.Column(scale=1):
@@ -618,6 +618,18 @@ def create_ui(wrap_gradio_gpu_call):
txt2img_prompt.submit(**txt2img_args)
submit.click(**txt2img_args)
+ txt_prompt_img.change(
+ fn=modules.images.image_data,
+ # _js = "get_extras_tab_index",
+ inputs=[
+ txt_prompt_img
+ ],
+ outputs=[
+ txt2img_prompt,
+ txt_prompt_img
+ ]
+ )
+
enable_hr.change(
fn=lambda x: gr_show(x),
inputs=[enable_hr],
@@ -680,6 +692,9 @@ 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)
+
with gr.Column(scale=1):
pass
@@ -774,6 +789,18 @@ def create_ui(wrap_gradio_gpu_call):
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)
+ img2img_prompt_img.change(
+ fn=modules.images.image_data,
+ # _js = "get_extras_tab_index",
+ inputs=[
+ txt_prompt_img
+ ],
+ outputs=[
+ img2img_prompt,
+ img2img_prompt_img
+ ]
+ )
+
mask_mode.change(
lambda mode, img: {
init_img_with_mask: gr_show(mode == 0),
@@ -962,6 +989,7 @@ def create_ui(wrap_gradio_gpu_call):
button_id = "hidden_element" if shared.cmd_opts.hide_ui_dir_config else ''
open_extras_folder = gr.Button('Open output directory', elem_id=button_id)
+
submit.click(
fn=wrap_gradio_gpu_call(modules.extras.run_extras),
_js="get_extras_tab_index",