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 hâlâ aktif geliştirme aşamasındadır ve API'si değişebilir.

ComponentsManager, Modular Diffusers için bir model kayıt defteri ve yönetim sistemidir. Modelleri ekler ve izler, faydalı meta verileri (model boyutu, cihaz yerleşimi, adaptörler) saklar ve offload işlemini destekler.

Bu kılavuz, bileşenleri ve bellek yönetimini ComponentsManager ile nasıl kullanacağınızı gösterecektir.

Bir pipeline'a bağlanın

Bir ComponentsManager oluşturun ve bunu from_pretrained() veya init_pipeline() ile bir ModularPipeline'e iletin.

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)

pipeline tarafından yüklenen bileşenler, yöneticide otomatik olarak kaydedilir. Bunları hemen inceleyebilirsiniz.

Bileşenleri incele

Kayıtlı tüm bileşenleri, sınıf, cihaz yerleşimi, veri tipi, bellek boyutu ve yükleme kimlikleri dahil olmak üzere görmek için ComponentsManager nesnesini yazdırın.

Aşağıdaki çıktı, yukarıdaki from_pretrained örneğine karşılık gelmektedir.

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

Tablo, modelleri (cihaz, dtype ve bellek bilgileriyle) zamanlayıcılar ve belirteçler gibi diğer bileşenlerden ayrı olarak gösterir. Modellerden herhangi birine LoRA adaptörleri, IP-Adaptörler veya kuantizasyon uygulanmışsa, bu bilgi alt kısımdaki ek bir bölümde görüntülenir.

Offloading

enable_auto_cpu_offload() yöntemi, hangi pipeline'ın kullandığına bakılmaksızın tüm modeller arasında çalışan küresel bir ofloading stratejisidir. Etkinleştirildikten sonra, bileşenler eklediğinizde veya kaldırdığınızda cihaz yerleşimiyle ilgili endişelenmenize gerek yoktur.

manager.enable_auto_cpu_offload(device="cuda")  # or "mps", "xpu", "cpu"

Tüm modeller CPU üzerinde başlar ve ComponentsManager, ihtiyaç duyulmadan hemen önce onları uygun cihaza taşır; GPU belleği düşük olduğunda ise diğer modelleri CPU'ya geri taşır.

Offload etmeyi devre dışı bırakmak için disable_auto_cpu_offload() çağrısını yapın.

manager.disable_auto_cpu_offload()
Update on GitHub