trashchenkov commited on
Commit
5406720
·
verified ·
1 Parent(s): 52a10bb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -15
app.py CHANGED
@@ -22,7 +22,7 @@ MAX_IMAGE_SIZE = 1024
22
  model_repo_id = "CompVis/stable-diffusion-v1-4"
23
  pipe = DiffusionPipeline.from_pretrained(model_repo_id, torch_dtype=torch_dtype, safety_checker=None).to(device)
24
 
25
- # Попробуем подгрузить LoRA-модификации
26
  try:
27
  pipe.unet = PeftModel.from_pretrained(pipe.unet, "./unet")
28
  pipe.text_encoder = PeftModel.from_pretrained(pipe.text_encoder, "./text_encoder")
@@ -49,10 +49,9 @@ def infer(
49
  ):
50
  """
51
  Функция генерации изображения.
52
- Параметры use_controlnet, control_strength, controlnet_mode, controlnet_image,
53
- use_ip_adapter, ip_adapter_scale, ip_adapter_image это заглушки для демонстрации UI.
54
  """
55
-
56
  global model_repo_id, pipe
57
 
58
  # Если пользователь ввёл другую модель, пробуем её загрузить с нуля
@@ -62,7 +61,7 @@ def infer(
62
 
63
  try:
64
  new_pipe = DiffusionPipeline.from_pretrained(model, torch_dtype=torch_dtype).to(device)
65
- # Повторно подгружаем LoRA
66
  try:
67
  new_pipe.unet = PeftModel.from_pretrained(new_pipe.unet, "./unet")
68
  new_pipe.text_encoder = PeftModel.from_pretrained(new_pipe.text_encoder, "./text_encoder")
@@ -79,10 +78,7 @@ def infer(
79
  # Создаём генератор случайных чисел для детерминированности
80
  generator = torch.Generator(device=device).manual_seed(seed)
81
 
82
- # --- Здесь должна быть интеграция ControlNet, IP-adapter и т.д. ---
83
- # Для демонстрации интерфейса просто вызываем pipe как обычно.
84
- # ------------------------------------------------------------------
85
-
86
  try:
87
  image = pipe(
88
  prompt=prompt,
@@ -189,7 +185,7 @@ with gr.Blocks(css=css) as demo:
189
  value=512,
190
  )
191
 
192
- # --- Дополнительные элементы для ControlNet ---
193
  use_controlnet = gr.Checkbox(label="Use ControlNet", value=False)
194
  with gr.Group(visible=False) as controlnet_group:
195
  control_strength = gr.Slider(
@@ -206,11 +202,9 @@ with gr.Blocks(css=css) as demo:
206
  )
207
  controlnet_image = gr.Image(
208
  label="ControlNet Image",
209
- source="upload",
210
  type="pil"
211
  )
212
 
213
- # Функция для управления видимостью группы ControlNet
214
  def update_controlnet_group(use_controlnet):
215
  return {"visible": use_controlnet}
216
 
@@ -220,7 +214,7 @@ with gr.Blocks(css=css) as demo:
220
  outputs=[controlnet_group]
221
  )
222
 
223
- # --- Дополнительные элементы для IP-adapter ---
224
  use_ip_adapter = gr.Checkbox(label="Use IP-adapter", value=False)
225
  with gr.Group(visible=False) as ip_adapter_group:
226
  ip_adapter_scale = gr.Slider(
@@ -232,11 +226,9 @@ with gr.Blocks(css=css) as demo:
232
  )
233
  ip_adapter_image = gr.Image(
234
  label="IP-adapter Image",
235
- source="upload",
236
  type="pil"
237
  )
238
 
239
- # Функция для управления видимостью группы IP-adapter
240
  def update_ip_adapter_group(use_ip_adapter):
241
  return {"visible": use_ip_adapter}
242
 
 
22
  model_repo_id = "CompVis/stable-diffusion-v1-4"
23
  pipe = DiffusionPipeline.from_pretrained(model_repo_id, torch_dtype=torch_dtype, safety_checker=None).to(device)
24
 
25
+ # Попробуем подгрузить LoRA-модификации (unet + text_encoder)
26
  try:
27
  pipe.unet = PeftModel.from_pretrained(pipe.unet, "./unet")
28
  pipe.text_encoder = PeftModel.from_pretrained(pipe.text_encoder, "./text_encoder")
 
49
  ):
50
  """
51
  Функция генерации изображения.
52
+ В реальном проекте здесь нужно добавить интеграцию с ControlNet и IP-adapter.
53
+ Сейчас они служат лишь демонстрацией UI (заглушка).
54
  """
 
55
  global model_repo_id, pipe
56
 
57
  # Если пользователь ввёл другую модель, пробуем её загрузить с нуля
 
61
 
62
  try:
63
  new_pipe = DiffusionPipeline.from_pretrained(model, torch_dtype=torch_dtype).to(device)
64
+ # Повторно подгружаем LoRA для нового пайплайна
65
  try:
66
  new_pipe.unet = PeftModel.from_pretrained(new_pipe.unet, "./unet")
67
  new_pipe.text_encoder = PeftModel.from_pretrained(new_pipe.text_encoder, "./text_encoder")
 
78
  # Создаём генератор случайных чисел для детерминированности
79
  generator = torch.Generator(device=device).manual_seed(seed)
80
 
81
+ # Заглушка: пока что просто вызываем pipe без учёта ControlNet/IP-adapter
 
 
 
82
  try:
83
  image = pipe(
84
  prompt=prompt,
 
185
  value=512,
186
  )
187
 
188
+ # Блоки ControlNet
189
  use_controlnet = gr.Checkbox(label="Use ControlNet", value=False)
190
  with gr.Group(visible=False) as controlnet_group:
191
  control_strength = gr.Slider(
 
202
  )
203
  controlnet_image = gr.Image(
204
  label="ControlNet Image",
 
205
  type="pil"
206
  )
207
 
 
208
  def update_controlnet_group(use_controlnet):
209
  return {"visible": use_controlnet}
210
 
 
214
  outputs=[controlnet_group]
215
  )
216
 
217
+ # Блоки IP-adapter
218
  use_ip_adapter = gr.Checkbox(label="Use IP-adapter", value=False)
219
  with gr.Group(visible=False) as ip_adapter_group:
220
  ip_adapter_scale = gr.Slider(
 
226
  )
227
  ip_adapter_image = gr.Image(
228
  label="IP-adapter Image",
 
229
  type="pil"
230
  )
231
 
 
232
  def update_ip_adapter_group(use_ip_adapter):
233
  return {"visible": use_ip_adapter}
234