Diffusers documentation

FreeU

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

FreeU

FreeU, UNet decoder'ın backbone özelliklerinden ve atlamalı bağlantı (skip-connection) özelliklerinden ne kadar faydalandığını yeniden dengeleyerek görüntü detayını iyileştirir. Atlamalı bağlantılar, backbone'ın anlamsal (semantic) özelliklerini bastırabilir ve bu da çıktıda yapay detaylara yol açar. FreeU eğitim gerektirmez ve metinden görüntüye (text-to-image) ile metinden videoya (text-to-video) iş akışlarında çıkarım (inference) sırasında etkinleştirilebilir veya devre dışı bırakılabilir.

FreeU yalnızca Stable Diffusion, SDXL ve AnimateDiff gibi UNet tabanlı pipeline'larla çalışır. Flux veya Qwen-Image gibi transformer tabanlı pipeline'lar tarafından desteklenmez.

Hattınızda enable_freeu() yöntemini kullanın ve ölçekleme katsayılarını yapılandırın. b1 ve b2 omurga özelliklerini (backbone features) büyütür, s1 ve s2 ise atlama özelliklerini (skip features) sönümler. 1 ve 2, UNet çözücüsünün (decoder) ilk iki yukarı örnekleme (upsampling) aşamalarına atıfta bulunur. Farklı modeller için referans hiperparametrelerini FreeU deposunda bulabilirsiniz.

Bir model için depo değerleriyle başlayın. Diğer modeller için ayarlama yaparken s1=0.9 ve s2=0.2 değerlerini koruyun ve önce b1 ile b2 değerlerini ayarlayın. Dört faktörün tamamını 1.0 olarak ayarlamak, FreeU'yu devre dışı bırakmakla aynıdır. Daha büyük b değerleri etkiyi güçlendirir ancak ince dokuyu aşırı yumuşatabilir; s1 ve s2 değerlerini düşürmek bu etkiyi dengelemeye yardımcı olur.

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 devre dışı
FreeU etkin

FreeU'yu devre dışı bırakmak için disable_freeu() metodunu çağırın.

pipeline.disable_freeu()

Sonraki adımlar

Update on GitHub