Skip to content

Modelo basado en Stable Diffusion XL ajustado mediante LoRA para aprender el estilo visual de los memes irónicos y sarcásticos, utilizando el dataset Hateful Memes Dataset (Facebook AI). Genera imágenes limpias y expresivas sin texto incrustado, sobre las cuales se superpone luego el caption estilo meme.

License

Notifications You must be signed in to change notification settings

Ricardouchub/SarcasmDiffusion

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SarcasmDiffusion

Project Completed Python Diffusers LoRA Stable Diffusion XL Hugging Face Streamlit

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

Arquitectura y Técnicas Utilizadas

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

Hiperparámetros del entrenamiento

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).


Flujo de trabajo

  1. Fase A — Preprocesamiento
    Limpieza del dataset, enriquecimiento con emociones e ironía, y balanceo de tonos.

  2. Fase B — Generación de prompts
    Creación automática de descripciones de entrenamiento (humor, irony, neutral).

  3. Fase C — Entrenamiento SDXL con LoRA
    Fine-tuning del UNet del modelo con parámetros congelados para preservar calidad base.

  4. Fase D — Inferencia & Overlay
    Generación con SDXL + superposición de texto estilo meme.

  5. Fase E — Inferencia y UI
    Implementación de una app en Streamlit (app.py).


Ejemplos de prompts

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

Generación

Ejemplo de meme generado

Ejemplo de meme generado

Ejemplo de meme generado

App

Ejemplo de meme generado


Resultado

✅ 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.


Estructura del repositorio

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


Licencia

Este proyecto se distribuye bajo licencia MIT.
Dataset original: Hateful Memes (Facebook AI)


Autor

Ricardo Urdaneta
GitHub | LinkedIn

About

Modelo basado en Stable Diffusion XL ajustado mediante LoRA para aprender el estilo visual de los memes irónicos y sarcásticos, utilizando el dataset Hateful Memes Dataset (Facebook AI). Genera imágenes limpias y expresivas sin texto incrustado, sobre las cuales se superpone luego el caption estilo meme.

Topics

Resources

License

Stars

Watchers

Forks