Diffusers documentation
Kandinsky 3
Kandinsky 3
Kandinsky 3 fue creado por Vladimir Arkhipkin,Anastasia Maltseva,Igor Pavlov,Andrei Filatov,Arseniy Shakhmatov,Andrey Kuznetsov,Denis Dimitrov, Zein Shaheen
La descripción de su página de GitHub:
Kandinsky 3.0 es un modelo de difusión de texto a imagen de código abierto construido sobre la familia de modelos Kandinsky2-x. En comparación con sus predecesores, se han realizado mejoras en la comprensión del texto y la calidad visual del modelo, logradas aumentando el tamaño de los modelos de codificador de texto y Diffusion U-Net, respectivamente.
Su arquitectura incluye 3 componentes principales:
- FLAN-UL2, que es un modelo encoder-decoder basado en la arquitectura T5.
- La nueva arquitectura U-Net con bloques BigGAN-deep duplica la profundidad manteniendo el mismo número de parámetros.
- Sber-MoVQGAN es un decodificador que ha demostrado tener resultados superiores en la restauración de imágenes.
El código original se puede encontrar en ai-forever/Kandinsky-3.
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.
Kandinsky3Pipeline
clase diffusers.Kandinsky3Pipeline
< source >( tokenizer: T5Tokenizertext_encoder: T5EncoderModelunet: Kandinsky3UNetscheduler: DDPMSchedulermovq: VQModel )
__call__
< source >( prompt: str | list[str] = Nonenum_inference_steps: int = 25guidance_scale: float = 3.0negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1height: int | None = 1024width: int | None = 1024generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonenegative_attention_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truelatents = Nonecallback_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], opcional) — El prompt o los prompts para guiar la generación de la imagen. Si no se define, hay que pasarprompt_embedsen su lugar. - num_inference_steps (
int, opcional, valor predeterminado 25) — 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 3.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. - negative_prompt (
strolist[str], opcional) — El prompt o prompts que no deben guiar la generación de la imagen. Si no se define, se debe pasarnegative_prompt_embedsen su lugar. 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. - height (
int, opcional, valor predeterminado: self.unet.config.sample_size) — La altura en píxeles de la imagen generada. - width (
int, opcional, predeterminado: self.unet.config.sample_size) — El ancho en píxeles de la imagen generada. - generator (
torch.Generatorolist[torch.Generator], opcional) — Un generador o una lista de generadores de torch para hacer la generación determinista. - prompt_embeds (
torch.Tensor, opcional) — Incrustaciones de texto pregeneradas. Se pueden usar para ajustar fácilmente las entradas de texto, p. ej. ponderación de prompts. Si no se proporcionan, las incrustaciones de texto se generarán a partir del argumento de entradaprompt. - negative_prompt_embeds (
torch.Tensor, opcional) — Incrustaciones de texto negativo pregeneradas. Se pueden usar para ajustar fácilmente las entradas de texto, p. ej. el ponderado del prompt. Si no se proporciona, negative_prompt_embeds se generará a partir del argumento de entradanegative_prompt. - attention_mask (
torch.Tensor, opcional) — Máscara de atención pregenerada. Debe proporcionarse si se pasanprompt_embedsdirectamente. - negative_attention_mask (
torch.Tensor, opcional) — Máscara de atención negativa pregenerada. Debe proporcionarse si se pasannegative_prompt_embedsdirectamente. - output_type (
str, opcional, valor predeterminado"pil") — El formato de salida de la imagen generada. Elija entre PIL:PIL.Image.Imageonp.array. - return_dict (
bool, opcional, valor predeterminadoTrue) — Indica si se debe devolver un~pipelines.stable_diffusion.IFPipelineOutputen lugar de una tupla simple. - 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. - 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 AutoPipelineForText2Image
>>> import torch
>>> pipe = AutoPipelineForText2Image.from_pretrained(
... "kandinsky-community/kandinsky-3", variant="fp16", torch_dtype=torch.float16
... )
>>> pipe.enable_model_cpu_offload()
>>> prompt = "A photograph of the inside of a subway train. There are raccoons sitting on the seats. One of them is reading a newspaper. The window shows the city in the background."
>>> generator = torch.Generator(device="cpu").manual_seed(0)
>>> image = pipe(prompt, num_inference_steps=25, generator=generator).images[0]encode_prompt
< source >( promptdo_classifier_free_guidance = Truenum_images_per_prompt = 1device = Nonenegative_prompt = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = None_cut_context = Falseattention_mask: typing.Optional[torch.Tensor] = Nonenegative_attention_mask: typing.Optional[torch.Tensor] = None )
Parámetros
- prompt (
strolist[str], opcional) — prompt a codificar - device — (
torch.device, opcional): dispositivo de torch en el que colocar las incrustaciones resultantes - num_images_per_prompt (
int, opcional, valor predeterminado 1) — número de imágenes que deben generarse por indicación - do_classifier_free_guidance (
bool, opcional, valor predeterminadoTrue) — si se debe usar classifier free guidance o no - negative_prompt (
strolist[str], opcional) — El prompt o prompts que no deben guiar la generación de la imagen. Si no se define, se debe pasarnegative_prompt_embedsen su lugar. Si no se define, se debe pasarnegative_prompt_embedsen su lugar. Se ignora cuando no se usa guía (es decir, se ignora siguidance_scalees menor que1). - prompt_embeds (
torch.Tensor, opcional) — Incrustaciones de texto pregeneradas. Se pueden usar para ajustar fácilmente las entradas de texto, p. ej. ponderación de prompts. Si no se proporcionan, las incrustaciones de texto se generarán a partir del argumento de entradaprompt. - negative_prompt_embeds (
torch.Tensor, opcional) — Incrustaciones de texto negativo pregeneradas. Se pueden usar para ajustar fácilmente las entradas de texto, p. ej. el ponderado del prompt. Si no se proporciona, negative_prompt_embeds se generará a partir del argumento de entradanegative_prompt. - attention_mask (
torch.Tensor, opcional) — Máscara de atención pregenerada. Debe proporcionarse si se pasanprompt_embedsdirectamente. - negative_attention_mask (
torch.Tensor, opcional) — Máscara de atención negativa pregenerada. Debe proporcionarse si se pasannegative_prompt_embedsdirectamente.
Codifica el prompt en estados ocultos del codificador de texto.
Kandinsky3Img2ImgPipeline
clase diffusers.Kandinsky3Img2ImgPipeline
< source >( tokenizer: T5Tokenizertext_encoder: T5EncoderModelunet: Kandinsky3UNetscheduler: DDPMSchedulermovq: VQModel )
__call__
< source >( prompt: str | list[str] = Noneimage: typing.Union[torch.Tensor, list[torch.Tensor], PIL.Image.Image, list[PIL.Image.Image]] = Nonestrength: float = 0.3num_inference_steps: int = 25guidance_scale: float = 3.0negative_prompt: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonenegative_attention_mask: 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
- prompt (
strolist[str], opcional) — El prompt o los prompts para guiar la generación de la imagen. Si no se define, hay que pasarprompt_embedsen su lugar. - 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. - strength (
float, opcional, valor predeterminado 0.8) — Indica el grado en que se transforma laimagede referencia. Debe estar entre 0 y 1.imagese utiliza como punto de partida y se añade 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 es máximo y el proceso de desruido se ejecuta durante el número completo de iteraciones especificado ennum_inference_steps. Un valor de 1 ignora esencialmenteimage. - num_inference_steps (
int, opcional, valor predeterminado 50) — 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 3.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. - negative_prompt (
strolist[str], opcional) — El prompt o prompts que no deben guiar la generación de la imagen. Si no se define, se debe pasarnegative_prompt_embedsen su lugar. 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. - generator (
torch.Generatorolist[torch.Generator], opcional) — Un generador o una lista de generadores de torch para hacer la generación determinista. - prompt_embeds (
torch.Tensor, opcional) — Incrustaciones de texto pregeneradas. Se pueden usar para ajustar fácilmente las entradas de texto, p. ej. ponderación de prompts. Si no se proporcionan, las incrustaciones de texto se generarán a partir del argumento de entradaprompt. - negative_prompt_embeds (
torch.Tensor, opcional) — Incrustaciones de texto negativo pregeneradas. Se pueden usar para ajustar fácilmente las entradas de texto, p. ej. el ponderado del prompt. Si no se proporciona, negative_prompt_embeds se generará a partir del argumento de entradanegative_prompt. - attention_mask (
torch.Tensor, opcional) — Máscara de atención pregenerada. Debe proporcionarse si se pasanprompt_embedsdirectamente. - negative_attention_mask (
torch.Tensor, opcional) — Máscara de atención negativa pregenerada. Debe proporcionarse si se pasannegative_prompt_embedsdirectamente. - output_type (
str, opcional, valor predeterminado"pil") — El formato de salida de la imagen generada. Elija entre PIL:PIL.Image.Imageonp.array. - return_dict (
bool, opcional, valor predeterminadoTrue) — Indica si se debe devolver un~pipelines.stable_diffusion.IFPipelineOutputen 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 AutoPipelineForImage2Image
>>> from diffusers.utils import load_image
>>> import torch
>>> pipe = AutoPipelineForImage2Image.from_pretrained(
... "kandinsky-community/kandinsky-3", variant="fp16", torch_dtype=torch.float16
... )
>>> pipe.enable_model_cpu_offload()
>>> prompt = "A painting of the inside of a subway train with tiny raccoons."
>>> image = load_image(
... "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/kandinsky3/t2i.png"
... )
>>> generator = torch.Generator(device="cpu").manual_seed(0)
>>> image = pipe(prompt, image=image, strength=0.75, num_inference_steps=25, generator=generator).images[0]encode_prompt
< source >( promptdo_classifier_free_guidance = Truenum_images_per_prompt = 1device = Nonenegative_prompt = Noneprompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = None_cut_context = Trueattention_mask: typing.Optional[torch.Tensor] = Nonenegative_attention_mask: typing.Optional[torch.Tensor] = None )
Codifica el prompt en estados ocultos del codificador de texto.
device: (torch.device, opcional):
dispositivo de torch donde colocar las incrustaciones resultantes
num_images_per_prompt (int, opcional, valor predeterminado 1):
número de imágenes que deben generarse por indicación
do_classifier_free_guidance (bool, opcional, valor predeterminado True):
si se debe usar o no la guía libre de clasificador
negative_prompt (str o list[str], opcional):
La indicación o indicaciones que no deben guiar la generación de imágenes. Si no se define, se debe pasar negative_prompt_embeds en su lugar. Si no se define, se debe pasar negative_prompt_embeds en su lugar.
Se ignora cuando no se usa guía (es decir, se ignora si guidance_scale es menor que 1).
prompt_embeds (torch.Tensor, opcional):
Incrustaciones de texto pregeneradas. Se pueden usar para ajustar fácilmente las entradas de texto, por ejemplo, el ponderado de la indicación. Si no se
proporcionan, las incrustaciones de texto se generarán a partir del argumento de entrada prompt.
negative_prompt_embeds (torch.Tensor, opcional):
Incrustaciones de texto negativo pregeneradas. Se pueden usar para ajustar fácilmente las entradas de texto, por ejemplo, el
ponderado de la indicación. Si no se proporcionan, negative_prompt_embeds se generará a partir del argumento de entrada negative_prompt.
attention_mask (torch.Tensor, opcional):
Máscara de atención pregenerada. Debe proporcionarse si se pasa prompt_embeds directamente.
negative_attention_mask (torch.Tensor, opcional):
Máscara de atención negativa pregenerada. Debe proporcionarse si se pasa negative_prompt_embeds directamente.