Spaces:
Running
Running
generate_title = """ | |
function createGradioAnimation() { | |
var container = document.createElement('div'); | |
container.id = 'gradio-animation'; | |
container.style.fontSize = '2em'; | |
container.style.fontWeight = 'bold'; | |
container.style.textAlign = 'center'; | |
container.style.marginBottom = '20px'; | |
var text = 'Generate Pigeon Avatar'; | |
for (var i = 0; i < text.length; i++) { | |
(function(i){ | |
setTimeout(function(){ | |
var letter = document.createElement('span'); | |
letter.style.opacity = '0'; | |
letter.style.transition = 'opacity 0.5s'; | |
letter.innerText = text[i]; | |
container.appendChild(letter); | |
setTimeout(function() { | |
letter.style.opacity = '1'; | |
}, 50); | |
}, i * 250); | |
})(i); | |
} | |
var gradioContainer = document.querySelector('.gradio-container'); | |
gradioContainer.insertBefore(container, gradioContainer.firstChild); | |
return 'Animation created'; | |
} | |
""" | |
generate_markdown = """ | |
## About this Demo | |
This demo generates a pigeon avatar based on an image of a pigeon. | |
## How this works? | |
You can upload an image of a pigeon and select an avatar style. The model will generate two pigeons avatars based on the image description. | |
""" | |
models = """ | |
**Models used:** | |
- [Moondream2](https://huggingface.co/vikhyatk/moondream2) for image description. | |
- [FLUX.1-dev](https://huggingface.co/black-forest-labs/FLUX.1-dev) for image generation (API). | |
**Estimated times:** | |
- Realistic: 400s - 500s | |
- Pixel art: 200s - 250s | |
- Imaginative: 300s - 400s | |
- Cartoon: 300s - 400s | |
""" | |
doccumentation = """ | |
# Documentación del Proyecto: Generación de Avatares Personalizados de Palomas | |
## Descripción del Proyecto | |
Este proyecto combina dos modelos de inteligencia artificial disponibles en Hugging Face para generar **avatares personalizados de palomas**. El sistema toma como entrada una imagen de una paloma, genera una descripción textual de la misma, y a partir de esta descripción crea un avatar estilizado basado en la preferencia del usuario. | |
## ¿Por qué he decidido realizar este proyecto? | |
Actualmente estoy trabajando en una aplicación para palomos de competición de la asociación de colombicultura de guadalcacín, | |
he pensado que poder generar avatares para los palomos más destacados (o los palomos que el usuario quiera) con inteligencia artificial, | |
podría ser una gran implementación. La idea es que el usuario pueda hacer una foto de su palomo y que la IA genere una foto para el avatar | |
de dicho palomo. | |
### Problema a Resolver | |
La generación automática de avatares personalizados a partir de imágenes específicas es un desafío que combina la **comprensión visual** y la **generación de imágenes**. Este sistema facilita la creación de avatares únicos basados en fotografías, ofreciendo múltiples estilos gráficos, lo que es útil para: | |
- Redes sociales personalizadas. | |
- Juegos con avatares estilizados. | |
- Identidades gráficas en comunidades digitales. | |
### Solución Propuesta | |
La solución se implementa en dos fases: | |
1. **Descripción de la Imagen**: Analizar la imagen de una paloma y generar una descripción textual. | |
2. **Generación del Avatar**: Usar la descripción textual para generar un avatar estilizado en el estilo seleccionado por el usuario. | |
### Flujo del Sistema | |
1. El usuario sube una imagen de una paloma. | |
2. El modelo de descripción genera un texto basado en la imagen. | |
3. El usuario selecciona un estilo gráfico para el avatar. | |
4. Un modelo de generación de imágenes produce avatares basados en la descripción y el estilo. | |
## Entrada y Salida | |
### Input | |
1. **Imagen**: Imagen de una paloma, cargada por el usuario. | |
2. **Estilo del avatar** (opcional): Selección del usuario entre opciones como: | |
- Realista | |
- Arte Pixelado | |
- Imaginativo | |
- Dibujo Animado | |
### Output | |
Una galería de **tres avatares estilizados** generados a partir de la descripción de la imagen y el estilo seleccionado. | |
--- | |
## Modelos Utilizados | |
### 1. **Modelo de Descripción de Imágenes** | |
- **Nombre**: [vikhyatk/moondream2](https://huggingface.co/vikhyatk/moondream2) | |
- **Clasificación**: Modelo de Lenguaje Generativo con Capacidades de Visión. | |
- **Descripción**: Este modelo genera descripciones textuales detalladas basadas en el análisis de imágenes. | |
- **Posibles Limitaciones**: | |
- La descripción puede ser genérica si la imagen tiene elementos ambiguos. | |
- Limitada a dominios visuales preentrenados (puede no reconocer especies raras de palomas). | |
### 2. **Modelo de Generación de Imágenes** | |
- **Nombre**: [black-forest-labs/FLUX.1-dev](https://huggingface.co/black-forest-labs/FLUX.1-dev) | |
- **Clasificación**: Modelo de Difusión Estilizado. | |
- **Descripción**: Genera imágenes estilizadas basadas en prompts textuales. Permite control mediante parámetros como semillas para resultados reproducibles. | |
- **Posibles Limitaciones**: | |
- La calidad del avatar depende de la coherencia del prompt generado. | |
- El rendimiento puede ser inferior en dispositivos sin GPU. | |
### 3. **Modelo de Generación de Imágenes** | |
Si bien ha sido reemplazado por Flux.1-dev, e un inicio se iba a utilizar [stable-diffusion-v1-5/stable-diffusion-v1-5](https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5) | |
este cambio lo he realizado porque buscaba una mejor experiencia de usuario, ya que, con Flux.1-dev, el cual cuenta con unos 12b de parámetros, | |
consigo unos resultados gracias a su API no solo en menos tiempo, sino que con mejor calidad. Si bien la implementación de stable-diffusion-v1 | |
me ha servido para implementar un modelo de texto a imagen con diffuser y practicarlo, no daba los resultados que realmente esperaba para la demo y además, | |
en el espacio de la plataforma hugging face tardaba demasiado en generar la imagen. | |
--- | |
## Implementación Técnica | |
La solución utiliza la biblioteca **Gradio** para ofrecer una interfaz de usuario interactiva y accesible: | |
- **Cargar Imagen**: El usuario sube la imagen de la paloma. | |
- **Seleccionar Estilo**: El usuario selecciona un estilo de avatar. | |
- **Generar Avatares**: Se genera una galería con tres avatares estilizados. | |
El sistema soporta múltiples dispositivos (CPU, GPU y Apple Silicon). | |
--- | |
## Potenciales Usos y Expansión | |
1. **Avatares personalizados en redes sociales.** | |
2. **Identidad visual para juegos.** | |
3. **Expansión a otros dominios** (e.g., avatares para perros, gatos, etc.). | |
## Limitaciones y Consideraciones | |
- **Calidad de Entrada**: Las imágenes de baja resolución o con obstrucciones pueden afectar la precisión de la descripción. | |
- **Estilos Limitados**: Ampliar los estilos disponibles requiere ajustar los prompts o integrar nuevos modelos. | |
- **Dependencia de Recursos**: La generación de imágenes estilizadas puede ser lenta en dispositivos sin GPU. | |
--- | |
Este proyecto demuestra cómo la combinación de modelos generativos puede resolver problemas complejos de personalización visual, ofreciendo una solución creativa y flexible para múltiples dominios. | |
""" |