Lifeinhockey commited on
Commit
22b7bf5
·
verified ·
1 Parent(s): e43c6c7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -12
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
- source_image=None, # Исходное изображение
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 source_image is not None:
99
  # pipe_controlnet = StableDiffusionControlNetImg2ImgPipeline.from_pretrained(
100
  # model_default,
101
  # controlnet=controlnet,
@@ -103,7 +103,7 @@ def infer(
103
  # ).to(device)
104
 
105
  # Преобразуем изображения
106
- source_image = preprocess_image(source_image, width, height)
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=source_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
- source_image = gr.Image(label="Upload Source Image")
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
- source_image, # Исходное изображение
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
  )