Kandinsky 2.2

kandinsky-community
Texto a imagen

Kandinsky hereda las mejores prácticas de Dall-E 2 y Latent diffusion, mientras introduce algunas ideas nuevas. Utiliza el modelo CLIP como codificador de texto e imagen, y una imagen de difusión previa (mapeo) entre espacios latentes de modalidades de CLIP. Este enfoque aumenta el rendimiento visual del modelo y revela nuevos horizontes en la mezcla 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.2 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-2-decoder', torch_dtype=torch.float16)
pipe = pipe.to('cuda')

prompt = 'portrait of a young women, blue eyes, cinematic'
negative_prompt = 'low quality, bad quality'

image = pipe(prompt=prompt, negative_prompt=negative_prompt, prior_guidance_scale=1.0, height=768, width=768).images[0]
image.save('portrait.png')

Generación de imagen a imagen guiada por texto

from PIL import Image
import requests
from io import BytesIO

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 = original_image.resize((768, 512))

from diffusers import AutoPipelineForImage2Image
import torch

pipe = AutoPipelineForImage2Image.from_pretrained('kandinsky-community/kandinsky-2-2-decoder', torch_dtype=torch.float16)
pipe.enable_model_cpu_offload()

prompt = 'A fantasy landscape, Cinematic lighting'
negative_prompt = 'low quality, bad quality'

image = pipe(prompt=prompt, image=original_image, strength=0.3, height=768, width=768).images[0]
image.save('fantasy_land.png')

Interpolación

from diffusers import KandinskyV22PriorPipeline, KandinskyV22Pipeline
from diffusers.utils import load_image
import PIL
import torch

pipe_prior = KandinskyV22PriorPipeline.from_pretrained('kandinsky-community/kandinsky-2-2-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 = ['a cat', img1, img2]
weights = [0.3, 0.3, 0.4]
prompt = ''
prior_out = pipe_prior.interpolate(images_texts, weights)

pipe = KandinskyV22Pipeline.from_pretrained('kandinsky-community/kandinsky-2-2-decoder', torch_dtype=torch.float16)
pipe.to('cuda')

image = pipe(**prior_out, height=768, width=768).images[0]
image.save('starry_cat.png')

Funcionalidades

Generación de texto a imagen
Generación de imagen a imagen guiada por texto
Interpolación de imágenes
Modelo de difusión condicional con texto
Codificador de texto e imagen basado en CLIP
Modelo de priors de difusión
Decodificación a través de MoVQGAN

Casos de uso

Generación artística a partir de texto
Creación de imágenes con calidad cinematográfica a partir de descripciones textuales
Transformación de una imagen según las descripciones textuales proporcionadas
Interpolación de diferentes imágenes y textos para generar imágenes fusionadas únicas