mirror of
				https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
				synced 2025-10-31 10:03:40 +00:00 
			
		
		
		
	make "send to" buttons send actual dimension of the sent image rather than fields
This commit is contained in:
		
							parent
							
								
									8d12a729b8
								
							
						
					
					
						commit
						251ecee694
					
				| @ -19,7 +19,7 @@ function selected_gallery_index(){ | |||||||
| 
 | 
 | ||||||
| function extract_image_from_gallery(gallery){ | function extract_image_from_gallery(gallery){ | ||||||
|     if(gallery.length == 1){ |     if(gallery.length == 1){ | ||||||
|         return gallery[0] |         return [gallery[0]] | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     index = selected_gallery_index() |     index = selected_gallery_index() | ||||||
| @ -28,7 +28,7 @@ function extract_image_from_gallery(gallery){ | |||||||
|         return [null] |         return [null] | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     return gallery[index]; |     return [gallery[index]]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function args_to_array(args){ | function args_to_array(args){ | ||||||
|  | |||||||
| @ -103,35 +103,57 @@ def bind_buttons(buttons, send_image, send_generate_info): | |||||||
|     bind_list.append([buttons, send_image, send_generate_info]) |     bind_list.append([buttons, send_image, send_generate_info]) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | def send_image_and_dimensions(x): | ||||||
|  |     if isinstance(x, Image.Image): | ||||||
|  |         img = x | ||||||
|  |     else: | ||||||
|  |         img = image_from_url_text(x) | ||||||
|  | 
 | ||||||
|  |     if shared.opts.send_size and isinstance(img, Image.Image): | ||||||
|  |         w = img.width | ||||||
|  |         h = img.height | ||||||
|  |     else: | ||||||
|  |         w = gr.update() | ||||||
|  |         h = gr.update() | ||||||
|  | 
 | ||||||
|  |     return img, w, h | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| def run_bind(): | def run_bind(): | ||||||
|     for buttons, send_image, send_generate_info in bind_list: |     for buttons, source_image_component, send_generate_info in bind_list: | ||||||
|         for tab in buttons: |         for tab in buttons: | ||||||
|             button = buttons[tab] |             button = buttons[tab] | ||||||
|             if send_image and paste_fields[tab]["init_img"]: |             destination_image_component = paste_fields[tab]["init_img"] | ||||||
|                 if type(send_image) == gr.Gallery: |             fields = paste_fields[tab]["fields"] | ||||||
|                     button.click( | 
 | ||||||
|                         fn=lambda x: image_from_url_text(x), |             destination_width_component = next(iter([field for field, name in fields if name == "Size-1"] if fields else []), None) | ||||||
|                         _js="extract_image_from_gallery", |             destination_height_component = next(iter([field for field, name in fields if name == "Size-2"] if fields else []), None) | ||||||
|                         inputs=[send_image], | 
 | ||||||
|                         outputs=[paste_fields[tab]["init_img"]], |             if source_image_component and destination_image_component: | ||||||
|                     ) |                 if isinstance(source_image_component, gr.Gallery): | ||||||
|  |                     func = send_image_and_dimensions if destination_width_component else image_from_url_text | ||||||
|  |                     jsfunc = "extract_image_from_gallery" | ||||||
|                 else: |                 else: | ||||||
|  |                     func = send_image_and_dimensions if destination_width_component else lambda x: x | ||||||
|  |                     jsfunc = None | ||||||
|  | 
 | ||||||
|                 button.click( |                 button.click( | ||||||
|                         fn=lambda x: x, |                     fn=func, | ||||||
|                         inputs=[send_image], |                     _js=jsfunc, | ||||||
|                         outputs=[paste_fields[tab]["init_img"]], |                     inputs=[source_image_component], | ||||||
|  |                     outputs=[destination_image_component, destination_width_component, destination_height_component] if destination_width_component else [destination_image_component], | ||||||
|                 ) |                 ) | ||||||
| 
 | 
 | ||||||
|             if send_generate_info and paste_fields[tab]["fields"] is not None: |             if send_generate_info and fields is not None: | ||||||
|                 if send_generate_info in paste_fields: |                 if send_generate_info in paste_fields: | ||||||
|                     paste_field_names = ['Prompt', 'Negative prompt', 'Steps', 'Face restoration'] +  (['Size-1', 'Size-2'] if shared.opts.send_size else []) + (["Seed"] if shared.opts.send_seed else []) |                     paste_field_names = ['Prompt', 'Negative prompt', 'Steps', 'Face restoration'] + (["Seed"] if shared.opts.send_seed else []) | ||||||
|                     button.click( |                     button.click( | ||||||
|                         fn=lambda *x: x, |                         fn=lambda *x: x, | ||||||
|                         inputs=[field for field, name in paste_fields[send_generate_info]["fields"] if name in paste_field_names], |                         inputs=[field for field, name in paste_fields[send_generate_info]["fields"] if name in paste_field_names], | ||||||
|                         outputs=[field for field, name in paste_fields[tab]["fields"] if name in paste_field_names], |                         outputs=[field for field, name in fields if name in paste_field_names], | ||||||
|                     ) |                     ) | ||||||
|                 else: |                 else: | ||||||
|                     connect_paste(button, paste_fields[tab]["fields"], send_generate_info) |                     connect_paste(button, fields, send_generate_info) | ||||||
| 
 | 
 | ||||||
|             button.click( |             button.click( | ||||||
|                 fn=None, |                 fn=None, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 AUTOMATIC
						AUTOMATIC