# Pipeline blokları

## ModülerPipelineBlokları[[diffusers.ModularPipelineBlocks]]

#### diffusers.ModularPipelineBlocks[[diffusers.ModularPipelineBlocks]]

```python
diffusers.ModularPipelineBlocks()
```

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

Tüm Pipeline Blokları için temel sınıf: ConditionalPipelineBlocks, AutoPipelineBlocks, SequentialPipelineBlocks, LoopSequentialPipelineBlocks

[ModularPipelineBlocks](/docs/diffusers/main/tr/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks), pipeline bloklarının tanımını yüklemek ve kaydetmek için yöntem sağlar.

#### get_block_state[[diffusers.ModularPipelineBlocks.get_block_state]]

```python
get_block_state(state: PipelineState)
```

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

Tüm girdileri ve ara değerleri tek bir sözlükte alın

#### get_execution_blocks[[diffusers.ModularPipelineBlocks.get_execution_blocks]]

```python
get_execution_blocks(**kwargs)
```

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

**Parametreler:**

- ****kwargs** : Girdi adları ve değerleri. Yalnızca tetikleyici girdiler blok seçimini etkiler.

Girdiler verildiğinde çalışacak blok(lar)ı getirir. Koşullu blok seçimini destekleyen alt sınıflar tarafından uygulanmalıdır.

#### get_workflow[[diffusers.ModularPipelineBlocks.get_workflow]]

```python
get_workflow(workflow_name: str)
```

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

**Parametreler:**

workflow_name : Alınacak iş akışının adı.

Belirli bir iş akışı için yürütme bloklarını alın. `_workflow_map` tanımlayan alt sınıflar tarafından uygulanmalıdır.

#### init_pipeline[[diffusers.ModularPipelineBlocks.init_pipeline]]

```python
init_pipeline(pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None)
```

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

bir ModularPipeline oluşturun, isteğe bağlı olarak hub'dan yüklemek için pretrained_model_name_or_path kabul edin.

## SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]

#### diffusers.SequentialPipelineBlocks[[diffusers.SequentialPipelineBlocks]]

```python
diffusers.SequentialPipelineBlocks()
```

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

**Parametreler:**

block_classes : kullanılacak blok sınıflarının listesi

block_names : her blok için öneklerin listesi

Birden fazla pipeline blok sınıfını birleştiren bir Pipeline Blokları. Çağrıldığında, her bloğu sırayla çağırır.

Bu sınıf [ModularPipelineBlocks](/docs/diffusers/main/tr/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks) sınıfından devralır. Kütüphanenin tüm pipeline blokları için uyguladığı genel yöntemler (yükleme veya kaydetme vb.) için üst sınıfın belgelendirmesine bakın.

#### from_blocks_dict[[diffusers.SequentialPipelineBlocks.from_blocks_dict]]

```python
from_blocks_dict(blocks_dict: dict, description: str | None = None)
```

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

**Parametreler:**

blocks_dict : Blok adlarını blok sınıflarına veya örneklerine eşleyen sözlük

**Dönüş:**

Yeni bir SequentialPipelineBlocks örneği

Bir bloklar sözlüğünden bir SequentialPipelineBlocks örneği oluşturur.

#### get_execution_blocks[[diffusers.SequentialPipelineBlocks.get_execution_blocks]]

```python
get_execution_blocks(**kwargs)
```

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

**Parametreler:**

- ****kwargs** : Girdi adları ve değerleri. Yalnızca tetikleyici girdiler blok seçimini etkiler.

**Dönüş:**

Sadece çalışacak blokları içeren SequentialPipelineBlocks

Belirtilen girdiler verildiğinde çalışacak blokları alın.

Gezinme sıralı bloklardan geçerken, çözümlenmiş blokların ara çıktıları etkin girdilere eklenir. Bu, koşul yalnızca varlık/yokluk (None veya None değil) üzerine değil de gerçek değer üzerine dayalı değilse, ara çıktılara bağımlı koşullu blokların (ör. "image_latents varsa img2img çalıştır") doğru şekilde çözümleneceği anlamına gelir.

## LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]]

#### diffusers.LoopSequentialPipelineBlocks[[diffusers.LoopSequentialPipelineBlocks]]

```python
diffusers.LoopSequentialPipelineBlocks()
```

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

**Parametreler:**

block_classes : kullanılacak blok sınıflarının listesi

block_names : her blok için öneklerin listesi

Birden çok pipeline blok sınıfını bir For Loop içinde birleştiren bir Pipeline bloğu. Çağrıldığında, her bloğu sırayla çağırır.

Bu sınıf [ModularPipelineBlocks](/docs/diffusers/main/tr/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks) sınıfından devralır. Kütüphanenin tüm pipeline blokları için uyguladığı genel yöntemler (yükleme veya kaydetme vb.) için üst sınıfın belgelendirmesine bakın.

#### from_blocks_dict[[diffusers.LoopSequentialPipelineBlocks.from_blocks_dict]]

```python
from_blocks_dict(blocks_dict: dict)
```

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

**Parametreler:**

blocks_dict : Blok adlarını blok örneklerine eşleyen sözlük

**Dönüş:**

Yeni bir LoopSequentialPipelineBlocks örneği

Bir bloklar sözlüğünden bir LoopSequentialPipelineBlocks örneği oluşturur.

## AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]]

#### diffusers.AutoPipelineBlocks[[diffusers.AutoPipelineBlocks]]

```python
diffusers.AutoPipelineBlocks()
```

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

**Parametreler:**

block_classes : Kullanılacak blok sınıflarının listesi. `block_names` ve `block_trigger_inputs` ile aynı uzunlukta olmalıdır.

block_names : Her blok için adların listesi. `block_classes` ve `block_trigger_inputs` ile aynı uzunlukta olmalıdır.

block_trigger_inputs : Her öğe, ilgili blok için tetikleyici girdiyi belirten girdi adlarının listesi. Varsayılan bloğu işaretlemek için `None` kullanın.

Tetikleyici girdilerin varlığına dayanarak çalıştırılacak bloğu otomatik olarak seçen bir Pipeline Blokları.

Bu, `ConditionalPipelineBlocks`'ün şu şekilde özelleştirilmiş bir versiyonudur:
- Her bloğun bir tane karşılık gelen tetikleyici girişi vardır (1:1 eşleme)
- Blok seçimi otomatiktir: tetikleyici girişi mevcut olan ilk blok seçilir
- `block_trigger_inputs`, `block_names` ve `block_classes` ile aynı uzunlukta olmalıdır
- `block_trigger_inputs` içinde `None` kullanarak varsayılan bloğu belirtin; yani tetikleyici girdiler mevcut değilse çalışacak blok

Örnek:
```python
    class MyAutoBlock(AutoPipelineBlocks):
        block_classes = [InpaintEncoderBlock, ImageEncoderBlock, TextEncoderBlock]
        block_names = ["inpaint", "img2img", "text2img"]
        block_trigger_inputs = ["mask_image", "image", None]  # text2img is the default
```

Bu tanımla:
- `mask_image` sağlandığı sürece "inpaint" bloğu çalışır (`image` sağlansın ya da sağlanmasın).
- `mask_image` sağlanmaz ancak `image` sağlanırsa, "img2img" bloğu çalışır
- Aksi takdirde, "text2img" bloğu çalışır (varsayılan, tetikleyici `None`)

#### select_block[[diffusers.AutoPipelineBlocks.select_block]]

```python
select_block(**kwargs)
```

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

Hangi tetikleyici girdisinin mevcut olduğuna (None olmadığına) göre bloğu seçin.

## KoşulluPipelineBlokları[[diffusers.ConditionalPipelineBlocks]]

#### diffusers.ConditionalPipelineBlocks[[diffusers.ConditionalPipelineBlocks]]

```python
diffusers.ConditionalPipelineBlocks()
```

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

**Parametreler:**

block_classes : Kullanılacak blok sınıflarının listesi. `block_names` ile aynı uzunlukta olmalıdır.

block_names : Her blok için adların listesi. `block_classes` ile aynı uzunlukta olmalıdır.

block_trigger_inputs : `select_block()`'in çalıştırılacak bloğu belirlemek için kullandığı girdi adlarının listesi. `ConditionalPipelineBlocks` için bu, `block_names` ve `block_classes` ile eşleşmek zorunda değildir. `AutoPipelineBlocks` için ise bu, `block_names` ve `block_classes` ile aynı uzunlukta olmalı ve her bir öğe, ilgili bloğun tetikleyici girdisini belirtmelidir.

default_block_name : Hiçbir tetikleyici girdi eşleşmediğinde çalıştırılacak varsayılan bloğun adı. None ise, tetikleyici girdileri sağlanmadığında bu blok tamamen atlanabilir.

Girişlere dayalı olarak koşullu olarak çalıştırılacak bir bloğu seçen bir Pipeline Bloğu. Alt sınıflar, blok seçim mantığını tanımlamak için `select_block` metodunu uygulamak zorundadır. Şu anda yalnızca girişlerin varlığına veya yokluğuna (yani `None` olup olmamasına) dayalı seçim mantığını destekliyoruz.

Bu sınıf [ModularPipelineBlocks](/docs/diffusers/main/tr/api/modular_diffusers/pipeline_blocks#diffusers.ModularPipelineBlocks) sınıfından devralır. Kütüphanenin tüm pipeline blokları için uyguladığı genel yöntemler (yükleme veya kaydetme vb.) için üst sınıfın belgelendirmesine bakın.

#### get_execution_blocks[[diffusers.ConditionalPipelineBlocks.get_execution_blocks]]

```python
get_execution_blocks(**kwargs)
```

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

**Parametreler:**

- ****kwargs** : Girdi adları ve değerleri. Yalnızca tetikleyici girdiler blok seçimini etkiler.

**Dönüş:** - `ModularPipelineBlocks`

Yaprak bloğu veya çözümlenmiş `SequentialPipelineBlocks`
- `None`: Bu blok atlanacaksa (eşleşen tetikleyici yok ve varsayılan yok)

Girdiler verildiğinde çalışacak blok(lar)ı alın.

Yükleme tamamlandı
- Yaprak bloğu (sub_blocks veya LoopSequentialPipelineBlocks yok) → tek bir `ModularPipelineBlocks` döndürür
- A `SequentialPipelineBlocks` → `get_execution_blocks()` metoduna devreder ve bu metot
çözümlenmiş yürütme bloklarını içeren `SequentialPipelineBlocks`

#### select_block[[diffusers.ConditionalPipelineBlocks.select_block]]

```python
select_block(**kwargs)
```

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

**Parametreler:**

- ****kwargs** : Durumdan tetikleyici girdi adları ve değerleri.

**Dönüş:** `str | None`

Çalıştırılacak bloğun adı veya varsayılanı kullanmak/atlamak için None.

Tetikleyici girdilerine göre çalıştırılacak bloğu seçin. Alt sınıflar, bloğu seçme mantığını tanımlamak için bu yöntemi uygulamak zorundadır.

Not: Tetikleyici girdiler önceki bloklardan gelen ara çıktıları içerdiğinde, seçim mantığı yalnızca girdinin varlığına veya yokluğuna (yani None olup olmadığına) dayanmalıdır, gerçek değerine değil. Bunun nedeni, `get_execution_blocks()`'in koşulları, ara çıktı adlarını çalışma zamanı değerleri olmadan yayarak statik olarak çözümlemesidir.

