# FreeU

[FreeU](https://huggingface.co/papers/2309.11497) mejora el detalle de la imagen reequilibrando la cantidad de información que el decodificador de UNet extrae de las características del backbone frente a las de las conexiones de salto. Las conexiones de salto pueden opacar las características semánticas del backbone, lo que genera un detalle poco natural en la salida. FreeU no requiere entrenamiento y se puede activar o desactivar en tiempo de inferencia para los pipelines de texto a imagen y texto a video.

> [!NOTE]
> FreeU solo funciona con pipelines basados en UNet, como Stable Diffusion, SDXL y AnimateDiff. No es compatible con pipelines basados en transformers, como Flux o Qwen-Image.

Use el método [enable_freeu()](/docs/diffusers/v0.43.0/es/api/pipelines/overview#diffusers.StableDiffusionMixin.enable_freeu) en su pipeline y configure los factores de escalado. `b1` y `b2` amplifican las características del backbone, mientras que `s1` y `s2` atenúan las características de salto. Las cifras `1` y `2` se refieren a las dos primeras etapas de remuestreo ascendente del decodificador de UNet. Consulte el repositorio de [FreeU](https://github.com/ChenyangSi/FreeU#parameters) para obtener hiperparámetros de referencia para diferentes modelos.

Comience con los valores del repositorio para un modelo. Para ajustar para otros modelos, mantenga `s1=0.9` y `s2=0.2` y ajuste primero `b1` y `b2`. Establecer los cuatro factores en `1.0` es lo mismo que desactivar FreeU. Valores más grandes de `b` fortalecen el efecto pero pueden suavizar en exceso la textura fina, y reducir `s1` y `s2` contrarresta eso.

```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 deshabilitado
  
  
    
    FreeU habilitado
  

Llama al método [disable_freeu()](/docs/diffusers/v0.43.0/es/api/pipelines/overview#diffusers.StableDiffusionMixin.disable_freeu) para desactivar FreeU.

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

## Próximos pasos

- Consulte la referencia de la API [enable_freeu()](/docs/diffusers/v0.43.0/es/api/pipelines/overview#diffusers.StableDiffusionMixin.enable_freeu) para obtener las descripciones completas de los parámetros.
- Prueba FreeU en video con [AnimateDiff](../api/pipelines/animatediff).

