62 lines
2.9 KiB
Python
62 lines
2.9 KiB
Python
import gradio as gr
|
|
from scripts.reactor_swapper import build_face_model, blend_faces
|
|
|
|
# TAB TOOLS
|
|
def show():
|
|
with gr.Tab("Tools"):
|
|
with gr.Tab("Face Models"):
|
|
|
|
with gr.Tab("Single"):
|
|
gr.Markdown("Load an image containing one person, name it and click 'Build and Save'")
|
|
img_fm = gr.Image(
|
|
type="pil",
|
|
label="Load an Image to build -Face Model-",
|
|
)
|
|
with gr.Row(equal_height=True):
|
|
fm_name = gr.Textbox(
|
|
value="",
|
|
placeholder="Please type any name (e.g. Elena)",
|
|
label="Face Model Name",
|
|
)
|
|
save_fm_btn = gr.Button("Build and Save")
|
|
save_fm = gr.Markdown("You can find saved models in 'models/reactor/faces'")
|
|
save_fm_btn.click(
|
|
build_face_model,
|
|
inputs=[img_fm, fm_name],
|
|
outputs=[save_fm],
|
|
)
|
|
|
|
with gr.Tab("Blend"):
|
|
gr.Markdown("Load a set of images containing any person, name it and click 'Build and Save'")
|
|
with gr.Row():
|
|
imgs_fm = gr.Files(
|
|
label=f"Load Images to build -Blended Face Model-",
|
|
file_types=["image"]
|
|
)
|
|
with gr.Column():
|
|
compute_method = gr.Radio(
|
|
["Mean", "Median", "Mode"],
|
|
value="Mean",
|
|
label="Compute Method",
|
|
type="index",
|
|
info="Mean (recommended) - Average value (best result 👍); Median* - Mid-point value (may be funny 😅); Mode - Most common value (may be scary 😨); *Mean and Median will be similar if you load two images"
|
|
)
|
|
shape_check = gr.Checkbox(
|
|
False,
|
|
label="Check -Embedding Shape- on Similarity",
|
|
info="(Experimental) Turn it ON if you want to skip the faces which are too much different from the first one in the list to prevent some probable 'shape mismatches'"
|
|
)
|
|
with gr.Row(equal_height=True):
|
|
fm_name = gr.Textbox(
|
|
value="",
|
|
placeholder="Please type any name (e.g. Elena)",
|
|
label="Face Model Name",
|
|
)
|
|
save_fm_btn = gr.Button("Build and Save")
|
|
save_fm = gr.Markdown("You can find saved models in 'models/reactor/faces'")
|
|
save_fm_btn.click(
|
|
blend_faces,
|
|
inputs=[imgs_fm, fm_name, compute_method, shape_check],
|
|
outputs=[save_fm],
|
|
)
|