From c9430e53f6bad9af8adbc35ff72bcf59fbdec0ef Mon Sep 17 00:00:00 2001 From: AUTOMATIC <16777216c@gmail.com> Date: Wed, 14 Sep 2022 14:47:54 +0300 Subject: loopback moved to scripts, added support for multiple batches, changed to honor save grids and how grids in web setting --- modules/img2img.py | 43 +++---------------------------------------- modules/ui.py | 11 ++--------- 2 files changed, 5 insertions(+), 49 deletions(-) (limited to 'modules') diff --git a/modules/img2img.py b/modules/img2img.py index 08e15911..bfcd7598 100644 --- a/modules/img2img.py +++ b/modules/img2img.py @@ -11,10 +11,9 @@ from modules.ui import plaintext_to_html import modules.images as images import modules.scripts -def img2img(prompt: str, negative_prompt: str, prompt_style: str, init_img, init_img_with_mask, init_mask, mask_mode, steps: int, sampler_index: int, mask_blur: int, inpainting_fill: int, restore_faces: bool, tiling: bool, mode: int, n_iter: int, batch_size: int, cfg_scale: float, denoising_strength: float, denoising_strength_change_factor: float, seed: int, subseed: int, subseed_strength: float, seed_resize_from_h: int, seed_resize_from_w: int, height: int, width: int, resize_mode: int, upscaler_index: str, upscale_overlap: int, inpaint_full_res: bool, inpainting_mask_invert: int, *args): +def img2img(prompt: str, negative_prompt: str, prompt_style: str, init_img, init_img_with_mask, init_mask, mask_mode, steps: int, sampler_index: int, mask_blur: int, inpainting_fill: int, restore_faces: bool, tiling: bool, mode: int, n_iter: int, batch_size: int, cfg_scale: float, denoising_strength: float, seed: int, subseed: int, subseed_strength: float, seed_resize_from_h: int, seed_resize_from_w: int, height: int, width: int, resize_mode: int, upscaler_index: str, upscale_overlap: int, inpaint_full_res: bool, inpainting_mask_invert: int, *args): is_inpaint = mode == 1 - is_loopback = mode == 2 - is_upscale = mode == 3 + is_upscale = mode == 2 if is_inpaint: if mask_mode == 0: @@ -61,46 +60,10 @@ def img2img(prompt: str, negative_prompt: str, prompt_style: str, init_img, init denoising_strength=denoising_strength, inpaint_full_res=inpaint_full_res, inpainting_mask_invert=inpainting_mask_invert, - extra_generation_params={ - "Denoising strength change factor": (denoising_strength_change_factor if is_loopback else None) - } ) print(f"\nimg2img: {prompt}", file=shared.progress_print_out) - if is_loopback: - output_images, info = None, None - history = [] - initial_seed = None - initial_info = None - - state.job_count = n_iter - - for i in range(n_iter): - p.n_iter = 1 - p.batch_size = 1 - p.do_not_save_grid = True - - state.job = f"Batch {i + 1} out of {n_iter}" - processed = process_images(p) - - if initial_seed is None: - initial_seed = processed.seed - initial_info = processed.info - - init_img = processed.images[0] - - p.init_images = [init_img] - p.seed = processed.seed + 1 - p.denoising_strength = min(max(p.denoising_strength * denoising_strength_change_factor, 0.1), 1) - history.append(processed.images[0]) - - grid = images.image_grid(history, batch_size, rows=1) - - images.save_image(grid, p.outpath_grids, "grid", initial_seed, prompt, opts.grid_format, info=info, short_filename=not opts.grid_extended_filename, grid=True, p=p) - - processed = Processed(p, history, initial_seed, initial_info) - - elif is_upscale: + if is_upscale: initial_info = None processing.fix_seed(p) diff --git a/modules/ui.py b/modules/ui.py index ae064be5..c88a1f22 100644 --- a/modules/ui.py +++ b/modules/ui.py @@ -387,7 +387,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): with gr.Row().style(equal_height=False): with gr.Column(variant='panel'): with gr.Group(): - switch_mode = gr.Radio(label='Mode', elem_id="img2img_mode", choices=['Redraw whole image', 'Inpaint a part of image', 'Loopback', 'SD upscale'], value='Redraw whole image', type="index", show_label=False) + switch_mode = gr.Radio(label='Mode', elem_id="img2img_mode", choices=['Redraw whole image', 'Inpaint a part of image', 'SD upscale'], value='Redraw whole image', type="index", show_label=False) init_img = gr.Image(label="Image for img2img", source="upload", interactive=True, type="pil") init_img_with_mask = gr.Image(label="Image for inpainting with mask", elem_id="img2maskimg", source="upload", interactive=True, type="pil", tool="sketch", visible=False, image_mode="RGBA") init_mask = gr.Image(label="Mask", source="upload", interactive=True, type="pil", visible=False) @@ -421,7 +421,6 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): with gr.Group(): cfg_scale = gr.Slider(minimum=1.0, maximum=30.0, step=0.5, label='CFG Scale', value=7.0) denoising_strength = gr.Slider(minimum=0.0, maximum=1.0, step=0.01, label='Denoising strength', value=0.75) - denoising_strength_change_factor = gr.Slider(minimum=0.9, maximum=1.1, step=0.01, label='Denoising strength change factor', value=1, visible=False) with gr.Group(): width = gr.Slider(minimum=64, maximum=2048, step=64, label="Width", value=512) @@ -455,8 +454,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): def apply_mode(mode, uploadmask): is_classic = mode == 0 is_inpaint = mode == 1 - is_loopback = mode == 2 - is_upscale = mode == 3 + is_upscale = mode == 2 return { init_img: gr_show(not is_inpaint or (is_inpaint and uploadmask == 1)), @@ -466,12 +464,10 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): mask_mode: gr_show(is_inpaint), mask_blur: gr_show(is_inpaint), inpainting_fill: gr_show(is_inpaint), - batch_size: gr_show(not is_loopback), sd_upscale_upscaler_name: gr_show(is_upscale), sd_upscale_overlap: gr_show(is_upscale), inpaint_full_res: gr_show(is_inpaint), inpainting_mask_invert: gr_show(is_inpaint), - denoising_strength_change_factor: gr_show(is_loopback), img2img_interrogate: gr_show(not is_inpaint), } @@ -486,12 +482,10 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): mask_mode, mask_blur, inpainting_fill, - batch_size, sd_upscale_upscaler_name, sd_upscale_overlap, inpaint_full_res, inpainting_mask_invert, - denoising_strength_change_factor, img2img_interrogate, ] ) @@ -532,7 +526,6 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): batch_size, cfg_scale, denoising_strength, - denoising_strength_change_factor, seed, subseed, subseed_strength, seed_resize_from_h, seed_resize_from_w, height, -- cgit v1.2.3