add seed selection #71
@@ -1,3 +1,13 @@
|
||||
# 1.2.5
|
||||
|
||||
Allow seed selection in inpainting.
|
||||
|
||||
# 1.2.4
|
||||
|
||||
Fix default settings by marking only managed field as do_not_save.
|
||||
|
||||
See the discussion here : https://github.com/glucauze/sd-webui-faceswaplab/issues/62
|
||||
|
||||
# 1.2.3
|
||||
|
||||
Speed up ui : change the way default settings are manage by not storing them in ui-config.json
|
||||
|
||||
@@ -48,6 +48,7 @@ class InpaintingOptions(BaseModel):
|
||||
inpainting_model: str = Field(
|
||||
description="Inpainting model", examples=["Current"], default="Current"
|
||||
)
|
||||
inpainting_seed: int = Field(description="Inpainting Seed", ge=-1, default=-1)
|
||||
|
||||
|
||||
class InswappperOptions(BaseModel):
|
||||
|
||||
Binary file not shown.
@@ -16,7 +16,7 @@ REFERENCE_PATH = os.path.join(
|
||||
)
|
||||
|
||||
# Defining the version flag for the application
|
||||
VERSION_FLAG: str = "v1.2.4"
|
||||
VERSION_FLAG: str = "v1.2.5"
|
||||
# Defining the path for 'sd-webui-faceswaplab' inside the 'extensions' directory
|
||||
EXTENSION_PATH = os.path.join("extensions", "sd-webui-faceswaplab")
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ class InpaintingOptions:
|
||||
inpainting_steps: int = 20
|
||||
inpainting_sampler: str = "Euler"
|
||||
inpainting_model: str = "Current"
|
||||
inpainting_seed: int = -1
|
||||
|
||||
@staticmethod
|
||||
def from_gradio(components: List[gr.components.Component]) -> "InpaintingOptions":
|
||||
@@ -38,4 +39,5 @@ class InpaintingOptions:
|
||||
inpainting_steps=dto.inpainting_steps,
|
||||
inpainting_sampler=dto.inpainting_sampler,
|
||||
inpainting_model=dto.inpainting_model,
|
||||
inpainting_seed=dto.inpainting_seed,
|
||||
)
|
||||
|
||||
@@ -63,6 +63,7 @@ inpainting_steps : {options.inpainting_steps}
|
||||
"prompt": prompt,
|
||||
"negative_prompt": negative_prompt,
|
||||
"denoising_strength": options.inpainting_denoising_strengh,
|
||||
"seed": options.inpainting_seed,
|
||||
}
|
||||
# Remove the following as they are not always supported on all platform :
|
||||
# "override_settings": {
|
||||
|
||||
@@ -4,68 +4,71 @@ from modules import sd_models, sd_samplers
|
||||
from scripts.faceswaplab_utils.sd_utils import get_sd_option
|
||||
|
||||
|
||||
def face_inpainting_ui(
|
||||
name: str, id_prefix: str = "faceswaplab", description: str = ""
|
||||
) -> List[gr.components.Component]:
|
||||
with gr.Accordion(name, open=False):
|
||||
gr.Markdown(description)
|
||||
inpainting_denoising_strength = gr.Slider(
|
||||
0,
|
||||
def face_inpainting_ui(id_prefix: str = "faceswaplab") -> List[gr.components.Component]:
|
||||
inpainting_denoising_strength = gr.Slider(
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
step=0.01,
|
||||
elem_id=f"{id_prefix}_pp_inpainting_denoising_strength",
|
||||
label="Denoising strenght",
|
||||
)
|
||||
|
||||
inpainting_denoising_prompt = gr.Textbox(
|
||||
get_sd_option(
|
||||
"faceswaplab_pp_default_inpainting_prompt", "Portrait of a [gender]"
|
||||
),
|
||||
elem_id=f"{id_prefix}_pp_inpainting_denoising_prompt",
|
||||
label="Inpainting prompt use [gender] instead of men or woman",
|
||||
)
|
||||
inpainting_denoising_negative_prompt = gr.Textbox(
|
||||
get_sd_option("faceswaplab_pp_default_inpainting_negative_prompt", "blurry"),
|
||||
elem_id=f"{id_prefix}_pp_inpainting_denoising_neg_prompt",
|
||||
label="Inpainting negative prompt use [gender] instead of men or woman",
|
||||
)
|
||||
with gr.Row():
|
||||
samplers_names = [s.name for s in sd_samplers.all_samplers]
|
||||
inpainting_sampler = gr.Dropdown(
|
||||
choices=samplers_names,
|
||||
value=[samplers_names[0]],
|
||||
label="Inpainting Sampler",
|
||||
elem_id=f"{id_prefix}_pp_inpainting_sampler",
|
||||
)
|
||||
inpainting_denoising_steps = gr.Slider(
|
||||
1,
|
||||
0,
|
||||
step=0.01,
|
||||
elem_id=f"{id_prefix}_pp_inpainting_denoising_strength",
|
||||
label="Denoising strenght",
|
||||
150,
|
||||
20,
|
||||
step=1,
|
||||
label="Inpainting steps",
|
||||
elem_id=f"{id_prefix}_pp_inpainting_steps",
|
||||
)
|
||||
|
||||
inpainting_denoising_prompt = gr.Textbox(
|
||||
get_sd_option(
|
||||
"faceswaplab_pp_default_inpainting_prompt", "Portrait of a [gender]"
|
||||
),
|
||||
elem_id=f"{id_prefix}_pp_inpainting_denoising_prompt",
|
||||
label="Inpainting prompt use [gender] instead of men or woman",
|
||||
)
|
||||
inpainting_denoising_negative_prompt = gr.Textbox(
|
||||
get_sd_option(
|
||||
"faceswaplab_pp_default_inpainting_negative_prompt", "blurry"
|
||||
),
|
||||
elem_id=f"{id_prefix}_pp_inpainting_denoising_neg_prompt",
|
||||
label="Inpainting negative prompt use [gender] instead of men or woman",
|
||||
)
|
||||
with gr.Row():
|
||||
samplers_names = [s.name for s in sd_samplers.all_samplers]
|
||||
inpainting_sampler = gr.Dropdown(
|
||||
choices=samplers_names,
|
||||
value=[samplers_names[0]],
|
||||
label="Inpainting Sampler",
|
||||
elem_id=f"{id_prefix}_pp_inpainting_sampler",
|
||||
)
|
||||
inpainting_denoising_steps = gr.Slider(
|
||||
1,
|
||||
150,
|
||||
20,
|
||||
step=1,
|
||||
label="Inpainting steps",
|
||||
elem_id=f"{id_prefix}_pp_inpainting_steps",
|
||||
)
|
||||
inpaiting_model = gr.Dropdown(
|
||||
choices=["Current"] + sd_models.checkpoint_tiles(),
|
||||
default="Current",
|
||||
label="sd model (experimental)",
|
||||
elem_id=f"{id_prefix}_pp_inpainting_sd_model",
|
||||
)
|
||||
|
||||
inpaiting_model = gr.Dropdown(
|
||||
choices=["Current"] + sd_models.checkpoint_tiles(),
|
||||
default="Current",
|
||||
label="sd model (experimental)",
|
||||
elem_id=f"{id_prefix}_pp_inpainting_sd_model",
|
||||
)
|
||||
inpaiting_seed = gr.Number(
|
||||
label="Inpainting seed",
|
||||
value=0,
|
||||
minimum=0,
|
||||
precision=0,
|
||||
elem_id=f"{id_prefix}_pp_inpainting_seed",
|
||||
)
|
||||
|
||||
gradio_components: List[gr.components.Component] = [
|
||||
inpainting_denoising_strength,
|
||||
inpainting_denoising_prompt,
|
||||
inpainting_denoising_negative_prompt,
|
||||
inpainting_denoising_steps,
|
||||
inpainting_sampler,
|
||||
inpaiting_model,
|
||||
]
|
||||
gradio_components: List[gr.components.Component] = [
|
||||
inpainting_denoising_strength,
|
||||
inpainting_denoising_prompt,
|
||||
inpainting_denoising_negative_prompt,
|
||||
inpainting_denoising_steps,
|
||||
inpainting_sampler,
|
||||
inpaiting_model,
|
||||
inpaiting_seed,
|
||||
]
|
||||
|
||||
for component in gradio_components:
|
||||
setattr(component, "do_not_save_to_config", True)
|
||||
for component in gradio_components:
|
||||
setattr(component, "do_not_save_to_config", True)
|
||||
|
||||
return gradio_components
|
||||
return gradio_components
|
||||
|
||||
@@ -4,6 +4,7 @@ import modules
|
||||
from modules import shared, sd_models
|
||||
from scripts.faceswaplab_postprocessing.postprocessing_options import InpaintingWhen
|
||||
from scripts.faceswaplab_utils.sd_utils import get_sd_option
|
||||
from scripts.faceswaplab_ui.faceswaplab_inpainting_ui import face_inpainting_ui
|
||||
|
||||
|
||||
def postprocessing_ui() -> List[gr.components.Component]:
|
||||
@@ -66,9 +67,10 @@ def postprocessing_ui() -> List[gr.components.Component]:
|
||||
label="Upscaler visibility (if scale = 1)",
|
||||
elem_id="faceswaplab_pp_upscaler_visibility",
|
||||
)
|
||||
with gr.Accordion(f"Post Inpainting", open=True):
|
||||
|
||||
with gr.Accordion(label="Global-Inpainting (all faces)", open=False):
|
||||
gr.Markdown(
|
||||
"""Inpainting sends image to inpainting with a mask on face (once for each faces)."""
|
||||
"Inpainting sends image to inpainting with a mask on face (once for each faces)."
|
||||
)
|
||||
inpainting_when = gr.Dropdown(
|
||||
elem_id="faceswaplab_pp_inpainting_when",
|
||||
@@ -76,52 +78,8 @@ def postprocessing_ui() -> List[gr.components.Component]:
|
||||
value=[InpaintingWhen.BEFORE_RESTORE_FACE.value],
|
||||
label="Enable/When",
|
||||
)
|
||||
inpainting_denoising_strength = gr.Slider(
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
step=0.01,
|
||||
elem_id="faceswaplab_pp_inpainting_denoising_strength",
|
||||
label="Denoising strenght (will send face to img2img after processing)",
|
||||
)
|
||||
global_inpainting = face_inpainting_ui("faceswaplab_gpp")
|
||||
|
||||
inpainting_denoising_prompt = gr.Textbox(
|
||||
get_sd_option(
|
||||
"faceswaplab_pp_default_inpainting_prompt", "Portrait of a [gender]"
|
||||
),
|
||||
elem_id="faceswaplab_pp_inpainting_denoising_prompt",
|
||||
label="Inpainting prompt use [gender] instead of men or woman",
|
||||
)
|
||||
inpainting_denoising_negative_prompt = gr.Textbox(
|
||||
get_sd_option(
|
||||
"faceswaplab_pp_default_inpainting_negative_prompt", "blurry"
|
||||
),
|
||||
elem_id="faceswaplab_pp_inpainting_denoising_neg_prompt",
|
||||
label="Inpainting negative prompt use [gender] instead of men or woman",
|
||||
)
|
||||
with gr.Row():
|
||||
samplers_names = [s.name for s in modules.sd_samplers.all_samplers] # type: ignore
|
||||
inpainting_sampler = gr.Dropdown(
|
||||
choices=samplers_names,
|
||||
value=[samplers_names[0]],
|
||||
label="Inpainting Sampler",
|
||||
elem_id="faceswaplab_pp_inpainting_sampler",
|
||||
)
|
||||
inpainting_denoising_steps = gr.Slider(
|
||||
1,
|
||||
150,
|
||||
20,
|
||||
step=1,
|
||||
label="Inpainting steps",
|
||||
elem_id="faceswaplab_pp_inpainting_steps",
|
||||
)
|
||||
|
||||
inpaiting_model = gr.Dropdown(
|
||||
choices=["Current"] + sd_models.checkpoint_tiles(),
|
||||
default="Current",
|
||||
label="sd model (experimental)",
|
||||
elem_id="faceswaplab_pp_inpainting_sd_model",
|
||||
)
|
||||
components = [
|
||||
face_restorer_name,
|
||||
face_restorer_visibility,
|
||||
@@ -130,13 +88,7 @@ def postprocessing_ui() -> List[gr.components.Component]:
|
||||
upscaler_scale,
|
||||
upscaler_visibility,
|
||||
inpainting_when,
|
||||
inpainting_denoising_strength,
|
||||
inpainting_denoising_prompt,
|
||||
inpainting_denoising_negative_prompt,
|
||||
inpainting_denoising_steps,
|
||||
inpainting_sampler,
|
||||
inpaiting_model,
|
||||
]
|
||||
] + global_inpainting
|
||||
|
||||
# Ask sd to not store in ui-config.json
|
||||
for component in components:
|
||||
|
||||
@@ -249,19 +249,19 @@ Otherwise, read the [doc](https://glucauze.github.io/sd-webui-faceswaplab/doc/)
|
||||
elem_id=f"{id_prefix}_face{unit_num}_min_ref_similarity",
|
||||
)
|
||||
|
||||
pre_inpainting = face_inpainting_ui(
|
||||
name="Pre-Inpainting (Before swapping)",
|
||||
id_prefix=f"{id_prefix}_face{unit_num}_preinpainting",
|
||||
description="Pre-inpainting sends face to inpainting before swapping",
|
||||
)
|
||||
with gr.Accordion(label="Pre-Inpainting (before swapping)", open=False):
|
||||
gr.Markdown("Pre-inpainting sends face to inpainting before swapping")
|
||||
pre_inpainting = face_inpainting_ui(
|
||||
id_prefix=f"{id_prefix}_face{unit_num}_preinpainting",
|
||||
)
|
||||
|
||||
options = faceswap_unit_advanced_options(is_img2img, unit_num, id_prefix)
|
||||
|
||||
post_inpainting = face_inpainting_ui(
|
||||
name="Post-Inpainting (After swapping)",
|
||||
id_prefix=f"{id_prefix}_face{unit_num}_postinpainting",
|
||||
description="Post-inpainting sends face to inpainting after swapping",
|
||||
)
|
||||
with gr.Accordion(label="Post-Inpainting (After swapping)", open=False):
|
||||
gr.Markdown("Pre-inpainting sends face to inpainting before swapping")
|
||||
post_inpainting = face_inpainting_ui(
|
||||
id_prefix=f"{id_prefix}_face{unit_num}_postinpainting",
|
||||
)
|
||||
|
||||
gradio_components: List[gr.components.Component] = (
|
||||
[
|
||||
|
||||
Reference in New Issue
Block a user