Diffusers documentation
SANA-Sprint
SANA-Sprint
SANA-Sprint: One-Step Diffusion with Continuous-Time Consistency Distillation de NVIDIA, MIT HAN Lab y Hugging Face, por Junsong Chen, Shuchen Xue, Yuyang Zhao, Jincheng Yu, Sayak Paul, Junyu Chen, Han Cai, Enze Xie, Song Han
El resumen del artículo es:
Este artículo presenta SANA-Sprint, un modelo de difusión eficiente para la generación ultrarrápida de texto a imagen (T2I). SANA-Sprint se basa en un modelo de base preentrenado y se mejora con destilación híbrida, reduciendo drásticamente los pasos de inferencia de 20 a 1-4. Introducimos tres innovaciones clave: (1) Proponemos un enfoque sin entrenamiento que transforma un modelo de flow-matching preentrenado para la destilación de consistencia en tiempo continuo (sCM), eliminando el costoso entrenamiento desde cero y logrando una alta eficiencia de entrenamiento. Nuestra estrategia de destilación híbrida combina sCM con la destilación adversaria latente (LADD): sCM asegura la alineación con el modelo maestro, mientras que LADD mejora la fidelidad de la generación en un solo paso. (2) SANA-Sprint es un modelo unificado y adaptativo a los pasos que logra una generación de alta calidad en 1-4 pasos, eliminando el entrenamiento específico por pasos y mejorando la eficiencia. (3) Integramos ControlNet con SANA-Sprint para la generación de imágenes interactiva en tiempo real, permitiendo una retroalimentación visual instantánea para la interacción del usuario. SANA-Sprint establece una nueva frontera de Pareto en los compromisos entre velocidad y calidad, logrando un rendimiento líder con 7.59 FID y 0.74 GenEval en solo 1 paso, superando a FLUX-schnell (7.94 FID / 0.71 GenEval) mientras es 10 veces más rápido (0.1s frente a 1.1s en H100). También logra una latencia de 0.1s (T2I) y 0.25s (ControlNet) para imágenes de 1024×1024 en H100, y 0.31s (T2I) en una RTX 4090, mostrando su eficiencia excepcional y su potencial para aplicaciones de consumo impulsadas por IA (AIPC). El código y los modelos preentrenados se liberarán como código abierto.
Este pipeline fue aportado por lawrence-cj, shuchen Xue y Enze Xie. El código original se puede encontrar aquí. Los pesos originales se pueden encontrar en hf.co/Efficient-Large-Model.
Modelos disponibles:
| Modelo | dtype recomendado |
|---|---|
Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diffusers | torch.bfloat16 |
Efficient-Large-Model/Sana_Sprint_0.6B_1024px_diffusers | torch.bfloat16 |
Consulte esta colección para obtener más información.
Nota: El dtype recomendado mencionado es para los pesos del transformer. El codificador de texto debe permanecer en torch.bfloat16 y los pesos del VAE deben permanecer en torch.bfloat16 o torch.float32 para que el modelo funcione correctamente. Consulte el ejemplo de inferencia a continuación para ver cómo cargar el modelo con el dtype recomendado.
Cuantización
La cuantización ayuda a reducir los requisitos de memoria de los modelos muy grandes almacenando los pesos del modelo en un tipo de datos de menor precisión. Sin embargo, la cuantización puede tener un impacto variable en la calidad del vídeo dependiendo del modelo de vídeo.
Consulte el resumen de Quantization para obtener más información sobre los backends de cuantización admitidos y la selección de un backend de cuantización que admita su caso de uso. El siguiente ejemplo demuestra cómo cargar un SanaSprintPipeline cuantizado para inferencia con bitsandbytes.
import torch
from diffusers import BitsAndBytesConfig as DiffusersBitsAndBytesConfig, SanaTransformer2DModel, SanaSprintPipeline
from transformers import BitsAndBytesConfig as BitsAndBytesConfig, AutoModel
quant_config = BitsAndBytesConfig(load_in_8bit=True)
text_encoder_8bit = AutoModel.from_pretrained(
"Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diffusers",
subfolder="text_encoder",
quantization_config=quant_config,
dtype=torch.bfloat16,
)
quant_config = DiffusersBitsAndBytesConfig(load_in_8bit=True)
transformer_8bit = SanaTransformer2DModel.from_pretrained(
"Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diffusers",
subfolder="transformer",
quantization_config=quant_config,
dtype=torch.bfloat16,
)
pipeline = SanaSprintPipeline.from_pretrained(
"Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diffusers",
text_encoder=text_encoder_8bit,
transformer=transformer_8bit,
dtype=torch.bfloat16,
device_map="balanced",
)
prompt = "a tiny astronaut hatching from an egg on the moon"
image = pipeline(prompt).images[0]
image.save("sana.png")Establecer max_timesteps
Los usuarios pueden ajustar el valor de max_timesteps para experimentar con la calidad visual de las salidas generadas. El valor predeterminado de max_timesteps se obtuvo mediante un proceso de búsqueda en tiempo de inferencia. Para más detalles al respecto, consulte el artículo.
Imagen a imagen
El SanaSprintImg2ImgPipeline es un pipeline para la generación de imagen a imagen. Toma una imagen de entrada y un prompt, y genera una nueva imagen basada en la imagen de entrada y el prompt.
import torch
from diffusers import SanaSprintImg2ImgPipeline
from diffusers.utils.loading_utils import load_image
image = load_image(
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/penguin.png"
)
pipe = SanaSprintImg2ImgPipeline.from_pretrained(
"Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diffusers",
dtype=torch.bfloat16)
pipe.to("cuda") # or "mps", "xpu", "cpu"
image = pipe(
prompt="a cute pink bear",
image=image,
strength=0.5,
height=832,
width=480
).images[0]
image.save("output.png")SanaSprintPipeline
clase diffusers.SanaSprintPipeline
< source >( tokenizer: GemmaTokenizertext_encoder: Gemma2PreTrainedModelvae: AutoencoderDCtransformer: SanaTransformer2DModelscheduler: DPMSolverMultistepScheduler )
Pipeline para la generación de imágenes a partir de texto usando SANA-Sprint.
__call__
< source >( prompt: str | list[str] = Nonenum_inference_steps: int = 2timesteps: list = Nonemax_timesteps: float = 1.5708intermediate_timesteps: float = 1.3guidance_scale: float = 4.5num_images_per_prompt: int | None = 1height: int = 1024width: int = 1024eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueclean_caption: bool = Falseuse_resolution_binning: bool = Trueattention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']max_sequence_length: int = 300complex_human_instruction: list = ["Given a user prompt, generate an 'Enhanced prompt' that provides detailed visual descriptions suitable for image generation. Evaluate the level of detail in the user prompt:", '- If the prompt is simple, focus on adding specifics about colors, shapes, sizes, textures, and spatial relationships to create vivid and concrete scenes.', '- If the prompt is already detailed, refine and enhance the existing details slightly without overcomplicating.', 'Here are examples of how to transform or refine prompts:', '- User Prompt: A cat sleeping -> Enhanced: A small, fluffy white cat curled up in a round shape, sleeping peacefully on a warm sunny windowsill, surrounded by pots of blooming red flowers.', '- User Prompt: A busy city street -> Enhanced: A bustling city street scene at dusk, featuring glowing street lamps, a diverse crowd of people in colorful clothing, and a double-decker bus passing by towering glass skyscrapers.', 'Please generate only the enhanced description for the prompt below and avoid including any additional commentary or evaluations:', 'User Prompt: '] ) → SanaPipelineOutput 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 20) — 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. - max_timesteps (
float, opcional, valor predeterminado 1.57080) — El valor máximo de paso de tiempo utilizado en el programador SCM. - intermediate_timesteps (
float, opcional, valor predeterminado 1.3) — El valor de paso intermedio utilizado en el programador SCM (solo se usa cuando num_inference_steps=2). - timesteps (
list[int], opcional) — Pasos de tiempo personalizados para usar en el proceso de desruido con programadores que admiten un argumentotimestepsen su métodoset_timesteps. Si no se define, se usará el comportamiento predeterminado cuando se pasenum_inference_steps. Debe estar en orden descendente. - guidance_scale (
float, opcional, valor predeterminado 4.5) — La escala de orientación integrada se activa al establecerguidance_scale> 1. Valores más altos deguidance_scaleaniman al modelo a generar imágenes más alineadas con laprompt, a costa de una menor calidad de imagen.Los modelos destilados con guía aproximan la guía libre de clase real para
guidance_scale> 1. Consulte el artículo para obtener más información. - 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. - eta (
float, opcional, valor predeterminado 0.0) — Corresponde al parámetro eta (η) del artículo DDIM: https://huggingface.co/papers/2010.02502. Solo se aplica a schedulers.DDIMScheduler y se ignorará en los demás. - 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. - 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. - prompt_attention_mask (
torch.Tensor, opcional) — Máscara de atención pregenerada para las incrustaciones de texto. - 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. - attention_kwargs —
Un diccionario de kwargs que, si se especifica, se pasa al
AttentionProcessordefinido enself.processordentro de diffusers.models.attention_processor. - clean_caption (
bool, opcional, valor predeterminadoTrue) — Indica si se debe limpiar la descripción antes de crear los embeddings. Requiere quebeautifulsoup4yftfyestén instalados. Si las dependencias no están instaladas, los embeddings se crearán a partir del prompt sin procesar. - use_resolution_binning (
boolpor defectoTrue) — Si se establece enTrue, la altura y el ancho solicitados se mapean primero a las resoluciones más cercanas usandoASPECT_RATIO_1024_BIN. Después de que los latentes generados se decodifican en imágenes, se redimensionan de nuevo a la resolución solicitada. Útil para generar imágenes que no son cuadradas. - 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. - max_sequence_length (
intpor defecto300) — Longitud máxima de secuencia para usar con elprompt. - complex_human_instruction (
list[str], opcional) — Instrucciones para la atención humana compleja: https://github.com/NVlabs/Sana/blob/main/configs/sana_app_config/Sana_1600M_app.yaml#L55.
Devuelve
SanaPipelineOutput o tuple
Si return_dict es True, se devuelve SanaPipelineOutput,
en caso contrario se devuelve una tuple cuyo primer elemento es una lista con las imágenes generadas
Función invocada al llamar a la pipeline para la generación.
Ejemplos:
>>> import torch
>>> from diffusers import SanaSprintPipeline
>>> pipe = SanaSprintPipeline.from_pretrained(
... "Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diffusers", torch_dtype=torch.bfloat16
... )
>>> pipe.to("cuda")
>>> image = pipe(prompt="a tiny astronaut hatching from an egg on the moon")[0]
>>> image[0].save("output.png")encode_prompt
< source >( prompt: str | list[str]num_images_per_prompt: int = 1device: typing.Optional[torch.device] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Noneclean_caption: bool = Falsemax_sequence_length: int = 300complex_human_instruction: list[str] | None = Nonelora_scale: float | None = None )
Parámetros
- prompt (
strolist[str], opcional) — prompt a codificar - num_images_per_prompt (
int, opcional, valor predeterminado 1) — número de imágenes que deben generarse por indicación - device — (
torch.device, opcional): dispositivo de torch en el que colocar las incrustaciones resultantes - 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. - clean_caption (
bool, por defectoFalse) — Si esTrue, la función preprocesará y limpiará la descripción proporcionada antes de codificarla. - max_sequence_length (
int, por defecto 300) — Longitud máxima de la secuencia a utilizar para el prompt. - complex_human_instruction (
list[str], valor predeterminadocomplex_human_instruction) — Sicomplex_human_instructionno está vacío, la función utilizará la instrucción compleja de Human para el prompt.
Codifica el prompt en estados ocultos del codificador de texto.
SanaSprintImg2ImgPipeline
clase diffusers.SanaSprintImg2ImgPipeline
< source >( tokenizer: GemmaTokenizertext_encoder: Gemma2PreTrainedModelvae: AutoencoderDCtransformer: SanaTransformer2DModelscheduler: DPMSolverMultistepScheduler )
Pipeline para la generación de imágenes a partir de texto usando SANA-Sprint.
__call__
< source >( prompt: str | list[str] = Nonenum_inference_steps: int = 2timesteps: list = Nonemax_timesteps: float = 1.5708intermediate_timesteps: float = 1.3guidance_scale: float = 4.5image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]] = Nonestrength: float = 0.6num_images_per_prompt: int | None = 1height: int = 1024width: int = 1024eta: float = 0.0generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueclean_caption: bool = Falseuse_resolution_binning: bool = Trueattention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']max_sequence_length: int = 300complex_human_instruction: list = ["Given a user prompt, generate an 'Enhanced prompt' that provides detailed visual descriptions suitable for image generation. Evaluate the level of detail in the user prompt:", '- If the prompt is simple, focus on adding specifics about colors, shapes, sizes, textures, and spatial relationships to create vivid and concrete scenes.', '- If the prompt is already detailed, refine and enhance the existing details slightly without overcomplicating.', 'Here are examples of how to transform or refine prompts:', '- User Prompt: A cat sleeping -> Enhanced: A small, fluffy white cat curled up in a round shape, sleeping peacefully on a warm sunny windowsill, surrounded by pots of blooming red flowers.', '- User Prompt: A busy city street -> Enhanced: A bustling city street scene at dusk, featuring glowing street lamps, a diverse crowd of people in colorful clothing, and a double-decker bus passing by towering glass skyscrapers.', 'Please generate only the enhanced description for the prompt below and avoid including any additional commentary or evaluations:', 'User Prompt: '] ) → SanaPipelineOutput 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 20) — 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. - max_timesteps (
float, opcional, valor predeterminado 1.57080) — El valor máximo de paso de tiempo utilizado en el programador SCM. - intermediate_timesteps (
float, opcional, valor predeterminado 1.3) — El valor de paso intermedio utilizado en el programador SCM (solo se usa cuando num_inference_steps=2). - timesteps (
list[int], opcional) — Pasos de tiempo personalizados para usar en el proceso de desruido con programadores que admiten un argumentotimestepsen su métodoset_timesteps. Si no se define, se usará el comportamiento predeterminado cuando se pasenum_inference_steps. Debe estar en orden descendente. - guidance_scale (
float, opcional, valor predeterminado 4.5) — 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 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. - image (
torch.Tensor,PIL.Image.Image,np.ndarray,list[torch.Tensor],list[PIL.Image.Image]olist[np.ndarray]) —Image, array de numpy o tensor que representa un lote de imágenes para usarse como punto de partida. También puede aceptar latentes de imagen comoimage, pero si se pasan latentes directamente, no se vuelven a codificar. - strength (
float, opcional, valor predeterminado 0.6) — 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_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. - eta (
float, opcional, valor predeterminado 0.0) — Corresponde al parámetro eta (η) del artículo DDIM: https://arxiv.org/abs/2010.02502. Solo se aplica a schedulers.DDIMScheduler, se ignorará en los demás. - 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. - 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. - prompt_attention_mask (
torch.Tensor, opcional) — Máscara de atención pregenerada para las incrustaciones de texto. - 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. - attention_kwargs —
Un diccionario de kwargs que, si se especifica, se pasa al
AttentionProcessordefinido enself.processordentro de diffusers.models.attention_processor. - clean_caption (
bool, opcional, valor predeterminadoTrue) — Indica si se debe limpiar la descripción antes de crear los embeddings. Requiere quebeautifulsoup4yftfyestén instalados. Si las dependencias no están instaladas, los embeddings se crearán a partir del prompt sin procesar. - use_resolution_binning (
boolpor defectoTrue) — Si se establece enTrue, la altura y el ancho solicitados se mapean primero a las resoluciones más cercanas usandoASPECT_RATIO_1024_BIN. Después de que los latentes generados se decodifican en imágenes, se redimensionan de nuevo a la resolución solicitada. Útil para generar imágenes que no son cuadradas. - 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. - max_sequence_length (
intpor defecto300) — Longitud máxima de secuencia para usar con elprompt. - complex_human_instruction (
list[str], opcional) — Instrucciones para la atención humana compleja: https://github.com/NVlabs/Sana/blob/main/configs/sana_app_config/Sana_1600M_app.yaml#L55.
Devuelve
SanaPipelineOutput o tuple
Si return_dict es True, se devuelve SanaPipelineOutput,
en caso contrario se devuelve una tuple cuyo primer elemento es una lista con las imágenes generadas
Función invocada al llamar a la pipeline para la generación.
Ejemplos:
>>> import torch
>>> from diffusers import SanaSprintImg2ImgPipeline
>>> from diffusers.utils.loading_utils import load_image
>>> pipe = SanaSprintImg2ImgPipeline.from_pretrained(
... "Efficient-Large-Model/Sana_Sprint_1.6B_1024px_diffusers", torch_dtype=torch.bfloat16
... )
>>> pipe.to("cuda")
>>> image = load_image(
... "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/penguin.png"
... )
>>> image = pipe(prompt="a cute pink bear", image=image, strength=0.5, height=832, width=480).images[0]
>>> image[0].save("output.png")encode_prompt
< source >( prompt: str | list[str]num_images_per_prompt: int = 1device: typing.Optional[torch.device] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_attention_mask: typing.Optional[torch.Tensor] = Noneclean_caption: bool = Falsemax_sequence_length: int = 300complex_human_instruction: list[str] | None = Nonelora_scale: float | None = None )
Parámetros
- prompt (
strolist[str], opcional) — prompt a codificar - num_images_per_prompt (
int, opcional, valor predeterminado 1) — número de imágenes que deben generarse por indicación - device — (
torch.device, opcional): dispositivo de torch en el que colocar las incrustaciones resultantes - 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. - clean_caption (
bool, por defectoFalse) — Si esTrue, la función preprocesará y limpiará la descripción proporcionada antes de codificarla. - max_sequence_length (
int, por defecto 300) — Longitud máxima de la secuencia a utilizar para el prompt. - complex_human_instruction (
list[str], valor predeterminadocomplex_human_instruction) — Sicomplex_human_instructionno está vacío, la función utilizará la instrucción compleja de Human para el prompt.
Codifica el prompt en estados ocultos del codificador de texto.
SanaPipelineOutput
clase diffusers.pipelines.sana.pipeline_output.SanaPipelineOutput
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
Clase de salida para las tuberías de Sana.