扩散器文档

稳定的级联

Hugging Face's logo
加入Hugging Face社区

并获得增强的文档体验

开始使用

稳定的级联

该模型基于Würstchen架构,与Stable Diffusion等模型的区别在于它在一个更小的潜在空间中工作。这为什么很重要?潜在空间越小,推理速度越快,训练成本越低。潜在空间有多小?Stable Diffusion使用8倍的压缩因子,将1024x1024的图像编码为128x128。Stable Cascade实现了42倍的压缩因子,这意味着可以将1024x1024的图像编码为24x24,同时保持清晰的重构。然后在此高度压缩的潜在空间中训练文本条件模型。该架构的早期版本与Stable Diffusion 1.5相比,实现了16倍的成本降低。

因此,这类模型非常适合效率重要的应用。此外,所有已知的扩展,如微调、LoRA、ControlNet、IP-Adapter、LCM等,也都适用此方法。

原始代码库可在Stability-AI/StableCascade找到。

模型概述

Stable Cascade包括三个模型:A阶段、B阶段和C阶段,代表了生成图像的级联,因此得名“稳定的级联”。

A阶段和B阶段用于压缩图像,类似于Stable Diffusion中的VAE的职责。然而,在这种配置下,可以达到更高的图像压缩率。而Stable Diffusion模型使用8倍的空间压缩因子,将1024 x 1024分辨率的图像编码为128 x 128,Stable Cascade达到了42倍的压缩因子。这意味着可以将1024 x 1024的图像编码为24 x 24,同时能够准确地解码图像。这带来了更低的训练和推理成本。此外,C阶段负责根据文本提示生成小型的24 x 24潜在值。

C阶段模型在小型24 x 24潜在上操作,并根据文本提示对潜在值进行去噪。该模型也是级联管道中最大的组件,旨在与StableCascadePriorPipeline一起使用。

阶段B和阶段A模型与StableCascadeDecoderPipeline一起使用,负责根据小的24 x 24潜在图像生成最终图像。

对于可以与稳定级联模型一起使用的数据类型有一些限制。对于StableCascadePriorPipeline的官方检查点,不支持使用torch.float16数据类型。请改用torch.bfloat16

为了在使用StableCascadeDecoderPipeline时使用torch.bfloat16数据类型,您需要安装PyTorch 2.2.0或更高版本。这也意味着使用带有torch.bfloat16StableCascadeCombinedPipeline同样需要PyTorch 2.2.0或更高版本,因为它内部调用了StableCascadeDecoderPipeline

如果无法在您的环境中安装PyTorch 2.2.0或更高版本,则可以单独使用StableCascadeDecoderPipeline并且使用torch.float16数据类型。您可以下载全精度或bf16变体的流程权重,并将权重转换为torch.float16

使用示例

import torch
from diffusers import StableCascadeDecoderPipeline, StableCascadePriorPipeline

prompt = "an image of a shiba inu, donning a spacesuit and helmet"
negative_prompt = ""

prior = StableCascadePriorPipeline.from_pretrained("stabilityai/stable-cascade-prior", variant="bf16", torch_dtype=torch.bfloat16)
decoder = StableCascadeDecoderPipeline.from_pretrained("stabilityai/stable-cascade", variant="bf16", torch_dtype=torch.float16)

prior.enable_model_cpu_offload()
prior_output = prior(
    prompt=prompt,
    height=1024,
    width=1024,
    negative_prompt=negative_prompt,
    guidance_scale=4.0,
    num_images_per_prompt=1,
    num_inference_steps=20
)

decoder.enable_model_cpu_offload()
decoder_output = decoder(
    image_embeddings=prior_output.image_embeddings.to(torch.float16),
    prompt=prompt,
    negative_prompt=negative_prompt,
    guidance_scale=0.0,
    output_type="pil",
    num_inference_steps=10
).images[0]
decoder_output.save("cascade.png")

使用阶段B和阶段C模型的轻量级版本

import torch
from diffusers import (
    StableCascadeDecoderPipeline,
    StableCascadePriorPipeline,
    StableCascadeUNet,
)

prompt = "an image of a shiba inu, donning a spacesuit and helmet"
negative_prompt = ""

prior_unet = StableCascadeUNet.from_pretrained("stabilityai/stable-cascade-prior", subfolder="prior_lite")
decoder_unet = StableCascadeUNet.from_pretrained("stabilityai/stable-cascade", subfolder="decoder_lite")

prior = StableCascadePriorPipeline.from_pretrained("stabilityai/stable-cascade-prior", prior=prior_unet)
decoder = StableCascadeDecoderPipeline.from_pretrained("stabilityai/stable-cascade", decoder=decoder_unet)

prior.enable_model_cpu_offload()
prior_output = prior(
    prompt=prompt,
    height=1024,
    width=1024,
    negative_prompt=negative_prompt,
    guidance_scale=4.0,
    num_images_per_prompt=1,
    num_inference_steps=20
)

decoder.enable_model_cpu_offload()
decoder_output = decoder(
    image_embeddings=prior_output.image_embeddings,
    prompt=prompt,
    negative_prompt=negative_prompt,
    guidance_scale=0.0,
    output_type="pil",
    num_inference_steps=10
).images[0]
decoder_output.save("cascade.png")

使用from_single_file加载原始检查点

通过StableCascadeUNet中的from_single_file方法支持加载原始格式的检查点。

import torch
from diffusers import (
    StableCascadeDecoderPipeline,
    StableCascadePriorPipeline,
    StableCascadeUNet,
)

prompt = "an image of a shiba inu, donning a spacesuit and helmet"
negative_prompt = ""

prior_unet = StableCascadeUNet.from_single_file(
    "https://huggingface.co/stabilityai/stable-cascade/resolve/main/stage_c_bf16.safetensors",
    torch_dtype=torch.bfloat16
)
decoder_unet = StableCascadeUNet.from_single_file(
    "https://huggingface.co/stabilityai/stable-cascade/blob/main/stage_b_bf16.safetensors",
    torch_dtype=torch.bfloat16
)

prior = StableCascadePriorPipeline.from_pretrained("stabilityai/stable-cascade-prior", prior=prior_unet, torch_dtype=torch.bfloat16)
decoder = StableCascadeDecoderPipeline.from_pretrained("stabilityai/stable-cascade", decoder=decoder_unet, torch_dtype=torch.bfloat16)

prior.enable_model_cpu_offload()
prior_output = prior(
    prompt=prompt,
    height=1024,
    width=1024,
    negative_prompt=negative_prompt,
    guidance_scale=4.0,
    num_images_per_prompt=1,
    num_inference_steps=20
)

decoder.enable_model_cpu_offload()
decoder_output = decoder(
    image_embeddings=prior_output.image_embeddings,
    prompt=prompt,
    negative_prompt=negative_prompt,
    guidance_scale=0.0,
    output_type="pil",
    num_inference_steps=10
).images[0]
decoder_output.save("cascade-single-file.png")

《使用》 使用

《直接使用》 直接使用

该模型目前用于研究目的。可能的研究领域和任务包括

  • 对生成模型的研究。
  • 潜在有害内容的模型的安全部署。
  • 探究和理解生成模型局限性和偏差。
  • 创建艺术品并在设计和其他艺术流程中使用。
  • 在教育或创意工具中的应用。

以下为排除的使用。

《范围外使用》 范围外使用

该模型未接受过据实或真实代表人或事件的训练,因此使用该模型生成此类内容超出本模型的能力范围。不应以任何方式使用该模型,违反Stability AI的《接受使用政策》。

局限性和偏差

局限性

  • 人脸和人物可能无法正确生成。
  • 模型的自动编码部分是有损的。

StableCascadeCombinedPipeline

diffusers.StableCascadeCombinedPipeline

< >

( 分词器: CLIPTokenizer 文本编码器: CLIPTextModel 解码器: StableCascadeUNet 调度器: DDPMWuerstchenScheduler vqgan: PaellaVQModel 优先级优先: StableCascadeUNet 优先级文本编码器: CLIPTextModel 优先级分词器: CLIPTokenizer 优先级调度器: DDPMWuerstchenScheduler 优先级特征提取器: Optional = None 优先级图像编码器: Optional = None )

参数

  • 分词器 (CLIPTokenizer) — 适用于文本输入的解码器分词器。
  • 文本编码器 (CLIPTextModel) — 适用于文本输入的解码器文本编码器。
  • 解码器 (StableCascadeUNet) — 用于解码器图像生成流程的解码器模型。
  • 调度器 (DDPMWuerstchenScheduler) — 用于解码器图像生成流程的调度器。
  • VQGAN (PaellaVQModel) — 用于解码器图像生成流程的VQGAN模型。
  • 特征提取器 (CLIPImageProcessor) — 提取生成图像特征以用于作为image_encoder输入的模型。
  • image_encoder (CLIPVisionModelWithProjection) — 冻结的 CLIP 图像编码器(《clip-vit-large-patch14》)。
  • prior_prior (StableCascadeUNet) — 需要用于先验管道的先验模型。
  • prior_scheduler (DDPMWuerstchenScheduler) — 将用于先验管道的调度器。

使用稳定级联的文本到图像生成组合管道。

此模型继承自 DiffusionPipeline。请参阅超类文档,了解库为实现所有管道(如下载或保存、在特定设备上运行等)实施的通用方法。

__call__

< >

( 提示 : 联合 = None图像 : 联合 = None高度 : int = 512宽度 : int = 512先前推理步骤数 : int = 60先前指导缩放 : float = 4.0推理步骤数 : int = 12解码器指导缩放 : float = 0.0负提示 : 联合 = None提示嵌入 : 可选 = None提示嵌入池 : 可选 = None负提示嵌入 : 可选 = None负提示嵌入池 : 可选 = None每个提示图像数 : int = 1生成器 : 联合 = None潜在 : 可选 = None输出类型 : 可选 = 'pil'返回字典 : bool = True先前步骤结束时回调 : 可选 = None先前步骤结束时张量输入 : 列表 = ['latents']步骤结束时回调 : 可选 = None步骤结束时张量输入 : 列表 = ['latents'] )

参数

  • 提示 (strList[str]) — 指导先前和解码器图像生成的提示或提示。
  • images (torch.Tensor, PIL.Image.Image, List[torch.Tensor], List[PIL.Image.Image], 可选) — 指导先验图像生成的图像。
  • negative_prompt (strList[str], 可选) — 不用于指导图像生成的提示或提示列表。当不使用指导(即当 guidance_scale 小于 1 时)将被忽略。
  • prompt_embeds (torch.Tensor, 可选) — 为先验预先生成的文本嵌入。可用于轻松调整文本输入,例如提示加权。如果未提供,将从 prompt 输入参数生成文本嵌入。
  • num_images_per_prompt (int, 可选, 默认为1) — 每个提示生成图像的数量。
  • height (int, 可选, 默认为512) — 生成的图像的高度,以像素为单位。
  • width (int, 可选, 默认为512) — 生成的图像的宽度,以像素为单位。
  • prior_guidance_scale (float, 可选, 默认值为4.0) — 与Classifier-Free Diffusion Guidance中定义的指导尺度相同。`prior_guidance_scale` 被定义为Imagen论文中的方程2中的`w`。通过设置prior_guidance_scale > 1来启用指导尺度。较高的指导尺度鼓励生成与文本prompt紧密相关的图像,这通常以牺牲较低图像质量为代价。
  • prior_num_inference_steps (Union[int, Dict[float, int]], 可选, 默认值为60) — 前期去噪步骤的数量。更多的去噪步骤通常会导致图像质量更高,但推理速度会变慢。为了更具体的步骤间距,您可以传递定制的 prior_timesteps
  • num_inference_steps (int, 可选, 默认值为12) — 解码器去噪步骤的数量。更多的去噪步骤通常会导致图像质量更高,但推理速度会变慢。为了更具体的步骤间距,您可以传递定制的 timesteps
  • decoder_guidance_scale (float, 可选,默认为0.0) —— 指导尺度,如无分类扩散指导中定义。 guidance_scale定义Imagen 论文中方程2的w。当设置guidance-scale > 1时启用指导尺度。较高的指导尺度会鼓励生成与文本prompt密切相关的图像,通常以降低图像质量为代价。
  • generator (torch.GeneratorList[torch.Generator]可选) —— 一个或多个torch生成器,用于使生成过程具有确定性。
  • latents (torch.Tensor可选) —— 预生成的噪声latents,从高斯分布中采样,用于作为图像生成输入。可用于调优不同prompt的相同生成。如果不提供,将使用提供的随机generator生成latents张量。
  • output_type (str, 可选, 默认为 "pil") — 生成图像的输出格式。可以选择以下选项:"pil" (PIL.Image.Image),"np" (np.array) 或 "pt" (torch.Tensor)。
  • return_dict (bool, 可选, 默认为 True) — 是否返回一个 ImagePipelineOutput 而非普通元组。
  • prior_callback_on_step_end (Callable, 可选) — 一个在推理过程中每个去噪步骤结束时调用的函数。该函数使用以下参数调用:prior_callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)
  • 在步骤结束时调用的先验回调函数的张量输入列表 (列表, 可选) — 供给 优先回调函数在步骤结束时 函数的张量输入列表。列表中指定的张量将被作为 callback_kwargs 参数传递。您只能包括您管道类 ._callback_tensor_inputs 属性中列出的变量。
  • 在推理过程中每个去噪步骤结束时调用的回调函数 (可调用, 可选) — 在推理过程中每个去噪步骤结束时调用的函数。该函数使用以下参数调用:callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)callback_kwargs 将包含一个列表,其中列出 回调函数在步骤结束时张量输入 中指定的所有张量。
  • 在步骤结束时调用的回调函数张量输入列表 (列表, 可选) — 供给 在步骤结束时调用的回调函数 的张量输入列表。列表中指定的张量将被作为 callback_kwargs 参数传递。您只能包括您管道类 ._callback_tensor_inputs 属性中列出的变量。

在调用生成流程时调用的函数。

示例

>>> import torch
>>> from diffusers import StableCascadeCombinedPipeline

>>> pipe = StableCascadeCombinedPipeline.from_pretrained(
...     "stabilityai/stable-cascade", variant="bf16", torch_dtype=torch.bfloat16
... )
>>> pipe.enable_model_cpu_offload()
>>> prompt = "an image of a shiba inu, donning a spacesuit and helmet"
>>> images = pipe(prompt=prompt)

启用模型CPU卸载

< >

( gpu_id: 任意型 = None device: 混合型 = 'cuda' )

使用 accelerate 将所有模型卸载到 CPU,通过降低性能影响来减少内存使用。与 enable_sequential_cpu_offload 相比,这种方法在调用 forward 方法时将整个模型移动到 GPU,直到下一个模型运行结束。内存节省低于 enable_sequential_cpu_offload,但由于 unet 的迭代执行,性能要高得多。

enable_sequential_cpu_offload

< >

( gpu_id: 任意型 = None device: 混合型 = 'cuda' )

使用 🤗 Accelerate 将所有模型(unettext_encodervae安全检查器 状态字典)卸载到 CPU,显著减少内存使用。模型仅在特定子模块的 forward 方法被调用时移动到 torch.device('meta') 并在 GPU 上加载。卸载发生在子模块级别。内存节省高于 enable_model_cpu_offload,但性能较低。

StableCascadePriorPipeline

diffusers.StableCascadePriorPipeline

< >

( tokenizer: CLIPTokenizer text_encoder: CLIPTextModelWithProjection prior: StableCascadeUNet scheduler: DDPMWuerstchenScheduler resolution_multiple: float = 42.67 feature_extractor: 可选 = None image_encoder: 可选 = None )

参数

  • 先验条件 (StableCascadeUNet) — 用于从文本和/或图像嵌入中近似图像嵌入的稳定级联先验。
  • 文本编码器 (CLIPTextModelWithProjection) — 冻结的文本编码器 (laion/CLIP-ViT-bigG-14-laion2B-39B-b160k).
  • 特征提取器 (CLIPImageProcessor) — 提取生成的图像特征作为输入用于 图像编码器
  • 图像编码器 (CLIPVisionModelWithProjection) — 冻结的 CLIP 图像编码器 (clip-vit-large-patch14).
  • tokenizer (CLIPTokenizer) — CLIPTokenizer 类的标记器。
  • scheduler (DDPMWuerstchenScheduler) — 与 prior 配合使用以生成图像嵌入的调度器。
  • resolution_multiple (‘float’,可选,默认为 42.67) — 生成多张图像的默认分辨率。

用于生成稳定级联的图像先验的工具列表。

此模型继承自 DiffusionPipeline。请参阅超类文档,了解库为实现所有管道(如下载或保存、在特定设备上运行等)实施的通用方法。

__call__

< >

( prompt: 合并 = None images: 合并 = None height: int = 1024 width: int = 1024 num_inference_steps: int = 20 timesteps: 列表 = None guidance_scale: float = 4.0 negative_prompt: 合并 = None prompt_embeds: 可选 = None prompt_embeds_pooled: 可选 = None negative_prompt_embeds: 可选 = None negative_prompt_embeds_pooled: 可选 = None image_embeds: 可选 = None num_images_per_prompt: 可选 = 1 generator: 合并 = None latents: 可选 = None output_type: 可选 = 'pt' return_dict: bool = True callback_on_step_end: 可选 = None callback_on_step_end_tensor_inputs: 列表 = ['latents'] )

参数

  • prompt (strList[str]) — 引导图像生成的指示或指示列表。
  • 高度 (int, 可选, 默认为 1024) —— 生成的图像的像素高度。
  • 宽度 (int, 可选, 默认为 1024) —— 生成的图像的像素宽度。
  • num_inference_steps (int, 可选, 默认为 60) —— 降噪步骤的数量。更多的降噪步骤通常会导致图像质量更高,但代价是推理速度更慢。
  • guidance_scale(《浮点数》, 可选,默认 8.0)— 指导规模,如 Classifier-Free Diffusion Guidance 中定义。`decoder_guidance_scale` 规定为 Imagen 论文 方程 2 中的 `w`。通过设置 decoder_guidance_scale > 1 启用指导规模。较高的指导规模鼓励生成与文本 prompt 密切相关的图像,这通常以降低图像质量为代价。
  • negative_prompt(《字符串》或《字符串列表》,可选)— 不应引导图像生成的提示或提示列表。如果不使用引导(即 decoder_guidance_scale 小于 `1` 时),则忽略。
  • prompt_embeds(《pytorch.Tensor》可选)— 预生成的文本嵌入。可以用来轻松调整文本输入,例如提示权重。如果不提供,将从 prompt 输入参数中生成文本嵌入。
  • prompt_embeds_pooled (torch.Tensor, 可选) — 预生成的池化文本嵌入。可用于轻松调整文本输入,例如提示加权。如果未提供,则将从prompt输入参数生成池化文本嵌入。
  • negative_prompt_embeds (torch.Tensor, 可选) — 预生成的负文本嵌入。可用于轻松调整文本输入,例如提示加权。如果未提供,则将从negative_prompt输入参数生成负文本嵌入。
  • negative_prompt_embeds_pooled (torch.Tensor, 可选) — 预生成的负池化文本嵌入。可用于轻松调整文本输入,例如提示加权。如果未提供,则将从negative_prompt输入参数生成负池化文本嵌入。
  • image_embeds (torch.Tensor, 可选) — 预生成的图像嵌入。可用于轻松调整图像输入,例如提示权重。如果没有提供,如果存在,将从 image 输入参数生成图像嵌入。
  • num_images_per_prompt (int, 可选,默认为 1) — 每个提示生成图像的数量。
  • generator (torch.GeneratorList[torch.Generator], 可选) — 一个或多个 torch generator(s) 以使生成过程可重复。
  • latents (torch.Tensor, 可选) — 预生成的噪声潜变量,从高斯分布中采样,用于作为图像生成的输入。可用于用不同的提示调整相同的生成。如果不提供,将使用提供的随机 generator 通过采样生成一个潜变量张量。
  • output_type (str, 可选,默认为 "pil") — 生成图像的输出格式。可选择:"pil" (PIL.Image.Image),"np" (np.array) 或 "pt" (torch.Tensor)。
  • return_dict (bool, 可选,默认为 True) — 是否返回一个 ImagePipelineOutput 而不是纯元组。
  • callback_on_step_end (函数,可选)— 在推理过程中每一步的降噪步骤结束时调用的函数。该函数以以下参数调用:callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)。其中,callback_kwargs 将包括一个列表,该列表包含按callback_on_step_end_tensor_inputs指定的所有张量。
  • callback_on_step_end_tensor_inputs (列表,可选)— 为 callback_on_step_end 函数指定的张量输入列表。列表中指定的张量将作为 callback_kwargs 参数传递。您只能包括管道类 ._callback_tensor_inputs 属性中列出的变量。

在调用生成流程时调用的函数。

示例

>>> import torch
>>> from diffusers import StableCascadePriorPipeline

>>> prior_pipe = StableCascadePriorPipeline.from_pretrained(
...     "stabilityai/stable-cascade-prior", torch_dtype=torch.bfloat16
... ).to("cuda")

>>> prompt = "an image of a shiba inu, donning a spacesuit and helmet"
>>> prior_output = pipe(prompt)

StableCascadePriorPipelineOutput

class diffusers.pipelines.stable_cascade.pipeline_stable_cascade_prior.StableCascadePriorPipelineOutput

< >

( image_embeddings: 联合 prompt_embeds: 联合 prompt_embeds_pooled: 联合 negative_prompt_embeds: 联合 negative_prompt_embeds_pooled: 联合 )

参数

  • image_embeddings (torch.Tensornp.ndarray) — 文本提示的前置图像嵌入。
  • prompt_embeds (torch.Tensor) — 提示的文本嵌入。
  • negative_prompt_embeds (torch.Tensor) — 负提示的文本嵌入。

WuerstchenPriorPipeline的输出类。

StableCascadeDecoderPipeline

diffusers.StableCascadeDecoderPipeline

< >

( decoder: StableCascadeUNet tokenizer: CLIPTokenizer text_encoder: CLIPTextModel scheduler: DDPMWuerstchenScheduler vqgan: PaellaVQModel latent_dim_scale: float = 10.67 )

参数

  • tokenizer (CLIPTokenizer) — CLIP 标记化器。
  • text_encoder (CLIPTextModel) — CLIP 文本编码器。
  • decoder (StableCascadeUNet) — Stable Cascade 解码器 U-Net。
  • vqgan (PaellaVQModel) — VQGAN 模型。
  • 调度器 (DDPMWuerstchenScheduler) — 与 prior 结合使用以生成图像嵌入的调度器。
  • 潜在维度比例 (float, 可选, 默认为 10.67) — 用于从图像嵌入确定 VQ 潜在空间大小的乘数。如果图像嵌入的高度和宽度都是 24,则 VQ 潜在形状需要为高度=int(24*10.67)=256 和宽度=int(24*10.67)=256,以匹配训练条件。

从 Stable Cascade 模型生成图像的管道。

此模型继承自 DiffusionPipeline。请参阅超类文档,了解库为实现所有管道(如下载或保存、在特定设备上运行等)实施的通用方法。

__call__

< >

( image_embeddings: 联合类型 prompt: 联合类型 = None num_inference_steps: int = 10 guidance_scale: float = 0.0 negative_prompt: 联合类型 = None prompt_embeds: Optional = None prompt_embeds_pooled: Optional = None negative_prompt_embeds: Optional = None negative_prompt_embeds_pooled: Optional = None num_images_per_prompt: int = 1 generator: 联合类型 = None latents: Optional = None output_type: Optional = 'pil' return_dict: bool = True callback_on_step_end: Optional = None callback_on_step_end_tensor_inputs: List = ['latents'] )

参数

  • image_embedding (torch.TensorList[torch.Tensor]) — 从图像中提取或由先验模型生成的图像嵌入。
  • prompt (strList[str]) — 指导图像生成的提示或提示列表。
  • num_inference_steps (int,可选,默认为 12) — 降噪步骤的数量。更多的降噪步骤通常会导致图像质量更高,但推理速度更慢。
  • guidance_scale (float,可选,默认为 0.0) — 指导尺度,如《无分类扩散指导》中定义。`decoder_guidance_scale` 是《Imagen 论文》中方程 2 的 `w`。启用指导尺度需要设置 `decoder_guidance_scale > 1`。更高的指导尺度会鼓励生成与文本 `prompt` 紧密相关的图像,通常以牺牲图像质量为代价。
  • negative_prompt(《字符串》或《字符串列表》, 可选) — 用于指导图像生成的不希望包含的提示。当不使用引导时被忽略(例如,当 decoder_guidance_scale 小于 1 时被忽略)。
  • prompt_embeds(《torch.Tensor》型,可选) — 预生成的文本嵌入。可用于轻松调整文本输入,例如提示权重。如果没有提供,将根据 prompt 输入参数生成文本嵌入。
  • prompt_embeds_pooled(《torch.Tensor》型,可选) — 预生成的池化文本嵌入。可用于轻松调整文本输入,例如提示权重。如果没有提供,将根据 prompt 输入参数生成池化文本嵌入。
  • negative_prompt_embedstorch.Tensor可选)— 预生成的负文本嵌入。可用于轻松调整文本输入,例如,提示权重。如果未提供,则从输入参数negative_prompt生成negative_prompt_embeds。
  • negative_prompt_embeds_pooledtorch.Tensor可选)— 预生成的负池化文本嵌入。可用于轻松调整文本输入,例如,提示权重。如果未提供,则从输入参数negative_prompt生成negative_prompt_embeds_pooled。
  • num_images_per_promptint可选,默认为1)— 每个提示生成图像的数量。
  • generator (torch.GeneratorList[torch.Generator],可选)—— 用于生成确定性的一个或多个 torch 生成器
  • latentstorch.Tensor,默认可选)—— 前期生成的噪声 latents,从高斯分布中采样,用于图像生成的输入。可用于使用不同的提示调整相同的生成。如果没有提供,将使用给定的随机 generator 来生成 latents 张量。
  • output_typestr,默认可选,默认为 "pil")—— 生成图像的输出格式。选择项包括:"pil"(《PIL.Image.Image》)、"np"(《numpy.array》)或 "pt"(《torch.Tensor》)。
  • return_dict(《布尔值》, 可选, 默认为 True) — 是否返回ImagePipelineOutput实例而不是纯元组。
  • callback_on_step_end(《可调用对象》, 可选) — 在推理过程中每个降噪步骤结束时调用的函数。该函数以以下参数调用:callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)callback_kwargs 将包括由 callback_on_step_end_tensor_inputs 指定的所有张量。
  • callback_on_step_end_tensor_inputs(《列表》, 可选) — 用作 callback_on_step_end 函数的张力输入列表。列表中指定的张力将作为 callback_kwargs 参数传递。您只能包括列表中在您的管道类别中定义的 ._callback_tensor_inputs 属性中列出的变量。

在调用生成流程时调用的函数。

示例

>>> import torch
>>> from diffusers import StableCascadePriorPipeline, StableCascadeDecoderPipeline

>>> prior_pipe = StableCascadePriorPipeline.from_pretrained(
...     "stabilityai/stable-cascade-prior", torch_dtype=torch.bfloat16
... ).to("cuda")
>>> gen_pipe = StableCascadeDecoderPipeline.from_pretrain(
...     "stabilityai/stable-cascade", torch_dtype=torch.float16
... ).to("cuda")

>>> prompt = "an image of a shiba inu, donning a spacesuit and helmet"
>>> prior_output = pipe(prompt)
>>> images = gen_pipe(prior_output.image_embeddings, prompt=prompt)
< > 在GitHub上更新