Diffusers documentation
Pipeline
Pipeline
ModularPipeline
sınıf diffusers.ModularPipeline
< source >( 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 )
Tüm Modular boru hatları için temel sınıf.
from_pretrained
< source >( 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 (
strveyaos.PathLike, isteğe bağlı) — Önceden eğitilmiş bir pipeline yapılandırmasının yolu. Önce yapılandırmayımodular_model_index.jsondosyasından yüklemeye çalışır, ardından standart modüler olmayan depolarla uyumluluk içinmodel_index.jsondosyası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_pathiç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 veload_components()yalnızca bu bileşenleri yükler.
Bir huggingface hub deposundan ModularPipeline yükleyin.
load_components
< source >( 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.
namesile 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,revisionvb., 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,revisionvb., ComponentSpec'i potansiyel olarak geçersiz kılabilir.
Belirtilen bileşenleri spesifikasyonlardan yükleyin.
register_components
< source >( **kwargs )
Bileşenleri ilgili spesifikasyonlarıyla kaydedin.
Bu yöntem şunlardan sorumludur:
- Bileşen nesnelerini yükleyicide öznitelikler olarak ayarlar (ör. self.unet = unet)
save_pretrainedsırasındamodular_model_index.jsonolarak kaydedilecek config sözlüğünü günceller (yalnızca from_pretrained bileşenleri için)- 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.jsonduringsave_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
< source >( 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 (
strveyaos.PathLike) — Hattın (pipeline) kaydedileceği dizin. Var değilse oluşturulur. - safe_serialization (
bool, isteğe bağlı, varsayılanTrue) — Modelinsafetensorsile mi yoksa geleneksel PyTorch yöntemiylepicklekullanılarak mı kaydedileceğini belirtir. - variant (
str, isteğe bağlı) — Belirtilirse, ağırlıklarpytorch_model.<variant>.binbiçiminde kaydedilir. - max_shard_size (
intveyastr, varsayılanNone) — 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ılanFalse) — 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ılanTrue): Her kaydedilen bileşenin yükleme özelliğinin hedefe işaret etmesi içinmodular_model_index.jsondosyasının güncellenip güncellenmeyeceğini belirler: Hub'a gönderirkenrepo_id, aksi haldesave_directory. Yüklenmeyen bileşenler kaydedilmez ve her zaman kayıtlı yükleme özelliklerini korur. Kaydedilen bileşenlerin kayıtlı özelliklerinin de korunması içinFalsegeç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_componentsile 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 olaraksave_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ılanFalse): 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
< source >( *args**kwargs ) → DiffusionPipeline
Parametreler
- dtype (
torch.dtype, isteğe bağlı) — Belirtilendtypeile bir pipeline döndürür - device (
torch.Device, isteğe bağlı) — Belirtilendeviceile bir pipeline döndürür - silence_dtype_warnings (
str, isteğe bağlı, varsayılanFalse) — Hedefdtype, hedefdeviceile uyumlu değilse uyarıların atlanıp atlanmayacağı.
Dönüş değeri
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
dtypeile bir pipeline döndürmek içinto(dtype, silence_dtype_warnings=False) → DiffusionPipeline - Belirtilen
deviceile bir pipeline döndürmek içinto(device, silence_dtype_warnings=False) → DiffusionPipeline - Belirtilen
devicevedtypedeğerlerine sahip bir pipeline döndürmek içinto(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipeline
unload_components
< source >( names: list[str] | str )
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
< source >( **kwargs )
Parametreler
- **kwargs — Güncellenecek bileşen nesneleri veya yapılandırma değerleri:
- Bileşen nesneleri:
AutoModel.from_pretrained()veyaComponentSpec.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)
- Bileşen nesneleri:
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:
- Mevcut bileşenleri yenileriyle değiştirin (ör.
self.unetveyaself.text_encodergüncellemesi) - Yapılandırma değerlerini güncelle (ör.
self.requires_safety_checkerbayrağı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_specsve_config_specsiçindeki ilgili spesifikasyonlarsave_pretrainedsırasındamodular_model_index.jsonolarak kaydedilecek olanconfigsö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()veyaComponentSpec.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şenlerinmodular_model_index.jsongirdileri,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.