AWS Trainium & Inferentia 文档

Stable Diffusion XL Turbo

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

Stable Diffusion XL Turbo

概述

SDXL Turbo 是一种对抗性时间蒸馏 Stable Diffusion XL (SDXL) 模型,能够在最少 1 步内运行推理(查看 🤗diffusers 了解更多详情)。

optimum-neuron 中,您可以

  • 使用 NeuronStableDiffusionXLPipeline 类进行编译和运行推理。

在这里,我们将使用 Optimum CLI 编译 stabilityai/sdxl-turbo 模型。

导出到 Neuron

optimum-cli export neuron --model stabilityai/sdxl-turbo --batch_size 1 --height 512 --width 512 --auto_cast matmul --auto_cast_type bf16 sdxl_turbo_neuron/

文本到图像

现在我们可以使用预编译的模型在 Inf2 上从文本提示生成图像

from optimum.neuron import NeuronStableDiffusionXLPipeline

pipe = NeuronStableDiffusionXLPipeline.from_pretrained("sdxl_turbo_neuron/", data_parallel_mode="all")
prompt = ["Self-portrait oil painting, a beautiful cyborg with golden hair, 8k"] * 2

images = pipe(prompt=prompt, guidance_scale=0.0, num_inference_steps=1).images

Inf2 实例包含一个或多个 Neuron 设备,每个 Neuron 设备包括 2 个 NeuronCore-v2。默认情况下,我们将 LCM 的整个管道加载到两个 Neuron 核。这意味着当批处理大小可被 2 整除时,您可以充分利用两个核的计算能力。

您希望我们在 🤗Optimum-neuron 中支持其他扩散功能吗?请向 Optimum-neuron Github 仓库 提交问题或在 HuggingFace 社区论坛 上与我们讨论,谢谢 🤗!