SarcasmDiffusion es un modelo de generación de imágenes basado en Stable Diffusion XL, entrenado con LoRA para capturar la esencia visual del sarcasmo y la ironía en los memes.
Utiliza un dataset curado a partir de Hateful Memes Dataset de Facebook AI para generar imágenes limpias y expresivas, listas para que añadir caption.
| Notebook | Modelo en HF |
|---|---|
| Notebook de proceso de entrenamiento | Modelo en Hugging Face |
| Componente | Descripción |
|---|---|
| Modelo base | Stable Diffusion XL (Base 1.0) |
| Fine-tuning | LoRA sobre el UNet (fp16) |
| Framework | Hugging Face Diffusers + PEFT + Accelerate |
| Dataset | Hateful Memes Dataset - 10k |
| App | Streamlit UI para inferencia con overlay estilo meme |
| Preprocesamiento | NLP con GoEmotions + RoBERTa-Irony para etiquetado semántico |
| Formato final | Modelo fusionado (sdxl_fused_full) + LoRA weights |
| Parámetro | Valor |
|---|---|
| Resolución | 1024 px |
| Batch Size | 1 (Grad Accum = 4) |
| Learning Rate | 0.0001 |
| Max Steps | 9,000 |
| LoRA r / α / dropout | 8 / 16 / 0.05 |
| Optimizer | AdamW8bit |
| Scheduler | Cosine + Warmup |
Entrenamiento realizado con fp16 mixed precision en CUDA 12.4 (PyTorch 2.6).
-
Fase A — Preprocesamiento
Limpieza del dataset, enriquecimiento con emociones e ironía, y balanceo de tonos. -
Fase B — Generación de prompts
Creación automática de descripciones de entrenamiento (humor,irony,neutral). -
Fase C — Entrenamiento SDXL con LoRA
Fine-tuning del UNet del modelo con parámetros congelados para preservar calidad base. -
Fase D — Inferencia & Overlay
Generación con SDXL + superposición de texto estilo meme. -
Fase E — Inferencia y UI
Implementación de una app en Streamlit (app.py).
| Prompt | Caption arriba | Caption abajo |
|---|---|---|
| "sarcastic meme about running on too much coffee" | ONE CUP OF COFFEE | AWAY FROM A MELTDOWN |
| "sarcastic meme about saying 'just five more minutes' of sleep and waking up late" | WHEN YOU SAY '5 MORE MINUTES | AND WAKE UP AT NOON |
| "meme sarcástico sobre intentar comer saludable pero viendo pizza" | CUANDO PROMETES COMER SANO | PERO LA PIZZA TE HABLA |
✅ Entrenamiento de un modelo de difusión capaz de aprender el estilo visual de memes sarcásticos.
✅ Dataset enriquecido y balanceado automáticamente.
✅ Generación controlada con negative prompts (sin texto ni ruido).
✅ App de inferencia funcional en Streamlit.
✅ Overlay automático estilo meme con ajuste dinámico del texto.
SarcasmDiffusion/
├── app.py # Interfaz Streamlit para inferencia
├── SarcasmDiffusion.ipynb # Notebook principal del proyecto
├── data/
│ ├── img/ # Imágenes originales del dataset
│ ├── processed/
│ │ ├── metadata_v3.csv # Dataset enriquecido y balanceado
│ │ ├── train_lora_prompts.csv # Prompts generados por tono
│ │ └── infer_samples/ # Resultados de inferencia
├── models/
│ └── lora_only/ # Pesos LoRA del UNet
└── img/ # Carpeta de imágenes para readme
Este proyecto se distribuye bajo licencia MIT.
Dataset original: Hateful Memes (Facebook AI)



