File size: 5,453 Bytes
a660631 c7df38d a660631 c7df38d a660631 f521e88 a660631 f521e88 a660631 53b39de f521e88 a660631 f521e88 a660631 f521e88 a660631 116cf4f a6d82aa f521e88 208f8fb 329b8dd 116cf4f 3b06478 116cf4f 329b8dd 116cf4f a660631 329b8dd f521e88 a660631 d6252d0 116cf4f d6252d0 f521e88 a660631 d6252d0 116cf4f f521e88 d6252d0 f521e88 d6252d0 f521e88 a660631 f521e88 a660631 681c919 f521e88 681c919 116cf4f 3f0b2d3 681c919 a660631 074f54b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
#!/usr/bin/env python
from __future__ import annotations
import gradio as gr
import torch
#from app_canny import create_demo as create_demo_canny
from app_depth import create_demo as create_demo_depth
#from app_ip2p import create_demo as create_demo_ip2p
#from app_lineart import create_demo as create_demo_lineart
#from app_mlsd import create_demo as create_demo_mlsd
#from app_normal import create_demo as create_demo_normal
#from app_openpose import create_demo as create_demo_openpose
#from app_scribble import create_demo as create_demo_scribble
#from app_scribble_interactive import create_demo as create_demo_scribble_interactive
#from app_segmentation import create_demo as create_demo_segmentation
#from app_shuffle import create_demo as create_demo_shuffle
#from app_softedge import create_demo as create_demo_softedge
from model import Model
from settings import ALLOW_CHANGING_BASE_MODEL, DEFAULT_MODEL_ID, SHOW_DUPLICATE_BUTTON
DESCRIPTION = "# ControlNet v1.1"
if not torch.cuda.is_available():
DESCRIPTION += "\n<p>Running on CPU 🥶 This demo does not work on CPU.</p>"
model = Model(base_model_id=DEFAULT_MODEL_ID, task_name="Canny")
with gr.Blocks(css="style.css") as demo:
gr.Markdown(DESCRIPTION)
gr.Button(
"Duplicate Space for private use",
elem_id="duplicate-button",
visible=SHOW_DUPLICATE_BUTTON,
)
#with gr.TabbedInterface():
#with gr.Tab("Canny"):
# create_demo_canny(model.process_canny)
#with gr.Tab("MLSD"):
# create_demo_mlsd(model.process_mlsd)
#with gr.Tab("Scribble"):
# create_demo_scribble(model.process_scribble)
# with gr.Tab("Scribble Interactive"):
# create_demo_scribble_interactive(model.process_scribble_interactive)
#with gr.Tab("SoftEdge"):
# create_demo_softedge(model.process_softedge)
#with gr.Tab("OpenPose"):
# create_demo_openpose(model.process_openpose)
#with gr.Tab("Segmentation"):
# create_demo_segmentation(model.process_segmentation)
#with gr.Tab("Depth"):
# create_demo_depth(model.process_depth)
#with gr.Tab("Normal map"):
# create_demo_normal(model.process_normal)
#with gr.Tab("Lineart"):
# create_demo_lineart(model.process_lineart)
#with gr.Tab("Content Shuffle"):
# create_demo_shuffle(model.process_shuffle)
#with gr.Tab("Instruct Pix2Pix"):
# create_demo_ip2p(model.process_ip2p)
interfaces = [
#gr.Interface(fn=model.process_canny, inputs=[], outputs=[], live=False, name="Canny"),
#gr.Interface(fn=model.process_mlsd, inputs=[], outputs=[], live=False, name="MLSD"),
#gr.Interface(fn=model.process_scribble, inputs=[], outputs=[], live=False, name="Scribble"),
# gr.Interface(fn=model.process_scribble_interactive, inputs=[], outputs=[], live=False, name="Scribble Interactive"),
#gr.Interface(fn=model.process_softedge, inputs=[], outputs=[], live=False, name="SoftEdge"),
#gr.Interface(fn=model.process_openpose, inputs=[], outputs=[], live=False, name="OpenPose"),
#gr.Interface(fn=model.process_segmentation, inputs=[], outputs=[], live=False, name="Segmentation"),
gr.Interface(fn=model.process_depth, inputs=[], outputs=[], live=False, name="Depth"),
#gr.Interface(fn=model.process_normal, inputs=[], outputs=[], live=False, name="Normal map"),
#gr.Interface(fn=model.process_lineart, inputs=[], outputs=[], live=False, name="Lineart"),
#gr.Interface(fn=model.process_shuffle, inputs=[], outputs=[], live=False, name="Content Shuffle"),
#gr.Interface(fn=model.process_ip2p, inputs=[], outputs=[], live=False, name="Instruct Pix2Pix")
]
gr.TabbedInterface(interface_list=interfaces, theme="default")
with gr.Accordion(label="Base model", open=False):
with gr.Row():
with gr.Column(scale=5):
current_base_model = gr.Textbox(label="Current base model")
with gr.Column(scale=1):
check_base_model_button = gr.Button("Check current base model")
with gr.Row():
with gr.Column(scale=5):
new_base_model_id = gr.Textbox(
label="New base model",
max_lines=1,
placeholder="runwayml/stable-diffusion-v1-5",
info="The base model must be compatible with Stable Diffusion v1.5.",
interactive=ALLOW_CHANGING_BASE_MODEL,
)
with gr.Column(scale=1):
change_base_model_button = gr.Button("Change base model", interactive=ALLOW_CHANGING_BASE_MODEL)
if not ALLOW_CHANGING_BASE_MODEL:
gr.Markdown(
"""The base model is not allowed to be changed in this Space so as not to slow down the demo, but it can be changed if you duplicate the Space."""
)
check_base_model_button.click(
fn=lambda: model.base_model_id,
outputs=current_base_model,
queue=False,
api_name="check_base_model",
)
gr.update(
triggers=[new_base_model_id.submit, change_base_model_button.click],
fn=model.set_base_model,
inputs=new_base_model_id,
outputs=current_base_model,
api_name=False,
)
if __name__ == "__main__":
demo.queue(max_size=20).launch()
|