File size: 1,663 Bytes
b371b91 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | ---
title: Generador de Letras con Difusión
emoji: 🔤
colorFrom: blue
colorTo: green
sdk: gradio
app_file: app.py
pinned: false
license: mit
tags:
- diffusion
- letters
- alphabet
- image-generation
- pytorch
---
# Generador de Letras con Modelo de Difusión
Este modelo utiliza un UNet condicionado por clase para generar letras del abecedario (A-Z) en imágenes de 512x512 píxeles en escala de grises.
## Características del Modelo
- **26 clases**: Una para cada letra del abecedario (A-Z)
- **Resolución**: 512x512 píxeles
- **Canales**: 1 canal (escala de grises)
- **Arquitectura**: UNet2D con condicionamiento por clase
- **Parámetros**: 63,153,745 parámetros totales
## Uso del Modelo
```python
from diffusers import DDPMScheduler
import torch
# Cargar el modelo
model = LetterConditionedUnet(num_classes=26, class_emb_size=8)
model.load_state_dict(torch.load("pytorch_model.bin"))
# Crear scheduler
scheduler = DDPMScheduler.from_pretrained("./", subfolder="scheduler")
# Generar una letra (ejemplo: letra 'A' = clase 0)
device = "cuda" if torch.cuda.is_available() else "cpu"
model = model.to(device)
# Ruido inicial
x = torch.randn(1, 1, 512, 512, device=device)
labels = torch.tensor([0], device=device) # 0 = 'A', 1 = 'B', etc.
# Proceso de denoising
for t in scheduler.timesteps:
with torch.no_grad():
residual = model(x, t, labels)
x = scheduler.step(residual, t, x).prev_sample
# La imagen generada está en x
```
## Entrenamiento
El modelo fue entrenado en el dataset `jruaechalar/letrasPlantilla` que contiene imágenes de letras del abecedario con sus respectivas etiquetas.
## Licencia
MIT License
|