mirror of
https://github.com/Bing-su/adetailer.git
synced 2026-03-14 01:40:05 +00:00
@@ -56,6 +56,8 @@ class ADetailerArgs(BaseModel, extra=Extra.forbid):
|
||||
ad_steps: PositiveInt = 28
|
||||
ad_use_cfg_scale: bool = False
|
||||
ad_cfg_scale: NonNegativeFloat = 7.0
|
||||
ad_use_noise_multiplier: bool = False
|
||||
ad_noise_multiplier: confloat(ge=0.5, le=1.5) = 1.0
|
||||
ad_restore_face: bool = False
|
||||
ad_controlnet_model: constr(regex=cn_model_regex) = "None"
|
||||
ad_controlnet_module: Optional[constr(regex=r".*inpaint.*|^None$")] = None
|
||||
@@ -179,6 +181,8 @@ _all_args = [
|
||||
("ad_steps", "ADetailer steps"),
|
||||
("ad_use_cfg_scale", "ADetailer use separate CFG scale"),
|
||||
("ad_cfg_scale", "ADetailer CFG scale"),
|
||||
("ad_use_noise_multiplier", "ADetailer use separate noise multiplier"),
|
||||
("ad_noise_multiplier", "ADetailer noise multiplier"),
|
||||
("ad_restore_face", "ADetailer restore face"),
|
||||
("ad_controlnet_model", "ADetailer ControlNet model"),
|
||||
("ad_controlnet_module", "ADetailer ControlNet module"),
|
||||
|
||||
@@ -405,6 +405,31 @@ def inpainting(w: Widgets, n: int, is_img2img: bool):
|
||||
)
|
||||
|
||||
with gr.Row():
|
||||
with gr.Column(variant="compact"):
|
||||
w.ad_use_initial_noise_multiplier = gr.Checkbox(
|
||||
label="Use separate noise multiplier" + suffix(n),
|
||||
value=False,
|
||||
visible=True,
|
||||
elem_id=eid("ad_use_noise_multiplier"),
|
||||
)
|
||||
|
||||
w.ad_initial_noise_multiplier = gr.Slider(
|
||||
label="Noise multiplier for img2img" + suffix(n),
|
||||
minimum=0.5,
|
||||
maximum=1.5,
|
||||
step=0.01,
|
||||
value=1.0,
|
||||
visible=True,
|
||||
elem_id=eid("ad_noise_multiplier"),
|
||||
)
|
||||
|
||||
w.ad_use_initial_noise_multiplier.change(
|
||||
gr_interactive,
|
||||
inputs=w.ad_use_initial_noise_multiplier,
|
||||
outputs=w.ad_initial_noise_multiplier,
|
||||
queue=False,
|
||||
)
|
||||
|
||||
w.ad_restore_face = gr.Checkbox(
|
||||
label="Restore faces after ADetailer" + suffix(n),
|
||||
value=False,
|
||||
|
||||
@@ -282,6 +282,11 @@ class AfterDetailerScript(scripts.Script):
|
||||
return args.ad_cfg_scale
|
||||
return p.cfg_scale
|
||||
|
||||
def get_initial_noise_multiplier(self, p, args: ADetailerArgs) -> float | None:
|
||||
if args.ad_use_noise_multiplier:
|
||||
return args.ad_noise_multiplier
|
||||
return None
|
||||
|
||||
def infotext(self, p) -> str:
|
||||
return create_infotext(
|
||||
p, p.all_prompts, p.all_seeds, p.all_subseeds, None, 0, 0
|
||||
@@ -340,6 +345,7 @@ class AfterDetailerScript(scripts.Script):
|
||||
width, height = self.get_width_height(p, args)
|
||||
steps = self.get_steps(p, args)
|
||||
cfg_scale = self.get_cfg_scale(p, args)
|
||||
initial_noise_multiplier = self.get_initial_noise_multiplier(p, args)
|
||||
|
||||
sampler_name = p.sampler_name
|
||||
if sampler_name in ["PLMS", "UniPC"]:
|
||||
@@ -355,6 +361,7 @@ class AfterDetailerScript(scripts.Script):
|
||||
inpaint_full_res=args.ad_inpaint_only_masked,
|
||||
inpaint_full_res_padding=args.ad_inpaint_only_masked_padding,
|
||||
inpainting_mask_invert=0,
|
||||
initial_noise_multiplier=initial_noise_multiplier,
|
||||
sd_model=p.sd_model,
|
||||
outpath_samples=p.outpath_samples,
|
||||
outpath_grids=p.outpath_grids,
|
||||
|
||||
Reference in New Issue
Block a user