Diffusers 文档
控制图像质量
加入 Hugging Face 社区
并获得增强的文档体验
开始使用
控制图像质量
扩散模型的组件,例如 UNet 和调度器,可以进行优化以提高生成图像的质量,从而带来更好的细节。如果您没有资源简单地使用更大的模型进行推理,这些技术尤其有用。您可以在推理期间启用这些技术,而无需任何额外的训练。
本指南将向您展示如何在 pipeline 中启用这些技术,以及如何配置它们以提高生成图像的质量。
细节
FreeU 通过重新平衡 UNet 的主干和跳跃连接权重来改善图像细节。跳跃连接可能导致模型忽略一些主干语义,这可能会导致生成图像中出现不自然的图像细节。这项技术不需要任何额外的训练,可以在图像到图像和文本到视频等任务的推理过程中即时应用。
在您的 pipeline 上使用 enable_freeu() 方法,并配置主干(b1
和 b2
)和跳跃连接(s1
和 s2
)的缩放因子。每个缩放因子后面的数字对应于应用该因子的 UNet 中的阶段。查看 FreeU 存储库,以获取不同模型的参考超参数。
Stable Diffusion v1-5
Stable Diffusion v2-1
Stable Diffusion XL
Zeroscope
import torch
from diffusers import DiffusionPipeline
pipeline = DiffusionPipeline.from_pretrained(
"stable-diffusion-v1-5/stable-diffusion-v1-5", torch_dtype=torch.float16, safety_checker=None
).to("cuda")
pipeline.enable_freeu(s1=0.9, s2=0.2, b1=1.5, b2=1.6)
generator = torch.Generator(device="cpu").manual_seed(33)
prompt = ""
image = pipeline(prompt, generator=generator).images[0]
image


调用 pipelines.StableDiffusionMixin.disable_freeu() 方法禁用 FreeU。
pipeline.disable_freeu()