Diffusers documentation

ComponentsManager

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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_pretrained
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)

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()
Update on GitHub