Diffusers 文档

AuraFlow

Hugging Face's logo
加入 Hugging Face 社区

并获取增强的文档体验

开始使用

AuraFlow

AuraFlow 的灵感来源于 Stable Diffusion 3,是迄今为止最大的文本到图像生成模型,它带有 Apache 2.0 许可证。该模型在 GenEval 基准测试中取得了最先进的结果。

它由 Fal 团队开发,更多详情请见 这篇博客文章

AuraFlow 在消费级硬件设备上运行可能相当昂贵。但是,您可以执行一系列优化,以使其运行更快且更节省内存。查看此部分了解更多详情。

AuraFlowPipeline

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__

< >

( prompt: typing.Union[str, typing.List[str]] = None negative_prompt: typing.Union[str, typing.List[str]] = None num_inference_steps: int = 50 sigmas: typing.List[float] = None guidance_scale: float = 3.5 num_images_per_prompt: typing.Optional[int] = 1 height: typing.Optional[int] = 1024 width: typing.Optional[int] = 1024 generator: typing.Union[torch._C.Generator, typing.List[torch._C.Generator], NoneType] = None latents: typing.Optional[torch.Tensor] = None prompt_embeds: typing.Optional[torch.Tensor] = None prompt_attention_mask: typing.Optional[torch.Tensor] = None negative_prompt_embeds: typing.Optional[torch.Tensor] = None negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None max_sequence_length: int = 256 output_type: typing.Optional[str] = 'pil' return_dict: bool = True )

参数

  • prompt (strList[str], 可选) — 用于引导图像生成的提示或提示列表。如果未定义,则必须传递 prompt_embeds
  • negative_prompt (strList[str], 可选) — 不用于引导图像生成的提示或提示列表。如果未定义,则必须传递 negative_prompt_embeds。当不使用引导时忽略(即,如果 guidance_scale 小于 1 则忽略)。
  • height (int, 可选, 默认为 self.transformer.config.sample_size * self.vae_scale_factor) — 生成图像的高度像素。 默认设置为 1024 以获得最佳效果。
  • width (int, 可选, 默认为 self.transformer.config.sample_size * self.vae_scale_factor) — 生成图像的宽度像素。 默认设置为 1024 以获得最佳效果。
  • num_inference_steps (int, 可选, 默认为 50) — 去噪步骤的数量。 更多的去噪步骤通常会带来更高质量的图像,但会牺牲较慢的推理速度。
  • sigmas (List[float], 可选) — 用于覆盖调度器的时间步长策略的自定义 sigmas。 如果传递 sigmas,则 num_inference_stepstimesteps 必须为 None
  • guidance_scale (float, 可选, 默认为 5.0) — 无分类器扩散引导 中定义的引导缩放。 guidance_scale 定义为 Imagen Paper 等式 2 中的 w。 通过设置 guidance_scale > 1 启用引导缩放。 较高的引导缩放鼓励生成与文本 prompt 紧密相关的图像,通常以降低图像质量为代价。
  • num_images_per_prompt (int, 可选, 默认为 1) — 每个提示要生成的图像数量。
  • 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 输入参数生成 negative_prompt_embeds。
  • 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: typing.Union[str, typing.List[str]] negative_prompt: typing.Union[str, typing.List[str]] = None do_classifier_free_guidance: bool = True num_images_per_prompt: int = 1 device: typing.Optional[torch.device] = None prompt_embeds: typing.Optional[torch.Tensor] = None negative_prompt_embeds: typing.Optional[torch.Tensor] = None prompt_attention_mask: typing.Optional[torch.Tensor] = None negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None max_sequence_length: int = 256 )

参数

  • 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) — 每个提示词应生成的图像数量
  • device — (torch.device, 可选): 用于放置结果嵌入的 torch 设备
  • 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 上更新