Diffusers documentation

Kandinsky 2.2

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Kandinsky 2.2

Kandinsky 2.2 fue creado por Arseniy Shakhmatov, Anton Razzhigaev, Aleksandr Nikolich, Vladimir Arkhipkin, Igor Pavlov, Andrey Kuznetsov y Denis Dimitrov.

La descripción de su página de GitHub es:

Kandinsky 2.2 introduce mejoras sustanciales sobre su predecesor, Kandinsky 2.1, al incorporar un codificador de imágenes nuevo y más potente, CLIP-ViT-G, y el soporte para ControlNet. El cambio a CLIP-ViT-G como codificador de imágenes aumenta significativamente la capacidad del modelo para generar imágenes más estéticas y comprender mejor el texto, mejorando así su rendimiento general. La adición del mecanismo de ControlNet permite al modelo controlar eficazmente el proceso de generación de imágenes. Esto conduce a resultados más precisos y visualmente atractivos, y abre nuevas posibilidades para la manipulación de imágenes guiada por texto.

El código original se puede encontrar en ai-forever/Kandinsky-2.

Consulta la organización Kandinsky Community en el Hub para obtener los puntos de control oficiales de modelos para tareas como texto a imagen, imagen a imagen y relleno.

Asegúrate de consultar la guía de los schedulers para aprender a explorar el equilibrio entre la velocidad y la calidad del scheduler, y consulta la sección reutilizar componentes entre pipelines para aprender a cargar de forma eficiente los mismos componentes en varios pipelines.

KandinskyV22PriorPipeline

clase diffusers.KandinskyV22PriorPipeline

< >

( prior: PriorTransformerimage_encoder: CLIPVisionModelWithProjectiontext_encoder: CLIPTextModelWithProjectiontokenizer: CLIPTokenizerscheduler: UnCLIPSchedulerimage_processor: CLIPImageProcessorPil )

Parámetros

  • prior (PriorTransformer) — El prior unCLIP canónico para aproximar el embedding de imagen a partir del embedding de texto.
  • image_encoder (CLIPVisionModelWithProjection) — Codificador de imágenes congelado.
  • text_encoder (CLIPTextModelWithProjection) — Codificador de texto congelado.
  • tokenizer (CLIPTokenizer) — Tokenizer de la clase CLIPTokenizer.
  • scheduler (UnCLIPScheduler) — Un programador para usar en combinación con prior para generar el incrustado de imagen.
  • image_processor (CLIPImageProcessor) — Un image_processor para preprocesar imágenes de clip.

Pipeline para generar un prior de imagen para Kandinsky

Este modelo hereda de DiffusionPipeline. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos los pipelines (como la descarga o el guardado, la ejecución en un dispositivo específico, etc.)

__call__

< >

( prompt: str | list[str]negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int = 1num_inference_steps: int = 25generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneguidance_scale: float = 4.0output_type: str | None = 'pt'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] ) → KandinskyPriorPipelineOutput or tuple

Parámetros

  • prompt (str o list[str]) — El prompt o los prompts para guiar la generación de la imagen.
  • negative_prompt (str o list[str], opcional) — El prompt o los prompts que no deben guiar la generación de la imagen. Se ignora cuando no se usa guía (es decir, se ignora si guidance_scale es menor que 1).
  • num_images_per_prompt (int, opcional, valor predeterminado 1) — El número de imágenes que se generarán por indicación.
  • num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • generator (torch.Generator o list[torch.Generator], opcional) — Un generador o una lista de generadores de torch para hacer la generación determinista.
  • latents (torch.Tensor, opcional) — Latentes ruidosos pregenerados, muestreados de una distribución gaussiana, que se usarán como entradas para la generación de imágenes. Se pueden utilizar para ajustar la misma generación con diferentes prompts. Si no se proporcionan, se generará un tensor de latentes mediante muestreo usando el generator aleatorio suministrado.
  • guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendo guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al prompt de texto, generalmente a costa de una menor calidad de imagen.
  • output_type (str, opcional, valor predeterminado "pt") — El formato de salida de la imagen generada. Elija entre: "np" (np.array) o "pt" (torch.Tensor).
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ImagePipelineOutput en lugar de una tupla simple.
  • callback_on_step_end (Callable, opcional) — Una función que se llama al final de cada paso de desruido durante la inferencia. La función se llama con los siguientes argumentos: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs incluirá una lista de todos los tensores especificados por callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, opcional) — La lista de entradas de tensor para la función callback_on_step_end. Los tensores especificados en la lista se pasarán como argumento callback_kwargs. Solo podrás incluir variables listadas en el atributo ._callback_tensor_inputs de tu clase de pipeline.

Devuelve

KandinskyPriorPipelineOutput o tuple

Función invocada al llamar a la pipeline para la generación.

Ejemplos:

>>> from diffusers import KandinskyV22Pipeline, KandinskyV22PriorPipeline
>>> import torch

>>> pipe_prior = KandinskyV22PriorPipeline.from_pretrained("kandinsky-community/kandinsky-2-2-prior")
>>> pipe_prior.to("cuda")
>>> prompt = "red cat, 4k photo"
>>> image_emb, negative_image_emb = pipe_prior(prompt).to_tuple()

>>> pipe = KandinskyV22Pipeline.from_pretrained("kandinsky-community/kandinsky-2-2-decoder")
>>> pipe.to("cuda")
>>> image = pipe(
...     image_embeds=image_emb,
...     negative_image_embeds=negative_image_emb,
...     height=768,
...     width=768,
...     num_inference_steps=50,
... ).images
>>> image[0].save("cat.png")

interpolate

< >

( images_and_prompts: listweights: listnum_images_per_prompt: int = 1num_inference_steps: int = 25generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Nonenegative_prior_prompt: str | None = Nonenegative_prompt: str = ''guidance_scale: float = 4.0device = None ) → KandinskyPriorPipelineOutput or tuple

Parámetros

  • images_and_prompts (list[str | PIL.Image.Image | torch.Tensor]) — lista de prompts e imágenes para guiar la generación de imágenes.
  • weights — (list[float]): lista de pesos para cada condición en images_and_prompts
  • num_images_per_prompt (int, opcional, valor predeterminado 1) — El número de imágenes que se generarán por indicación.
  • num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • generator (torch.Generator o list[torch.Generator], opcional) — Un generador o una lista de generadores de torch para hacer la generación determinista.
  • latents (torch.Tensor, opcional) — Latentes ruidosos pregenerados, muestreados de una distribución gaussiana, que se usarán como entradas para la generación de imágenes. Se pueden utilizar para ajustar la misma generación con diferentes prompts. Si no se proporcionan, se generará un tensor de latentes mediante muestreo usando el generator aleatorio suministrado.
  • negative_prior_prompt (str, opcional) — El prompt que no debe guiar el proceso de difusión previo. Se ignora cuando no se usa guía (es decir, se ignora si guidance_scale es menor que 1).
  • negative_prompt (str o list[str], opcional) — El prompt que no debe guiar la generación de la imagen. Se ignora cuando no se usa guía (es decir, se ignora si guidance_scale es menor que 1).
  • guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendo guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al prompt de texto, generalmente a costa de una menor calidad de imagen.

Devuelve

KandinskyPriorPipelineOutput o tuple

Función invocada al usar el pipeline anterior para la interpolación.

Ejemplos:

>>> from diffusers import KandinskyV22PriorPipeline, KandinskyV22Pipeline
>>> from diffusers.utils import load_image
>>> import PIL
>>> import torch
>>> from torchvision import transforms

>>> 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]
>>> 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(
...     image_embeds=out.image_embeds,
...     negative_image_embeds=out.negative_image_embeds,
...     height=768,
...     width=768,
...     num_inference_steps=50,
... ).images[0]
>>> image.save("starry_cat.png")

KandinskyV22Pipeline

clase diffusers.KandinskyV22Pipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

Parámetros

  • scheduler (DDIMScheduler | DDPMScheduler) — Un scheduler para usar en combinación con unet para generar latentes de imagen.
  • unet (UNet2DConditionModel) — Arquitectura U-Net condicional para desruidar el embedding de la imagen.
  • movq (VQModel) — Decodificador MoVQ para generar la imagen a partir de los latentes.

Pipeline para la generación de imágenes a partir de texto usando Kandinsky

Este modelo hereda de DiffusionPipeline. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos los pipelines (como la descarga o el guardado, la ejecución en un dispositivo específico, etc.)

__call__

< >

( image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]height: int = 512width: int = 512num_inference_steps: int = 100guidance_scale: float = 4.0num_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']**kwargs ) → ImagePipelineOutput or tuple

Parámetros

  • image_embeds (torch.Tensor o list[torch.Tensor]) — Las incrustaciones de imagen de clip para el prompt de texto, que se utilizarán para condicionar la generación de la imagen.
  • negative_image_embeds (torch.Tensor o list[torch.Tensor]) — Los embeddings de imagen de clip para el prompt de texto negativo, se usarán para condicionar la generación de la imagen.
  • height (int, opcional, valor predeterminado 512) — La altura en píxeles de la imagen generada.
  • width (int, opcional, valor predeterminado 512) — El ancho en píxeles de la imagen generada.
  • num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendo guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al prompt de texto, generalmente a costa de una menor calidad de imagen.
  • num_images_per_prompt (int, opcional, valor predeterminado 1) — El número de imágenes que se generarán por indicación.
  • generator (torch.Generator o list[torch.Generator], opcional) — Un generador o una lista de generadores de torch para hacer la generación determinista.
  • latents (torch.Tensor, opcional) — Latentes ruidosos pregenerados, muestreados de una distribución gaussiana, que se usarán como entradas para la generación de imágenes. Se pueden utilizar para ajustar la misma generación con diferentes prompts. Si no se proporcionan, se generará un tensor de latentes mediante muestreo usando el generator aleatorio suministrado.
  • output_type (str, opcional, valor predeterminado "pil") — El formato de salida de la imagen generada. Elija entre: "pil" (PIL.Image.Image), "np" (np.array) o "pt" (torch.Tensor).
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ImagePipelineOutput en lugar de una tupla simple.
  • callback_on_step_end (Callable, opcional) — Una función que se llama al final de cada paso de desruido durante la inferencia. La función se llama con los siguientes argumentos: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs incluirá una lista de todos los tensores especificados por callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, opcional) — La lista de entradas de tensor para la función callback_on_step_end. Los tensores especificados en la lista se pasarán como argumento callback_kwargs. Solo podrás incluir variables listadas en el atributo ._callback_tensor_inputs de tu clase de pipeline.

Devuelve

ImagePipelineOutput o tuple

Función invocada al llamar a la pipeline para la generación.

Ejemplos:

>>> from diffusers import KandinskyV22Pipeline, KandinskyV22PriorPipeline
>>> import torch

>>> pipe_prior = KandinskyV22PriorPipeline.from_pretrained("kandinsky-community/kandinsky-2-2-prior")
>>> pipe_prior.to("cuda")
>>> prompt = "red cat, 4k photo"
>>> out = pipe_prior(prompt)
>>> image_emb = out.image_embeds
>>> zero_image_emb = out.negative_image_embeds
>>> pipe = KandinskyV22Pipeline.from_pretrained("kandinsky-community/kandinsky-2-2-decoder")
>>> pipe.to("cuda")
>>> image = pipe(
...     image_embeds=image_emb,
...     negative_image_embeds=zero_image_emb,
...     height=768,
...     width=768,
...     num_inference_steps=50,
... ).images
>>> image[0].save("cat.png")

KandinskyV22CombinedPipeline

clase diffusers.KandinskyV22CombinedPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModelprior_prior: PriorTransformerprior_image_encoder: CLIPVisionModelWithProjectionprior_text_encoder: CLIPTextModelWithProjectionprior_tokenizer: CLIPTokenizerprior_scheduler: UnCLIPSchedulerprior_image_processor: CLIPImageProcessorPil )

Parámetros

  • scheduler (DDIMScheduler | DDPMScheduler) — Un scheduler para usar en combinación con unet para generar latentes de imagen.
  • unet (UNet2DConditionModel) — Arquitectura U-Net condicional para desruidar el embedding de la imagen.
  • movq (VQModel) — Decodificador MoVQ para generar la imagen a partir de los latentes.
  • prior_prior (PriorTransformer) — El prior unCLIP canónico para aproximar el embedding de imagen a partir del embedding de texto.
  • prior_image_encoder (CLIPVisionModelWithProjection) — Codificador de imágenes congelado.
  • prior_text_encoder (CLIPTextModelWithProjection) — Codificador de texto congelado.
  • prior_tokenizer (CLIPTokenizer) — Tokenizer de la clase CLIPTokenizer.
  • prior_scheduler (UnCLIPScheduler) — Un programador para usar en combinación con prior para generar el incrustado de imagen.
  • prior_image_processor (CLIPImageProcessor) — Un image_processor para preprocesar imágenes de clip.

Pipeline combinado para la generación de texto a imagen usando Kandinsky

Este modelo hereda de DiffusionPipeline. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos los pipelines (como la descarga o el guardado, la ejecución en un dispositivo específico, etc.)

__call__

< >

( prompt: str | list[str]negative_prompt: str | list[str] | None = Nonenum_inference_steps: int = 100guidance_scale: float = 4.0num_images_per_prompt: int = 1height: int = 512width: int = 512prior_guidance_scale: float = 4.0prior_num_inference_steps: int = 25generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'callback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = Nonecallback_steps: int = 1return_dict: bool = Trueprior_callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Noneprior_callback_on_step_end_tensor_inputs: list = ['latents']callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] ) → ImagePipelineOutput or tuple

Parámetros

  • prompt (str o list[str]) — El prompt o los prompts para guiar la generación de la imagen.
  • negative_prompt (str o list[str], opcional) — El prompt o los prompts que no deben guiar la generación de la imagen. Se ignora cuando no se usa guía (es decir, se ignora si guidance_scale es menor que 1).
  • num_images_per_prompt (int, opcional, valor predeterminado 1) — El número de imágenes que se generarán por indicación.
  • num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • height (int, opcional, valor predeterminado 512) — La altura en píxeles de la imagen generada.
  • width (int, opcional, valor predeterminado 512) — El ancho en píxeles de la imagen generada.
  • prior_guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía tal como se define en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 de Imagen Paper. La escala de guía se habilita al establecer guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al texto prompt, generalmente a costa de una menor calidad de imagen.
  • prior_num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendo guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al prompt de texto, generalmente a costa de una menor calidad de imagen.
  • generator (torch.Generator o list[torch.Generator], opcional) — Un generador o una lista de generadores de torch para hacer la generación determinista.
  • latents (torch.Tensor, opcional) — Latentes ruidosos pregenerados, muestreados de una distribución gaussiana, que se usarán como entradas para la generación de imágenes. Se pueden utilizar para ajustar la misma generación con diferentes prompts. Si no se proporcionan, se generará un tensor de latentes mediante muestreo usando el generator aleatorio suministrado.
  • output_type (str, opcional, valor predeterminado "pil") — El formato de salida de la imagen generada. Elija entre: "pil" (PIL.Image.Image), "np" (np.array) o "pt" (torch.Tensor).
  • callback (Callable, opcional) — Una función que se llama cada callback_steps pasos durante la inferencia. La función se llama con los siguientes argumentos: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int, opcional, valor predeterminado 1) — La frecuencia con la que se llama a la función callback. Si no se especifica, la callback se llama en cada paso.
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ImagePipelineOutput en lugar de una tupla simple.
  • prior_callback_on_step_end (Callable, opcional) — Una función que se llama al final de cada paso de denoising durante la inferencia del pipeline prior. La función se llama con los siguientes argumentos: prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).
  • prior_callback_on_step_end_tensor_inputs (list, opcional) — La lista de entradas de tensor para la función prior_callback_on_step_end. Los tensores especificados en la lista se pasarán como argumento callback_kwargs. Solo podrá incluir variables listadas en el atributo ._callback_tensor_inputs de su clase de pipeline prior.
  • callback_on_step_end (Callable, opcional) — Una función que se llama al final de cada paso de desruido durante la inferencia de la pipeline del decodificador. La función se llama con los siguientes argumentos: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs incluirá una lista de todos los tensores especificados por callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, opcional) — La lista de entradas de tensor para la función callback_on_step_end. Los tensores especificados en la lista se pasarán como argumento callback_kwargs. Solo podrás incluir variables listadas en el atributo ._callback_tensor_inputs de tu clase de pipeline.

Devuelve

ImagePipelineOutput o tuple

Función invocada al llamar a la pipeline para la generación.

Ejemplos:

from diffusers import AutoPipelineForText2Image
import torch

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

prompt = "A lion in galaxies, spirals, nebulae, stars, smoke, iridescent, intricate detail, octane render, 8k"

image = pipe(prompt=prompt, num_inference_steps=25).images[0]

enable_sequential_cpu_offload

< >

( gpu_id: int | None = Nonedevice: typing.Union[torch.device, str] = None )

Descarga todos los modelos a la CPU usando accelerate, reduciendo significativamente el uso de memoria. Al llamarlo, unet, text_encoder, vae y safety checker guardan sus state dicts en la CPU y luego se mueven a un torch.device('meta') and loaded to GPU only when their specific submodule has itsforwardmethod called. Note that offloading happens on a submodule basis. Memory savings are higher than withenable_model_cpu_offload`, but performance is lower.

KandinskyV22ControlnetPipeline

clase diffusers.KandinskyV22ControlnetPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

Parámetros

  • scheduler (DDIMScheduler) — Un programador para usar en combinación con unet para generar latentes de imagen.
  • unet (UNet2DConditionModel) — Arquitectura U-Net condicional para desruidar el embedding de la imagen.
  • movq (VQModel) — Decodificador MoVQ para generar la imagen a partir de los latentes.

Pipeline para la generación de imágenes a partir de texto usando Kandinsky

Este modelo hereda de DiffusionPipeline. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos los pipelines (como la descarga o el guardado, la ejecución en un dispositivo específico, etc.)

__call__

< >

( image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]hint: Tensorheight: int = 512width: int = 512num_inference_steps: int = 100guidance_scale: float = 4.0num_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'callback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = Nonecallback_steps: int = 1return_dict: bool = True ) → ImagePipelineOutput or tuple

Parámetros

  • hint (torch.Tensor) — La condición de controlnet.
  • image_embeds (torch.Tensor o list[torch.Tensor]) — Las incrustaciones de imagen de clip para el prompt de texto, que se utilizarán para condicionar la generación de la imagen.
  • negative_image_embeds (torch.Tensor o list[torch.Tensor]) — Los embeddings de imagen de clip para el prompt de texto negativo, se usarán para condicionar la generación de la imagen.
  • height (int, opcional, valor predeterminado 512) — La altura en píxeles de la imagen generada.
  • width (int, opcional, valor predeterminado 512) — El ancho en píxeles de la imagen generada.
  • num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendo guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al prompt de texto, generalmente a costa de una menor calidad de imagen.
  • num_images_per_prompt (int, opcional, valor predeterminado 1) — El número de imágenes que se generarán por indicación.
  • generator (torch.Generator o list[torch.Generator], opcional) — Un generador o una lista de generadores de torch para hacer la generación determinista.
  • latents (torch.Tensor, opcional) — Latentes ruidosos pregenerados, muestreados de una distribución gaussiana, que se usarán como entradas para la generación de imágenes. Se pueden utilizar para ajustar la misma generación con diferentes prompts. Si no se proporcionan, se generará un tensor de latentes mediante muestreo usando el generator aleatorio suministrado.
  • output_type (str, opcional, valor predeterminado "pil") — El formato de salida de la imagen generada. Elija entre: "pil" (PIL.Image.Image), "np" (np.array) o "pt" (torch.Tensor).
  • callback (Callable, opcional) — Una función que se llama cada callback_steps pasos durante la inferencia. La función se llama con los siguientes argumentos: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int, opcional, valor predeterminado 1) — La frecuencia con la que se llama a la función callback. Si no se especifica, la callback se llama en cada paso.
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ImagePipelineOutput en lugar de una tupla simple.

Devuelve

ImagePipelineOutput o tuple

Función invocada al llamar a la pipeline para la generación.

Ejemplos:

KandinskyV22PriorEmb2EmbPipeline

clase diffusers.KandinskyV22PriorEmb2EmbPipeline

< >

( prior: PriorTransformerimage_encoder: CLIPVisionModelWithProjectiontext_encoder: CLIPTextModelWithProjectiontokenizer: CLIPTokenizerscheduler: UnCLIPSchedulerimage_processor: CLIPImageProcessorPil )

Parámetros

  • prior (PriorTransformer) — El prior unCLIP canónico para aproximar el embedding de imagen a partir del embedding de texto.
  • image_encoder (CLIPVisionModelWithProjection) — Codificador de imágenes congelado.
  • text_encoder (CLIPTextModelWithProjection) — Codificador de texto congelado.
  • tokenizer (CLIPTokenizer) — Tokenizer de la clase CLIPTokenizer.
  • scheduler (UnCLIPScheduler) — Un programador para usar en combinación con prior para generar el incrustado de imagen.

Pipeline para generar un prior de imagen para Kandinsky

Este modelo hereda de DiffusionPipeline. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos los pipelines (como la descarga o el guardado, la ejecución en un dispositivo específico, etc.)

__call__

< >

( prompt: str | list[str]image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]]strength: float = 0.3negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int = 1num_inference_steps: int = 25generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneguidance_scale: float = 4.0output_type: str | None = 'pt'return_dict: bool = True ) → KandinskyPriorPipelineOutput or tuple

Parámetros

  • prompt (str o list[str]) — El prompt o los prompts para guiar la generación de la imagen.
  • image (torch.Tensor, PIL.Image.Image, list[torch.Tensor] or list[PIL.Image.Image]) — Image, or tensor representing an image batch, that will be used as the starting point for the image embedding. Can also accept image latents as image, if passing latents directly, it will not be encoded again.
  • strength (float, opcional, valor predeterminado 0.8) — Conceptualmente, indica en qué medida se debe transformar la image de referencia. Debe estar entre 0 y 1. image se utilizará como punto de partida, añadiendo más ruido a medida que aumenta el strength. El número de pasos de desruido depende de la cantidad de ruido añadido inicialmente.
  • negative_prompt (str o list[str], opcional) — El prompt o los prompts que no deben guiar la generación de la imagen. Se ignora cuando no se usa guía (es decir, se ignora si guidance_scale es menor que 1).
  • num_images_per_prompt (int, opcional, valor predeterminado 1) — El número de imágenes que se generarán por indicación.
  • num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • generator (torch.Generator o list[torch.Generator], opcional) — Un generador o una lista de generadores de torch para hacer la generación determinista.
  • guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendo guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al prompt de texto, generalmente a costa de una menor calidad de imagen.
  • output_type (str, opcional, valor predeterminado "pt") — El formato de salida de la imagen generada. Elija entre: "np" (np.array) o "pt" (torch.Tensor).
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ImagePipelineOutput en lugar de una tupla simple.

Devuelve

KandinskyPriorPipelineOutput o tuple

Función invocada al llamar a la pipeline para la generación.

Ejemplos:

>>> from diffusers import KandinskyV22Pipeline, KandinskyV22PriorEmb2EmbPipeline
>>> import torch

>>> pipe_prior = KandinskyPriorPipeline.from_pretrained(
...     "kandinsky-community/kandinsky-2-2-prior", torch_dtype=torch.float16
... )
>>> pipe_prior.to("cuda")

>>> prompt = "red cat, 4k photo"
>>> img = load_image(
...     "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
...     "/kandinsky/cat.png"
... )
>>> image_emb, nagative_image_emb = pipe_prior(prompt, image=img, strength=0.2).to_tuple()

>>> pipe = KandinskyPipeline.from_pretrained(
...     "kandinsky-community/kandinsky-2-2-decoder, torch_dtype=torch.float16"
... )
>>> pipe.to("cuda")

>>> image = pipe(
...     image_embeds=image_emb,
...     negative_image_embeds=negative_image_emb,
...     height=768,
...     width=768,
...     num_inference_steps=100,
... ).images

>>> image[0].save("cat.png")

interpolate

< >

( images_and_prompts: listweights: listnum_images_per_prompt: int = 1num_inference_steps: int = 25generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Nonenegative_prior_prompt: str | None = Nonenegative_prompt: str = ''guidance_scale: float = 4.0device = None ) → KandinskyPriorPipelineOutput or tuple

Parámetros

  • images_and_prompts (list[str | PIL.Image.Image | torch.Tensor]) — lista de prompts e imágenes para guiar la generación de imágenes.
  • weights — (list[float]): lista de pesos para cada condición en images_and_prompts
  • num_images_per_prompt (int, opcional, valor predeterminado 1) — El número de imágenes que se generarán por indicación.
  • num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • generator (torch.Generator o list[torch.Generator], opcional) — Un generador o una lista de generadores de torch para hacer la generación determinista.
  • latents (torch.Tensor, opcional) — Latentes ruidosos pregenerados, muestreados de una distribución gaussiana, que se usarán como entradas para la generación de imágenes. Se pueden utilizar para ajustar la misma generación con diferentes prompts. Si no se proporcionan, se generará un tensor de latentes mediante muestreo usando el generator aleatorio suministrado.
  • negative_prior_prompt (str, opcional) — El prompt que no debe guiar el proceso de difusión previo. Se ignora cuando no se usa guía (es decir, se ignora si guidance_scale es menor que 1).
  • negative_prompt (str o list[str], opcional) — El prompt que no debe guiar la generación de la imagen. Se ignora cuando no se usa guía (es decir, se ignora si guidance_scale es menor que 1).
  • guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendo guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al prompt de texto, generalmente a costa de una menor calidad de imagen.

Devuelve

KandinskyPriorPipelineOutput o tuple

Función invocada al usar el pipeline anterior para la interpolación.

Ejemplos:

>>> from diffusers import KandinskyV22PriorEmb2EmbPipeline, KandinskyV22Pipeline
>>> from diffusers.utils import load_image
>>> import PIL

>>> import torch
>>> from torchvision import transforms

>>> 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]
>>> image_emb, zero_image_emb = 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(
...     image_embeds=image_emb,
...     negative_image_embeds=zero_image_emb,
...     height=768,
...     width=768,
...     num_inference_steps=150,
... ).images[0]

>>> image.save("starry_cat.png")

KandinskyV22Img2ImgPipeline

clase diffusers.KandinskyV22Img2ImgPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

Parámetros

  • scheduler (DDIMScheduler) — Un programador para usar en combinación con unet para generar latentes de imagen.
  • unet (UNet2DConditionModel) — Arquitectura U-Net condicional para desruidar el embedding de la imagen.
  • movq (VQModel) — Decodificador MoVQ para generar la imagen a partir de los latentes.

Pipeline para la generación de imagen a imagen usando Kandinsky

Este modelo hereda de DiffusionPipeline. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos los pipelines (como la descarga o el guardado, la ejecución en un dispositivo específico, etc.)

__call__

< >

( image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]]negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]height: int = 512width: int = 512num_inference_steps: int = 100guidance_scale: float = 4.0strength: float = 0.3num_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']**kwargs ) → ImagePipelineOutput or tuple

Parámetros

  • image_embeds (torch.Tensor o list[torch.Tensor]) — Las incrustaciones de imagen de clip para el prompt de texto, que se utilizarán para condicionar la generación de la imagen.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] o list[np.ndarray]) — Image o tensor que representa un lote de imágenes, que se utilizará como punto de partida para el proceso. También puede aceptar latentes de imagen como image; si se pasan latentes directamente, no se volverá a codificar.
  • strength (float, opcional, valor predeterminado 0.8) — Conceptualmente, indica en qué medida se debe transformar la image de referencia. Debe estar entre 0 y 1. image se utilizará como punto de partida, añadiendo más ruido a medida que aumenta el strength. El número de pasos de desruido depende de la cantidad de ruido añadido inicialmente. Cuando strength es 1, el ruido añadido será máximo y el proceso de desruido se ejecutará durante el número completo de iteraciones especificado en num_inference_steps. Un valor de 1, por lo tanto, ignora esencialmente image.
  • negative_image_embeds (torch.Tensor o list[torch.Tensor]) — Los embeddings de imagen de clip para el prompt de texto negativo, se usarán para condicionar la generación de la imagen.
  • height (int, opcional, valor predeterminado 512) — La altura en píxeles de la imagen generada.
  • width (int, opcional, valor predeterminado 512) — El ancho en píxeles de la imagen generada.
  • num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendo guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al prompt de texto, generalmente a costa de una menor calidad de imagen.
  • num_images_per_prompt (int, opcional, valor predeterminado 1) — El número de imágenes que se generarán por indicación.
  • generator (torch.Generator o list[torch.Generator], opcional) — Un generador o una lista de generadores de torch para hacer la generación determinista.
  • output_type (str, opcional, valor predeterminado "pil") — El formato de salida de la imagen generada. Elija entre: "pil" (PIL.Image.Image), "np" (np.array) o "pt" (torch.Tensor).
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ImagePipelineOutput en lugar de una tupla simple.
  • callback_on_step_end (Callable, opcional) — Una función que se llama al final de cada paso de desruido durante la inferencia. La función se llama con los siguientes argumentos: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs incluirá una lista de todos los tensores especificados por callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, opcional) — La lista de entradas de tensor para la función callback_on_step_end. Los tensores especificados en la lista se pasarán como argumento callback_kwargs. Solo podrás incluir variables listadas en el atributo ._callback_tensor_inputs de tu clase de pipeline.

Devuelve

ImagePipelineOutput o tuple

Función invocada al llamar a la pipeline para la generación.

Ejemplos:

KandinskyV22Img2ImgCombinedPipeline

clase diffusers.KandinskyV22Img2ImgCombinedPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModelprior_prior: PriorTransformerprior_image_encoder: CLIPVisionModelWithProjectionprior_text_encoder: CLIPTextModelWithProjectionprior_tokenizer: CLIPTokenizerprior_scheduler: UnCLIPSchedulerprior_image_processor: CLIPImageProcessorPil )

Parámetros

  • scheduler (DDIMScheduler | DDPMScheduler) — Un scheduler para usar en combinación con unet para generar latentes de imagen.
  • unet (UNet2DConditionModel) — Arquitectura U-Net condicional para desruidar el embedding de la imagen.
  • movq (VQModel) — Decodificador MoVQ para generar la imagen a partir de los latentes.
  • prior_prior (PriorTransformer) — El prior unCLIP canónico para aproximar el embedding de imagen a partir del embedding de texto.
  • prior_image_encoder (CLIPVisionModelWithProjection) — Codificador de imágenes congelado.
  • prior_text_encoder (CLIPTextModelWithProjection) — Codificador de texto congelado.
  • prior_tokenizer (CLIPTokenizer) — Tokenizer de la clase CLIPTokenizer.
  • prior_scheduler (UnCLIPScheduler) — Un programador para usar en combinación con prior para generar el incrustado de imagen.
  • prior_image_processor (CLIPImageProcessor) — Un image_processor para preprocesar imágenes de clip.

Pipeline combinado para la generación de imagen a imagen usando Kandinsky

Este modelo hereda de DiffusionPipeline. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos los pipelines (como la descarga o el guardado, la ejecución en un dispositivo específico, etc.)

__call__

< >

( prompt: str | list[str]image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]]negative_prompt: str | list[str] | None = Nonenum_inference_steps: int = 100guidance_scale: float = 4.0strength: float = 0.3num_images_per_prompt: int = 1height: int = 512width: int = 512prior_guidance_scale: float = 4.0prior_num_inference_steps: int = 25generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'callback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = Nonecallback_steps: int = 1return_dict: bool = Trueprior_callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Noneprior_callback_on_step_end_tensor_inputs: list = ['latents']callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents'] ) → ImagePipelineOutput or tuple

Parámetros

  • prompt (str o list[str]) — El prompt o los prompts para guiar la generación de la imagen.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] o list[np.ndarray]) — Image o tensor que representa un lote de imágenes, que se utilizará como punto de partida para el proceso. También puede aceptar latentes de imagen como image; si se pasan latentes directamente, no se volverá a codificar.
  • negative_prompt (str o list[str], opcional) — El prompt o los prompts que no deben guiar la generación de la imagen. Se ignora cuando no se usa guía (es decir, se ignora si guidance_scale es menor que 1).
  • num_images_per_prompt (int, opcional, valor predeterminado 1) — El número de imágenes que se generarán por indicación.
  • guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendo guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al prompt de texto, generalmente a costa de una menor calidad de imagen.
  • strength (float, opcional, valor predeterminado 0.3) — Conceptualmente, indica en qué medida se debe transformar la image de referencia. Debe estar entre 0 y 1. image se utilizará como punto de partida, añadiendo más ruido a medida que aumenta el strength. El número de pasos de desruido depende de la cantidad de ruido añadido inicialmente. Cuando strength es 1, el ruido añadido será máximo y el proceso de desruido se ejecutará durante el número completo de iteraciones especificado en num_inference_steps. Un valor de 1, por lo tanto, ignora esencialmente image.
  • num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • height (int, opcional, valor predeterminado 512) — La altura en píxeles de la imagen generada.
  • width (int, opcional, valor predeterminado 512) — El ancho en píxeles de la imagen generada.
  • prior_guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía tal como se define en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 de Imagen Paper. La escala de guía se habilita al establecer guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al texto prompt, generalmente a costa de una menor calidad de imagen.
  • prior_num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • generator (torch.Generator o list[torch.Generator], opcional) — Un generador o una lista de generadores de torch para hacer la generación determinista.
  • latents (torch.Tensor, opcional) — Latentes ruidosos pregenerados, muestreados de una distribución gaussiana, que se usarán como entradas para la generación de imágenes. Se pueden utilizar para ajustar la misma generación con diferentes prompts. Si no se proporcionan, se generará un tensor de latentes mediante muestreo usando el generator aleatorio suministrado.
  • output_type (str, opcional, valor predeterminado "pil") — El formato de salida de la imagen generada. Elija entre: "pil" (PIL.Image.Image), "np" (np.array) o "pt" (torch.Tensor).
  • callback (Callable, opcional) — Una función que se llama cada callback_steps pasos durante la inferencia. La función se llama con los siguientes argumentos: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int, opcional, valor predeterminado 1) — La frecuencia con la que se llama a la función callback. Si no se especifica, la callback se llama en cada paso.
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ImagePipelineOutput en lugar de una tupla simple.
  • prior_callback_on_step_end (Callable, opcional) — Una función que se llama al final de cada paso de denoising durante la inferencia del pipeline prior. La función se llama con los siguientes argumentos: prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).
  • prior_callback_on_step_end_tensor_inputs (list, opcional) — La lista de entradas de tensor para la función prior_callback_on_step_end. Los tensores especificados en la lista se pasarán como argumento callback_kwargs. Solo podrá incluir variables listadas en el atributo ._callback_tensor_inputs de su clase de pipeline prior.
  • callback_on_step_end (Callable, opcional) — Una función que se llama al final de cada paso de desruido durante la inferencia de la pipeline del decodificador. La función se llama con los siguientes argumentos: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs incluirá una lista de todos los tensores especificados por callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, opcional) — La lista de entradas de tensor para la función callback_on_step_end. Los tensores especificados en la lista se pasarán como argumento callback_kwargs. Solo podrás incluir variables listadas en el atributo ._callback_tensor_inputs de tu clase de pipeline.

Devuelve

ImagePipelineOutput o tuple

Función invocada al llamar a la pipeline para la generación.

Ejemplos:

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-2-decoder", torch_dtype=torch.float16
)
pipe.enable_model_cpu_offload()

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

url = "https://raw.githubusercontent.com/CompVis/stable-diffusion/main/assets/stable-samples/img2img/sketch-mountains-input.jpg"

response = requests.get(url)
image = Image.open(BytesIO(response.content)).convert("RGB")
image.thumbnail((768, 768))

image = pipe(prompt=prompt, image=original_image, num_inference_steps=25).images[0]

enable_model_cpu_offload

< >

( gpu_id: int | None = Nonedevice: typing.Union[torch.device, str] = None )

Descarga todos los modelos a la CPU usando accelerate, reduciendo el uso de memoria con un bajo impacto en el rendimiento. En comparación con enable_sequential_cpu_offload, este método mueve un modelo completo a la GPU a la vez cuando se llama a su método forward, y el modelo permanece en la GPU hasta que se ejecute el siguiente modelo. El ahorro de memoria es menor que con enable_sequential_cpu_offload, pero el rendimiento es mucho mejor debido a la ejecución iterativa de unet.

enable_sequential_cpu_offload

< >

( gpu_id: int | None = Nonedevice: typing.Union[torch.device, str] = None )

Descarga todos los modelos a la CPU usando accelerate, reduciendo significativamente el uso de memoria. Al llamarlo, unet, text_encoder, vae y safety checker guardan sus state dicts en la CPU y luego se mueven a un torch.device('meta') and loaded to GPU only when their specific submodule has itsforwardmethod called. Note that offloading happens on a submodule basis. Memory savings are higher than withenable_model_cpu_offload`, but performance is lower.

KandinskyV22ControlnetImg2ImgPipeline

clase diffusers.KandinskyV22ControlnetImg2ImgPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

Parámetros

  • scheduler (DDIMScheduler) — Un programador para usar en combinación con unet para generar latentes de imagen.
  • unet (UNet2DConditionModel) — Arquitectura U-Net condicional para desruidar el embedding de la imagen.
  • movq (VQModel) — Decodificador MoVQ para generar la imagen a partir de los latentes.

Pipeline para la generación de imagen a imagen usando Kandinsky

Este modelo hereda de DiffusionPipeline. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos los pipelines (como la descarga o el guardado, la ejecución en un dispositivo específico, etc.)

__call__

< >

( image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]]negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]hint: Tensorheight: int = 512width: int = 512num_inference_steps: int = 100guidance_scale: float = 4.0strength: float = 0.3num_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneoutput_type: str | None = 'pil'callback: typing.Optional[typing.Callable[[int, int, torch.Tensor], NoneType]] = Nonecallback_steps: int = 1return_dict: bool = True ) → ImagePipelineOutput or tuple

Parámetros

  • image_embeds (torch.Tensor o list[torch.Tensor]) — Las incrustaciones de imagen de clip para el prompt de texto, que se utilizarán para condicionar la generación de la imagen.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] o list[np.ndarray]) — Image o tensor que representa un lote de imágenes, que se utilizará como punto de partida para el proceso. También puede aceptar latentes de imagen como image; si se pasan latentes directamente, no se volverá a codificar.
  • strength (float, opcional, valor predeterminado 0.8) — Conceptualmente, indica en qué medida se debe transformar la image de referencia. Debe estar entre 0 y 1. image se utilizará como punto de partida, añadiendo más ruido a medida que aumenta el strength. El número de pasos de desruido depende de la cantidad de ruido añadido inicialmente. Cuando strength es 1, el ruido añadido será máximo y el proceso de desruido se ejecutará durante el número completo de iteraciones especificado en num_inference_steps. Un valor de 1, por lo tanto, ignora esencialmente image.
  • hint (torch.Tensor) — La condición de controlnet.
  • negative_image_embeds (torch.Tensor o list[torch.Tensor]) — Los embeddings de imagen de clip para el prompt de texto negativo, se usarán para condicionar la generación de la imagen.
  • height (int, opcional, valor predeterminado 512) — La altura en píxeles de la imagen generada.
  • width (int, opcional, valor predeterminado 512) — El ancho en píxeles de la imagen generada.
  • num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendo guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al prompt de texto, generalmente a costa de una menor calidad de imagen.
  • num_images_per_prompt (int, opcional, valor predeterminado 1) — El número de imágenes que se generarán por indicación.
  • generator (torch.Generator o list[torch.Generator], opcional) — Un generador o una lista de generadores de torch para hacer la generación determinista.
  • output_type (str, opcional, valor predeterminado "pil") — El formato de salida de la imagen generada. Elija entre: "pil" (PIL.Image.Image), "np" (np.array) o "pt" (torch.Tensor).
  • callback (Callable, opcional) — Una función que se llama cada callback_steps pasos durante la inferencia. La función se llama con los siguientes argumentos: callback(step: int, timestep: int, latents: torch.Tensor).
  • callback_steps (int, opcional, valor predeterminado 1) — La frecuencia con la que se llama a la función callback. Si no se especifica, la callback se llama en cada paso.
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ImagePipelineOutput en lugar de una tupla simple.

Devuelve

ImagePipelineOutput o tuple

Función invocada al llamar a la pipeline para la generación.

Ejemplos:

KandinskyV22InpaintPipeline

clase diffusers.KandinskyV22InpaintPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )

Parámetros

  • scheduler (DDIMScheduler) — Un programador para usar en combinación con unet para generar latentes de imagen.
  • unet (UNet2DConditionModel) — Arquitectura U-Net condicional para desruidar el embedding de la imagen.
  • movq (VQModel) — Decodificador MoVQ para generar la imagen a partir de los latentes.

Pipeline para el inpainting de imágenes guiado por texto usando Kandinsky2.1

Este modelo hereda de DiffusionPipeline. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos los pipelines (como la descarga o el guardado, la ejecución en un dispositivo específico, etc.)

__call__

< >

( image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]image: typing.Union[torch.Tensor, PIL.Image.Image]mask_image: typing.Union[PIL.Image.Image, torch.Tensor, numpy.ndarray]negative_image_embeds: typing.Union[torch.Tensor, list[torch.Tensor]]height: int = 512width: int = 512num_inference_steps: int = 100guidance_scale: float = 4.0num_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']**kwargs ) → ImagePipelineOutput or tuple

Parámetros

  • image_embeds (torch.Tensor o list[torch.Tensor]) — Las incrustaciones de imagen de clip para el prompt de texto, que se utilizarán para condicionar la generación de la imagen.
  • image (PIL.Image.Image) — Image o tensor que representa un lote de imágenes que se someterá a inpainting, es decir, partes de la imagen se enmascararán con mask_image y se repintarán según prompt.
  • mask_image (np.array) — Tensor que representa un lote de imágenes, para enmascarar image. Los píxeles blancos de la máscara se repintarán, mientras que los píxeles negros se conservarán. Si mask_image es una imagen PIL, se convertirá a un solo canal (luminancia) antes de su uso. Si es un tensor, debe contener un canal de color (L) en lugar de 3, por lo que la forma esperada sería (B, H, W, 1).
  • negative_image_embeds (torch.Tensor o list[torch.Tensor]) — Los embeddings de imagen de clip para el prompt de texto negativo, se usarán para condicionar la generación de la imagen.
  • height (int, opcional, valor predeterminado 512) — La altura en píxeles de la imagen generada.
  • width (int, opcional, valor predeterminado 512) — El ancho en píxeles de la imagen generada.
  • num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendo guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al prompt de texto, generalmente a costa de una menor calidad de imagen.
  • num_images_per_prompt (int, opcional, valor predeterminado 1) — El número de imágenes que se generarán por indicación.
  • generator (torch.Generator o list[torch.Generator], opcional) — Un generador o una lista de generadores de torch para hacer la generación determinista.
  • latents (torch.Tensor, opcional) — Latentes ruidosos pregenerados, muestreados de una distribución gaussiana, que se usarán como entradas para la generación de imágenes. Se pueden utilizar para ajustar la misma generación con diferentes prompts. Si no se proporcionan, se generará un tensor de latentes mediante muestreo usando el generator aleatorio suministrado.
  • output_type (str, opcional, valor predeterminado "pil") — El formato de salida de la imagen generada. Elija entre: "pil" (PIL.Image.Image), "np" (np.array) o "pt" (torch.Tensor).
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ImagePipelineOutput en lugar de una tupla simple.
  • callback_on_step_end (Callable, opcional) — Una función que se llama al final de cada paso de desruido durante la inferencia. La función se llama con los siguientes argumentos: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs incluirá una lista de todos los tensores especificados por callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, opcional) — La lista de entradas de tensor para la función callback_on_step_end. Los tensores especificados en la lista se pasarán como argumento callback_kwargs. Solo podrás incluir variables listadas en el atributo ._callback_tensor_inputs de tu clase de pipeline.

Devuelve

ImagePipelineOutput o tuple

Función invocada al llamar a la pipeline para la generación.

Ejemplos:

KandinskyV22InpaintCombinedPipeline

clase diffusers.KandinskyV22InpaintCombinedPipeline

< >

( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModelprior_prior: PriorTransformerprior_image_encoder: CLIPVisionModelWithProjectionprior_text_encoder: CLIPTextModelWithProjectionprior_tokenizer: CLIPTokenizerprior_scheduler: UnCLIPSchedulerprior_image_processor: CLIPImageProcessorPil )

Parámetros

  • scheduler (DDIMScheduler | DDPMScheduler) — Un scheduler para usar en combinación con unet para generar latentes de imagen.
  • unet (UNet2DConditionModel) — Arquitectura U-Net condicional para desruidar el embedding de la imagen.
  • movq (VQModel) — Decodificador MoVQ para generar la imagen a partir de los latentes.
  • prior_prior (PriorTransformer) — El prior unCLIP canónico para aproximar el embedding de imagen a partir del embedding de texto.
  • prior_image_encoder (CLIPVisionModelWithProjection) — Codificador de imágenes congelado.
  • prior_text_encoder (CLIPTextModelWithProjection) — Codificador de texto congelado.
  • prior_tokenizer (CLIPTokenizer) — Tokenizer de la clase CLIPTokenizer.
  • prior_scheduler (UnCLIPScheduler) — Un programador para usar en combinación con prior para generar el incrustado de imagen.
  • prior_image_processor (CLIPImageProcessor) — Un image_processor para preprocesar imágenes de clip.

Pipeline combinado para la generación de inpainting con Kandinsky

Este modelo hereda de DiffusionPipeline. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos los pipelines (como la descarga o el guardado, la ejecución en un dispositivo específico, etc.)

__call__

< >

( prompt: str | list[str]image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]]mask_image: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]]negative_prompt: str | list[str] | None = Nonenum_inference_steps: int = 100guidance_scale: float = 4.0num_images_per_prompt: int = 1height: int = 512width: int = 512prior_guidance_scale: float = 4.0prior_num_inference_steps: int = 25generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueprior_callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Noneprior_callback_on_step_end_tensor_inputs: list = ['latents']callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']**kwargs ) → ImagePipelineOutput or tuple

Parámetros

  • prompt (str o list[str]) — El prompt o los prompts para guiar la generación de la imagen.
  • image (torch.Tensor, PIL.Image.Image, np.ndarray, list[torch.Tensor], list[PIL.Image.Image] o list[np.ndarray]) — Image o tensor que representa un lote de imágenes, que se utilizará como punto de partida para el proceso. También puede aceptar latentes de imagen como image; si se pasan latentes directamente, no se volverá a codificar.
  • mask_image (np.array) — Tensor que representa un lote de imágenes, para enmascarar image. Los píxeles blancos de la máscara se repintarán, mientras que los píxeles negros se conservarán. Si mask_image es una imagen PIL, se convertirá a un solo canal (luminancia) antes de su uso. Si es un tensor, debe contener un canal de color (L) en lugar de 3, por lo que la forma esperada sería (B, H, W, 1).
  • negative_prompt (str o list[str], opcional) — El prompt o los prompts que no deben guiar la generación de la imagen. Se ignora cuando no se usa guía (es decir, se ignora si guidance_scale es menor que 1).
  • num_images_per_prompt (int, opcional, valor predeterminado 1) — El número de imágenes que se generarán por indicación.
  • guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendo guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al prompt de texto, generalmente a costa de una menor calidad de imagen.
  • num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • height (int, opcional, valor predeterminado 512) — La altura en píxeles de la imagen generada.
  • width (int, opcional, valor predeterminado 512) — El ancho en píxeles de la imagen generada.
  • prior_guidance_scale (float, opcional, valor predeterminado 4.0) — Escala de guía tal como se define en Classifier-Free Diffusion Guidance. guidance_scale se define como w de la ecuación 2 de Imagen Paper. La escala de guía se habilita al establecer guidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al texto prompt, generalmente a costa de una menor calidad de imagen.
  • prior_num_inference_steps (int, opcional, valor predeterminado 100) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • generator (torch.Generator o list[torch.Generator], opcional) — Un generador o una lista de generadores de torch para hacer la generación determinista.
  • latents (torch.Tensor, opcional) — Latentes ruidosos pregenerados, muestreados de una distribución gaussiana, que se usarán como entradas para la generación de imágenes. Se pueden utilizar para ajustar la misma generación con diferentes prompts. Si no se proporcionan, se generará un tensor de latentes mediante muestreo usando el generator aleatorio suministrado.
  • output_type (str, opcional, valor predeterminado "pil") — El formato de salida de la imagen generada. Elija entre: "pil" (PIL.Image.Image), "np" (np.array) o "pt" (torch.Tensor).
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ImagePipelineOutput en lugar de una tupla simple.
  • prior_callback_on_step_end (Callable, opcional) — Una función que se llama al final de cada paso de denoising durante la inferencia. La función se llama con los siguientes argumentos: prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).
  • prior_callback_on_step_end_tensor_inputs (list, opcional) — La lista de entradas de tensor para la función prior_callback_on_step_end. Los tensores especificados en la lista se pasarán como argumento callback_kwargs. Solo podrá incluir variables listadas en el atributo ._callback_tensor_inputs de su clase de pipeline.
  • callback_on_step_end (Callable, opcional) — Una función que se llama al final de cada paso de desruido durante la inferencia. La función se llama con los siguientes argumentos: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs incluirá una lista de todos los tensores especificados por callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, opcional) — La lista de entradas de tensor para la función callback_on_step_end. Los tensores especificados en la lista se pasarán como argumento callback_kwargs. Solo podrás incluir variables listadas en el atributo ._callback_tensor_inputs de tu clase de pipeline.

Devuelve

ImagePipelineOutput o tuple

Función invocada al llamar a la pipeline para la generación.

Ejemplos:

from diffusers import AutoPipelineForInpainting
from diffusers.utils import load_image
import torch
import numpy as np

pipe = AutoPipelineForInpainting.from_pretrained(
    "kandinsky-community/kandinsky-2-2-decoder-inpaint", torch_dtype=torch.float16
)
pipe.enable_model_cpu_offload()

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

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)
# Let's mask out an area above the cat's head
mask[:250, 250:-250] = 1

image = pipe(prompt=prompt, image=original_image, mask_image=mask, num_inference_steps=25).images[0]

enable_sequential_cpu_offload

< >

( gpu_id: int | None = Nonedevice: typing.Union[torch.device, str] = None )

Descarga todos los modelos a la CPU usando accelerate, reduciendo significativamente el uso de memoria. Al llamarlo, unet, text_encoder, vae y safety checker guardan sus state dicts en la CPU y luego se mueven a un torch.device('meta') and loaded to GPU only when their specific submodule has itsforwardmethod called. Note that offloading happens on a submodule basis. Memory savings are higher than withenable_model_cpu_offload`, but performance is lower.

Update on GitHub