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