Kandinsky 2.1
kandinsky-community
Texto a imagen
Kandinsky 2.1 hereda las mejores prácticas de DALL-E 2 y Latent Diffusion mientras introduce algunas nuevas ideas. Utiliza el modelo CLIP como un codificador de texto e imagen, y un mapeo de imagen de difusión (diffusion image prior) entre los espacios latentes de las modalidades de CLIP. Este enfoque incrementa el rendimiento visual del modelo y desvela nuevos horizontes en la mezcla de imágenes y la manipulación de imágenes guiada por texto. El modelo Kandinsky es creado por Arseniy Shakhmatov, Anton Razzhigaev, Aleksandr Nikolich, Igor Pavlov, Andrey Kuznetsov y Denis Dimitrov.
Como usar
¡Kandinsky 2.1 está disponible en diffusers!
pip install diffusers transformers accelerate
from diffusers import AutoPipelineForInpainting
from diffusers.utils import load_image
import torch
import numpy as np
pipe = AutoPipelineForInpainting.from_pretrained("kandinsky-community/kandinsky-2-1-inpaint", torch_dtype=torch.float16)
pipe.enable_model_cpu_offload()
prompt = "un sombrero"
negative_prompt = "baja calidad, mala calidad"
original_image = load_image("https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky/cat.png")
mask = np.zeros((768, 768), dtype=np.float32)
# Vamos a enmascarar un área sobre la cabeza del gato
mask[:250, 250:-250] = 1
image = pipe(prompt=prompt, image=original_image, mask_image=mask).images[0]
image.save("cat_with_hat.png")
# 🚨⚠️🚨 Cambio importante para el Inpainting de Kandinsky 🚨⚠️🚨
Hemos introducido un cambio importante para la canalización de inpainting de Kandinsky en el siguiente pull request: https://github.com/huggingface/diffusers/pull/4207. Anteriormente aceptábamos un formato de máscara donde los píxeles negros representaban el área enmascarada. Esto es inconsistente con todas las demás canalizaciones en diffusers. Hemos cambiado el formato de la máscara en Kandinsky y ahora usamos píxeles blancos en su lugar.
Por favor, actualice su código de inpainting para seguir lo anterior. Si está utilizando Kandinsky Inpaint en producción, ahora necesita cambiar la máscara a:
# Para entrada PIL
import PIL.ImageOps
mask = PIL.ImageOps.invert(mask)
# Para entrada PyTorch y Numpy
mask = 1 - mask
Funcionalidades
- Inpainting guiado por texto
- Generación de imágenes
- Modelo CLIP como codificador de texto e imagen
- Arquitectura de modelo basada en transformadores
- MoVQGAN como decodificador de imágenes
Casos de uso
- Inpainting guiado por texto
- Mezcla de imágenes y manipulación guiada por texto
- Generación de imágenes de alta calidad