# FreeU

[FreeU](https://huggingface.co/papers/2309.11497) améliore le niveau de détail des images en rééquilibrant la proportion de caractéristiques issues du décodeur UNet provenant des caractéristiques de l’architecture de base par rapport à celles des connexions de contournement. Les connexions de contournement peuvent noyer les caractéristiques sémantiques de l’architecture de base, ce qui génère des détails non naturels dans la sortie. FreeU ne nécessite aucun entraînement et peut être activé ou désactivé au moment de l’inférence pour les pipelines texte-vers-image et texte-vers-vidéo.

> [!NOTE]
> FreeU ne fonctionne qu'avec les pipelines basés sur UNet, tels que Stable Diffusion, SDXL et AnimateDiff. Il n'est pas pris en charge par les pipelines basés sur des transformers, comme Flux ou Qwen-Image.

Utilisez la méthode [enable_freeu()](/docs/diffusers/v0.43.0/fr/api/pipelines/overview#diffusers.StableDiffusionMixin.enable_freeu) sur votre pipeline et configurez les facteurs d’échelle. `b1` et `b2` amplifient les caractéristiques du backbone, tandis que `s1` et `s2` atténuent les caractéristiques de saut. Les indices `1` et `2` correspondent aux deux premières étapes de remonte en résolution du décodeur UNet. Consultez le dépôt [FreeU](https://github.com/ChenyangSi/FreeU#parameters) pour les hyperparamètres de référence adaptés aux différents modèles.

Commencez par les valeurs du dépôt pour un modèle. Pour ajuster d’autres modèles, conservez `s1=0.9` et `s2=0.2` et ajustez d’abord `b1` et `b2`. Définir les quatre facteurs à `1.0` équivaut à désactiver FreeU. Des valeurs de `b` plus élevées renforcent l’effet mais peuvent lisser excessivement les textures fines, et réduire `s1` et `s2` contrebalance cela.

```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 désactivé
  
  
    
    FreeU activé
  

Appel de la méthode [disable_freeu()](/docs/diffusers/v0.43.0/fr/api/pipelines/overview#diffusers.StableDiffusionMixin.disable_freeu) pour désactiver FreeU.

```py
pipeline.disable_freeu()
```

## Étapes suivantes

- Consultez la référence de l’API [enable_freeu()](/docs/diffusers/v0.43.0/fr/api/pipelines/overview#diffusers.StableDiffusionMixin.enable_freeu) pour les descriptions complètes des paramètres.
- Essayez FreeU sur vidéo avec [AnimateDiff](../api/pipelines/animatediff).

