# Pipeline

## ModularPipeline[[diffusers.ModularPipeline]]

#### diffusers.ModularPipeline[[diffusers.ModularPipeline]]

```python
diffusers.ModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/modular_pipeline.py#L1697)

**Parametreler:**

blocks : ModülerPipelineBlokları, pipeline'da kullanılacak bloklar

Tüm Modular boru hatları için temel sınıf.

#### from_pretrained[[diffusers.ModularPipeline.from_pretrained]]

```python
from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None, trust_remote_code: bool | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/modular_pipeline.py#L1922)

**Parametreler:**

pretrained_model_name_or_path (`str` veya `os.PathLike`, isteğe bağlı) : Ön eğitilmiş bir pipeline yapılandırmasının yolu. Önce yapılandırmayı `modular_model_index.json` dosyasından yüklemeye çalışır, ardından standart modüler olmayan depolarla uyumluluk için `model_index.json` dosyasına geri döner. pretrained_model_name_or_path herhangi bir pipeline yapılandırması içermiyorsa, başlatma sırasında None olarak ayarlanır.

trust_remote_code (`bool`, isteğe bağlı) : Pipeline yüklenirken uzak kodun güvenilip güvenilmeyeceğini belirtir. `pretrained_model_name_or_path` içindeki özel koda dayalı pipeline blokları oluşturmak istiyorsanız True olarak ayarlanmalıdır.

components_manager (`ComponentsManager`, isteğe bağlı) : Farklı pipeline'lar arasında birden fazla bileşeni yönetmek ve offloading stratejilerini uygulamak için ComponentsManager örneği.

collection (`str`, isteğe bağlı) --` ComponentsManager içinde bileşenleri düzenlemek için koleksiyon adı.

workflow (`str`, isteğe bağlı) : Pipeline blokları tarafından tanımlanan bir iş akışının adı. Sağlanırsa, bloklar o iş akışının yürütme bloklarına göre budanır; böylece pipeline yalnızca o iş akışının kullandığı bileşenleri bekler ve `load_components()` yalnızca o bileşenleri yükler.

Bir huggingface hub deposundan ModularPipeline yükleyin.

#### get_component_spec[[diffusers.ModularPipeline.get_component_spec]]

```python
get_component_spec(name: str)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/modular_pipeline.py#L2408)

**Dönüş:**

- belirtilen bileşen adı için ComponentSpec nesnesinin bir kopyası

#### load_components[[diffusers.ModularPipeline.load_components]]

```python
load_components(names: list[str] | str | None = None, workflow: str | None = None, **kwargs)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/modular_pipeline.py#L2496)

**Parametreler:**

names : yüklenecek bileşen adlarının listesi. None ise, default_creation_method == "from_pretrained" olan tüm bileşenler yüklenecektir. Liste veya dize olarak sağlanırsa, yalnızca belirtilen bileşenler yüklenecektir.

workflow : pipeline blokları tarafından bildirilen bir iş akışının adı. Verilirse, yalnızca o iş akışının yürütme bloklarının kullandığı bileşenler yüklenir. `names` ile birleştirilemez.

- ****kwargs** : `from_pretrained()` fonksiyonuna iletilecek ek kwargs. Şunlardan biri olabilir: - Yüklenecek tüm bileşenlere uygulanacak tek bir değer, örn. dtype=torch.bfloat16 - Bir sözlük, örn. dtype={"unet": torch.bfloat16, "default": torch.float32} - kwargs içinde farklı bir yükleme alanı geçirilirse ComponentSpec'i potansiyel olarak geçersiz kılabilir, örn. `pretrained_model_name_or_path`, `variant`, `revision` vb. - kwargs içinde farklı bir yükleme alanı geçirilirse ComponentSpec'i potansiyel olarak geçersiz kılabilir, örn. `pretrained_model_name_or_path`, `variant`, `revision` vb.

Belirtilen bileşenleri spesifikasyonlardan yükleyin.

#### register_components[[diffusers.ModularPipeline.register_components]]

```python
register_components(**kwargs)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/modular_pipeline.py#L2193)

**Parametreler:**

- ****kwargs** : Anahtarları bileşen adları, değerleri bileşen nesneleri olan anahtar kelime argümanları. Örn., register_components(unet=unet_model, text_encoder=encoder_model)

Bileşenleri ilgili spesifikasyonlarıyla kaydedin.

Bu yöntem şunlardan sorumludur:
1. Bileşen nesnelerini yükleyicide öznitelikler olarak ayarlar (ör. self.unet = unet)
2. `save_pretrained` sırasında `modular_model_index.json` olarak kaydedilecek config sözlüğünü günceller (yalnızca from_pretrained bileşenleri için)
3. Bir bileşen yöneticisi bağlıysa bileşenleri bileşen yöneticisine ekler (yalnızca from_pretrained bileşenleri için)

Bu yöntem şu durumlarda çağrılır:
- Bileşenler önce __init__ içinde başlatılır:
  - from_pretrained bileşenleri __init__ sırasında yüklenmediği için None olarak kaydedilir;
  - non from_pretrained bileşenleri __init__ sırasında oluşturulur ve nesnenin kendisi olarak kaydedilir
- Bileşenler `update_components()` yöntemiyle güncellenir: örneğin loader.update_components(unet=unet) veya loader.update_components(guider=guider_spec)
- (from_pretrained) Bileşenler `load_components()` yöntemiyle yüklenir: örneğin tüm varsayılan bileşenleri yüklemek için loader.load_components(names=["unet"]) veya loader.load_components()

Notlar:
- Bir bileşen için None kaydedildiğinde, öznitelik None olarak ayarlanır ancak yine de özellikler yapılandırma sözlüğüyle senkronize edilir; bu sözlük `save_pretrained` sırasında `modular_model_index.json` olarak kaydedilir.
- component_specs, bu yöntemin dışında, örneğin `update_components()` yönteminde, yeni bileşenle eşleşecek şekilde güncellenir

#### save_pretrained[[diffusers.ModularPipeline.save_pretrained]]

```python
save_pretrained(save_directory: str | os.PathLike, safe_serialization: bool = True, variant: str | None = None, max_shard_size: int | str | None = None, push_to_hub: bool = False, **kwargs)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/modular_pipeline.py#L2023)

**Parametreler:**

save_directory (`str` veya `os.PathLike`) : Pipeline'in kaydedileceği dizin. Var değilse oluşturulur.

safe_serialization (`bool`, *isteğe bağlı*, varsayılan `True`) : Modelin `safetensors` ile mi yoksa geleneksel PyTorch yöntemiyle `pickle` kullanılarak mı kaydedileceğini belirtir.

variant (`str`, *isteğe bağlı*) : Belirtilirse, ağırlıklar `pytorch_model.<variant>.bin` biçiminde kaydedilir.

max_shard_size (`int` veya `str`, varsayılan `None`) : Bir kontrol noktasının parçalanmadan önceki maksimum boyutu. Parçalanan kontrol noktalarının her biri bu boyuttan küçük olacaktır. Dize olarak ifade ediliyorsa, birimden (örneğin `"5GB"`) önce rakamlar gelmelidir. Tamsayı olarak ifade ediliyorsa, birim bayttır.

push_to_hub (`bool`, *isteğe bağlı*, varsayılan `False`) : Kaydedildikten sonra hattın Hugging Face model merkezine gönderilip gönderilmeyeceğini belirtir.

- ****kwargs** : Ek anahtar kelime argümanları: - `overwrite_modular_index` (`bool`, *isteğe bağlı*, varsayılan `True`): Kaydedilen her bileşenin yükleme özelliğinin hedefe işaret etmesi için `modular_model_index.json` dosyasının güncellenip güncellenmeyeceği: Hub'a itildiğinde `repo_id`, aksi halde `save_directory`. Yüklenmeyen bileşenler kaydedilmez ve her zaman kayıtlı yükleme özelliklerini korur. Kaydedilen bileşenlerin kayıtlı özelliklerinin de korunması için `False` geçin (ör. kasıtlı olarak diğer depolara atıfta bulunan bir dizin için); bir yükleme kimliği olmayan bileşenler (ör. `update_components` ile eklenen özel modeller) kayıtlı bir kaynağa sahip olmadıkları için yine de yeniden yazılır. - `repo_id` (`str`, *isteğe bağlı*): Boru hattının itileceği depo kimliği. Varsayılan olarak `save_directory`'nin son bileşenidir. - `commit_message` (`str`, *isteğe bağlı*): Hub'a itme işlemi için commit mesajı. - `private` (`bool`, *isteğe bağlı*): Deponun özel olup olmayacağı. - `create_pr` (`bool`, *isteğe bağlı*, varsayılan `False`): Doğrudan itmek yerine bir çekme isteği (pull request) oluşturulup oluşturulmayacağı. - `token` (`str`, *isteğe bağlı*): Kimlik doğrulama için kullanılacak Hugging Face jetonu.

Hattın ve tüm bileşenlerinin [from_pretrained()](/docs/diffusers/main/tr/api/modular_diffusers/pipeline#diffusers.ModularPipeline.from_pretrained) sınıf yöntemiyle yeniden yüklenebilmesi için bir dizine kaydedin.

#### 'e[[diffusers.ModularPipeline.to]]

```python
to(*args, **kwargs)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/modular_pipeline.py#L2658)

**Parametreler:**

dtype (`torch.dtype`, *isteğe bağlı*) : Belirtilen [`dtype`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype) ile bir pipeline döndürür

device (`torch.Device`, *isteğe bağlı*) : Belirtilen [`device`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.device) ile bir pipeline döndürür

silence_dtype_warnings (`str`, *isteğe bağlı*, varsayılan `False`) : Hedef `dtype`, hedef `device` ile uyumlu değilse uyarıların atlanıp atlanmayacağı.

**Dönüş:** [DiffusionPipeline](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline)

Pipeline, belirtilen `dtype` ve/veya `dtype` değerine dönüştürüldü.

Performs Pipeline dtype and/or device conversion. A torch.dtype and torch.device are inferred from the arguments of `self.to(*args, **kwargs).`

> [!TIP] > Pipeline zaten doğru torch.dtype ve torch.device değerlerine sahipse, olduğu gibi döndürülür.
Aksi takdirde, > döndürülen pipeline, istenen torch.dtype ve torch.device değerlerine sahip self'in bir kopyasıdır.

`to` çağrısının yolları şunlardır:

- Belirtilen [`dtype`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype) ile bir pipeline döndürmek için `to(dtype, silence_dtype_warnings=False) → DiffusionPipeline`
- Belirtilen [`device`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.device) ile bir pipeline döndürmek için `to(device, silence_dtype_warnings=False) → DiffusionPipeline`
- Belirtilen [`device`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.device) ve [`dtype`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype) değerlerine sahip bir pipeline döndürmek için `to(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipeline`

#### unload_components[[diffusers.ModularPipeline.unload_components]]

```python
unload_components(names: list[str] | str)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/modular_pipeline.py#L2602)

**Parametreler:**

names : boşaltılacak bileşen adı veya bileşen adları listesi.

Seçili bileşenleri boşaltın ve belleklerini serbest bırakın.

Bileşen özniteliği `None` olarak ayarlanır ve bir ComponentsManager bağlıysa bileşen ondan kaldırılır. Bileşen spesifikasyonu değiştirilmediğinden, bileşen daha sonra `load_components()` ile yeniden yüklenebilir.

#### update_components[[diffusers.ModularPipeline.update_components]]

```python
update_components(**kwargs)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/modular_pipeline.py#L2415)

**Parametreler:**

- ****kwargs** : Güncellenecek bileşen nesneleri veya yapılandırma değerleri: - Bileşen nesneleri: `AutoModel.from_pretrained()` veya `ComponentSpec.load()` ile yüklenen modeller, yükleme bilgisiyle otomatik olarak etiketlenir. Ağırlıkları olmayan ConfigMixin nesneleri (ör. zamanlayıcılar, yönlendiriciler) doğrudan geçirilebilir. - Yapılandırma değerleri: Yapılandırma ayarlarını güncellemek için basit değerler (ör. `requires_safety_checker=False`)

Pipeline örneklemesi tamamlandıktan sonra bileşenleri ve yapılandırma değerlerini ve spesifikasyonlarını güncelleyin.

Bu yöntem size şunları yapma imkânı tanır:
1. Mevcut bileşenleri yenileriyle değiştirin (ör. `self.unet` veya `self.text_encoder` güncellemesi)
2. Yapılandırma değerlerini güncelle (ör. `self.requires_safety_checker` bayrağını değiştirme)

Bileşenleri ve yapılandırma değerlerini pipeline öznitelikleri olarak güncellemenin yanı sıra, yöntem ayrıca şunları da günceller:
- `_component_specs` ve `_config_specs` içindeki ilgili spesifikasyonlar
- `save_pretrained` sırasında `modular_model_index.json` olarak kaydedilecek olan `config` sözlüğü

Örnekler:
```python
# Update pre-trained model
pipeline.update_components(unet=new_unet_model, text_encoder=new_text_encoder)

# Update configuration values
pipeline.update_components(requires_safety_checker=False)
```

Notlar:
- `AutoModel.from_pretrained()` veya `ComponentSpec.load()` ile yüklenen bileşenlerin
serileştirme için korunan yükleme özellikleri. Hub referansları olmayan özel veya yerel olarak yüklenen bileşenlerin `modular_model_index.json` girdileri, `save_pretrained()` sırasında otomatik olarak güncellenir.
- Ağırlıkları olmayan ConfigMixin nesneleri (ör. zamanlayıcılar, yönlendiriciler) doğrudan geçirilebilir.

