Diffusers documentation

Pipeline

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

ModularPipeline

sınıf diffusers.ModularPipeline

< >

( blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = Nonepretrained_model_name_or_path: str | os.PathLike | None = Nonecomponents_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = Nonecollection: str | None = Noneworkflow: str | None = Nonemodular_config_dict: dict[str, typing.Any] | None = Noneconfig_dict: dict[str, typing.Any] | None = None**kwargs )

Parametreler

  • blocks — ModularPipelineBlocks, pipeline'de kullanılacak bloklar

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

from_pretrained

< >

( pretrained_model_name_or_path: str | os.PathLike | Nonetrust_remote_code: bool | None = Nonecomponents_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = Nonecollection: str | None = Noneworkflow: str | None = None**kwargs )

Parametreler

  • pretrained_model_name_or_path (str veya os.PathLike, isteğe bağlı) — Önceden 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ı iş akışlarındaki birden fazla bileşeni yönetmek ve offload stratejilerini uygulamak için ComponentsManager örneği.
  • collection (str, optional) —` ComponentsManager içinde bileşenleri düzenlemek için koleksiyon adı.
  • workflow (str, isteğe bağlı) — Pipeline blokları tarafından beyan edilen bir iş akışının adı. Verildiğinde, bloklar bu iş akışının yürütme bloklarına indirgenir; böylece pipeline yalnızca o iş akışının kullandığı bileşenleri bekler ve load_components() yalnızca bu bileşenleri yükler.

Bir huggingface hub deposundan ModularPipeline yükleyin.

get_component_spec

< >

( name: str )

load_components

< >

( names: list[str] | str | None = Noneworkflow: str | None = None**kwargs )

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 iş akışının yürütme bloklarının kullandığı bileşenler yüklenir. names ile birleştirilemez.
  • **kwargs — iletilmesi gereken ek kwargs from_pretrained().Şunlardan biri olabilir:
    • Yüklenecek tüm bileşenlere uygulanacak tek bir değer, örneğin 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, örneğin pretrained_model_name_or_path, variant, revision vb., ComponentSpec'i potansiyel olarak geçersiz kılabilir.
    • kwargs içinde farklı bir yükleme alanı geçirilirse, örneğin pretrained_model_name_or_path, variant, revision vb., ComponentSpec'i potansiyel olarak geçersiz kılabilir.

Belirtilen bileşenleri spesifikasyonlardan yükleyin.

register_components

< >

( **kwargs )

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 ilk olarak init:
    • 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: örn. loader.load_components(names=[“unet”]) veya tüm varsayılan bileşenleri yüklemek için loader.load_components()

Notlar:

  • When registering None for a component, it sets attribute to None but still syncs specs with the config dict, which will be saved as modular_model_index.json during save_pretrained
  • component_specs, bu yöntemin dışında, örneğin update_components() yönteminde, yeni bileşenle eşleşecek şekilde güncellenir

save_pretrained

< >

( save_directory: str | os.PathLikesafe_serialization: bool = Truevariant: str | None = Nonemax_shard_size: int | str | None = Nonepush_to_hub: bool = False**kwargs )

Parametreler

  • save_directory (str veya os.PathLike) — Hattın (pipeline) 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) — Parçalanmadan önce bir kontrol noktasının (checkpoint) alabileceği en büyük boyut. Parçalanan kontrol noktalarının her biri bu boyuttan küçük olacaktır. Dize olarak ifade ediliyorsa, birimden önce rakamlar gelmelidir (ör. "5GB"). Tamsayı olarak ifade ediliyorsa birim bayttır.
  • push_to_hub (bool, isteğe bağlı, varsayılan False) — Pipeline kaydedildikten sonra Hugging Face model hub'ına gönderilip gönderilmeyeceğini belirtir.
  • **kwargs — Ek anahtar kelime argümanları:
    • overwrite_modular_index (bool, isteğe bağlı, varsayılan True): Her kaydedilen bileşenin yükleme özelliğinin hedefe işaret etmesi için modular_model_index.json dosyasının güncellenip güncellenmeyeceğini belirler: Hub'a gönderirken 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. bilinçli 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ı): Hattın itileceği depoyu tanımlayan kimlik. 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() sınıf yöntemiyle yeniden yüklenebilmesi için bir dizine kaydedin.

'a

< >

( *args**kwargs ) → DiffusionPipeline

Parametreler

  • dtype (torch.dtype, isteğe bağlı) — Belirtilen dtype ile bir pipeline döndürür
  • device (torch.Device, isteğe bağlı) — Belirtilen 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üş değeri

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

> Pipeline zaten doğru torch.dtype ve torch.device değerlerine sahipse, olduğu gibi döndürülür. Aksi halde, > döndürülen pipeline, istenen torch.dtype ve torch.device değerlerine sahip self kopyasıdır.

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

  • Belirtilen dtype ile bir pipeline döndürmek için to(dtype, silence_dtype_warnings=False) → DiffusionPipeline
  • Belirtilen device ile bir pipeline döndürmek için to(device, silence_dtype_warnings=False) → DiffusionPipeline
  • Belirtilen device ve dtype değerlerine sahip bir pipeline döndürmek için to(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipeline

unload_components

< >

( names: list[str] | str )

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

< >

( **kwargs )

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üncellemeye ek olarak, 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:

# 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, seri hale getirme için yükleme özellikleri korunur. 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.
Update on GitHub