Buckets:

mishig's picture
|
download
raw
2.3 kB
# FreeU
[FreeU](https://huggingface.co/papers/2309.11497) 通过重新平衡 UNet 解码器从主干特征与跳跃连接特征中提取信息的比例来提升图像细节。跳跃连接可能会淹没主干的语义特征,从而导致输出中出现不自然的细节。FreeU 无需训练,并且可以在文本生成图像和文本生成视频流水线的推理阶段随时开启或关闭。
> [!NOTE]
> FreeU 仅适用于基于 UNet 的流水线,例如 Stable Diffusion、SDXL 和 AnimateDiff。它不支持基于 Transformer 的流水线,例如 Flux 或 Qwen-Image。
在您的 pipeline 上使用 [enable_freeu()](/docs/diffusers/v0.43.0/zh/api/pipelines/overview#diffusers.StableDiffusionMixin.enable_freeu) 方法并配置缩放因子。`b1` 和 `b2` 用于放大主干特征,而 `s1` 和 `s2` 用于衰减跳跃特征。`1` 和 `2` 分别指代 UNet 解码器的前两个上采样阶段。有关不同模型的参考超参数,请参阅 [FreeU](https://github.com/ChenyangSi/FreeU#parameters) 仓库。
从模型的仓库值开始。若要针对其他模型进行调优,请保持 `s1=0.9` 和 `s2=0.2` 不变,并优先调整 `b1` 和 `b2`。将四个因子全部设置为 `1.0` 等同于禁用 FreeU。较大的 `b` 值会增强效果,但可能会过度平滑精细纹理,而降低 `s1` 和 `s2` 可以抵消这种影响。
```py
import torch
from diffusers import DiffusionPipeline
pipeline = DiffusionPipeline.from_pretrained(
"stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16,
).to("cuda") # or "mps", "xpu", "cpu"
pipeline.enable_freeu(s1=0.9, s2=0.2, b1=1.3, b2=1.4)
generator = torch.Generator(device="cpu").manual_seed(13)
prompt = "A squirrel eating a burger"
image = pipeline(prompt, generator=generator).images[0]
image
```
FreeU 已禁用
已启用 FreeU
调用 [disable_freeu()](/docs/diffusers/v0.43.0/zh/api/pipelines/overview#diffusers.StableDiffusionMixin.disable_freeu) 方法以禁用 FreeU。
```py
pipeline.disable_freeu()
```
## 后续步骤
- 有关完整的参数说明,请参阅 [enable_freeu()](/docs/diffusers/v0.43.0/zh/api/pipelines/overview#diffusers.StableDiffusionMixin.enable_freeu) API 参考。
- 使用 [AnimateDiff](../api/pipelines/animatediff) 在视频上尝试 FreeU。

Xet Storage Details

Size:
2.3 kB
·
Xet hash:
c96d07e7081265c31933e79c719e718ca260389a4dee261bc24e328eae51de7f

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.