Buckets:
| # CacheDiT | |
| [CacheDiT](https://github.com/vipshop/cache-dit) acelera os pipelines DiT reutilizando as saídas dos blocos de transformer entre as etapas de desruido. Ele não requer treinamento e suporta a maioria dos pipelines DiT do Diffusers, incluindo Flux, Qwen-Image, Wan e HunyuanVideo. O Diffusers também possui [cache integrado](./cache) que não exige uma dependência extra. | |
| Instale o CacheDiT do PyPI. | |
| ```bash | |
| pip install -U cache-dit | |
| ``` | |
| Chame `cache_dit.supported_pipelines()` para listar as famílias de pipelines que o CacheDiT suporta. | |
| ```py | |
| import cache_dit | |
| cache_dit.supported_pipelines() | |
| ``` | |
| ## Ativar o cache | |
| Chame `cache_dit.enable_cache` em um pipeline para ativá-lo com as configurações padrão e, em seguida, execute o pipeline normalmente. | |
| ```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] | |
| ``` | |
| O CacheDiT também funciona com `torch.compile`. Compile o transformer depois de chamar `enable_cache`. Consulte a documentação de [compile](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/COMPILE.md) para configurações que evitam recompilação com formas de entrada dinâmicas. | |
| ```py | |
| pipeline.transformer = torch.compile(pipeline.transformer) | |
| ``` | |
| Chame `cache_dit.summary` após a inferência para registrar quantas etapas foram armazenadas em cache e as diferenças residuais entre as etapas. | |
| ```py | |
| stats = cache_dit.summary(pipeline) | |
| ``` | |
| Chame `cache_dit.disable_cache` para restaurar o pipeline original. | |
| ```py | |
| cache_dit.disable_cache(pipeline) | |
| ``` | |
| ## Configure o cache | |
| DBCache O (Dual Block Cache) calcula os primeiros n blocos (Fn) a cada etapa. Quando a saída deles muda pouco em relação à etapa anterior, ele reutiliza a saída em cache para os blocos restantes e pode recalcular os últimos n blocos (Bn) para corrigi-la. O calibrador TaylorSeer prevê a saída em cache a partir de etapas anteriores, em vez de reutilizá-la como está. | |
| `enable_cache` usa DBCache por padrão, com os primeiros 8 blocos sempre calculados (F8B0) e 8 passos de aquecimento sem cache. Para trocar velocidade por qualidade, aumente `Fn_compute_blocks` ou diminua `residual_diff_threshold` (padrão `0.08`). Para a melhor qualidade em altas taxas de cache, adicione o 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 os pipelines suportados, o CacheDiT já sabe se o CFG é executado como uma passagem de forward separada. Para outros modelos, defina `enable_separate_cfg=True` em `DBCacheConfig` se o modelo executar as passagens condicional e incondicional separadamente, ou `False` se ele as fundir ou não usar CFG. | |
| Consulte a documentação do [design do DBCache](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/DBCACHE_DESIGN.md) para entender como os blocos Fn e Bn funcionam, e os [benchmarks de cache](https://github.com/vipshop/cache-dit/blob/main/bench/cache/README.md) para números de velocidade e qualidade. | |
| ## Próximas etapas | |
| - Para pipelines que o CacheDiT ainda não suporta, consulte a documentação do [BlockAdapter](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/CACHE_API.md#automatic-block-adapter). | |
| - O CacheDiT também oferece suporte a [paralelismo de contexto](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/CONTEXT_PARALLEL.md) e [quantização](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/QUANTIZATION.md). | |
Xet Storage Details
- Size:
- 3.96 kB
- Xet hash:
- f38a9b56d424288f9a96a6fe4329212a549cbd6b1fbaeccc30cfeea488507e86
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.