Diffusers documentation

Bileşenler ve yapılandırmalar

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

Bileşenler ve yapılandırmalar

ComponentSpec

sınıf diffusers.ComponentSpec

< >

( name: str | None = Nonetype_hint: typing.Optional[typing.Type] = Nonedescription: str | None = Noneconfig: diffusers.configuration_utils.FrozenDict | None = Nonepretrained_model_name_or_path: str | list[str] | None = Nonesubfolder: str | None = ''variant: str | None = Nonerevision: str | None = Nonedefault_creation_method: typing.Literal['from_config', 'from_pretrained'] = 'from_pretrained'repo: str | list[str] | None = None )

Parametreler

  • name — Bileşenin adı
  • type_hint — Bileşenin türü (ör. UNet2DConditionModel)
  • description — Bileşenin isteğe bağlı açıklaması
  • config — init oluşturma için isteğe bağlı yapılandırma sözlüğü
  • pretrained_model_name_or_path — from_pretrained oluşturulması için isteğe bağlı pretrained_model_name_or_path yolu
  • subfolder — pretrained_model_name_or_path içinde isteğe bağlı alt klasör
  • variant — pretrained_model_name_or_path içindeki isteğe bağlı varyant
  • revision — pretrained_model_name_or_path içinde isteğe bağlı revizyon
  • default_creation_method — Preferred creation method - “from_config” or “from_pretrained”

Bir pipeline bileşeni için spesifikasyon.

Bir bileşen iki şekilde oluşturulabilir:

  1. Bir yapılandırma sözlüğüyle init kullanarak sıfırdan
  2. from_pretrained kullanılarak

oluştur

< >

( config: diffusers.configuration_utils.FrozenDict | dict[str, typing.Any] | None = None**kwargs )

Config ile from_config kullanarak bileşen oluşturun.

decode_load_id

< >

( load_id: str )

Parametreler

  • load_id — Çözümlenecek load_id dizesi, biçim: “pretrained_model_name_or_path|subfolder|variant|revision” burada None değerleri “null” olarak temsil edilir

Bir load_id dizesini, yükleme alanları ve değerlerinden oluşan bir sözlüğe geri çözümler.

from_component

< >

( name: strcomponent: Any )

Parametreler

  • name — Bileşenin adı
  • component — Spec oluşturulacak bileşen nesnesi

Yükseltilen

ValueError

  • ValueError — Bileşen desteklenmiyorsa (ör. load_id'si olmayan nn.Module, non-ConfigMixin)

Bir Component'ten ComponentSpec oluşturun.

Şu anda desteklenenler:

  • ComponentSpec.load() yöntemiyle oluşturulan bileşenler
  • ConfigMixin alt sınıfları olan ancak nn.Module olmayan bileşenler (ör. zamanlayıcılar, yönlendiriciler)

load

< >

( **kwargs )

Bileşeni from_pretrained kullanarak yükleyin.

alanları

< >

( )

Tüm yüklemeyle ilgili alanların adlarını döndürür (yani field.metadata["loading"] değeri True olanlar).

ConfigSpec

sınıf diffusers.ConfigSpec

< >

( name: strdefault: Anydescription: str | None = None )

Bir pipeline yapılandırma parametresi için spesifikasyon.

ComponentsManager

sınıf diffusers.ComponentsManager

< >

( )

Birden çok iş akışında model bileşenleri için merkezi bir kayıt ve yönetim sistemi.

ComponentsManager, farklı modüler pipeline'lar arasında model bileşenlerinin (UNet, VAE, metin kodlayıcıları vb.) kaydedilmesini, izlenmesini ve yeniden kullanılmasını sağlayan birleşik bir yöntem sunar. Kopya algılama, bellek yönetimi ve bileşen organizasyonu gibi özellikleri içerir.

> Bu deneysel bir özelliktir ve gelecekte değişebilir.

Örnek:

from diffusers import ComponentsManager

# Create a components manager
cm = ComponentsManager()

# Add components
cm.add("unet", unet_model, collection="sdxl")
cm.add("vae", vae_model, collection="sdxl")

# Enable auto offloading
cm.enable_auto_cpu_offload()

# Retrieve components
unet = cm.get_one(name="unet", collection="sdxl")

ekle

< >

( name: strcomponent: Anycollection: str | None = None ) → str

Parametreler

  • name (str) — Bileşenin adı
  • component (Any) — Eklenecek bileşen
  • collection (str | None) — Bileşenin ekleneceği koleksiyon

Dönüş değeri

str

Bileşenin benzersiz kimliği, Python'un nesne için yerleşik benzersiz tanımlayıcısı olan id(component) kullanılarak “{name}_{id(component)}” olarak üretilir

ComponentsManager'a bir bileşen ekleyin.

disable_auto_cpu_offload

< >

( )

Tüm bileşenler için otomatik CPU boşaltmayı devre dışı bırakın.

enable_auto_cpu_offload

< >

( device: str | int | torch.device = Nonememory_reserve_margin = '3GB'offload_strategy = None )

Parametreler

  • device (str | int | torch.device) — İleri geçişler için modellerin taşındığı yürütme cihazı
  • memory_reserve_margin (str) — Kullanılacak bellek rezerv payı, varsayılan 3GB'dir. Bu, model çalıştırma sırasında bellek dolmasını önlemek için cihazda boş bırakılacak bellek miktarıdır (ör. ara aktivasyonlar, gradyanlar vb.).
  • offload_strategy — İmzası (hooks, model_id, model, execution_device) -> hooks olan ve gelen model yüklenmeden önce hangi yerleşik modellerin boşaltılacağını döndüren herhangi bir çağrılabilir. Varsayılan olarak, en küçük yeterli kombinasyonu serbest bırakan AutoOffloadStrategy kullanılır.

Tüm bileşenler için otomatik CPU dışa aktarmayı etkinleştirin.

Algoritma şu şekilde çalışır:

  1. Tüm modeller varsayılan olarak CPU üzerinde başlar
  2. Bir modelin ileri geçişi (forward pass) çağrıldığında, model çalışma cihazına taşınır
  3. Yetersiz bellek durumunda, cihazdaki diğer modeller CPU'ya geri taşınır
  4. Sistem, yeterli belleği serbest bırakacak en küçük model kombinasyonunu taşımaya çalışır
  5. Modeller, başka bir modelin bellek ihtiyacı nedeniyle onları cihazdan çıkarması gerektiği durumlara kadar yürütme cihazında kalır

Bir grup offload edilmiş model bu işlemin bir parçasıdır ancak kendisini konumlandırır: diğer modelleri bir kenara çekerek yer açmaya devam edebilir ve onlar için yer açmak üzere asla kendisi taşınmaz. Sıra fark etmez — grup offload, bu özelliğin etkinleştirilmesinden önce veya sonra yapılabilir. AutoOffloadStrategy, kararlarını model bellek ayak izlerinden boyutlandırır; bu ayak izleri bir modelin bir anda bir grup tutmasını açıklamaz, bu nedenle kararları iş akışından veren bir offload_strategy geçin.

get_components_by_ids

< >

( ids: list[str]return_dict_with_names: bool | None = True ) → dict[str, Any]

Parametreler

  • ids (list[str]) — bileşen kimliklerinin listesi
  • return_dict_with_names (bool | None) — Bileşen adlarını anahtar olarak içeren bir sözlük döndürülüp döndürülmemesi:

Dönüş değeri

dict[str, Any]

Bileşenler sözlüğü.

  • return_dict_with_names=True ise, anahtarlar bileşen adlarıdır.
  • return_dict_with_names=False ise, anahtarlar bileşen kimlikleridir.

Yükseltilen

ValueError

  • ValueError — return_dict_with_names=True olduğunda arama sonuçlarında yinelenen bileşen adları bulunursa

Bir kimlik listesiyle bileşenleri alın.

get_components_by_names

< >

( names: list[str]collection: str | None = None ) → dict[str, Any]

Parametreler

  • names (list[str]) — bileşen adlarının listesi
  • collection (str | None) — Filtreleme için isteğe bağlı koleksiyon

Dönüş değeri

dict[str, Any]

Bileşen adlarını anahtarlar olarak içeren bileşenler sözlüğü

Yükseltilen

ValueError

  • ValueError — Arama sonuçlarında yinelenen bileşen adları bulunursa

İsteğe bağlı olarak koleksiyonla filtrelenmiş bir ad listesine göre bileşenleri alın.

get_ids

< >

( names: str | list[str] = Nonecollection: str | None = None ) → list[str]

Parametreler

  • names (str | list[str]) — bileşen adlarının listesi
  • collection (str | None) — Filtreleme için isteğe bağlı koleksiyon

Dönüş değeri

list[str]

bileşen kimlikleri listesi

İsteğe bağlı olarak koleksiyonla filtrelenmiş bir ad listesine göre bileşen kimliklerini alın.

get_model_info

< >

( component_id: strfields: str | list[str] | None = None )

Parametreler

  • component_id (str) — Bilgisi alınacak bileşenin adı
  • fields (str | list[str] | None) — Döndürülecek alan(lar). Tek bir alan için bir dize veya alanların bir listesi olabilir. None ise, available_info_fields ayarını kullanır.

Bir bileşen hakkında kapsamlı bilgi alın.

get_one

< >

( component_id: str | None = Nonename: str | None = Nonecollection: str | None = Noneload_id: str | None = None )

Parametreler

  • component_id (str | None) — Alınacak isteğe bağlı bileşen kimliği
  • name (str | None) — Bileşen adı veya deseni
  • collection (str | None) — Filtreleme için isteğe bağlı koleksiyon
  • load_id (str | None) — Filtrelemek için isteğe bağlı load_id

Yükseltilen

ValueError

  • ValueError — Hiçbir bileşen eşleşmezse veya birden fazla bileşen eşleşirse

Aşağıdaki yöntemlerden biriyle tek bir bileşeni alın:

  • arama adı (desen eşleştirme), koleksiyon veya load_id.
  • component_id parametresinin geçirilmesi Birden fazla bileşen eşleşirse veya hiç bileşen bulunamazsa bir hata oluşturur.

kaldır

< >

( component_id: str = None )

Parametreler

  • component_id (str) — Kaldırılacak bileşenin kimliği

ComponentsManager'dan bir bileşeni kaldırır.

remove_from_collection

< >

( component_id: strcollection: str )

Bir bileşeni koleksiyondan kaldırın.

search_components

< >

( names: str | None = Nonecollection: str | None = Noneload_id: str | None = Nonereturn_dict_with_names: bool = True )

Parametreler

  • names — Bileşen adı veya desenleri Desenler:
    • “unet” : temel adı “unet” olan herhangi bir bileşeni eşleştirir (ör. unet_123abc)
    • “!unet”: “unet” taban adlı bileşenler hariç her şey
    • “unet*”: taban adı “unet” ile başlayan her şey
    • “!unet*” : taban adı “unet” ile başlamayan her şey
    • ”unet” : “unet” içeren temel adı olan her şey
    • “!unet” : “unet” içermeyen taban adlara sahip her şey
    • “refiner|vae|unet” : temel adı tam olarak “refiner”, “vae” veya “unet” ile eşleşen her şey
    • “!refiner|vae|unet” : “refiner”, “vae” veya “unet” ile tam olarak eşleşmeyen taban adlara sahip her şey
    • “unet|vae”: taban adı “unet” ile başlayan VEYA “vae” ile başlayan her şey
  • collection — Filtreleme için isteğe bağlı koleksiyon
  • load_id — Filtrelemek için isteğe bağlı load_id
  • return_dict_with_names — True ise, bileşen adlarını anahtarlar olarak içeren bir sözlük döndürür; aynı ada sahip birden fazla bileşen bulunursa hata fırlatır. False ise, bileşen kimliklerini anahtarlar olarak içeren bir sözlük döndürür.

Adlarına göre basit desen eşleştirme ile bileşenleri arayın. İsteğe bağlı olarak koleksiyona veya load_id'ye göre filtreleyin.

set_offload_strategy

< >

( offload_strategy )

Parametreler

  • offload_strategy — İmzası (hooks, model_id, model, execution_device) -> hooks olan herhangi bir çağrılabilir: cihazdaki modellerin mevcut hook'larını alır ve gelen model yüklenmeden önce offload edilecek olanları döndürür. Varsayılan değer, en küçük yeterli kombinasyonu serbest bırakan AutoOffloadStrategy'dir.

Tüm yönetilen modellerdeki offload stratejisini değiştirir. Yalnızca otomatik CPU offloading etkinleştirildiğinde geçerlidir.

InsertableDict

sınıf diffusers.modular_pipelines.InsertableDict

< >

( )

Update on GitHub