Módulo 4: Generación de Imágenes
1. Introducción: Generación de Imágenes
Descripción
Esta es la primera cápsula del Módulo 4 de la Guía de IA Multimodal. Aquí vas a entender el estado actual de la generación de imágenes con IA, qué modelos existen, cómo funcionan a alto nivel, y qué puedes construir con ellos. Si los módulos anteriores (vision, documentos) se enfocaron en entender contenido visual, este módulo se enfoca en crear contenido visual desde cero.
Por qué importa: La generación de imágenes es la modalidad "output" más visible de la IA multimodal. En 2023-2024, DALL-E 3, Midjourney y Stable Diffusion transformaron industrias completas: marketing, e-commerce, editorial, gaming, y prototipado. Sin embargo, la mayoría de developers solo han probado estas herramientas de forma casual. Dominar las APIs de generación — entender parámetros, costos, limitaciones y cómo combinar generación con análisis — te separa del resto.
Este módulo no es un tutorial de "cómo generar imágenes bonitas". Es una guía técnica para integrar generación de imágenes en sistemas de software: APIs, parámetros, fallbacks entre proveedores, pipelines que combinan generación con vision, y decisiones de arquitectura (¿DALL-E o Stable Diffusion? ¿Cuándo usar cada uno?).
El proyecto final del módulo — un Image Generator con fallback — demuestra resiliencia ante fallos de proveedores: si DALL-E falla, el sistema automáticamente genera con Stable Diffusion, sin que el usuario lo note.
¿Dónde Estamos en la Guía?
Contexto
Esta guía tiene 8 módulos organizados en 3 fases:
Phase 1: Fundamentos Multimodales (Módulos 1-3)
├── Módulo 1: Introducción a IA Multimodal ✓ completado
├── Módulo 2: Vision + LLMs ✓ completado
└── Módulo 3: Comprensión de Documentos ✓ completado
Phase 2: Generación y Audio (Módulos 4-5)
├── Módulo 4: Generación de Imágenes ← ESTÁS AQUÍ
└── Módulo 5: Procesamiento de Audio
Phase 3: RAG, Casos de Uso y Proyecto (Módulos 6-8)
├── Módulo 6: RAG Multimodal
├── Módulo 7: Casos de Uso
└── Módulo 8: Proyecto Final — Document Analyzer Multimodal
Duración total estimada: 6-7 horas (self-paced).
¿Hacia dónde vamos?
En los módulos 1-3 aprendiste a analizar contenido: enviar imágenes a GPT-4 Vision, extraer datos de PDFs, clasificar documentos. Ahora invertimos la dirección: en lugar de image → text, hacemos text → image.
La progresión dentro de este módulo es deliberada:
- Primero entiendes el landscape (esta cápsula) — modelos, proveedores, casos de uso
- Luego dominas DALL-E 3 (cápsula 2) — la opción más accesible y de mayor calidad
- Después Stable Diffusion (cápsula 3) — más control, más económico, open source
- Comparas ambos (cápsula 4) — decisiones de arquitectura basadas en datos
- Diseñas prompts para imagen (cápsula 5) — el prompt engineering visual
- Editas y creas variaciones (cápsula 6) — inpainting, outpainting, variaciones
- Integras en pipelines (cápsula 7) — generación + vision en un flujo
- Construyes el proyecto (cápsula 8) — Image Generator con fallback completo
La Era de la Generación de Imágenes
Breve historia
La generación de imágenes con IA tiene una historia corta pero intensa:
2021 — DALL-E (original)
OpenAI presenta un modelo que genera imágenes desde texto.
Impresionante pero limitado. Solo acceso para investigadores.
2022 — Stable Diffusion + Midjourney + DALL-E 2
Stable Diffusion se libera como open source → explosión de la comunidad.
Midjourney gana popularidad por calidad artística.
DALL-E 2 lanza API pública.
2023 — DALL-E 3 + SDXL
DALL-E 3 integrado en ChatGPT. Comprensión de prompts mejorada drásticamente.
SDXL (Stable Diffusion XL) eleva la calidad del ecosistema open source.
2024 — SD3 + Flux + competencia masiva
Stable Diffusion 3 con arquitectura DiT (Diffusion Transformer).
Flux emerge como alternativa de alta calidad.
La generación de imágenes se comoditiza: más opciones, menores costos.
Estado actual del mercado
El mercado de generación de imágenes se ha dividido en dos grandes campos:
Modelos cerrados (API):
- DALL-E 3 (OpenAI) — integración nativa con GPT, calidad consistente
- Imagen (Google) — acceso vía Vertex AI, menos popular que DALL-E
- Ideogram — fuerte en tipografía dentro de imágenes
Modelos abiertos (open source):
- Stable Diffusion XL, SD3 — el estándar open source
- Flux — alta calidad, rápido crecimiento
- Playground v2 — orientado a calidad fotorrealista
Para este módulo nos enfocamos en DALL-E 3 y Stable Diffusion porque:
- Representan los dos paradigmas (cerrado vs abierto)
- Tienen APIs accesibles (OpenAI y Replicate respectivamente)
- Cubren el 90% de los casos de uso en producción
- Las técnicas que aprendas son transferibles a cualquier otro modelo
Qué es Generación de Imágenes
Definición
Generación de imágenes es el proceso de crear imágenes nuevas desde descripciones en texto natural (prompts). Los modelos de difusión — la arquitectura dominante — funcionan "limpiando" ruido progresivamente hasta formar una imagen coherente con el prompt.
No necesitas entender la matemática de los modelos de difusión para usar las APIs. Pero sí necesitas entender los parámetros que controlan la generación, porque determinan la calidad, estilo, costo y tiempo de tus resultados.
Cómo funciona (alto nivel)
Prompt (texto) → Encoder → Espacio latente → Proceso de difusión → Decoder → Imagen (pixels)
- El prompt se convierte en un vector numérico (embedding)
- El modelo parte de ruido aleatorio en un espacio comprimido (latente)
- En cada paso de difusión (step), el modelo reduce el ruido guiado por el embedding del prompt
- Más steps = más detalle, pero más tiempo y costo
- El resultado latente se decodifica a una imagen en pixels
Proveedores principales
| Proveedor | Modelo | Tipo de API | Costo aprox. | Características principales |
|---|---|---|---|---|
| OpenAI | DALL-E 3 | API REST oficial | $0.04-0.08/img | Alta calidad, comprensión semántica superior, reescribe prompts |
| Replicate | SDXL, SD3, Flux | API REST | $0.002-0.02/img | Múltiples modelos, pago por segundo de GPU |
| Stability AI | SD3, SDXL | API REST oficial | $0.01-0.03/img | Acceso directo al developer de Stable Diffusion |
| Midjourney | Midjourney v6 | Solo Discord (sin API REST) | $10-60/mes suscripción | Calidad artística excepcional, pero sin API programática |
| Imagen 2 | Vertex AI | Variable | Integración con Google Cloud | |
| Hugging Face | Múltiples | Inference API | Gratis (limitado) | Ideal para experimentar, requiere GPU para producción |
Casos de Uso en Producción
1. Marketing y publicidad
Generar variaciones de creativos publicitarios para A/B testing. Un solo prompt puede producir docenas de imágenes para probar en campañas. El costo de un diseñador gráfico para 50 variaciones es prohibitivo; con DALL-E 3 cuesta menos de $4.
prompts_campana = [
"Producto tecnológico minimalista sobre fondo blanco, iluminación suave de estudio",
"Producto tecnológico sobre escritorio de madera, luz natural de ventana",
"Producto tecnológico flotando con fondo gradiente azul a morado",
]
2. E-commerce
Generar imágenes de producto desde diferentes ángulos, fondos o contextos de uso. Elimina la necesidad de sesiones fotográficas para cada variación de color o escenario.
fondos = ["fondo blanco estudio", "cocina moderna", "escritorio minimalista", "naturaleza exterior"]
for fondo in fondos:
prompt = f"Botella de agua de acero inoxidable sobre {fondo}, fotografía profesional de producto"
3. Prototipado y diseño
Generar mockups de interfaces, conceptos visuales para presentaciones, storyboards para video. Permite iterar rápido antes de involucrar a un diseñador para el resultado final.
4. Contenido editorial
Ilustraciones para artículos, thumbnails para videos, imágenes para redes sociales. Publicaciones que antes requerían stock photos genéricas ahora tienen ilustraciones únicas y alineadas con el contenido.
5. Pipelines multimodales
El caso de uso más avanzado: combinar generación con análisis. Ejemplos reales:
- Documento → Diagrama: Analizar un PDF con GPT-4 Vision → extraer estructura → generar diagrama con DALL-E
- Descripción → Imagen → Análisis: Generar imagen → analizarla con vision → iterar el prompt
- Chatbot visual: Usuario describe lo que quiere → sistema genera → usuario da feedback → sistema ajusta
def pipeline_documento_a_diagrama(documento_path: str) -> str:
texto = analizar_documento(documento_path)
prompt_imagen = f"Diagrama técnico que muestra: {texto[:500]}"
imagen_url = generar_imagen(prompt_imagen)
return imagen_url
6. Gaming y entretenimiento
Generación de assets: texturas, fondos, sprites conceptuales, concept art. Especialmente útil en fases tempranas de desarrollo donde se necesitan muchas iteraciones rápidas.
Roadmap del Módulo 4
| # | Cápsula | Qué aprenderás | Duración |
|---|---|---|---|
| 01 | Introducción (esta) | Landscape, modelos, casos de uso, setup | 8 min |
| 02 | DALL-E 3 (OpenAI) | API completa, parámetros, formatos, costos | 8 min |
| 03 | Stable Diffusion | Replicate API, SDXL, parámetros avanzados | 8 min |
| 04 | Comparación DALL-E vs SD | Benchmark, costos, decisiones de arquitectura | 7 min |
| 05 | Prompts para imagen | Prompt engineering visual, negative prompts | 7 min |
| 06 | Edición y variaciones | Inpainting, outpainting, variaciones | 6 min |
| 07 | Integración en pipelines | Generación + vision, flujos compuestos | 6 min |
| 08 | Proyecto: Image Generator | DALL-E + SD fallback, sistema completo | 10 min |
Duración estimada total del módulo: ~60 min
Objetivos del Módulo
Al completar este módulo serás capaz de:
| Objetivo | Cápsula donde se cubre |
|---|---|
| Usar la API de DALL-E 3 con todos sus parámetros (size, quality, style) | 02 |
| Integrar Stable Diffusion vía Replicate con control fino de parámetros | 03 |
| Comparar DALL-E vs SD y elegir el adecuado según contexto | 04 |
| Diseñar prompts efectivos para generación de imágenes | 05 |
| Aplicar edición (inpainting) y generar variaciones | 06 |
| Construir pipelines que combinan generación con análisis | 07 |
| Implementar un Image Generator con fallback entre proveedores | 08 |
Habilidades técnicas específicas
- Llamadas a la API de OpenAI Images (
client.images.generate) - Llamadas a Replicate para Stable Diffusion
- Manejo de respuestas en URL y base64
- Descarga y almacenamiento de imágenes generadas
- Negative prompts para Stable Diffusion
- Parámetros de sampling (steps, guidance_scale, scheduler)
- Error handling para content policy violations
- Patrón fallback entre múltiples proveedores
Prerrequisitos
Lo que necesitas de módulos anteriores
Este módulo asume que completaste los módulos 1-3 o tienes experiencia equivalente:
| Prerrequisito | Dónde lo aprendiste |
|---|---|
Configurar OPENAI_API_KEY y usar OpenAI() client | Módulo 1 |
| Entender la diferencia entre modelos de análisis y generación | Módulo 1 |
| Trabajar con imágenes en base64 y URLs | Módulo 2 |
| Manejar errores de API (rate limits, content policy) | Módulo 2 |
| Construir funciones reutilizables que llaman APIs | Módulo 3 |
Verificación rápida
Si puedes ejecutar este código sin problemas, estás listo:
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Responde solo 'OK'"}],
max_tokens=5
)
print(response.choices[0].message.content)
Si obtienes OK, tu API key funciona y puedes continuar.
Setup Técnico
Dependencias
pip install openai>=1.0.0 replicate requests Pillow
| Paquete | Para qué lo usamos |
|---|---|
openai | API de DALL-E 3 |
replicate | API de Stable Diffusion vía Replicate |
requests | Descargar imágenes desde URLs |
Pillow | Manipulación básica de imágenes (resize, mostrar) |
API Keys
export OPENAI_API_KEY="sk-..."
export REPLICATE_API_TOKEN="r8_..."
OPENAI_API_KEY es obligatoria para las cápsulas 2, 4-8. REPLICATE_API_TOKEN es necesaria para las cápsulas 3, 4, 7-8. Puedes crear una cuenta gratuita en replicate.com que incluye créditos iniciales.
Verificación del setup
import openai
import replicate
print(f"openai version: {openai.__version__}")
print(f"replicate importado correctamente")
client = openai.OpenAI()
response = client.images.generate(
model="dall-e-3",
prompt="Un cuadrado rojo sobre fondo blanco",
size="1024x1024",
quality="standard",
n=1
)
print(f"DALL-E 3 funciona. URL: {response.data[0].url[:80]}...")
Si obtienes una URL, tu setup está completo para todo el módulo.
Estructura de archivos recomendada
module-04-workspace/
├── generated/ ← Imágenes generadas se guardan aquí
├── 01_intro.py
├── 02_dalle3.py
├── 03_stable_diffusion.py
├── 04_comparacion.py
├── 05_prompts.py
├── 06_edicion.py
├── 07_pipelines.py
└── 08_proyecto.py
Qué NO Cubre Este Módulo
Es igual de importante saber qué no vamos a cubrir para evitar falsas expectativas:
| Tema | Por qué no lo cubrimos | Dónde aprenderlo |
|---|---|---|
| Fine-tuning de modelos de imagen | Requiere GPUs, datasets, y es un campo especializado | Documentación de Stability AI, cursos de ML |
| Entrenamiento desde cero | Fuera de alcance para AI Engineers (vs ML Engineers) | Papers originales, cursos de deep learning |
| Midjourney (interfaz Discord) | No tiene API REST; no es integrable en código | Documentación de Midjourney |
| Generación de video | Aún inmaduro para producción; cambiará rápido | Módulo futuro o actualización de la guía |
| ControlNet avanzado | Requiere infraestructura local con GPU | Documentación de Stable Diffusion |
| Aspectos legales de copyright | Depende de jurisdicción y cambia constantemente | Consultar fuentes legales actualizadas |
Modelo Mental: Análisis vs Generación
En los módulos 1-3 trabajaste el flujo imagen → texto (análisis). Ahora trabajamos texto → imagen (generación). Este cambio de dirección tiene implicaciones prácticas:
| Aspecto | Análisis (M1-3) | Generación (M4) |
|---|---|---|
| Input | Imagen existente | Texto (prompt) |
| Output | Texto (descripción, datos) | Imagen nueva |
| Determinismo | Alto (misma imagen = mismo análisis) | Bajo (mismo prompt ≠ misma imagen) |
| Control | Preguntas específicas | Prompt engineering + parámetros |
| Costo | Basado en tokens de input/output | Basado en resolución y calidad |
| Errores típicos | Alucinaciones en texto | Artefactos visuales, manos mal |
| Evaluación | Comparar contra ground truth | Subjetiva + criterios definidos |
El no-determinismo es la diferencia más importante. Cada vez que generas una imagen con el mismo prompt, obtienes un resultado diferente. Esto es una feature (variedad) y un bug (inconsistencia) al mismo tiempo. Aprenderás a manejarlo con seeds y parámetros.
Autoevaluación
Antes de avanzar a la cápsula 2, verifica que puedes responder estas preguntas:
Conceptuales:
- ¿Cuáles son los dos paradigmas principales de generación de imágenes (cerrado vs abierto)?
- ¿Por qué la generación de imágenes es no-determinista?
- ¿En qué se diferencia usar DALL-E 3 vs Stable Diffusion desde la perspectiva de un developer?
Prácticas:
4. ¿Tienes tu OPENAI_API_KEY configurada y funcionando?
5. ¿Tienes REPLICATE_API_TOKEN configurada (o sabes cómo obtenerla)?
6. ¿Puedes nombrar tres casos de uso de generación de imágenes en producción?
Respuestas esperadas
- Cerrado: DALL-E 3 (OpenAI) — API propietaria, alta calidad, menos control. Abierto: Stable Diffusion — open source, más control (negative prompts, parámetros), ejecutable localmente.
- Porque el proceso de difusión parte de ruido aleatorio diferente en cada ejecución. El seed controla ese ruido; mismo seed = misma imagen.
- DALL-E 3: una sola API (
openai), pocos parámetros, calidad consistente, más caro. SD: múltiples APIs (Replicate, Stability, local), muchos parámetros (steps, cfg_scale, scheduler, negative_prompt), más barato, requiere más tuning. - Ejecutar el código de verificación de la sección Setup.
- Registrarse en replicate.com → Settings → API tokens.
- Marketing (variaciones de creativos), e-commerce (fotos de producto), pipelines multimodales (documento → diagrama).
Evidencia de Éxito
Al terminar este módulo, sabrás que tuviste éxito si:
- ✅ Puedes generar una imagen con DALL-E 3 desde un prompt y recibir la URL o Base64 del resultado
- ✅ Puedes generar una imagen con Stable Diffusion vía Replicate, configurando parámetros como steps, cfg_scale y negative prompt
- ✅ Conoces las diferencias de costo, control y calidad entre DALL-E 3 y Stable Diffusion
- ✅ Sabes diseñar prompts efectivos para generación de imágenes (estructura, descriptores, estilos)
- ✅ Puedes implementar un fallback que intenta DALL-E 3 primero y cae a Stable Diffusion si falla
- ✅ Tu Image Generator con Fallback funciona: genera imágenes, verifica calidad, y rastrea costos
Resumen
- Generación de imágenes es la modalidad que crea contenido visual desde texto — complemento del análisis que dominaste en M1-M3.
- Los dos paradigmas principales son: cerrado (DALL-E 3 — API propietaria, alta calidad, menos control) y abierto (Stable Diffusion — open source, más parámetros, más barato).
- Los casos de uso reales incluyen: marketing (variaciones de creativos), e-commerce (fotos de producto), pipelines multimodales (documento → diagrama).
- Este módulo cubre: API de DALL-E 3, Stable Diffusion vía Replicate, prompt engineering visual, edición/variaciones, y pipelines de generación.
- El proyecto del módulo es un Image Generator con Fallback que intenta múltiples proveedores, verifica calidad y rastrea costos.
Terminología del Módulo
| Término | Significado |
|---|---|
| Prompt | Texto que describe la imagen a generar |
| Negative prompt | Texto que describe lo que NO debe aparecer (solo Stable Diffusion) |
| Seed | Número que controla el ruido inicial; mismo seed = mismo resultado |
| Steps | Cantidad de pasos de difusión; más steps = más detalle |
| CFG Scale / Guidance | Qué tan estrictamente el modelo sigue el prompt (más alto = más literal) |
| Inpainting | Editar una zona específica de una imagen existente |
| Outpainting | Expandir una imagen más allá de sus bordes originales |
| Variaciones | Generar imágenes similares a una imagen de referencia |
| Revised prompt | El prompt reescrito por DALL-E 3 internamente |
| Scheduler | Algoritmo de sampling en Stable Diffusion (K_EULER, DPM, etc.) |
Recursos Adicionales
- OpenAI Images API — Documentación oficial de DALL-E 3
- Replicate — Stable Diffusion y otros modelos vía API
- Stability AI — Creadores de Stable Diffusion
- Prompt Engineering for Image Generation (OpenAI Cookbook) — Ejemplos avanzados
- Hugging Face Diffusers — Librería para ejecutar modelos de difusión localmente