psurmreqmer commited on
Commit
b5cab04
·
1 Parent(s): 1723bed
Files changed (1) hide show
  1. app6.py +21 -22
app6.py CHANGED
@@ -3,26 +3,25 @@ import torch
3
  from diffusers import DiffusionPipeline
4
  from PIL import Image
5
 
6
- # --- Configuración del Modelo (Forzado a CPU) ---
7
 
8
- # Establecemos el dispositivo a CPU ya que CUDA no está disponible en tu entorno.
9
  device = "cpu"
10
- dtype_config = torch.float32 # Los modelos en CPU usan float32
11
 
12
- # Usamos Stable Diffusion v1.5, el modelo más ligero que funciona bien.
13
- model_id = "runwayml/stable-diffusion-v1-5"
14
 
15
  pipe = None
16
  try:
17
- # Carga sin accelerate (sin device_map) y forzando a CPU.
18
- # Esto elimina las dependencias problemáticas de tu error.
19
  pipe = DiffusionPipeline.from_pretrained(
20
  model_id,
21
  torch_dtype=dtype_config,
22
  use_safetensors=True
23
- ).to(device) # <--- Forzamos la carga a la CPU
24
 
25
- print("✅ Modelo Stable Diffusion v1.5 cargado con éxito en la CPU.")
26
 
27
  except Exception as e:
28
  print(f"❌ Error CRÍTICO al cargar el modelo: {e}")
@@ -42,22 +41,23 @@ def procesar_con_difusion(imagen_entrada, estilo_radial):
42
  if imagen_entrada is None:
43
  return None
44
 
45
- # 1. Prompt Base Fijo
46
- prompt_base = "fotografía de alta calidad, retrato detallado, foto con textura"
47
 
48
  estilo_prompts = {
49
- "Blanco y Negro (Monocromático)": ", monocromático, alto contraste, película de 35mm, grain, dramático",
50
- "Alto Contraste y Saturación": ", colores vívidos, alto contraste, saturación extrema, cinematográfico, hyperdetailed",
51
- "Original (Poco Ruido)": ", fotografía de alta calidad, realista, colores naturales, sutil, cinematic lighting",
 
52
  }
53
 
54
  full_prompt = prompt_base + estilo_prompts.get(estilo_radial, "")
55
 
56
- # 2. Fuerza de Difusión FIJA (strength):
57
- STRENGTH_FIJA = 0.9
 
58
 
59
- # 3. Preprocesar la imagen (SD v1.5 nativo es 512x512)
60
- # Convertimos a RGB y redimensionamos
61
  init_image = imagen_entrada.convert("RGB").resize((512, 512))
62
 
63
  try:
@@ -77,12 +77,11 @@ def procesar_con_difusion(imagen_entrada, estilo_radial):
77
 
78
 
79
  # --- Interfaz Gradio con gr.Blocks() ---
80
- with gr.Blocks(title="SD v1.5 Estilos Fijos") as demo:
81
  gr.Markdown(
82
  """
83
- # Tarea de Difusión (Image-to-Image) con SD v1.5
84
- Carga una imagen y selecciona un **Estilo Radial** para que el modelo de difusión la transforme.
85
- **NOTA:** La generación será lenta (varios minutos) ya que se ejecuta en CPU.
86
  """
87
  )
88
  with gr.Row():
 
3
  from diffusers import DiffusionPipeline
4
  from PIL import Image
5
 
6
+ # --- Configuración del Modelo (Sencilla) ---
7
 
8
+ # Forzamos el dispositivo a CPU (para evitar errores de CUDA/VRAM)
9
  device = "cpu"
10
+ dtype_config = torch.float32
11
 
12
+ # Modelo Image-to-Image LucyEdit
13
+ model_id = "kpsss34/LucyEdit_hybrid"
14
 
15
  pipe = None
16
  try:
17
+ # Carga sencilla, sin device_map, sin aceleración avanzada
 
18
  pipe = DiffusionPipeline.from_pretrained(
19
  model_id,
20
  torch_dtype=dtype_config,
21
  use_safetensors=True
22
+ ).to(device)
23
 
24
+ print("✅ Modelo LucyEdit cargado con éxito en la CPU.")
25
 
26
  except Exception as e:
27
  print(f"❌ Error CRÍTICO al cargar el modelo: {e}")
 
41
  if imagen_entrada is None:
42
  return None
43
 
44
+ # 1. Prompt Base Fijo (Lo que debe hacer el modelo)
45
+ prompt_base = "fotografía de alta calidad, retrato detallado, con estilo"
46
 
47
  estilo_prompts = {
48
+ # El prompt fijo + el modificador del estilo
49
+ "Blanco y Negro (Monocromático)": ", monocromático, alto contraste, dramático, blanco y negro",
50
+ "Alto Contraste y Saturación": ", colores vívidos, alto contraste, HDR, saturación extrema",
51
+ "Original (Poco Ruido)": ", fotografía de alta calidad, realista, colores naturales, sutil",
52
  }
53
 
54
  full_prompt = prompt_base + estilo_prompts.get(estilo_radial, "")
55
 
56
+ # 2. Fuerza de Difusión FIJA
57
+ # Un valor alto (0.85) para asegurar que el efecto (B/N o contraste) se aplique bien.
58
+ STRENGTH_FIJA = 0.85
59
 
60
+ # 3. Preprocesar la imagen (LucyEdit trabaja en 512x512)
 
61
  init_image = imagen_entrada.convert("RGB").resize((512, 512))
62
 
63
  try:
 
77
 
78
 
79
  # --- Interfaz Gradio con gr.Blocks() ---
80
+ with gr.Blocks(title="LucyEdit Estilos Fijos") as demo:
81
  gr.Markdown(
82
  """
83
+ # 🖼️ Tarea de Difusión (Image-to-Image) con LucyEdit
84
+ Carga una imagen y selecciona un **Estilo Radial** (Blanco y Negro o Contraste) para que el modelo de difusión la transforme.
 
85
  """
86
  )
87
  with gr.Row():