mirror of
https://github.com/Bing-su/adetailer.git
synced 2026-04-23 15:59:04 +00:00
feat: add separate steps
This commit is contained in:
@@ -33,6 +33,8 @@ _all_args = [
|
||||
("ad_use_inpaint_width_height", "ADetailer use inpaint width/height"),
|
||||
("ad_inpaint_width", "ADetailer inpaint width"),
|
||||
("ad_inpaint_height", "ADetailer inpaint height"),
|
||||
("ad_use_steps", "ADetailer use separate steps"),
|
||||
("ad_steps", "ADetailer steps"),
|
||||
("ad_use_cfg_scale", "ADetailer use separate CFG scale"),
|
||||
("ad_cfg_scale", "ADetailer CFG scale"),
|
||||
("ad_controlnet_model", "ADetailer ControlNet model"),
|
||||
@@ -58,6 +60,8 @@ class ADetailerArgs(BaseModel, extra=Extra.forbid):
|
||||
ad_use_inpaint_width_height: bool = False
|
||||
ad_inpaint_width: PositiveInt = 512
|
||||
ad_inpaint_height: PositiveInt = 512
|
||||
ad_use_steps: bool = False
|
||||
ad_steps: PositiveInt = 28
|
||||
ad_use_cfg_scale: bool = False
|
||||
ad_cfg_scale: NonNegativeFloat = 7.0
|
||||
ad_controlnet_model: str = "None"
|
||||
@@ -92,11 +96,20 @@ class ADetailerArgs(BaseModel, extra=Extra.forbid):
|
||||
if params["ADetailer y offset"] == 0:
|
||||
params.pop("ADetailer y offset")
|
||||
|
||||
if not params["ADetailer inpaint full"]:
|
||||
params.pop("ADetailer inpaint padding")
|
||||
|
||||
if not params["ADetailer use inpaint width/height"]:
|
||||
params.pop("ADetailer use inpaint width/height")
|
||||
params.pop("ADetailer inpaint width")
|
||||
params.pop("ADetailer inpaint height")
|
||||
|
||||
if not params["ADetailer use separate steps"]:
|
||||
params.pop("ADetailer use separate steps")
|
||||
params.pop("ADetailer steps")
|
||||
|
||||
if not params["ADetailer use separate CFG scale"]:
|
||||
params.pop("ADetailer use separate CFG scale")
|
||||
params.pop("ADetailer CFG scale")
|
||||
|
||||
if params["ADetailer ControlNet model"] == "None":
|
||||
|
||||
@@ -210,22 +210,22 @@ class AfterDetailerScript(scripts.Script):
|
||||
|
||||
with gr.Group():
|
||||
with gr.Row():
|
||||
w[n].ad_inpaint_full_res = gr.Checkbox(
|
||||
label="Inpaint at full resolution " + suffix(n),
|
||||
value=True,
|
||||
visible=True,
|
||||
)
|
||||
w[n].ad_inpaint_full_res_padding = gr.Slider(
|
||||
label="Inpaint at full resolution padding, pixels "
|
||||
+ suffix(n),
|
||||
minimum=0,
|
||||
maximum=256,
|
||||
step=4,
|
||||
value=0,
|
||||
visible=True,
|
||||
)
|
||||
with gr.Column():
|
||||
w[n].ad_inpaint_full_res = gr.Checkbox(
|
||||
label="Inpaint at full resolution " + suffix(n),
|
||||
value=True,
|
||||
visible=True,
|
||||
)
|
||||
w[n].ad_inpaint_full_res_padding = gr.Slider(
|
||||
label="Inpaint at full resolution padding, pixels "
|
||||
+ suffix(n),
|
||||
minimum=0,
|
||||
maximum=256,
|
||||
step=4,
|
||||
value=0,
|
||||
visible=True,
|
||||
)
|
||||
|
||||
with gr.Row():
|
||||
with gr.Column():
|
||||
w[n].ad_use_inpaint_width_height = gr.Checkbox(
|
||||
label="Use separate width/height" + suffix(n),
|
||||
@@ -251,6 +251,23 @@ class AfterDetailerScript(scripts.Script):
|
||||
visible=True,
|
||||
)
|
||||
|
||||
with gr.Row():
|
||||
with gr.Column():
|
||||
w[n].ad_use_steps = gr.Checkbox(
|
||||
label="Use separate steps" + suffix(n),
|
||||
value=False,
|
||||
visible=True,
|
||||
)
|
||||
|
||||
w[n].ad_steps = gr.Slider(
|
||||
label="ADetailer steps" + suffix(n),
|
||||
minimum=1,
|
||||
maximum=150,
|
||||
step=1,
|
||||
value=28,
|
||||
visible=True,
|
||||
)
|
||||
|
||||
with gr.Column():
|
||||
w[n].ad_use_cfg_scale = gr.Checkbox(
|
||||
label="Use separate CFG scale" + suffix(n),
|
||||
@@ -445,6 +462,11 @@ class AfterDetailerScript(scripts.Script):
|
||||
|
||||
return width, height
|
||||
|
||||
def get_steps(self, p, args: ADetailerArgs) -> int:
|
||||
if args.ad_use_steps:
|
||||
return args.ad_steps
|
||||
return p.steps
|
||||
|
||||
def get_cfg_scale(self, p, args: ADetailerArgs) -> float:
|
||||
if args.ad_use_cfg_scale:
|
||||
return args.ad_cfg_scale
|
||||
@@ -491,6 +513,7 @@ class AfterDetailerScript(scripts.Script):
|
||||
prompt, negative_prompt = self.get_prompt(p, args)
|
||||
seed, subseed = self.get_seed(p)
|
||||
width, height = self.get_width_height(p, args)
|
||||
steps = self.get_steps(p, args)
|
||||
cfg_scale = self.get_cfg_scale(p, args)
|
||||
|
||||
sampler_name = p.sampler_name
|
||||
@@ -521,7 +544,7 @@ class AfterDetailerScript(scripts.Script):
|
||||
sampler_name=sampler_name,
|
||||
batch_size=1,
|
||||
n_iter=1,
|
||||
steps=p.steps,
|
||||
steps=steps,
|
||||
cfg_scale=cfg_scale,
|
||||
width=width,
|
||||
height=height,
|
||||
|
||||
Reference in New Issue
Block a user