Buckets:
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()
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)
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 loginile. 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)
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)
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()
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)
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.