Diffusers documentation
ComponentsManager
ComponentsManager
ComponentsManager masih dalam pengembangan aktif dan API-nya dapat berubah.
ComponentsManager adalah sistem registrasi dan manajemen model untuk Modular Diffusers. Komponen ini menambahkan dan melacak model, menyimpan metadata yang berguna (ukuran model, penempatan perangkat, adapter), serta mendukung offloading.
Panduan ini akan menunjukkan cara menggunakan ComponentsManager untuk mengelola komponen dan memori perangkat.
Hubungkan ke pipeline
Buat ComponentsManager dan teruskan ke ModularPipeline dengan from_pretrained() atau init_pipeline().
from diffusers import ModularPipeline, ComponentsManager
import torch
manager = ComponentsManager()
pipe = ModularPipeline.from_pretrained("Tongyi-MAI/Z-Image-Turbo", components_manager=manager)
pipe.load_components(dtype=torch.bfloat16)from diffusers import ModularPipelineBlocks, ComponentsManager
import torch
manager = ComponentsManager()
blocks = ModularPipelineBlocks.from_pretrained("diffusers/Florence2-image-Annotator", trust_remote_code=True)
pipe= blocks.init_pipeline(components_manager=manager)
pipe.load_components(dtype=torch.bfloat16)Komponen yang dimuat oleh pipeline secara otomatis didaftarkan di dalam manager. Anda dapat memeriksanya segera.
Periksa komponen
Cetak ComponentsManager untuk melihat semua komponen yang terdaftar, termasuk kelas, penempatan perangkat, dtype, ukuran memori, dan ID pemuatan.
Output di bawah ini sesuai dengan contoh from_pretrained di atas.
Components:
=============================================================================================================================
Models:
-----------------------------------------------------------------------------------------------------------------------------
Name_ID | Class | Device: act(exec) | Dtype | Size (GB) | Load ID
-----------------------------------------------------------------------------------------------------------------------------
text_encoder_140458257514752 | Qwen3Model | cpu | torch.bfloat16 | 7.49 | Tongyi-MAI/Z-Image-Turbo|text_encoder|null|null
vae_140458257515376 | AutoencoderKL | cpu | torch.bfloat16 | 0.16 | Tongyi-MAI/Z-Image-Turbo|vae|null|null
transformer_140458257515616 | ZImageTransformer2DModel | cpu | torch.bfloat16 | 11.46 | Tongyi-MAI/Z-Image-Turbo|transformer|null|null
-----------------------------------------------------------------------------------------------------------------------------
Other Components:
-----------------------------------------------------------------------------------------------------------------------------
ID | Class | Collection
-----------------------------------------------------------------------------------------------------------------------------
scheduler_140461023555264 | FlowMatchEulerDiscreteScheduler | N/A
tokenizer_140458256346432 | Qwen2Tokenizer | N/A
-----------------------------------------------------------------------------------------------------------------------------Tabel menampilkan model (dengan informasi perangkat, dtype, dan memori) secara terpisah dari komponen lain seperti scheduler dan tokenizer. Jika ada model yang memiliki adapter LoRA, IP-Adapter, atau kuantisasi yang diterapkan, informasi tersebut ditampilkan di bagian tambahan di bagian bawah.
Offloading
Metode enable_auto_cpu_offload() adalah strategi offloading global yang bekerja di semua model terlepas dari pipeline mana yang menggunakannya. Setelah diaktifkan, Anda tidak perlu khawatir tentang penempatan perangkat jika Anda menambahkan atau menghapus komponen.
manager.enable_auto_cpu_offload(device="cuda") # or "mps", "xpu", "cpu"Semua model dimulai di CPU dan ComponentsManager memindahkannya ke perangkat yang tepat tepat sebelum dibutuhkan, serta memindahkan model lain kembali ke CPU saat memori GPU rendah.
Panggil disable_auto_cpu_offload() untuk menonaktifkan offloading.
manager.disable_auto_cpu_offload()