Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -4,58 +4,83 @@ import gradio as gr
|
|
4 |
models = ["Model A", "Model B", "Model C"]
|
5 |
controlnet_types = ["Canny", "Depth", "Normal", "Pose"]
|
6 |
|
|
|
7 |
def load_model(selected_model):
|
8 |
-
# Logika untuk memuat model berdasarkan pilihan
|
9 |
return f"Model {selected_model} telah dimuat."
|
10 |
|
11 |
-
def generate_image(prompt, model):
|
12 |
# Logika untuk menghasilkan gambar dari teks menggunakan model
|
13 |
-
return f"Gambar untuk prompt '{prompt}' dengan model '{model}'"
|
14 |
|
15 |
-
def process_image(image,
|
|
|
|
|
|
|
|
|
16 |
# Logika untuk memproses gambar menggunakan ControlNet
|
17 |
-
return f"Proses gambar dengan
|
18 |
|
19 |
with gr.Blocks() as app:
|
|
|
|
|
|
|
|
|
|
|
20 |
with gr.Tab("Text-to-Image"):
|
21 |
with gr.Row():
|
22 |
-
|
23 |
-
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
26 |
-
|
27 |
-
|
28 |
-
def update_image(prompt, model):
|
29 |
# Update fungsi sesuai kebutuhan
|
30 |
-
return generate_image(prompt, model)
|
31 |
|
32 |
-
generate_button.click(fn=
|
33 |
|
|
|
34 |
with gr.Tab("Image-to-Image"):
|
35 |
with gr.Row():
|
36 |
-
|
37 |
-
|
38 |
-
|
|
|
|
|
|
|
|
|
|
|
39 |
|
40 |
-
def process_image_func(image):
|
41 |
# Update fungsi sesuai kebutuhan
|
42 |
-
return
|
43 |
|
44 |
-
|
45 |
|
|
|
46 |
with gr.Tab("ControlNet"):
|
47 |
with gr.Row():
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
|
|
|
|
53 |
|
54 |
-
def controlnet_process_func(image, controlnet_type):
|
55 |
# Update fungsi sesuai kebutuhan
|
56 |
-
return
|
57 |
|
58 |
-
controlnet_button.click(fn=controlnet_process_func, inputs=[controlnet_image_input, controlnet_dropdown], outputs=controlnet_output_image)
|
59 |
|
60 |
# Jalankan antarmuka
|
61 |
app.launch()
|
|
|
4 |
models = ["Model A", "Model B", "Model C"]
|
5 |
controlnet_types = ["Canny", "Depth", "Normal", "Pose"]
|
6 |
|
7 |
+
# Fungsi placeholder
|
8 |
def load_model(selected_model):
|
|
|
9 |
return f"Model {selected_model} telah dimuat."
|
10 |
|
11 |
+
def generate_image(prompt, neg_prompt, width, height, scheduler, num_steps, num_images, model):
|
12 |
# Logika untuk menghasilkan gambar dari teks menggunakan model
|
13 |
+
return [f"Gambar {i+1} untuk prompt '{prompt}' dengan model '{model}'" for i in range(num_images)]
|
14 |
|
15 |
+
def process_image(image, prompt, neg_prompt, model):
|
16 |
+
# Logika untuk memproses gambar menggunakan model
|
17 |
+
return f"Proses gambar dengan prompt '{prompt}' dan model '{model}'"
|
18 |
+
|
19 |
+
def controlnet_process(image, controlnet_type, model):
|
20 |
# Logika untuk memproses gambar menggunakan ControlNet
|
21 |
+
return f"Proses gambar dengan ControlNet '{controlnet_type}' dan model '{model}'"
|
22 |
|
23 |
with gr.Blocks() as app:
|
24 |
+
# Dropdown untuk memilih model di luar tab
|
25 |
+
with gr.Row():
|
26 |
+
model_dropdown = gr.Dropdown(choices=models, label="Pilih Model")
|
27 |
+
|
28 |
+
# Tab untuk Text-to-Image
|
29 |
with gr.Tab("Text-to-Image"):
|
30 |
with gr.Row():
|
31 |
+
with gr.Column():
|
32 |
+
prompt_input = gr.Textbox(label="Prompt", placeholder="Masukkan prompt teks")
|
33 |
+
neg_prompt_input = gr.Textbox(label="Neg Prompt", placeholder="Masukkan negasi prompt")
|
34 |
+
width_input = gr.Slider(minimum=64, maximum=2048, step=64, label="Lebar", value=512)
|
35 |
+
height_input = gr.Slider(minimum=64, maximum=2048, step=64, label="Tinggi", value=512)
|
36 |
+
scheduler_input = gr.Dropdown(choices=["Euler", "LMS", "DDIM"], label="Scheduler")
|
37 |
+
num_steps_input = gr.Slider(minimum=1, maximum=100, step=1, label="Num Steps", value=20)
|
38 |
+
num_images_input = gr.Slider(minimum=1, maximum=10, step=1, label="Num Images", value=1)
|
39 |
+
generate_button = gr.Button("Generate")
|
40 |
+
|
41 |
+
with gr.Column():
|
42 |
+
output_gallery = gr.Gallery(label="Hasil Gambar").style(height=512)
|
43 |
|
44 |
+
def update_images(prompt, neg_prompt, width, height, scheduler, num_steps, num_images, model):
|
|
|
|
|
45 |
# Update fungsi sesuai kebutuhan
|
46 |
+
return generate_image(prompt, neg_prompt, width, height, scheduler, num_steps, num_images, model)
|
47 |
|
48 |
+
generate_button.click(fn=update_images, inputs=[prompt_input, neg_prompt_input, width_input, height_input, scheduler_input, num_steps_input, num_images_input, model_dropdown], outputs=output_gallery)
|
49 |
|
50 |
+
# Tab untuk Image-to-Image
|
51 |
with gr.Tab("Image-to-Image"):
|
52 |
with gr.Row():
|
53 |
+
with gr.Column():
|
54 |
+
image_input = gr.Image(label="Unggah Gambar")
|
55 |
+
prompt_input_i2i = gr.Textbox(label="Prompt", placeholder="Masukkan prompt teks")
|
56 |
+
neg_prompt_input_i2i = gr.Textbox(label="Neg Prompt", placeholder="Masukkan negasi prompt")
|
57 |
+
generate_button_i2i = gr.Button("Proses Gambar")
|
58 |
+
|
59 |
+
with gr.Column():
|
60 |
+
output_image_i2i = gr.Image(label="Hasil Gambar")
|
61 |
|
62 |
+
def process_image_func(image, prompt, neg_prompt, model):
|
63 |
# Update fungsi sesuai kebutuhan
|
64 |
+
return process_image(image, prompt, neg_prompt, model)
|
65 |
|
66 |
+
generate_button_i2i.click(fn=process_image_func, inputs=[image_input, prompt_input_i2i, neg_prompt_input_i2i, model_dropdown], outputs=output_image_i2i)
|
67 |
|
68 |
+
# Tab untuk ControlNet
|
69 |
with gr.Tab("ControlNet"):
|
70 |
with gr.Row():
|
71 |
+
with gr.Column():
|
72 |
+
controlnet_dropdown = gr.Dropdown(choices=controlnet_types, label="Pilih Tipe ControlNet")
|
73 |
+
controlnet_image_input = gr.Image(label="Unggah Gambar untuk ControlNet")
|
74 |
+
controlnet_button = gr.Button("Proses dengan ControlNet")
|
75 |
+
|
76 |
+
with gr.Column():
|
77 |
+
controlnet_output_image = gr.Image(label="Hasil ControlNet")
|
78 |
|
79 |
+
def controlnet_process_func(image, controlnet_type, model):
|
80 |
# Update fungsi sesuai kebutuhan
|
81 |
+
return controlnet_process(image, controlnet_type, model)
|
82 |
|
83 |
+
controlnet_button.click(fn=controlnet_process_func, inputs=[controlnet_image_input, controlnet_dropdown, model_dropdown], outputs=controlnet_output_image)
|
84 |
|
85 |
# Jalankan antarmuka
|
86 |
app.launch()
|