Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -68,7 +68,7 @@ def infer(
|
|
68 |
seed=4,
|
69 |
guidance_scale=7.5,
|
70 |
lora_scale=0.5,
|
71 |
-
|
72 |
#control_net_weight=1.0, control_strength_slider
|
73 |
progress=gr.Progress(track_tqdm=True)
|
74 |
):
|
@@ -214,84 +214,80 @@ with gr.Blocks(css=css) as demo:
|
|
214 |
value=512,
|
215 |
)
|
216 |
|
217 |
-
#
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
# with gr.Blocks():
|
228 |
-
# with gr.Row():
|
229 |
-
# # Чекбокс для включения/отключения ControlNet
|
230 |
-
# use_control_net = gr.Checkbox(
|
231 |
-
# label="Use ControlNet",
|
232 |
-
# value=False,
|
233 |
-
# )
|
234 |
-
|
235 |
-
# # Дополнительные опции для ControlNet
|
236 |
-
# with gr.Column(visible=False) as control_net_options:
|
237 |
-
# # Слайдер для настройки интенсивности
|
238 |
-
# control_strength = gr.Slider(
|
239 |
-
# label="Control Strength",
|
240 |
-
# minimum=0.0,
|
241 |
-
# maximum=1.0,
|
242 |
-
# value=0.5,
|
243 |
-
# step=0.05,
|
244 |
-
# )
|
245 |
-
|
246 |
-
# # Выпадающий список для выбора режима
|
247 |
-
# control_mode = gr.Dropdown(
|
248 |
-
# label="Control Mode",
|
249 |
-
# choices=[
|
250 |
-
# "edge_detection",
|
251 |
-
# "canny_edge_detection",
|
252 |
-
# "pose_estimation",
|
253 |
-
# "depth_map",
|
254 |
-
# "segmentation_map",
|
255 |
-
# "scribble_sketch",
|
256 |
-
# "normal_map",
|
257 |
-
# "hed_edge_detection",
|
258 |
-
# "openpose",
|
259 |
-
# "mlsd_line_detection",
|
260 |
-
# "scribble_diffusion",
|
261 |
-
# "semantic_segmentation",
|
262 |
-
# "style_transfer",
|
263 |
-
# "colorization",
|
264 |
-
# "custom_map"
|
265 |
-
# ],
|
266 |
-
# value="pose_estimation",
|
267 |
-
# )
|
268 |
-
|
269 |
-
# # Окно для загрузки изображений
|
270 |
-
# control_image = gr.Image(label="Upload Control Image")
|
271 |
-
|
272 |
-
# # Кнопка для запуска работы ControlNet
|
273 |
-
# run_button = gr.Button("Run")
|
274 |
|
275 |
-
|
276 |
-
|
|
|
|
|
|
|
|
|
|
|
277 |
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
284 |
|
285 |
-
|
286 |
-
|
287 |
-
# fn=process_input_ControlNet,
|
288 |
-
# inputs=[control_image, use_control_net, control_strength, control_mode],
|
289 |
-
# outputs=output,
|
290 |
-
# )
|
291 |
|
|
|
|
|
292 |
|
|
|
|
|
|
|
|
|
|
|
|
|
293 |
|
294 |
-
|
|
|
|
|
|
|
|
|
|
|
295 |
|
296 |
# Функция для работы с IP-adapter ----------------------------------------------------------------------------
|
297 |
def process_input_IP_adapter(image, use_ip_adapter, ip_adapter_scale, ip_adapter_image):
|
@@ -339,7 +335,7 @@ with gr.Blocks(css=css) as demo:
|
|
339 |
outputs=ip_adapter_options,
|
340 |
)
|
341 |
|
342 |
-
# Привязка кнопки к функции
|
343 |
run_button.click(
|
344 |
fn=process_input_IP_adapter,
|
345 |
inputs=[ip_adapter_image, use_ip_adapter, ip_adapter_scale, ip_adapter_image],
|
@@ -374,7 +370,7 @@ with gr.Blocks(css=css) as demo:
|
|
374 |
seed,
|
375 |
guidance_scale,
|
376 |
lora_scale,
|
377 |
-
|
378 |
#control_net_weight, # Передаем вес ControlNet
|
379 |
],
|
380 |
outputs=[result],
|
|
|
68 |
seed=4,
|
69 |
guidance_scale=7.5,
|
70 |
lora_scale=0.5,
|
71 |
+
use_control_net=False, # Добавляем параметр для управления включением ControlNet
|
72 |
#control_net_weight=1.0, control_strength_slider
|
73 |
progress=gr.Progress(track_tqdm=True)
|
74 |
):
|
|
|
214 |
value=512,
|
215 |
)
|
216 |
|
217 |
+
# Функция для работы с ControlNet ---------------------------------------------------------------------
|
218 |
+
def process_input_ControlNet(image, use_control_net, control_strength, control_mode):
|
219 |
+
if use_control_net:
|
220 |
+
# Логика для обработки с использованием ControlNet
|
221 |
+
result = f"ControlNet активен! Режим: {control_mode}, Интенсивность: {control_strength}"
|
222 |
+
else:
|
223 |
+
# Логика для обработки без ControlNet
|
224 |
+
result = "ControlNet отключен."
|
225 |
+
return result
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
|
227 |
+
with gr.Blocks():
|
228 |
+
with gr.Row():
|
229 |
+
# Чекбокс для включения/отключения ControlNet
|
230 |
+
use_control_net = gr.Checkbox(
|
231 |
+
label="Use ControlNet",
|
232 |
+
value=False,
|
233 |
+
)
|
234 |
|
235 |
+
# Дополнительные опции для ControlNet
|
236 |
+
with gr.Column(visible=False) as control_net_options:
|
237 |
+
# Слайдер для настройки интенсивности
|
238 |
+
control_strength = gr.Slider(
|
239 |
+
label="Control Strength",
|
240 |
+
minimum=0.0,
|
241 |
+
maximum=1.0,
|
242 |
+
value=0.5,
|
243 |
+
step=0.05,
|
244 |
+
)
|
245 |
+
|
246 |
+
# Выпадающий список для выбора режима
|
247 |
+
control_mode = gr.Dropdown(
|
248 |
+
label="Control Mode",
|
249 |
+
choices=[
|
250 |
+
"edge_detection",
|
251 |
+
"canny_edge_detection",
|
252 |
+
"pose_estimation",
|
253 |
+
"depth_map",
|
254 |
+
"segmentation_map",
|
255 |
+
"scribble_sketch",
|
256 |
+
"normal_map",
|
257 |
+
"hed_edge_detection",
|
258 |
+
"openpose",
|
259 |
+
"mlsd_line_detection",
|
260 |
+
"scribble_diffusion",
|
261 |
+
"semantic_segmentation",
|
262 |
+
"style_transfer",
|
263 |
+
"colorization",
|
264 |
+
"custom_map"
|
265 |
+
],
|
266 |
+
value="pose_estimation",
|
267 |
+
)
|
268 |
+
|
269 |
+
# Окно для загрузки изображений
|
270 |
+
control_image = gr.Image(label="Upload Control Image")
|
271 |
|
272 |
+
# Кнопка для запуска работы ControlNet
|
273 |
+
run_button = gr.Button("Run")
|
|
|
|
|
|
|
|
|
274 |
|
275 |
+
# Текстовое поле для вывода результата
|
276 |
+
output = gr.Textbox(label="Output")
|
277 |
|
278 |
+
# Логика для отображения/скрытия дополнительных опций
|
279 |
+
use_control_net.change(
|
280 |
+
fn=lambda x: gr.Row.update(visible=x),
|
281 |
+
inputs=use_control_net,
|
282 |
+
outputs=control_net_options,
|
283 |
+
)
|
284 |
|
285 |
+
# Привязка кнопки Run к функции работы с ControlNet
|
286 |
+
run_button.click(
|
287 |
+
fn=process_input_ControlNet,
|
288 |
+
inputs=[control_image, use_control_net, control_strength, control_mode],
|
289 |
+
outputs=output,
|
290 |
+
)
|
291 |
|
292 |
# Функция для работы с IP-adapter ----------------------------------------------------------------------------
|
293 |
def process_input_IP_adapter(image, use_ip_adapter, ip_adapter_scale, ip_adapter_image):
|
|
|
335 |
outputs=ip_adapter_options,
|
336 |
)
|
337 |
|
338 |
+
# Привязка кнопки Run к функции работы с IP-adapter
|
339 |
run_button.click(
|
340 |
fn=process_input_IP_adapter,
|
341 |
inputs=[ip_adapter_image, use_ip_adapter, ip_adapter_scale, ip_adapter_image],
|
|
|
370 |
seed,
|
371 |
guidance_scale,
|
372 |
lora_scale,
|
373 |
+
use_control_net, # Передаем состояние чекбокса
|
374 |
#control_net_weight, # Передаем вес ControlNet
|
375 |
],
|
376 |
outputs=[result],
|