Diffusers documentation
Kandinsky 2.2
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
< source >( 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 conpriorpara 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__
< source >( 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 (
strolist[str]) — El prompt o los prompts para guiar la generación de la imagen. - negative_prompt (
strolist[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 siguidance_scalees menor que1). - 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.Generatorolist[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 elgeneratoraleatorio suministrado. - guidance_scale (
float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance.guidance_scalese define comowde la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendoguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas alpromptde 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 predeterminadoTrue) — 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_kwargsincluirá una lista de todos los tensores especificados porcallback_on_step_end_tensor_inputs. - callback_on_step_end_tensor_inputs (
list, opcional) — La lista de entradas de tensor para la funcióncallback_on_step_end. Los tensores especificados en la lista se pasarán como argumentocallback_kwargs. Solo podrás incluir variables listadas en el atributo._callback_tensor_inputsde 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
< source >( 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 enimages_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.Generatorolist[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 elgeneratoraleatorio 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 siguidance_scalees menor que1). - negative_prompt (
strolist[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 siguidance_scalees menor que1). - guidance_scale (
float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance.guidance_scalese define comowde la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendoguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas alpromptde 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
< source >( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )
Parámetros
- scheduler (
DDIMScheduler|DDPMScheduler) — Un scheduler para usar en combinación conunetpara 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__
< source >( 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.Tensorolist[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.Tensorolist[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_scalese define comowde la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendoguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas alpromptde 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.Generatorolist[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 elgeneratoraleatorio 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 predeterminadoTrue) — 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_kwargsincluirá una lista de todos los tensores especificados porcallback_on_step_end_tensor_inputs. - callback_on_step_end_tensor_inputs (
list, opcional) — La lista de entradas de tensor para la funcióncallback_on_step_end. Los tensores especificados en la lista se pasarán como argumentocallback_kwargs. Solo podrás incluir variables listadas en el atributo._callback_tensor_inputsde 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
< source >( 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 conunetpara 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 conpriorpara 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__
< source >( 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 (
strolist[str]) — El prompt o los prompts para guiar la generación de la imagen. - negative_prompt (
strolist[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 siguidance_scalees menor que1). - 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_scalese define comowde la ecuación 2 de Imagen Paper. La escala de guía se habilita al establecerguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al textoprompt, 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_scalese define comowde la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendoguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas alpromptde texto, generalmente a costa de una menor calidad de imagen. - generator (
torch.Generatorolist[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 elgeneratoraleatorio 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 cadacallback_stepspasos 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óncallback. Si no se especifica, la callback se llama en cada paso. - return_dict (
bool, opcional, valor predeterminadoTrue) — 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ónprior_callback_on_step_end. Los tensores especificados en la lista se pasarán como argumentocallback_kwargs. Solo podrá incluir variables listadas en el atributo._callback_tensor_inputsde 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_kwargsincluirá una lista de todos los tensores especificados porcallback_on_step_end_tensor_inputs. - callback_on_step_end_tensor_inputs (
list, opcional) — La lista de entradas de tensor para la funcióncallback_on_step_end. Los tensores especificados en la lista se pasarán como argumentocallback_kwargs. Solo podrás incluir variables listadas en el atributo._callback_tensor_inputsde 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
< source >( 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
< source >( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )
Parámetros
- scheduler (DDIMScheduler) —
Un programador para usar en combinación con
unetpara 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__
< source >( 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.Tensorolist[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.Tensorolist[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_scalese define comowde la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendoguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas alpromptde 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.Generatorolist[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 elgeneratoraleatorio 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 cadacallback_stepspasos 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óncallback. Si no se especifica, la callback se llama en cada paso. - return_dict (
bool, opcional, valor predeterminadoTrue) — 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
< source >( 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 conpriorpara 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__
< source >( 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 (
strolist[str]) — El prompt o los prompts para guiar la generación de la imagen. - image (
torch.Tensor,PIL.Image.Image,list[torch.Tensor]orlist[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 asimage, 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 laimagede referencia. Debe estar entre 0 y 1.imagese utilizará como punto de partida, añadiendo más ruido a medida que aumenta elstrength. El número de pasos de desruido depende de la cantidad de ruido añadido inicialmente. - negative_prompt (
strolist[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 siguidance_scalees menor que1). - 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.Generatorolist[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_scalese define comowde la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendoguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas alpromptde 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 predeterminadoTrue) — 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
< source >( 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 enimages_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.Generatorolist[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 elgeneratoraleatorio 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 siguidance_scalees menor que1). - negative_prompt (
strolist[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 siguidance_scalees menor que1). - guidance_scale (
float, opcional, valor predeterminado 4.0) — Escala de guía definida en Classifier-Free Diffusion Guidance.guidance_scalese define comowde la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendoguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas alpromptde 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
< source >( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )
Parámetros
- scheduler (DDIMScheduler) —
Un programador para usar en combinación con
unetpara 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__
< source >( 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.Tensorolist[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]olist[np.ndarray]) —Imageo 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 comoimage; 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 laimagede referencia. Debe estar entre 0 y 1.imagese utilizará como punto de partida, añadiendo más ruido a medida que aumenta elstrength. El número de pasos de desruido depende de la cantidad de ruido añadido inicialmente. Cuandostrengthes 1, el ruido añadido será máximo y el proceso de desruido se ejecutará durante el número completo de iteraciones especificado ennum_inference_steps. Un valor de 1, por lo tanto, ignora esencialmenteimage. - negative_image_embeds (
torch.Tensorolist[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_scalese define comowde la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendoguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas alpromptde 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.Generatorolist[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 predeterminadoTrue) — 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_kwargsincluirá una lista de todos los tensores especificados porcallback_on_step_end_tensor_inputs. - callback_on_step_end_tensor_inputs (
list, opcional) — La lista de entradas de tensor para la funcióncallback_on_step_end. Los tensores especificados en la lista se pasarán como argumentocallback_kwargs. Solo podrás incluir variables listadas en el atributo._callback_tensor_inputsde 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
< source >( 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 conunetpara 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 conpriorpara 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__
< source >( 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 (
strolist[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]olist[np.ndarray]) —Imageo 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 comoimage; si se pasan latentes directamente, no se volverá a codificar. - negative_prompt (
strolist[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 siguidance_scalees menor que1). - 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_scalese define comowde la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendoguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas alpromptde 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 laimagede referencia. Debe estar entre 0 y 1.imagese utilizará como punto de partida, añadiendo más ruido a medida que aumenta elstrength. El número de pasos de desruido depende de la cantidad de ruido añadido inicialmente. Cuandostrengthes 1, el ruido añadido será máximo y el proceso de desruido se ejecutará durante el número completo de iteraciones especificado ennum_inference_steps. Un valor de 1, por lo tanto, ignora esencialmenteimage. - 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_scalese define comowde la ecuación 2 de Imagen Paper. La escala de guía se habilita al establecerguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al textoprompt, 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.Generatorolist[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 elgeneratoraleatorio 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 cadacallback_stepspasos 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óncallback. Si no se especifica, la callback se llama en cada paso. - return_dict (
bool, opcional, valor predeterminadoTrue) — 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ónprior_callback_on_step_end. Los tensores especificados en la lista se pasarán como argumentocallback_kwargs. Solo podrá incluir variables listadas en el atributo._callback_tensor_inputsde 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_kwargsincluirá una lista de todos los tensores especificados porcallback_on_step_end_tensor_inputs. - callback_on_step_end_tensor_inputs (
list, opcional) — La lista de entradas de tensor para la funcióncallback_on_step_end. Los tensores especificados en la lista se pasarán como argumentocallback_kwargs. Solo podrás incluir variables listadas en el atributo._callback_tensor_inputsde 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
< source >( 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
< source >( 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
< source >( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )
Parámetros
- scheduler (DDIMScheduler) —
Un programador para usar en combinación con
unetpara 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__
< source >( 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.Tensorolist[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]olist[np.ndarray]) —Imageo 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 comoimage; 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 laimagede referencia. Debe estar entre 0 y 1.imagese utilizará como punto de partida, añadiendo más ruido a medida que aumenta elstrength. El número de pasos de desruido depende de la cantidad de ruido añadido inicialmente. Cuandostrengthes 1, el ruido añadido será máximo y el proceso de desruido se ejecutará durante el número completo de iteraciones especificado ennum_inference_steps. Un valor de 1, por lo tanto, ignora esencialmenteimage. - hint (
torch.Tensor) — La condición de controlnet. - negative_image_embeds (
torch.Tensorolist[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_scalese define comowde la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendoguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas alpromptde 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.Generatorolist[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 cadacallback_stepspasos 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óncallback. Si no se especifica, la callback se llama en cada paso. - return_dict (
bool, opcional, valor predeterminadoTrue) — 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
< source >( unet: UNet2DConditionModelscheduler: DDPMSchedulermovq: VQModel )
Parámetros
- scheduler (DDIMScheduler) —
Un programador para usar en combinación con
unetpara 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__
< source >( 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.Tensorolist[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) —Imageo tensor que representa un lote de imágenes que se someterá a inpainting, es decir, partes de la imagen se enmascararán conmask_imagey se repintarán segúnprompt. - mask_image (
np.array) — Tensor que representa un lote de imágenes, para enmascararimage. Los píxeles blancos de la máscara se repintarán, mientras que los píxeles negros se conservarán. Simask_imagees 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.Tensorolist[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_scalese define comowde la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendoguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas alpromptde 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.Generatorolist[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 elgeneratoraleatorio 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 predeterminadoTrue) — 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_kwargsincluirá una lista de todos los tensores especificados porcallback_on_step_end_tensor_inputs. - callback_on_step_end_tensor_inputs (
list, opcional) — La lista de entradas de tensor para la funcióncallback_on_step_end. Los tensores especificados en la lista se pasarán como argumentocallback_kwargs. Solo podrás incluir variables listadas en el atributo._callback_tensor_inputsde 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
< source >( 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 conunetpara 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 conpriorpara 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__
< source >( 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 (
strolist[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]olist[np.ndarray]) —Imageo 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 comoimage; si se pasan latentes directamente, no se volverá a codificar. - mask_image (
np.array) — Tensor que representa un lote de imágenes, para enmascararimage. Los píxeles blancos de la máscara se repintarán, mientras que los píxeles negros se conservarán. Simask_imagees 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 (
strolist[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 siguidance_scalees menor que1). - 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_scalese define comowde la ecuación 2 del Imagen Paper. La escala de guía se habilita estableciendoguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas alpromptde 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_scalese define comowde la ecuación 2 de Imagen Paper. La escala de guía se habilita al establecerguidance_scale > 1. Una escala de guía más alta fomenta la generación de imágenes estrechamente vinculadas al textoprompt, 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.Generatorolist[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 elgeneratoraleatorio 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 predeterminadoTrue) — 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ónprior_callback_on_step_end. Los tensores especificados en la lista se pasarán como argumentocallback_kwargs. Solo podrá incluir variables listadas en el atributo._callback_tensor_inputsde 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_kwargsincluirá una lista de todos los tensores especificados porcallback_on_step_end_tensor_inputs. - callback_on_step_end_tensor_inputs (
list, opcional) — La lista de entradas de tensor para la funcióncallback_on_step_end. Los tensores especificados en la lista se pasarán como argumentocallback_kwargs. Solo podrás incluir variables listadas en el atributo._callback_tensor_inputsde 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
< source >( 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.