Gerchegg commited on
Commit
9efb67d
·
verified ·
1 Parent(s): 0fcb614

v2.3: CRITICAL FIX - logger initialization order + debug size checks

Browse files
Files changed (1) hide show
  1. app.py +25 -4
app.py CHANGED
@@ -14,8 +14,6 @@ try:
14
  SPACES_AVAILABLE = True
15
  except ImportError:
16
  SPACES_AVAILABLE = False
17
- logger = logging.getLogger(__name__)
18
- logger.warning("⚠️ spaces module not available - running without ZeroGPU support")
19
 
20
  from diffusers import (
21
  DiffusionPipeline,
@@ -41,6 +39,10 @@ logging.basicConfig(
41
  )
42
  logger = logging.getLogger(__name__)
43
 
 
 
 
 
44
  def get_logs():
45
  """Получить накопленные логи"""
46
  return log_buffer.getvalue()
@@ -485,9 +487,12 @@ def generate_img2img(
485
  logger.error("[ERROR] Входное изображение отсутствует!")
486
  raise gr.Error("Please upload an input image")
487
 
488
- logger.info(f"[INPUT] Входное изображение: {input_image.size[0]}×{input_image.size[1]}")
 
 
489
  logger.info(f"[INPUT] Формат: {input_image.format if hasattr(input_image, 'format') else 'N/A'}")
490
  logger.info(f"[INPUT] Режим: {input_image.mode}")
 
491
 
492
  # Генерация seed
493
  if randomize_seed:
@@ -542,9 +547,10 @@ def generate_img2img(
542
  generator = torch.Generator(device=device).manual_seed(seed)
543
  logger.info(f"[I2I STAGE 3/4] ✓ Generator готов на устройстве: {device}")
544
 
545
- # ВАЖНО: Передаем width и height явно, иначе пайплайн использует дефолтные 1024x1024!
546
  img_width, img_height = resized.size
547
  logger.info(f"[I2I STAGE 3/4] Финальное разрешение для генерации: {img_width}×{img_height}")
 
548
 
549
  # Генерация изображения
550
  logger.info(f"[I2I STAGE 4/4] Начало генерации изображения...")
@@ -552,6 +558,7 @@ def generate_img2img(
552
  effective_steps = int(num_inference_steps * strength)
553
  logger.info(f"[I2I STAGE 4/4] Реальных шагов денойзинга: {effective_steps}")
554
  logger.info(f"[I2I STAGE 4/4] Ожидаемое время: ~{effective_steps * 0.9:.1f}s")
 
555
  gen_start = time.time()
556
 
557
  image = pipe_img2img(
@@ -567,6 +574,20 @@ def generate_img2img(
567
  ).images[0]
568
 
569
  gen_time = time.time() - gen_start
 
 
 
 
 
 
 
 
 
 
 
 
 
 
570
  logger.info(f"[I2I STAGE 4/4] ✓ Изображение сгенерировано за {gen_time:.2f}s")
571
  logger.info(f"[I2I STAGE 4/4] Скорость: {gen_time/effective_steps:.3f}s на шаг")
572
 
 
14
  SPACES_AVAILABLE = True
15
  except ImportError:
16
  SPACES_AVAILABLE = False
 
 
17
 
18
  from diffusers import (
19
  DiffusionPipeline,
 
39
  )
40
  logger = logging.getLogger(__name__)
41
 
42
+ # Логируем если spaces не доступен
43
+ if not SPACES_AVAILABLE:
44
+ logger.warning("⚠️ spaces module not available - running without ZeroGPU support")
45
+
46
  def get_logs():
47
  """Получить накопленные логи"""
48
  return log_buffer.getvalue()
 
487
  logger.error("[ERROR] Входное изображение отсутствует!")
488
  raise gr.Error("Please upload an input image")
489
 
490
+ # КРИТИЧНО: Сохраняем оригинальные размеры ДО любых преобразований
491
+ original_width, original_height = input_image.size
492
+ logger.info(f"[INPUT] ОРИГИНАЛЬНОЕ изображение: {original_width}×{original_height}")
493
  logger.info(f"[INPUT] Формат: {input_image.format if hasattr(input_image, 'format') else 'N/A'}")
494
  logger.info(f"[INPUT] Режим: {input_image.mode}")
495
+ logger.info(f"[INPUT] Соотношение сторон: {original_width/original_height:.3f}")
496
 
497
  # Генерация seed
498
  if randomize_seed:
 
547
  generator = torch.Generator(device=device).manual_seed(seed)
548
  logger.info(f"[I2I STAGE 3/4] ✓ Generator готов на устройстве: {device}")
549
 
550
+ # КРИТИЧНО: Передаем width и height явно, иначе пайплайн использует дефолтные 1024x1024!
551
  img_width, img_height = resized.size
552
  logger.info(f"[I2I STAGE 3/4] Финальное разрешение для генерации: {img_width}×{img_height}")
553
+ logger.info(f"[I2I STAGE 3/4] Соотношение сторон: {img_width/img_height:.3f}")
554
 
555
  # Генерация изображения
556
  logger.info(f"[I2I STAGE 4/4] Начало генерации изображения...")
 
558
  effective_steps = int(num_inference_steps * strength)
559
  logger.info(f"[I2I STAGE 4/4] Реальных шагов денойзинга: {effective_steps}")
560
  logger.info(f"[I2I STAGE 4/4] Ожидаемое время: ~{effective_steps * 0.9:.1f}s")
561
+ logger.info(f"[DEBUG] 🔍 ПЕРЕДАЕМ В PIPELINE: width={img_width}, height={img_height}")
562
  gen_start = time.time()
563
 
564
  image = pipe_img2img(
 
574
  ).images[0]
575
 
576
  gen_time = time.time() - gen_start
577
+
578
+ # КРИТИЧНО: Проверяем финальный размер результата
579
+ final_width, final_height = image.size
580
+ logger.info(f"[DEBUG] 🔍 ПОЛУЧИЛИ ИЗ PIPELINE: width={final_width}, height={final_height}")
581
+
582
+ if final_width != img_width or final_height != img_height:
583
+ logger.error(f"[BUG] ⚠️⚠️⚠️ РАЗМЕР ИЗМЕНИЛСЯ! ⚠️⚠️⚠️")
584
+ logger.error(f"[BUG] Ожидалось: {img_width}×{img_height}")
585
+ logger.error(f"[BUG] Получено: {final_width}×{final_height}")
586
+ logger.error(f"[BUG] Соотношение: {final_width/final_height:.3f}")
587
+ logger.error(f"[BUG] Это указывает на проблему в pipeline или diffusers!")
588
+ else:
589
+ logger.info(f"[I2I STAGE 4/4] ✓ Размер результата корректен: {final_width}×{final_height}")
590
+
591
  logger.info(f"[I2I STAGE 4/4] ✓ Изображение сгенерировано за {gen_time:.2f}s")
592
  logger.info(f"[I2I STAGE 4/4] Скорость: {gen_time/effective_steps:.3f}s на шаг")
593