Generación de imágenes — Módulo 12: práctica, producción, límites y ética
Módulo final del curso de generación de imágenes: bajamos la teoría a las manos. Las herramientas reales (diffusers, ComfyUI, APIs), los parámetros que de verdad se tocan, extensiones como ControlNet y LoRA, los límites técnicos honestos, y la ética que todo esto exige tratar en serio.
☰ Índice del contenido
En el Módulo 11 cerramos la teoría uniendo los dos cursos: el ViT que ve y el Transformer que razona. Ahora bajamos todo a las manos. Este módulo es el de producción: qué herramientas se usan de verdad, qué perillas mueven la aguja, cómo se extiende un modelo base para que haga lo que necesitas — y, con la misma seriedad que lo técnico, qué límites tiene todo esto y qué responsabilidades te caen encima al usarlo. Porque generar imágenes que engañan a un ojo humano dejó de ser un ejercicio académico.
La tesis del módulo
Generar imágenes en serio es más oficio que modelo: elegir la herramienta, mover tres perillas con criterio, y saber cuándo NO apretar el gatillo. La difusión es poderosa y barata de usar; por eso mismo la parte difícil ya no es técnica, es de juicio.
Las herramientas reales
No hay una sola forma de correr esto. Tres caminos, según cuánto control quieras y cuánto quieras ensuciarte las manos:
- diffusers (la librería de Python del Módulo 9): control total desde código, ideal para integrar la generación en tu propia app o pipeline. Es donde vive el ejemplo que ya escribiste.
- ComfyUI: una interfaz visual de nodos donde armas el pipeline arrastrando cajas —encoder, U-Net, VAE, extensiones— y conectándolas. Potente para experimentar y para flujos complejos sin escribir código; la favorita de quienes iteran mucho.
- APIs (servicios que corren el modelo por ti): le mandas un prompt por HTTP y te devuelven la imagen. Cero infraestructura, pagas por uso. El camino sensato cuando no quieres administrar GPUs.
Las tres perillas que importan
Toda la teoría del curso se condensa en tres parámetros que de verdad tocas. Ya los viste en el Módulo 9; acá los ordenamos como los usa alguien que produce:
| Parámetro | Qué controla | Rango sensato |
|---|---|---|
| steps | Pasos de denoising de la U-Net | 20–50 (más no mejora) |
| guidance scale | Cuánto obedece el prompt (CFG) | 7–8 por defecto |
| seed | La semilla del azar inicial | Fíjalo para reproducir |
El flujo real de trabajo: fijas un seed, iteras el prompt y el guidance_scale hasta que la composición te gusta, y recién ahí subes los steps para pulir la versión final. El seed es tu ancla — sin él, cada corrida es un dibujo nuevo y no puedes mejorar lo que ya lograste.
Así se ve el flujo de producción en diffusers, con las tres perillas explícitas:
import torch
from diffusers import StableDiffusionPipeline
pipe = StableDiffusionPipeline.from_pretrained(
"stable-diffusion-v1-5/stable-diffusion-v1-5",
torch_dtype=torch.float16, # media precisión: mitad de VRAM
).to("cuda") # sí o sí necesita GPU
# Cargar un LoRA de estilo: un archivo chico, sin reentrenar el modelo
pipe.load_lora_weights("estilos/mi_estilo.safetensors")
# El seed es el ancla: mismo número -> misma imagen reproducible
gen = torch.Generator("cuda").manual_seed(42)
imagen = pipe(
prompt="un faro en la costa al atardecer, estilo acuarela",
num_inference_steps=30, # steps: 20-50, más no mejora
guidance_scale=7.5, # CFG: 7-8 es el rango dulce
generator=gen, # reproducibilidad
).images[0]
imagen.save("faro.png")
Cambia esos tres números y cambia todo; es donde vive el oficio.
Extensiones: del modelo base a lo que necesitas
El modelo base genera “algo que calza con el prompt”, pero rara vez eso basta. Tres extensiones dominan la práctica:
- ControlNet (control estructural): una red extra que condiciona la generación con una guía espacial —un boceto, los bordes de una foto, una pose de esqueleto, un mapa de profundidad—. Le dice al modelo qué forma tener, no solo qué dibujar. Es la diferencia entre “un gato” y “un gato exactamente en esta pose”.
- inpainting (repintado): regenerar solo una región de una imagen dejando el resto intacto. Marcas una zona con una máscara y el modelo la rellena coherente con lo que la rodea — para quitar un objeto, cambiar un detalle o arreglar una mano fea.
- LoRA para imágenes (Low-Rank Adaptation): pequeños archivos que ajustan un modelo base para un estilo o personaje específico sin re-entrenarlo entero. El mismo LoRA que en los LLM sirve para afinar barato; aquí sirve para “enseñarle” un estilo con pocas imágenes.
Esto necesita GPU
Nada de lo anterior es gratis en cómputo. La difusión corre decenas de pasos de una U-Net sobre latentes, y eso pide una GPU con VRAM suficiente. Aquí se conecta el otro curso de la academia:
- La precisión en que cargas el modelo decide cuánta memoria gasta: media precisión (
float16) o cuantización parten a la mitad la VRAM sin costo real de calidad — el tema de Precisión y cuantización. - Si vas a servir generación de imágenes a usuarios, aplican las mismas reglas de throughput, batching y utilización de vLLM y serving de producción: una GPU ociosa es cara, una saturada es barata.
Ojo: una imagen de 512×512 con 30 steps es liviana; subir a 1024×1024 o encadenar ControlNet + varios LoRA multiplica la VRAM y el tiempo rápido. Mide antes de prometer resoluciones grandes en producción.
Los límites, sin marketing
La difusión impresiona, pero tiene fallas conocidas y persistentes. Vale nombrarlas para no venderle humo a nadie:
- Manos y dedos: el clásico. Los modelos aún generan manos con seis dedos o articulaciones imposibles, porque la anatomía fina es difícil y aparece en mil poses distintas.
- Texto dentro de la imagen: letreros, logos y texto suelen salir como garabatos pseudo-legibles. Ha mejorado, pero sigue siendo un punto débil.
- Resolución y coherencia global: a más resolución, más cómputo y más riesgo de que la composición pierda coherencia (dos horizontes, sombras que no calzan).
- Cómputo: cada imagen cuesta GPU-segundos. A escala, eso es dinero y energía reales, no un detalle.
La ética, en serio
Esta parte no es un anexo de cortesía. Generar imágenes realistas de cualquier cosa a bajo costo abre problemas concretos, y como especialista te toca conocerlos y actuar en consecuencia:
- Deepfakes y consentimiento: crear imágenes realistas de personas reales sin su permiso es dañino y, según el uso, ilegal. La línea roja es el consentimiento — no la capacidad técnica.
- Derechos de autor y datos de entrenamiento: muchos modelos se entrenaron con imágenes de la web sin licencia clara. Genera zonas grises sobre la propiedad de lo que produces y sobre imitar el estilo de artistas vivos. Infórmate de la licencia del modelo que uses.
- Sesgos: el modelo refleja los sesgos de sus datos. Pídele “un doctor” o “una persona exitosa” y verás qué asume por defecto. Ignorar esto es amplificarlo.
- Marcas de agua y procedencia: existen estándares (como C2PA) y marcas de agua para señalar que una imagen es sintética. Etiquetar lo generado no es opcional cuando puede confundirse con algo real; es la base de la confianza.
Ojo: “yo solo hice la herramienta / solo apreté el botón” no es una defensa. Quien genera y publica una imagen es responsable de lo que esa imagen hace en el mundo. La potencia y la responsabilidad vienen en el mismo paquete.
El mapa completo del curso
bloque básico bloque interm. bloque avanzado
cómo ve la máquina cómo inventa lo que usas hoy
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ píxel/tensor│ │ autoencoders│ │ Stable │
│ convolución │ ─► │ VAE │ ─► │ Diffusion │
│ CNN │ │ GANs │ │ ViT │
│ entrenar CNN│ │ latent space│ │ multimodal │
└─────────────┘ └─────────────┘ └─────────────┘
módulos 1-4 módulos 5-8 módulos 9-12
La progresión completa: primero entiendes cómo una máquina ve (la CNN y la imagen como tensor), después cómo inventa (autoencoders, GANs, el latent space), y por fin cómo lo hacen los sistemas reales (Stable Diffusion, el ViT y los modelos multimodales que unen visión y lenguaje). Cada bloque se paró sobre el anterior. Ese era el contrato del Módulo 1, y está cumplido.
Errores comunes
- Perseguir el prompt mágico e ignorar las extensiones. Para control real (composición, pose, estilo) mandan ControlNet, inpainting y LoRA, no una frase más larga.
- Subir resolución sin medir el costo. 1024×1024 con extensiones puede multiplicar VRAM y tiempo; lo liviano de 512×512 no escala gratis.
- Tratar la ética como un checkbox al final. El consentimiento, los derechos y la procedencia se piensan antes de generar y publicar, no después de que algo salió mal.
- Prometer que “no falla”. Manos, texto y coherencia global siguen siendo débiles. Honestidad sobre los límites es parte del oficio.
- Olvidar que corre en GPU real. Detrás de cada imagen hay cómputo, memoria y —a escala— un costo energético y económico concreto.
La frase para llevarse
“Generar una imagen se volvió trivial; generarla con criterio y responsabilidad, no. La herramienta es poderosa y barata — el juicio de cuándo, cómo y si usarla es lo que de verdad separa al profesional.”
Qué viene: fin del curso
Doce módulos: del “una imagen es una grilla de números” hasta un pipeline de difusión guiado por texto, un Transformer que aprendió a ver y la ética de usar todo esto en el mundo real. Recorriste los tres bloques — cómo ve la máquina, cómo inventa, y cómo lo hacen los sistemas de hoy — y en el camino este curso se dio la mano con el de Transformers, porque la IA moderna hace rato dejó de venir en compartimentos separados.
Si completaste la serie con tu cuenta de la academia, el certificado es tuyo. El glosario de generación de imágenes queda como referencia permanente para cuando necesites refrescar un término. Y si quieres seguir el hilo, el curso de GPU y el de Transformers son los vecinos naturales de todo lo que armaste aquí.
Material relacionado
Preguntas sobre este curso
Regístrate gratis para hacer preguntas y guardar tu progreso.
✉ Entérate de lo nuevo
Recibe un aviso cuando publique nuevos cursos, workshops o investigaciones. Sin spam.