Kandinsky 2.1
kandinsky-community
Texto a imagen
Kandinsky 2.1 hereda las mejores prácticas de DALL-E 2 y Latent Diffusion, al tiempo que introduce algunas nuevas ideas. Utiliza el modelo CLIP como codificador de texto e imagen, y un 'diffusion image prior' (mapeo) entre los espacios latentes de las modalidades de CLIP. Este enfoque mejora el rendimiento visual del modelo y abre nuevos horizontes en la combinación de imágenes y 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
Texto a imagen
from diffusers import AutoPipelineForText2Image
import torch
pipe = AutoPipelineForText2Image.from_pretrained("kandinsky-community/kandinsky-2-1", torch_dtype=torch.float16)
pipe.enable_model_cpu_offload()
prompt = "Una criatura alienígena de cheeseburger comiéndose a sí misma, claymation, iluminación cinematográfica y con ambiente"
negative_prompt = "baja calidad, mala calidad"
image = pipe(prompt=prompt, negative_prompt=negative_prompt, prior_guidance_scale =1.0, height=768, width=768).images[0]
image.save("cheeseburger_monster.png")
Generación de imágenes guiadas por texto
from diffusers import AutoPipelineForImage2Image
import torch
import requests
from io import BytesIO
from PIL import Image
import os
pipe = AutoPipelineForImage2Image.from_pretrained("kandinsky-community/kandinsky-2-1", torch_dtype=torch.float16)
pipe.enable_model_cpu_offload()
prompt = "Un paisaje de fantasía, iluminación cinematográfica"
negative_prompt = "baja calidad, mala calidad"
url = "https://raw.githubusercontent.com/CompVis/stable-diffusion/main/assets/stable-samples/img2img/sketch-mountains-input.jpg"
response = requests.get(url)
original_image = Image.open(BytesIO(response.content)).convert("RGB")
original_image.thumbnail((768, 768))
image = pipe(prompt=prompt, image=original_image, strength=0.3).images[0]
out.images[0].save("fantasy_land.png")
Interpolación de imágenes
from diffusers import KandinskyPriorPipeline, KandinskyPipeline
from diffusers.utils import load_image
import PIL
import torch
pipe_prior = KandinskyPriorPipeline.from_pretrained("kandinsky-community/kandinsky-2-1-prior", torch_dtype=torch.float16)
pipe_prior.to("cuda")
img1 = load_image("https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main" "/kandinsky/cat.png")
img2 = load_image("https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main" "/kandinsky/starry_night.jpeg")
images_texts = ["un gato", img1, img2]
pesos = [0.3, 0.3, 0.4]
prompt = ""
prior_out = pipe_prior.interpolate(images_texts, pesos)
pipe = KandinskyPipeline.from_pretrained("kandinsky-community/kandinsky-2-1", torch_dtype=torch.float16)
pipe.to("cuda")
image = pipe(prompt, **prior_out, height=768, width=768).images[0]
image.save("starry_cat.png")
Funcionalidades
- Modelo de difusión condicional de texto a imagen.
- Utiliza un modelo basado en transformadores para la imagen previa.
- Modelo de difusión UNet.
- Modelo de codificación MoVQGAN.
- Entrenado en los embeddings de texto e imagen de CLIP.
Casos de uso
- Conversión de texto a imagen.
- Generación de una imagen a partir de otra imagen guiada por texto.
- Interpolación de imágenes.
- Manipulación de imágenes guiada por texto.