未验证 提交 20b86e81 编写于 作者: A AUTOMATIC1111 提交者: GitHub

Merge pull request #154 from rewbs/img2img2-loopback-denoise-strength-change-factor

Turn the loopback denoising strength change factor into a parameter rather than hardcoding to 0.95. Set the default to 1.
...@@ -11,7 +11,7 @@ from modules.ui import plaintext_to_html ...@@ -11,7 +11,7 @@ from modules.ui import plaintext_to_html
import modules.images as images import modules.images as images
import modules.scripts import modules.scripts
def img2img(prompt: str, init_img, init_img_with_mask, 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, 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, init_img, init_img_with_mask, 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, 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_inpaint = mode == 1
is_loopback = mode == 2 is_loopback = mode == 2
is_upscale = mode == 3 is_upscale = mode == 3
...@@ -50,7 +50,10 @@ def img2img(prompt: str, init_img, init_img_with_mask, steps: int, sampler_index ...@@ -50,7 +50,10 @@ def img2img(prompt: str, init_img, init_img_with_mask, steps: int, sampler_index
denoising_strength=denoising_strength, denoising_strength=denoising_strength,
inpaint_full_res=inpaint_full_res, inpaint_full_res=inpaint_full_res,
inpainting_mask_invert=inpainting_mask_invert, inpainting_mask_invert=inpainting_mask_invert,
extra_generation_params={"Denoising Strength": denoising_strength} extra_generation_params={
"Denoising strength": denoising_strength,
"Denoising strength change factor": denoising_strength_change_factor
}
) )
if is_loopback: if is_loopback:
...@@ -99,7 +102,7 @@ def img2img(prompt: str, init_img, init_img_with_mask, steps: int, sampler_index ...@@ -99,7 +102,7 @@ def img2img(prompt: str, init_img, init_img_with_mask, steps: int, sampler_index
p.init_images = [init_img] p.init_images = [init_img]
p.seed = processed.seed + 1 p.seed = processed.seed + 1
p.denoising_strength = max(p.denoising_strength * 0.95, 0.1) p.denoising_strength = min(max(p.denoising_strength * denoising_strength_change_factor, 0.1), 1)
history.append(processed.images[0]) history.append(processed.images[0])
grid = images.image_grid(history, batch_size, rows=1) grid = images.image_grid(history, batch_size, rows=1)
......
...@@ -349,7 +349,8 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): ...@@ -349,7 +349,8 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo):
with gr.Group(): with gr.Group():
cfg_scale = gr.Slider(minimum=1.0, maximum=15.0, step=0.5, label='CFG Scale', value=7.0) cfg_scale = gr.Slider(minimum=1.0, maximum=15.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 = 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(): with gr.Group():
height = gr.Slider(minimum=64, maximum=2048, step=64, label="Height", value=512) height = gr.Slider(minimum=64, maximum=2048, step=64, label="Height", value=512)
...@@ -396,6 +397,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): ...@@ -396,6 +397,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo):
sd_upscale_overlap: gr_show(is_upscale), sd_upscale_overlap: gr_show(is_upscale),
inpaint_full_res: gr_show(is_inpaint), inpaint_full_res: gr_show(is_inpaint),
inpainting_mask_invert: gr_show(is_inpaint), inpainting_mask_invert: gr_show(is_inpaint),
denoising_strength_change_factor: gr_show(is_loopback),
} }
switch_mode.change( switch_mode.change(
...@@ -412,6 +414,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): ...@@ -412,6 +414,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo):
sd_upscale_overlap, sd_upscale_overlap,
inpaint_full_res, inpaint_full_res,
inpainting_mask_invert, inpainting_mask_invert,
denoising_strength_change_factor,
] ]
) )
...@@ -433,6 +436,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo): ...@@ -433,6 +436,7 @@ def create_ui(txt2img, img2img, run_extras, run_pnginfo):
batch_size, batch_size,
cfg_scale, cfg_scale,
denoising_strength, denoising_strength,
denoising_strength_change_factor,
seed, seed,
height, height,
width, width,
......
...@@ -26,7 +26,8 @@ titles = { ...@@ -26,7 +26,8 @@ titles = {
"latent nothing": "fill it with latent space zeroes", "latent nothing": "fill it with latent space zeroes",
"Inpaint at full resolution": "Upscale masked region to target resolution, do inpainting, downscale back and paste into original image", "Inpaint at full resolution": "Upscale masked region to target resolution, do inpainting, downscale back and paste into original image",
"Denoising Strength": "Determines how little respect the algorithm should have for image's content. At 0, nothing will change, and at 1 you'll get an unrelated image.", "Denoising strength": "Determines how little respect the algorithm should have for image's content. At 0, nothing will change, and at 1 you'll get an unrelated image.",
"Denoising strength change factor": "In loopback mode, on each loop the denoising strength is multiplied by this value. <1 means decreasing variety so your sequence will converge on a fixed picture. >1 means increasing variety so your sequence will become more and more chaotic.",
"Interrupt": "Stop processing images and return any results accumulated so far.", "Interrupt": "Stop processing images and return any results accumulated so far.",
"Save": "Write image to a directory (default - log/images) and generation parameters into csv file.", "Save": "Write image to a directory (default - log/images) and generation parameters into csv file.",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册