Diffusers documentation
Bileşenler ve yapılandırmalar
Bileşenler ve yapılandırmalar
ComponentSpec
sınıf diffusers.ComponentSpec
< source >( 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:
- Bir yapılandırma sözlüğüyle init kullanarak sıfırdan
from_pretrainedkullanılarak
oluştur
< source >( config: diffusers.configuration_utils.FrozenDict | dict[str, typing.Any] | None = None**kwargs )
Config ile from_config kullanarak bileşen oluşturun.
decode_load_id
< source >( load_id: str )
Bir load_id dizesini, yükleme alanları ve değerlerinden oluşan bir sözlüğe geri çözümler.
from_component
< source >( name: strcomponent: Any )
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)
Bileşeni from_pretrained kullanarak yükleyin.
Tüm yüklemeyle ilgili alanların adlarını döndürür (yani field.metadata["loading"] değeri True olanlar).
ConfigSpec
Bir pipeline yapılandırma parametresi için spesifikasyon.
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
< source >( 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.
Tüm bileşenler için otomatik CPU boşaltmayı devre dışı bırakın.
enable_auto_cpu_offload
< source >( 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) -> hooksolan 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ırakanAutoOffloadStrategykullanılır.
Tüm bileşenler için otomatik CPU dışa aktarmayı etkinleştirin.
Algoritma şu şekilde çalışır:
- Tüm modeller varsayılan olarak CPU üzerinde başlar
- Bir modelin ileri geçişi (forward pass) çağrıldığında, model çalışma cihazına taşınır
- Yetersiz bellek durumunda, cihazdaki diğer modeller CPU'ya geri taşınır
- Sistem, yeterli belleği serbest bırakacak en küçük model kombinasyonunu taşımaya çalışır
- 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
< source >( 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
< source >( 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
< source >( names: str | list[str] = Nonecollection: str | None = None ) → list[str]
İsteğe bağlı olarak koleksiyonla filtrelenmiş bir ad listesine göre bileşen kimliklerini alın.
get_model_info
< source >( component_id: strfields: str | list[str] | None = None )
Bir bileşen hakkında kapsamlı bilgi alın.
get_one
< source >( 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
< source >( component_id: str = None )
ComponentsManager'dan bir bileşeni kaldırır.
Bir bileşeni koleksiyondan kaldırın.
search_components
< source >( 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
< source >( offload_strategy )
Parametreler
- offload_strategy —
İmzası
(hooks, model_id, model, execution_device) -> hooksolan 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ırakanAutoOffloadStrategy'dir.
Tüm yönetilen modellerdeki offload stratejisini değiştirir. Yalnızca otomatik CPU offloading etkinleştirildiğinde geçerlidir.