Diffusers documentation

Pipeline blokları

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

Pipeline blokları

ModülerPipelineBlokları

sınıf diffusers.ModularPipelineBlocks

< >

( )

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

ModularPipelineBlocks, pipeline bloklarının tanımını yüklemek ve kaydetmek için yöntem sağlar.

get_block_state

< >

( state: PipelineState )

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

get_execution_blocks

< >

( **kwargs )

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

< >

( workflow_name: str )

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

< >

( pretrained_model_name_or_path: str | os.PathLike | None = Nonecomponents_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = Nonecollection: str | None = None )

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

SequentialPipelineBlocks

sınıf diffusers.SequentialPipelineBlocks

< >

( )

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

< >

( blocks_dict: dictdescription: str | None = None )

Parametreler

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

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

get_execution_blocks

< >

( **kwargs )

Parametreler

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

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

sınıf diffusers.LoopSequentialPipelineBlocks

< >

( )

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

< >

( blocks_dict: dict )

Parametreler

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

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

AutoPipelineBlocks

sınıf diffusers.AutoPipelineBlocks

< >

( )

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 öğesi, 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 girdileri yoksa çalışacak blok

Örnek:

    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

< >

( **kwargs )

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

KoşulluPipelineBlokları

sınıf diffusers.ConditionalPipelineBlocks

< >

( )

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 öğ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 girdiler sağlanmadığında bu blok tamamen atlanabilir.

Bir Pipeline Blocks, girdilere dayalı olarak koşullu olarak çalıştırılacak bloğu seçer. Alt sınıflar, blok seçim mantığını tanımlamak için select_block metodunu uygulamak zorundadır. Şu anda yalnızca girdilerin varlığına veya yokluğuna (yani None olup olmamasına) dayalı seçim mantığını destekliyoruz.

Bu sınıf 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

< >

( **kwargs ) →

  • ModularPipelineBlocks

Parametreler

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

Dönüş değeri

  • 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() yöntemine devreder ve bu yöntem, çözümlenmiş yürütme bloklarını içeren bir SequentialPipelineBlocks döndürür

select_block

< >

( **kwargs ) → str | None

Parametreler

  • **kwargs — Durumdan tetikleyici girdi adları ve değerleri.

Dönüş değeri

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 girdileri ö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ümesidir.

Update on GitHub