Buckets:

mishig's picture
|
download
raw
18.2 kB

Zamanlayıcılar

🤗 Diffusers, difüzyon süreci için birçok zamanlayıcı işlevi sunar. Bir zamanlayıcı, modelin çıktısını (difüzyon sürecinin üzerinde iterasyon yaptığı örneklemi) ve bir zaman adımını alır ve gürültüsü azaltılmış bir örneklem döndürür. Zaman adımı önemlidir çünkü difüzyon sürecindeki adımın nerede olduğunu belirler; veri, ileriye doğru n zaman adımı iterasyonuyla üretilir ve çıkarım, zaman adımları boyunca geriye doğru yayılarak gerçekleşir. Zaman adımına bağlı olarak bir zamanlayıcı diskret olabilir, bu durumda zaman adımı bir int olur, ya da sürekli olabilir, bu durumda zaman adımı bir float olur.

Bağlama bağlı olarak, bir zamanlayıcı, bir görüntüye iteratif olarak gürültü eklemenin veya bir modelin çıktısına dayalı olarak bir örneğin nasıl güncelleneceğinin nasıl tanımlanacağını belirler:

  • eğitim sırasında, bir zamanlayıcı, difüzyon modelini eğitmek için bir örneğe gürültü ekler (gürültünün nasıl ekleneceğine dair farklı algoritmalar vardır)
  • inference sırasında, bir scheduler, önceden eğitilmiş bir modelin çıktısına dayanarak bir örneğin nasıl güncelleneceğini tanımlar

Birçok zamanlayıcı, Katherine Crowson tarafından geliştirilen k-diffusion kütüphanesinden alınmıştır ve A1111'de de yaygın olarak kullanılmaktadır. k-diffusion ve A1111'deki zamanlayıcıları 🤗 Diffusers'taki zamanlayıcılara eşleştirmenize yardımcı olmak için aşağıdaki tabloya göz atın:

A1111/k-diffusion 🤗 Diffusers Kullanım
DPM++ 2M DPMSolverMultistepScheduler
DPM++ 2M Karras DPMSolverMultistepScheduler use_karras_sigmas=True ile başlatın
DPM++ 2M SDE DPMSolverMultistepScheduler algorithm_type="sde-dpmsolver++" ile başlatın
DPM++ 2M SDE Karras DPMSolverMultistepScheduler use_karras_sigmas=True ve algorithm_type="sde-dpmsolver++" ile başlatın
DPM++ 2S a N/A DPMSolverSinglestepScheduler ile çok benzer
DPM++ 2S a Karras N/A DPMSolverSinglestepScheduler(use_karras_sigmas=True, ...) ile çok benzer
DPM++ SDE DPMSolverSinglestepScheduler
DPM++ SDE Karras DPMSolverSinglestepScheduler use_karras_sigmas=True ile başlatın
DPM2 KDPM2DiscreteScheduler
DPM2 Karras KDPM2DiscreteScheduler use_karras_sigmas=True ile başlatın
DPM2 a KDPM2AncestralDiscreteScheduler
DPM2 a Karras KDPM2AncestralDiscreteScheduler use_karras_sigmas=True ile başlatın
DPM uyumlu N/A
DPM hızlı N/A
Euler EulerDiscreteScheduler
Euler a EulerAncestralDiscreteScheduler
Heun HeunDiscreteScheduler
LMS LMSDiscreteScheduler
LMS Karras LMSDiscreteScheduler use_karras_sigmas=True ile başlatın
N/A DEISMultistepScheduler
N/A UniPCMultistepScheduler

Gürültü zaman çizelgeleri ve zaman çizelgesi türleri

A1111/k-diffusion 🤗 Diffusers
Karras use_karras_sigmas=True ile başlatın
sgm_uniform timestep_spacing="trailing" ile başlatın
basit timestep_spacing="trailing" ile başlatın
üstel timestep_spacing="linspace", use_exponential_sigmas=True ile başlatın
beta timestep_spacing="linspace", use_beta_sigmas=True ile başlatın

Tüm zamanlayıcılar, tüm zamanlayıcılar tarafından paylaşılan düşük seviye yardımcılarını uygulayan temel SchedulerMixin sınıfından oluşturulur.

SchedulerMixin[[diffusers.SchedulerMixin]]

diffusers.SchedulerMixin[[diffusers.SchedulerMixin]]

diffusers.SchedulerMixin()

Kaynak

Tüm zamanlayıcılar için temel sınıf.

SchedulerMixin, genel yükleme ve kaydetme işlevleri gibi tüm zamanlayıcılar tarafından paylaşılan ortak işlevleri içerir.

ConfigMixin, zamanlayıcının __init__ fonksiyonuna geçirilen yapılandırma özniteliklerini (örneğin num_train_timesteps) saklamaktan sorumludur ve bu özniteliklere scheduler.config.num_train_timesteps yoluyla erişilebilir.

Sınıf özellikleri:

  • _compatibles (list[str]) -- Üst düzey zamanlayıcı sınıfıyla uyumlu zamanlayıcı sınıflarının listesi. Farklı bir uyumlu zamanlayıcı sınıfı yüklemek için from_config() kullanın (üst sınıf tarafından geçersiz kılınmalıdır).

from_pretrained[[diffusers.SchedulerMixin.from_pretrained]]

from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None = None, subfolder: str | None = None, return_unused_kwargs: bool = False, **kwargs: Any)

Kaynak

Parametreler:

pretrained_model_name_or_path (str veya os.PathLike, isteğe bağlı) : Şunlardan biri olabilir: - Hub'da barındırılan önceden eğitilmiş bir modelin model kimliği (örneğin google/ddpm-celebahq-256) olan bir dize. - save_pretrained() ile kaydedilen zamanlayıcı yapılandırmasını içeren bir dizin yolu (örneğin ./my_model_directory).

subfolder (str, isteğe bağlı) : Hub'daki veya yerel bir model deposundaki daha büyük bir model deposu içindeki bir model dosyasının alt klasör konumu.

return_unused_kwargs (bool, isteğe bağlı, varsayılan False) : Python sınıfı tarafından tüketilmeyen kwargs'nın geri döndürülüp döndürülmeyeceğini belirtir.

cache_dir (str veya os.PathLike, isteğe bağlı) : Standart önbellek kullanılmıyorsa, indirilen önceden eğitilmiş model yapılandırmasının önbelleğe alındığı dizinin yolu.

force_download (bool, isteğe bağlı, varsayılan False) : Model ağırlıklarının ve yapılandırma dosyalarının (yeniden) indirilmesinin zorlanıp zorlanmayacağını belirler; önbellekteki sürümler varsa bunların üzerine yazar.

proxies (dict[str, str], isteğe bağlı) : Protokol veya uç nokta bazında kullanılacak vekil sunucuların sözlüğü, örneğin {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Vekiller her istekte kullanılır.

output_loading_info (bool, isteğe bağlı, varsayılan False) : Eksik anahtarlar, beklenmeyen anahtarlar ve hata mesajlarını içeren bir sözlüğün de döndürülüp döndürülmeyeceğini belirtir.

local_files_only (bool, isteğe bağlı, varsayılan False) : Sadece yerel model ağırlıklarının ve yapılandırma dosyalarının yüklenip yüklenmeyeceğini belirtir. True olarak ayarlanırsa, model Hub'dan indirilmez.

token (str veya bool, isteğe bağlı) : Uzaktaki dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton. True ise, diffusers-cli login ile oluşturulan jeton (~/.huggingface içinde saklanır) kullanılır.

revision (str, isteğe bağlı, varsayılan "main") : Kullanılacak belirli model sürümü. Bir dal adı, etiket adı, commit kimliği veya Git tarafından izin verilen herhangi bir tanımlayıcı olabilir.

Dönüş: SchedulerMixin veya tuple[SchedulerMixin, dict[str, Any]]

Yapılandırmadan örneklenen zamanlayıcı. return_unused_kwargs True ise, ikinci öğesi kullanılmayan anahtar-argümanların sözlüğü olan bir demet döndürülür.

Yerel bir dizindeki veya Hub deposundaki önceden tanımlı bir JSON yapılandırma dosyasından bir zamanlayıcı örnekleyin.

> Özel veya korumalı modelleri kullanmak için oturum açın hf > auth login ile. Bu yöntemi bir > "offline-mode" ile etkinleştirerek > güvenlik duvarlı bir ortamda da kullanabilirsiniz.

save_pretrained[[diffusers.SchedulerMixin.save_pretrained]]

save_pretrained(save_directory: str | os.PathLike, push_to_hub: bool = False, **kwargs: Any)

Kaynak

Parametreler:

save_directory (str veya os.PathLike) : Yapılandırma JSON dosyasının kaydedileceği dizin (varsa oluşturulur).

push_to_hub (bool, isteğe bağlı, varsayılan False) : Modelinizi kaydettikten sonra Hugging Face Hub'a gönderip göndermeyeceğinizi belirtir. Göndermek istediğiniz depoyu repo_id ile belirleyebilirsiniz (varsayılan olarak ad alanınızdaki save_directory adı kullanılır).

kwargs (dict[str, Any], isteğe bağlı) : push_to_hub() yöntemine iletilen ek anahtar kelime argümanları.

Bir zamanlayıcı yapılandırma nesnesini, from_pretrained() sınıf yöntemi kullanılarak yeniden yüklenebilmesi için bir dizine kaydedin.

SchedulerOutput[[diffusers.schedulers.scheduling_utils.SchedulerOutput]]

diffusers.schedulers.scheduling_utils.SchedulerOutput[[diffusers.schedulers.scheduling_utils.SchedulerOutput]]

diffusers.schedulers.scheduling_utils.SchedulerOutput(prev_sample: Tensor)

Kaynak

Parametreler:

prev_sample (torch.Tensor, görüntüler için (batch_size, num_channels, height, width) boyutunda) : Önceki zaman adımının hesaplanan (x_{t-1}) örneği. prev_sample, gürültü azaltma döngüsünde bir sonraki model girdisi olarak kullanılmalıdır.

Bir zamanlayıcının step işlevinin çıktısı için temel sınıf.

KarrasDiffusionSchedulers

KarrasDiffusionSchedulers, 🤗 Diffusers içindeki zamanlayıcıların (scheduler) geniş bir genelleştirmesidir. Bu sınıftaki zamanlayıcılar, yüksek düzeyde; gürültü örneklemesi stratejileri, ağ türü ve ölçekleme, eğitim stratejisi ve kaybın ağırlıklandırılma biçimi ile ayrışır.

Bu sınıftaki farklı zamanlayıcılar, sıradan diferansiyel denklemler (ODE) çözücü türüne bağlı olarak yukarıdaki sınıflandırmaya girer ve 🤗 Diffusers'ta uygulanan ana zamanlayıcıların tasarımı için iyi bir soyutlama sağlar. Bu sınıftaki zamanlayıcılar burada verilmiştir.

PushToHubMixin[[diffusers.utils.PushToHubMixin]]

diffusers.utils.PushToHubMixin[[diffusers.utils.PushToHubMixin]]

diffusers.utils.PushToHubMixin()

Kaynak

Bir model, zamanlayıcı veya hattı Hugging Face Hub'a göndermek için bir Mixin.

push_to_hub[[diffusers.utils.PushToHubMixin.push_to_hub]]

push_to_hub(repo_id: str, commit_message: str | None = None, private: bool | None = None, token: str | None = None, create_pr: bool = False, safe_serialization: bool = True, variant: str | None = None, subfolder: str | None = None)

Kaynak

Parametreler:

repo_id (str) : Model, zamanlayıcı veya pipeline dosyalarınızı itmek istediğiniz depoyun adı. Bir organizasyona itme işlemi sırasında organizasyon adınızı içermelidir. repo_id ayrıca yerel bir dizine giden bir yol da olabilir.

commit_message (str, isteğe bağlı) : İterken commit edilecek mesaj. Varsayılan olarak "Upload {object}".

private (bool, isteğe bağlı) : Depoyu özel yapılıp yapılmayacağını belirtir. None (varsayılan) ise, organizasyonun varsayılanı özel değilse depo herkese açık olur. Depo zaten mevcutsa bu değer yok sayılır.

token (str, isteğe bağlı) : Uzaktaki dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton. hf auth login çalıştırıldığında oluşturulan jeton (~/.huggingface içinde saklanır).

create_pr (bool, isteğe bağlı, varsayılan False) : Yüklenen dosyalarla bir PR oluşturulup oluşturulmayacağı veya doğrudan commit atılıp atılmayacağı.

safe_serialization (bool, isteğe bağlı, varsayılan True) : Model ağırlıklarının safetensors biçimine dönüştürülüp dönüştürülmeyeceği.

variant (str, isteğe bağlı) : Belirtilirse, ağırlıklar pytorch_model.<variant>.bin biçiminde kaydedilir.

Model, zamanlayıcı veya boru hattı dosyalarını 🤗 Hugging Face Hub'a yükleyin.

Örnekler:

from diffusers import UNet2DConditionModel

unet = UNet2DConditionModel.from_pretrained("stabilityai/stable-diffusion-2", subfolder="unet")

# Push the `unet` to your namespace with the name "my-finetuned-unet".
unet.push_to_hub("my-finetuned-unet")

# Push the `unet` to an organization with the name "my-finetuned-unet".
unet.push_to_hub("your-org/my-finetuned-unet")

Xet Storage Details

Size:
18.2 kB
·
Xet hash:
6ed42ec4cafd2388f4ffa789922b7706ce519698cfe97d21feac65c502989849

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.