You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.6 KiB
Python
97 lines
3.6 KiB
Python
from typing import List
|
|
import gradio as gr
|
|
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]:
|
|
with gr.Tab(f"Global Post-Processing"):
|
|
gr.Markdown(
|
|
"""Upscaling is performed on the whole image and all faces (including not swapped). Upscaling happens before face restoration."""
|
|
)
|
|
with gr.Row():
|
|
face_restorer_name = gr.Radio(
|
|
label="Restore Face",
|
|
choices=["None"] + [x.name() for x in shared.face_restorers],
|
|
value=get_sd_option(
|
|
"faceswaplab_pp_default_face_restorer",
|
|
shared.face_restorers[0].name(),
|
|
),
|
|
type="value",
|
|
elem_id="faceswaplab_pp_face_restorer",
|
|
)
|
|
|
|
with gr.Column():
|
|
face_restorer_visibility = gr.Slider(
|
|
0,
|
|
1,
|
|
value=get_sd_option(
|
|
"faceswaplab_pp_default_face_restorer_visibility", 1
|
|
),
|
|
step=0.001,
|
|
label="Restore visibility",
|
|
elem_id="faceswaplab_pp_face_restorer_visibility",
|
|
)
|
|
codeformer_weight = gr.Slider(
|
|
0,
|
|
1,
|
|
value=get_sd_option(
|
|
"faceswaplab_pp_default_face_restorer_weight", 1
|
|
),
|
|
step=0.001,
|
|
label="codeformer weight",
|
|
elem_id="faceswaplab_pp_face_restorer_weight",
|
|
)
|
|
upscaler_name = gr.Dropdown(
|
|
choices=[upscaler.name for upscaler in shared.sd_upscalers],
|
|
value=get_sd_option("faceswaplab_pp_default_upscaler", "None"),
|
|
label="Upscaler",
|
|
elem_id="faceswaplab_pp_upscaler",
|
|
)
|
|
upscaler_scale = gr.Slider(
|
|
1,
|
|
8,
|
|
1,
|
|
step=0.1,
|
|
label="Upscaler scale",
|
|
elem_id="faceswaplab_pp_upscaler_scale",
|
|
)
|
|
upscaler_visibility = gr.Slider(
|
|
0,
|
|
1,
|
|
value=get_sd_option("faceswaplab_pp_default_upscaler_visibility", 1),
|
|
step=0.1,
|
|
label="Upscaler visibility (if scale = 1)",
|
|
elem_id="faceswaplab_pp_upscaler_visibility",
|
|
)
|
|
|
|
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_when = gr.Dropdown(
|
|
elem_id="faceswaplab_pp_inpainting_when",
|
|
choices=[e.value for e in InpaintingWhen.__members__.values()],
|
|
value=[InpaintingWhen.BEFORE_RESTORE_FACE.value],
|
|
label="Enable/When",
|
|
)
|
|
global_inpainting = face_inpainting_ui("faceswaplab_gpp")
|
|
|
|
components = [
|
|
face_restorer_name,
|
|
face_restorer_visibility,
|
|
codeformer_weight,
|
|
upscaler_name,
|
|
upscaler_scale,
|
|
upscaler_visibility,
|
|
inpainting_when,
|
|
] + global_inpainting
|
|
|
|
# Ask sd to not store in ui-config.json
|
|
for component in components:
|
|
setattr(component, "do_not_save_to_config", True)
|
|
return components
|