Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -86,16 +86,16 @@ def infer(
|
|
86 |
seed=4,
|
87 |
guidance_scale=7.5,
|
88 |
lora_scale=0.5,
|
89 |
-
strength_cn=0.5, # Коэфф. зашумления
|
90 |
use_control_net=False, # Параметр для включения ControlNet
|
91 |
control_strength=0.5, # Сила влияния ControlNet
|
92 |
-
|
93 |
-
control_image=None, # Контрольное изображение
|
94 |
progress=gr.Progress(track_tqdm=True)
|
95 |
):
|
96 |
generator = torch.Generator(device).manual_seed(seed)
|
97 |
|
98 |
-
if use_control_net and control_image is not None and
|
99 |
# pipe_controlnet = StableDiffusionControlNetImg2ImgPipeline.from_pretrained(
|
100 |
# model_default,
|
101 |
# controlnet=controlnet,
|
@@ -103,7 +103,7 @@ def infer(
|
|
103 |
# ).to(device)
|
104 |
|
105 |
# Преобразуем изображения
|
106 |
-
|
107 |
control_image = preprocess_image(control_image, width, height)
|
108 |
|
109 |
# Создаём пайплайн ControlNet с LoRA, если он ещё не создан
|
@@ -142,7 +142,7 @@ def infer(
|
|
142 |
image = pipe_controlnet(
|
143 |
prompt_embeds=prompt_embeds,
|
144 |
negative_prompt_embeds=negative_prompt_embeds,
|
145 |
-
image=
|
146 |
control_image=control_image,
|
147 |
strength=strength_cn, # Коэфф. зашумления, чем больше, тем больше меняется результирующее изображение относитенльно исходного
|
148 |
width=width,
|
@@ -313,7 +313,7 @@ with gr.Blocks(css=css) as demo:
|
|
313 |
value="pose_estimation",
|
314 |
)
|
315 |
|
316 |
-
|
317 |
|
318 |
control_image = gr.Image(label="Upload Control Image")
|
319 |
|
@@ -322,8 +322,44 @@ with gr.Blocks(css=css) as demo:
|
|
322 |
inputs=use_control_net,
|
323 |
outputs=control_net_options
|
324 |
)
|
325 |
-
# --------------------------------------------------------------------------------------
|
326 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
327 |
gr.Examples(examples=examples, inputs=[prompt])
|
328 |
gr.Examples(examples=examples_negative, inputs=[negative_prompt])
|
329 |
|
@@ -343,11 +379,11 @@ with gr.Blocks(css=css) as demo:
|
|
343 |
seed,
|
344 |
guidance_scale,
|
345 |
lora_scale,
|
346 |
-
strength_cn, # Коэфф. зашумления
|
347 |
use_control_net, # Чекбокс для ControlNet
|
348 |
-
control_strength, # Контроль силы
|
349 |
-
|
350 |
-
control_image, # Контрольное изображение
|
351 |
],
|
352 |
outputs=[result],
|
353 |
)
|
|
|
86 |
seed=4,
|
87 |
guidance_scale=7.5,
|
88 |
lora_scale=0.5,
|
89 |
+
strength_cn=0.5, # Коэфф. зашумления ControlNet
|
90 |
use_control_net=False, # Параметр для включения ControlNet
|
91 |
control_strength=0.5, # Сила влияния ControlNet
|
92 |
+
cn_source_image=None, # Исходное изображение ControlNet
|
93 |
+
control_image=None, # Контрольное изображение ControlNet
|
94 |
progress=gr.Progress(track_tqdm=True)
|
95 |
):
|
96 |
generator = torch.Generator(device).manual_seed(seed)
|
97 |
|
98 |
+
if use_control_net and control_image is not None and cn_source_image is not None:
|
99 |
# pipe_controlnet = StableDiffusionControlNetImg2ImgPipeline.from_pretrained(
|
100 |
# model_default,
|
101 |
# controlnet=controlnet,
|
|
|
103 |
# ).to(device)
|
104 |
|
105 |
# Преобразуем изображения
|
106 |
+
cn_source_image = preprocess_image(cn_source_image, width, height)
|
107 |
control_image = preprocess_image(control_image, width, height)
|
108 |
|
109 |
# Создаём пайплайн ControlNet с LoRA, если он ещё не создан
|
|
|
142 |
image = pipe_controlnet(
|
143 |
prompt_embeds=prompt_embeds,
|
144 |
negative_prompt_embeds=negative_prompt_embeds,
|
145 |
+
image=cn_source_image,
|
146 |
control_image=control_image,
|
147 |
strength=strength_cn, # Коэфф. зашумления, чем больше, тем больше меняется результирующее изображение относитенльно исходного
|
148 |
width=width,
|
|
|
313 |
value="pose_estimation",
|
314 |
)
|
315 |
|
316 |
+
cn_source_image = gr.Image(label="Upload Source Image")
|
317 |
|
318 |
control_image = gr.Image(label="Upload Control Image")
|
319 |
|
|
|
322 |
inputs=use_control_net,
|
323 |
outputs=control_net_options
|
324 |
)
|
|
|
325 |
|
326 |
+
# IP_adapter ---------------------------------------------------------------------------------
|
327 |
+
with gr.Blocks():
|
328 |
+
with gr.Row():
|
329 |
+
use_ip_adapter = gr.Checkbox(
|
330 |
+
label="Use IP_adapter",
|
331 |
+
value=False,
|
332 |
+
)
|
333 |
+
|
334 |
+
with gr.Column(visible=False) as ip_adapter_options:
|
335 |
+
strength_ip = gr.Slider(
|
336 |
+
label="Strength",
|
337 |
+
minimum=0.0,
|
338 |
+
maximum=1.0,
|
339 |
+
value=0.5,
|
340 |
+
step=0.05,
|
341 |
+
)
|
342 |
+
|
343 |
+
ip_adapter_strength = gr.Slider(
|
344 |
+
label="IP_adapter Strength",
|
345 |
+
minimum=0.0,
|
346 |
+
maximum=1.0,
|
347 |
+
value=0.5,
|
348 |
+
step=0.05,
|
349 |
+
)
|
350 |
+
|
351 |
+
ip_source_image = gr.Image(label="Upload Source Image")
|
352 |
+
|
353 |
+
ip_adapter_image = gr.Image(label="Upload Control Image")
|
354 |
+
|
355 |
+
use_ip_adapter.change(
|
356 |
+
fn=lambda x: gr.Row.update(visible=x),
|
357 |
+
inputs=use_ip_adapter,
|
358 |
+
outputs=ip_adapter_options
|
359 |
+
)
|
360 |
+
# --------------------------------------------------------------------------------------
|
361 |
+
|
362 |
+
|
363 |
gr.Examples(examples=examples, inputs=[prompt])
|
364 |
gr.Examples(examples=examples_negative, inputs=[negative_prompt])
|
365 |
|
|
|
379 |
seed,
|
380 |
guidance_scale,
|
381 |
lora_scale,
|
382 |
+
strength_cn, # Коэфф. зашумления ControlNet
|
383 |
use_control_net, # Чекбокс для ControlNet
|
384 |
+
control_strength, # Контроль силы ControlNet
|
385 |
+
cn_source_image, # Исходное изображение ControlNet
|
386 |
+
control_image, # Контрольное изображение ControlNet
|
387 |
],
|
388 |
outputs=[result],
|
389 |
)
|