Buckets:
| # CacheDiT | |
| [CacheDiT](https://github.com/vipshop/cache-dit) acelera los pipelines de DiT reutilizando las salidas de los bloques de transformer entre los pasos de desruido. No requiere entrenamiento y es compatible con la mayoría de los pipelines DiT de Diffusers, incluidos Flux, Qwen-Image, Wan y HunyuanVideo. Diffusers también cuenta con [cache integrada](./cache) que no requiere una dependencia adicional. | |
| Instale CacheDiT desde PyPI. | |
| ```bash | |
| pip install -U cache-dit | |
| ``` | |
| Llama a `cache_dit.supported_pipelines()` para listar las familias de pipelines que admite CacheDiT. | |
| ```py | |
| import cache_dit | |
| cache_dit.supported_pipelines() | |
| ``` | |
| ## Activar la caché | |
| Llama a `cache_dit.enable_cache` en un pipeline para cachearlo con la configuración predeterminada y luego ejecuta el pipeline como de costumbre. | |
| ```py | |
| import torch | |
| import cache_dit | |
| from diffusers import FluxPipeline | |
| pipeline = FluxPipeline.from_pretrained( | |
| "black-forest-labs/FLUX.1-dev", dtype=torch.bfloat16 | |
| ).to("cuda") | |
| cache_dit.enable_cache(pipeline) | |
| image = pipeline( | |
| "A cat holding a sign that says hello world", num_inference_steps=28 | |
| ).images[0] | |
| ``` | |
| CacheDiT también funciona con `torch.compile`. Compila el transformer después de llamar a `enable_cache`. Consulta la documentación de [compile](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/COMPILE.md) para conocer las configuraciones que evitan la recompilación con formas de entrada dinámicas. | |
| ```py | |
| pipeline.transformer = torch.compile(pipeline.transformer) | |
| ``` | |
| Llama a `cache_dit.summary` después de la inferencia para registrar cuántos pasos se almacenaron en caché y las diferencias residuales entre pasos. | |
| ```py | |
| stats = cache_dit.summary(pipeline) | |
| ``` | |
| Llama a `cache_dit.disable_cache` para restaurar el pipeline original. | |
| ```py | |
| cache_dit.disable_cache(pipeline) | |
| ``` | |
| ## Configura la caché | |
| DBCache (Dual Block Cache) calcula los primeros n bloques (Fn) en cada paso. Cuando su salida apenas cambia respecto al paso anterior, reutiliza la salida en caché para los bloques restantes y puede recalcular los últimos n bloques (Bn) para corregirla. El calibrador TaylorSeer predice la salida en caché a partir de pasos anteriores en lugar de reutilizarla tal cual. | |
| `enable_cache` usa DBCache por defecto, con los primeros 8 bloques siempre calculados (F8B0) y 8 pasos de calentamiento sin caché. Para priorizar la calidad a costa de la velocidad, aumente `Fn_compute_blocks` o reduzca `residual_diff_threshold` (valor predeterminado `0.08`). Para obtener la mejor calidad con altas tasas de caché, agregue el calibrador TaylorSeer. | |
| ```py | |
| from cache_dit import DBCacheConfig, TaylorSeerCalibratorConfig | |
| cache_dit.enable_cache( | |
| pipeline, | |
| cache_config=DBCacheConfig( | |
| max_warmup_steps=8, | |
| Fn_compute_blocks=8, | |
| Bn_compute_blocks=0, | |
| residual_diff_threshold=0.12, | |
| ), | |
| calibrator_config=TaylorSeerCalibratorConfig(taylorseer_order=1), | |
| ) | |
| ``` | |
| Para los pipelines compatibles, CacheDiT ya sabe si CFG se ejecuta como una pasada de inferencia independiente. Para otros modelos, establece `enable_separate_cfg=True` en `DBCacheConfig` si el modelo ejecuta las pasadas condicionales y no condicionales por separado, o `False` si las fusiona o no utiliza CFG. | |
| Consulte la documentación del [diseño de DBCache](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/DBCACHE_DESIGN.md) para ver cómo funcionan los bloques Fn y Bn, y los [benchmarks de caché](https://github.com/vipshop/cache-dit/blob/main/bench/cache/README.md) para conocer las cifras de velocidad y calidad. | |
| ## Próximos pasos | |
| - Para los pipelines que CacheDiT aún no admite, consulte la documentación de [BlockAdapter](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/CACHE_API.md#automatic-block-adapter). | |
| - CacheDiT también admite [paralelismo de contexto](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/CONTEXT_PARALLEL.md) y [cuantización](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/QUANTIZATION.md). | |
Xet Storage Details
- Size:
- 4.06 kB
- Xet hash:
- 271aa4e97e74d199e9d17326912142b466f0a2e6d55f1ff3acc42ac6785956e1
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.