Buckets:
| # CacheDiT | |
| [CacheDiT](https://github.com/vipshop/cache-dit) mempercepat pipeline DiT dengan menggunakan ulang output blok transformer di antara langkah-langkah denoising. Metode ini tidak memerlukan pelatihan dan mendukung sebagian besar pipeline DiDiffusers, termasuk Flux, Qwen-Image, Wan, dan HunyuanVideo. Diffusers juga memiliki [penyimpanan cache bawaan](./cache) yang tidak memerlukan dependensi tambahan. | |
| Install CacheDiT dari PyPI. | |
| ```bash | |
| pip install -U cache-dit | |
| ``` | |
| Panggil `cache_dit.supported_pipelines()` untuk menampilkan daftar keluarga pipeline yang didukung oleh CacheDiT. | |
| ```py | |
| import cache_dit | |
| cache_dit.supported_pipelines() | |
| ``` | |
| ## Aktifkan penyangga | |
| Panggil `cache_dit.enable_cache` pada pipeline untuk meng-cache-nya dengan pengaturan default, lalu jalankan pipeline seperti biasa. | |
| ```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 juga berfungsi dengan `torch.compile`. Kompilasi transformer setelah Anda memanggil `enable_cache`. Lihat dokumentasi [compile](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/COMPILE.md) untuk pengaturan yang menghindari kompilasi ulang dengan bentuk input dinamis. | |
| ```py | |
| pipeline.transformer = torch.compile(pipeline.transformer) | |
| ``` | |
| Panggil `cache_dit.summary` setelah inferensi untuk mencatat berapa banyak langkah yang di-cache dan perbedaan residual antar langkah. | |
| ```py | |
| stats = cache_dit.summary(pipeline) | |
| ``` | |
| Panggil `cache_dit.disable_cache` untuk memulihkan pipeline asli. | |
| ```py | |
| cache_dit.disable_cache(pipeline) | |
| ``` | |
| ## Konfigurasi cache | |
| DBCache (Dual Block Cache) menghitung n blok pertama (Fn) pada setiap langkah. Ketika output mereka nyaris tidak berubah dari langkah sebelumnya, output yang di-cache untuk blok-blok sisanya digunakan kembali, dan n blok terakhir (Bn) dapat dihitung ulang untuk memperbaikinya. Kalibrator TaylorSeer memprediksi output yang di-cache dari langkah-langkah sebelumnya alih-alih menggunakannya apa adanya. | |
| `enable_cache` secara default menggunakan DBCache dengan 8 blok pertama yang selalu dihitung (F8B0) dan 8 langkah pemanasan tanpa cache. Untuk mengorbankan kecepatan demi kualitas, naikkan `Fn_compute_blocks` atau turunkan `residual_diff_threshold` (default `0.08`). Untuk kualitas terbaik pada tingkat cache tinggi, tambahkan kalibrator 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), | |
| ) | |
| ``` | |
| Untuk pipeline yang didukung, CacheDiT sudah mengetahui apakah CFG dijalankan sebagai forward pass terpisah. Untuk model lain, atur `enable_separate_cfg=True` di `DBCacheConfig` jika model menjalankan jalur kondisional dan non-kondisional secara terpisah, atau `False` jika model menggabungkannya atau tidak menggunakan CFG. | |
| Lihat dokumen [desain DBCache](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/DBCACHE_DESIGN.md) untuk memahami cara kerja blok Fn dan Bn, serta [benchmark cache](https://github.com/vipshop/cache-dit/blob/main/bench/cache/README.md) untuk angka kecepatan dan kualitas. | |
| ## Langkah selanjutnya | |
| - Untuk pipeline yang belum didukung oleh CacheDiT, lihat dokumentasi [BlockAdapter](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/CACHE_API.md#automatic-block-adapter). | |
| - CacheDiT juga mendukung [paralelisme konteks](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/CONTEXT_PARALLEL.md) dan [kuantisasi](https://github.com/vipshop/cache-dit/blob/main/docs/user_guide/QUANTIZATION.md). | |
Xet Storage Details
- Size:
- 3.98 kB
- Xet hash:
- 88e74dd3f3fde889b0856f50ff28a23b6dd1b80059b34871dcbd5525951730c8
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.