# ComponentsManager

> [!WARNING]
> [ComponentsManager](/docs/diffusers/main/tr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager) hâlâ aktif geliştirme aşamasındadır ve API'si değişebilir.

[ComponentsManager](/docs/diffusers/main/tr/api/modular_diffusers/pipeline_components#diffusers.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](/docs/diffusers/main/tr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager) ile nasıl kullanacağınızı gösterecektir.

## Bir pipeline'a bağlanın

Bir [ComponentsManager](/docs/diffusers/main/tr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager) oluşturun ve bunu [from_pretrained()](/docs/diffusers/main/tr/api/modular_diffusers/pipeline#diffusers.ModularPipeline.from_pretrained) veya [init_pipeline()](/docs/diffusers/main/tr/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks.init_pipeline) ile bir [ModularPipeline](/docs/diffusers/main/tr/api/modular_diffusers/pipeline#diffusers.ModularPipeline)'e iletin.

```py
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)
```

```py
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](/docs/diffusers/main/tr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager) nesnesini yazdırın.

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

```py
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()](/docs/diffusers/main/tr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager.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.

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

Tüm modeller CPU'da başlar ve [ComponentsManager](/docs/diffusers/main/tr/api/modular_diffusers/pipeline_components#diffusers.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()](/docs/diffusers/main/tr/api/modular_diffusers/pipeline_components#diffusers.ComponentsManager.disable_auto_cpu_offload) çağrısını yapın.

```py
manager.disable_auto_cpu_offload()
```

