Buckets:
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 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)
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'da 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()
Xet Storage Details
- Size:
- 5.46 kB
- Xet hash:
- 22746aa5de3942dff5f8f00cac2f05fe9a2d7d287a7ddce8fc5afd71fed070f9
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.