DeepFloyd/IF-I-L-v1.0
DeepFloyd
Texto a imagen
DeepFloyd IF-I-L-v1.0 es la primera etapa de una cascada de difusión texto-a-imagen basada en píxeles. Genera una imagen inicial de 64x64 a partir de embeddings de texto T5 congelados, y forma parte de un sistema modular de tres etapas diseñado para producir imágenes progresivamente mayores: 64x64, 256x256 y 1024x1024. Está orientado a investigación no comercial y destaca por fotorealismo y comprensión del lenguaje, con FID-30K de 8.06 reportado para este checkpoint.
Como usar
Para usar el modelo se debe aceptar primero la licencia en Hugging Face, iniciar sesión localmente y usar diffusers.
pip install huggingface_hub --upgrade
from huggingface_hub import login
login()
pip install diffusers accelerate transformers safetensors sentencepiece
Ejemplo de carga de las tres etapas y ejecución local:
from diffusers import DiffusionPipeline
from diffusers.utils import pt_to_pil
import torch
# stage 1
stage_1 = DiffusionPipeline.from_pretrained("DeepFloyd/IF-I-L-v1.0", variant="fp16", torch_dtype=torch.float16)
stage_1.enable_xformers_memory_efficient_attention() # remove line if torch.__version__ >= 2.0.0
stage_1.enable_model_cpu_offload()
# stage 2
stage_2 = DiffusionPipeline.from_pretrained(
"DeepFloyd/IF-II-L-v1.0", text_encoder=None, variant="fp16", torch_dtype=torch.float16
)
stage_2.enable_xformers_memory_efficient_attention() # remove line if torch.__version__ >= 2.0.0
stage_2.enable_model_cpu_offload()
# stage 3
safety_modules = {"feature_extractor": stage_1.feature_extractor, "safety_checker": stage_1.safety_checker, "watermarker": stage_1.watermarker}
stage_3 = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-x4-upscaler", **safety_modules, torch_dtype=torch.float16)
stage_3.enable_xformers_memory_efficient_attention() # remove line if torch.__version__ >= 2.0.0
stage_3.enable_model_cpu_offload()
prompt = 'a photo of a kangaroo wearing an orange hoodie and blue sunglasses standing in front of the eiffel tower holding a sign that says "very deep learning"'
# text embeds
prompt_embeds, negative_embeds = stage_1.encode_prompt(prompt)
generator = torch.manual_seed(0)
image = stage_1(prompt_embeds=prompt_embeds, negative_prompt_embeds=negative_embeds, generator=generator, output_type="pt").images
pt_to_pil(image)[0].save("./if_stage_I.png")
image = stage_2(
image=image, prompt_embeds=prompt_embeds, negative_prompt_embeds=negative_embeds, generator=generator, output_type="pt"
).images
pt_to_pil(image)[0].save("./if_stage_II.png")
image = stage_3(prompt=prompt, image=image, generator=generator, noise_level=100).images
image[0].save("./if_stage_III.png")
Funcionalidades
- Modelo texto-a-imagen de difusión en cascada basado en píxeles.
- Etapa I de la cascada DeepFloyd IF, responsable de generar imágenes de 64x64.
- 900 millones de parámetros.
- Usa un codificador de texto T5-v1_1-xxl congelado para producir embeddings de prompt.
- Arquitectura UNet con atención cruzada, autoatención híbrida controlada y attention-pooling.
- Integrado con Hugging Face diffusers y ejecutable con descarga local tras aceptar la licencia.
- Soporta ejecución con offload a CPU para reducir memoria, con uso indicado desde unos 14 GB de VRAM para la canalización completa.
- Entrenado con 1.2B pares texto-imagen basados en LAION-A y datasets internos adicionales.
- Licencia DeepFloyd IF: uso limitado principalmente a investigación no comercial, con restricciones para producción, vigilancia, uso militar, biometría y usos ilegales.
Casos de uso
- Investigación en modelos generativos texto-a-imagen.
- Generación de imágenes artísticas y apoyo a procesos de diseño creativo.
- Estudio de despliegue seguro de modelos capaces de generar contenido dañino.
- Análisis de limitaciones, sesgos y comportamiento de modelos generativos.
- Aplicaciones educativas o herramientas creativas experimentales.
- Fine-tuning de conceptos con scripts DreamBooth de diffusers, indicado como posible con una sola GPU y aproximadamente 28 GB de VRAM.