Diffusers 文档

AuraFlow

Hugging Face's logo
加入 Hugging Face 社区

并获得增强型文档体验

开始使用

AuraFlow

AuraFlow 借鉴了 Stable Diffusion 3,是目前拥有 Apache 2.0 许可证的最大的文本到图像生成模型。该模型在 GenEval 基准测试中取得了最先进的结果。

它由 Fal 团队开发,更多相关信息可以参考 这篇博客文章

在消费级硬件设备上运行 AuraFlow 可能非常昂贵。但是,您可以执行一系列优化来更快地运行它,并以更友好的方式使用内存。查看 此部分,以了解更多详细信息。

AuraFlowPipeline

class diffusers.AuraFlowPipeline

< >

( tokenizer: T5Tokenizer text_encoder: UMT5EncoderModel vae: AutoencoderKL transformer: AuraFlowTransformer2DModel scheduler: FlowMatchEulerDiscreteScheduler )

参数

  • tokenizer (T5TokenizerFast) — T5Tokenizer 类别的分词器。
  • text_encoder (T5EncoderModel) — 冻结的文本编码器。AuraFlow 使用 T5,特别是 EleutherAI/pile-t5-xl 变体。
  • vae (AutoencoderKL) — 用于将图像编码和解码到潜在表示的变分自动编码器 (VAE) 模型。
  • transformer (AuraFlowTransformer2DModel) — 用于对编码的图像潜在表示进行去噪的条件 Transformer (MMDiT 和 DiT) 架构。
  • scheduler (FlowMatchEulerDiscreteScheduler) — 用于与 transformer 结合以对编码的图像潜在表示进行去噪的调度器。

__call__

< >

( 提示: Union = None 负面提示: Union = None 推理步骤数: int = 50 时间步长: List = None sigma 值: List = None 引导尺度: float = 3.5 每个提示生成的图像数量: Optional = 1 高度: Optional = 1024 宽度: Optional = 1024 生成器: Union = None 潜在变量: Optional = None 提示嵌入: Optional = None 提示注意力掩码: Optional = None 负面提示嵌入: Optional = None 负面提示注意力掩码: Optional = None 最大序列长度: int = 256 输出类型: Optional = 'pil' 返回字典: bool = True )

参数

  • 提示 (strList[str], 可选) — 指导图像生成的提示或提示。如果未定义,则必须传递 prompt_embeds. 代替。
  • 负面提示 (strList[str], 可选) — 不指导图像生成的提示或提示。如果未定义,则必须传递 negative_prompt_embeds 代替。当不使用引导时忽略(即,如果 guidance_scale 小于 1 时忽略)。
  • 高度 (int, 可选, 默认值为 self.transformer.config.sample_size * self.vae_scale_factor) — 生成的图像的高度(以像素为单位)。默认情况下,此设置为 1024,以获得最佳效果。
  • 宽度 (int, 可选, 默认值为 self.transformer.config.sample_size * self.vae_scale_factor) — 生成的图像的宽度(以像素为单位)。默认情况下,此设置为 1024,以获得最佳效果。
  • 推理步骤数 (int, 可选, 默认值为 50) — 降噪步骤的数量。更多的降噪步骤通常会导致更高的图像质量,但会降低推理速度。
  • sigma 值 (List[float], 可选) — 自定义 sigma 值,用于覆盖调度器的步长间距策略。如果传递了 sigmasnum_inference_stepstimesteps 必须为 None
  • 时间步长 (List[int], 可选) — 用于降噪过程的自定义时间步长,适用于在 set_timesteps 方法中支持 timesteps 参数的调度器。如果未定义,将使用传递 num_inference_steps 时的默认行为。必须按降序排列。
  • 引导尺度 (float, 可选, 默认值为 5.0) — 如 无分类器扩散引导 中定义的引导尺度。guidance_scale 定义为 Imagen 论文 的等式 2 中的 w。通过设置 guidance_scale > 1 来启用引导尺度。更高的引导尺度鼓励生成与文本 prompt 密切相关的图像,通常会降低图像质量。
  • 每个提示生成的图像数量 (int, 可选,
  • generator (torch.GeneratorList[torch.Generator], 可选) — 一个或多个 torch 生成器,用于使生成确定性。
  • latents (torch.FloatTensor, 可选) — 预生成的噪声潜变量,从高斯分布采样,用作图像生成的输入。 可用于使用不同的提示调整相同的生成。 如果未提供,潜变量张量将通过使用提供的随机 generator 采样来生成。
  • prompt_embeds (torch.FloatTensor, 可选) — 预生成的文本嵌入。 可用于轻松调整文本输入,例如 提示权重。 如果未提供,文本嵌入将从 prompt 输入参数生成。
  • prompt_attention_mask (torch.Tensor, 可选) — 预生成的文本嵌入的注意力掩码。
  • negative_prompt_embeds (torch.FloatTensor, 可选) — 预生成的负文本嵌入。 可用于轻松调整文本输入,例如 提示权重。 如果未提供,negative_prompt_embeds 将从 negative_prompt 输入参数生成。
  • negative_prompt_attention_mask (torch.Tensor, 可选) — 预生成的负文本嵌入的注意力掩码。
  • output_type (str, 可选, 默认值为 "pil") — 生成的图像的输出格式。 在 PIL: PIL.Image.Imagenp.array 之间选择。
  • return_dict (bool, 可选, 默认值为 True) — 是否返回 ~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput 而不是普通元组。
  • max_sequence_length (int, 默认值为 256) — 与 prompt 一起使用的最大序列长度。

调用管道进行生成时调用的函数。

示例

>>> import torch
>>> from diffusers import AuraFlowPipeline

>>> pipe = AuraFlowPipeline.from_pretrained("fal/AuraFlow", torch_dtype=torch.float16)
>>> pipe = pipe.to("cuda")
>>> prompt = "A cat holding a sign that says hello world"
>>> image = pipe(prompt).images[0]
>>> image.save("aura_flow.png")

返回:ImagePipelineOutputtuple:如果 return_dictTrue,则返回 ImagePipelineOutput,否则返回一个 tuple,其中第一个元素是包含生成的图像的列表。

encode_prompt

< >

( prompt: Union negative_prompt: Union = None do_classifier_free_guidance: bool = True

参数

  • prompt (strList[str], 可选) — 要编码的提示
  • negative_prompt (strList[str], 可选) — 不引导图像生成的提示。如果没有定义,则必须传递 negative_prompt_embeds。 不使用引导时忽略(即,如果 guidance_scale 小于 1,则忽略)。
  • do_classifier_free_guidance (bool, 可选, 默认值为 True) — 是否使用分类器自由引导
  • num_images_per_prompt (int, 可选, 默认值为 1) — 每个提示应该生成的图像数量 设备 — (torch.device, 可选): 将生成的嵌入放置的火炬设备
  • prompt_embeds (torch.Tensor, 可选) — 预生成的文本嵌入。 可用于轻松调整文本输入,例如提示加权。 如果未提供,则将从 prompt 输入参数生成文本嵌入。
  • prompt_attention_mask (torch.Tensor, 可选) — 预生成的文本嵌入的注意力掩码。
  • negative_prompt_embeds (torch.Tensor, 可选) — 预生成的负文本嵌入。
  • negative_prompt_attention_mask (torch.Tensor, 可选) — 预生成的负文本嵌入的注意力掩码。
  • max_sequence_length (int, 默认值为 256) — 用于提示的最大序列长度。

将提示编码为文本编码器隐藏状态。

< > 在 GitHub 上更新