DesignEdit / app.py
jiayueru's picture
update code
37ee4a4
import gradio as gr
import spaces
import torch
import os
import subprocess
import shlex
from src.demo.model import DesignEdit
os.makedirs('models', exist_ok=True)
subprocess.run(shlex.split('wget https://huggingface.co/Adapter/DragonDiffusion/resolve/main/model/efficient_sam_vits.pt -O models/efficient_sam_vits.pt'))
from src.demo.demo import *
import shlex
import cv2
pretrained_model_path = "stabilityai/stable-diffusion-xl-base-1.0"
model = DesignEdit(pretrained_model_path=pretrained_model_path)
DESCRIPTION_1 = """<div style="text-align: center; font-size: 80px;">
<strong class="title is-1">
<span style="color: green;">🌿D</span>
<span style="color: orange;">e</span>
<span style="color: rgb(63, 185, 63);">s</span>
<span style="color: green;">i</span>
<span style="color: rgb(200, 85, 23);">g</span>
<span style="color: green;">n</span>
<span style="color: orange;">E</span>
<span style="color: crimson;">d</span>
<span style="color: darkorange;">i</span>
<span style="color: green;">t🌿</span>
</strong>
</div>
"""
DESCRIPTION_2 = """ <div style="text-align: center;font-size: 24px;"> <h1> Multi-Layered Latent Decomposition and Fusion for Unified & Accurate Image Editing</h1></div>"""
DESCRIPTION_3 = """
<div style="text-align: center; font-size: 24px;">
<p> Gradio demo for <a href="https://design-edit.github.io/">DesignEdit</a></p>
</div>
"""
with gr.Blocks(css='style.css') as demo:
gr.HTML(DESCRIPTION_1)
gr.HTML(DESCRIPTION_2)
gr.HTML(DESCRIPTION_3)
with gr.Tabs():
with gr.TabItem('1️⃣ Object Removal'):
create_demo_remove(model.run_remove)
with gr.TabItem('2️⃣ Zooming Out'):
create_demo_zooming(model.run_zooming)
with gr.TabItem('3️⃣ Camera Panning'):
create_demo_panning(model.run_panning)
with gr.TabItem('4️⃣ Object Moving, Resizing and Flipping'):
create_demo_moving(model.run_moving)
with gr.TabItem('5️⃣ 🚩 Multi-Layered Editing 🚩'):
create_demo_layer(model.run_layer)
with gr.TabItem('🔧 Mask Preparation: Draw or Sketch'):
create_demo_mask_box(model.run_mask)
demo.queue(max_size=20)
demo.launch(max_threads=3, server_name="0.0.0.0")