Buckets:
Penjadwal
๐ค Diffusers menyediakan banyak fungsi scheduler untuk proses difusi. Scheduler mengambil output model (sampel yang sedang diiterasi oleh proses difusi) dan timestep untuk mengembalikan sampel yang telah dinoise. Timestep penting karena menentukan posisi langkah dalam proses difusi; data dihasilkan dengan mengiterasi maju sebanyak n timestep dan inferensi terjadi dengan mempropagasikan mundur melalui timestep. Berdasarkan timestep, scheduler dapat bersifat diskrit, di mana timestep berupa int, atau kontinu, di mana timestep berupa float.
Tergantung pada konteksnya, scheduler mendefinisikan cara menambahkan noise secara iteratif ke sebuah gambar atau cara memperbarui sampel berdasarkan output model:
- selama pelatihan, sebuah scheduler menambahkan noise (ada berbagai algoritma untuk cara menambahkan noise) ke sebuah sampel untuk melatih model difusi
- selama inference, scheduler mendefinisikan cara memperbarui sampel berdasarkan output dari model pretrained
Banyak scheduler diimplementasikan dari pustaka k-diffusion oleh Katherine Crowson, dan scheduler tersebut juga banyak digunakan di A1111. Untuk membantu Anda memetakan scheduler dari k-diffusion dan A1111 ke scheduler di ๐ค Diffusers, lihat tabel di bawah ini:
| A1111/k-diffusion | ๐ค Diffusers | Penggunaan |
|---|---|---|
| DPM++ 2M | DPMSolverMultistepScheduler | |
| DPM++ 2M Karras | DPMSolverMultistepScheduler | inisialisasi dengan use_karras_sigmas=True |
| DPM++ 2M SDE | DPMSolverMultistepScheduler | inisialisasi dengan algorithm_type="sde-dpmsolver++" |
| DPM++ 2M SDE Karras | DPMSolverMultistepScheduler | inisialisasi dengan use_karras_sigmas=True dan algorithm_type="sde-dpmsolver++" |
| DPM++ 2S a | N/A | sangat mirip dengan DPMSolverSinglestepScheduler |
| DPM++ 2S a Karras | N/A | sangat mirip dengan DPMSolverSinglestepScheduler(use_karras_sigmas=True, ...) |
| DPM++ SDE | DPMSolverSinglestepScheduler | |
| DPM++ SDE Karras | DPMSolverSinglestepScheduler | inisialisasi dengan use_karras_sigmas=True |
| DPM2 | KDPM2DiscreteScheduler | |
| DPM2 Karras | KDPM2DiscreteScheduler | inisialisasi dengan use_karras_sigmas=True |
| DPM2 a | KDPM2AncestralDiscreteScheduler | |
| DPM2 a Karras | KDPM2AncestralDiscreteScheduler | inisialisasi dengan use_karras_sigmas=True |
| DPM adaptif | N/A | |
| DPM cepat | N/A | |
| Euler | EulerDiscreteScheduler | |
| Euler a | EulerAncestralDiscreteScheduler | |
| Heun | HeunDiscreteScheduler | |
| LMS | LMSDiscreteScheduler | |
| LMS Karras | LMSDiscreteScheduler | inisialisasi dengan use_karras_sigmas=True |
| N/A | DEISMultistepScheduler | |
| N/A | UniPCMultistepScheduler |
Jadwal noise dan jenis jadwal
| A1111/k-diffusion | ๐ค Diffusers |
|---|---|
| Karras | inisialisasi dengan use_karras_sigmas=True |
| sgm_uniform | inisialisasi dengan timestep_spacing="trailing" |
| sederhana | inisialisasi dengan timestep_spacing="trailing" |
| eksponensial | inisialisasi dengan timestep_spacing="linspace", use_exponential_sigmas=True |
| beta | inisialisasi dengan timestep_spacing="linspace", use_beta_sigmas=True |
Semua scheduler dibangun dari kelas dasar SchedulerMixin yang mengimplementasikan utilitas tingkat rendah yang dibagikan oleh semua scheduler.
SchedulerMixin[[diffusers.SchedulerMixin]]
diffusers.SchedulerMixin[[diffusers.SchedulerMixin]]
diffusers.SchedulerMixin()
Kelas dasar untuk semua penjadwal.
SchedulerMixin berisi fungsi-fungsi umum yang dibagikan oleh semua scheduler, seperti fungsionalitas pemuatan dan penyimpanan secara umum.
ConfigMixin menangani penyimpanan atribut konfigurasi (seperti num_train_timesteps) yang diteruskan ke fungsi __init__ scheduler, dan atribut tersebut dapat diakses melalui scheduler.config.num_train_timesteps.
Atribut kelas:
- _compatibles (
list[str]) -- Daftar kelas scheduler yang kompatibel dengan kelas scheduler induk. Gunakan from_config() untuk memuat kelas scheduler kompatibel yang berbeda (seharusnya dioverride oleh kelas induk).
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)
Parameter:
pretrained_model_name_or_path (str atau os.PathLike, opsional) : Bisa berupa: - String, model id (misalnya google/ddpm-celebahq-256) dari model pretrained yang dihosting di Hub. - Path ke direktori (misalnya ./my_model_directory) yang berisi konfigurasi scheduler yang disimpan dengan save_pretrained().
subfolder (str, opsional) : Lokasi subfolder dari file model di dalam repositori model yang lebih besar di Hub atau secara lokal.
return_unused_kwargs (bool, opsional, defaultnya False) : Apakah kwargs yang tidak dikonsumsi oleh kelas Python harus dikembalikan atau tidak.
cache_dir (str atau os.PathLike, opsional) : Path ke direktori tempat konfigurasi model pretrained yang diunduh di-cache jika cache standar tidak digunakan.
force_download (bool, opsional, defaultnya False) : Apakah akan memaksa (mengunduh ulang) bobot model dan file konfigurasi, menimpa versi yang di-cache jika ada.
proxies (dict[str, str], opsional) : Kamus server proxy yang akan digunakan berdasarkan protokol atau endpoint, misalnya {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Proxy digunakan pada setiap permintaan.
output_loading_info (bool, opsional, defaultnya False) : Apakah akan mengembalikan juga kamus yang berisi kunci yang hilang, kunci yang tidak terduga, dan pesan kesalahan.
local_files_only (bool, opsional, defaultnya False) : Apakah hanya memuat bobot model dan file konfigurasi lokal atau tidak. Jika diatur ke True, model tidak akan diunduh dari Hub.
token (str atau bool, opsional) : Token yang digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. Jika True, token yang dihasilkan dari diffusers-cli login (disimpan di ~/.huggingface) akan digunakan.
revision (str, opsional, defaultnya "main") : Versi model spesifik yang akan digunakan. Bisa berupa nama branch, nama tag, id commit, atau identifikasi apa pun yang diizinkan oleh Git.
Mengembalikan: SchedulerMixin atau tuple[SchedulerMixin, dict[str, Any]]
Scheduler yang diinstansiasi dari konfigurasi. Jika return_unused_kwargs adalah True, sebuah tuple dikembalikan di mana elemen kedua adalah kamus dari argumen kata kunci yang tidak digunakan.
Instansiasi scheduler dari file konfigurasi JSON yang sudah ditentukan sebelumnya di direktori lokal atau repositori Hub.
> Untuk menggunakan model privat atau model bergerbang, masuk dengan
hf > auth login. Anda juga dapat mengaktifkan mode khusus > "offline-mode" untuk menggunakan metode ini di lingkungan yang > dibatasi firewall.
save_pretrained[[diffusers.SchedulerMixin.save_pretrained]]
save_pretrained(save_directory: str | os.PathLike, push_to_hub: bool = False, **kwargs: Any)
Parameter:
save_directory (str atau os.PathLike) : Direktori tempat file konfigurasi JSON akan disimpan (akan dibuat jika belum ada).
push_to_hub (bool, opsional, defaultnya False) : Apakah model akan didorong ke Hugging Face Hub setelah disimpan. Anda dapat menentukan repositori tujuan dengan repo_id (defaultnya adalah nama save_directory di namespace Anda).
kwargs (dict[str, Any], opsional) : Argumen kata kunci tambahan yang diteruskan ke metode push_to_hub().
Simpan objek konfigurasi scheduler ke sebuah direktori agar dapat dimuat ulang menggunakan metode kelas from_pretrained().
SchedulerOutput[[diffusers.schedulers.scheduling_utils.SchedulerOutput]]
diffusers.schedulers.scheduling_utils.SchedulerOutput[[diffusers.schedulers.scheduling_utils.SchedulerOutput]]
diffusers.schedulers.scheduling_utils.SchedulerOutput(prev_sample: Tensor)
Parameter:
prev_sample (torch.Tensor dengan bentuk (batch_size, num_channels, height, width) untuk gambar) : Sampel (x_{t-1}) yang dihitung dari timestep sebelumnya. prev_sample harus digunakan sebagai input model berikutnya dalam loop denoising.
Kelas dasar untuk keluaran dari fungsi step sebuah scheduler.
KarrasDiffusionSchedulers
KarrasDiffusionSchedulers adalah generalisasi luas dari scheduler di ๐ค Diffusers. Scheduler dalam kelas ini dibedakan pada tingkat tinggi oleh strategi sampling noise, jenis jaringan dan scaling, strategi pelatihan, serta cara loss ditimbang.
Berbagai scheduler dalam kelas ini, tergantung pada jenis solver persamaan diferensial biasa (ODE), termasuk dalam taksonomi di atas dan menyediakan abstraksi yang baik untuk desain scheduler utama yang diimplementasikan dalam ๐ค Diffusers. Scheduler dalam kelas ini diberikan di sini.
PushToHubMixin[[diffusers.utils.PushToHubMixin]]
diffusers.utils.PushToHubMixin[[diffusers.utils.PushToHubMixin]]
diffusers.utils.PushToHubMixin()
Mixin untuk mendorong model, scheduler, atau pipeline ke Hugging Face Hub.
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)
Parameter:
repo_id (str) : Nama repositori tempat Anda ingin mendorong file model, scheduler, atau pipeline Anda. Seharusnya berisi nama organisasi Anda saat mendorong ke organisasi. repo_id juga bisa berupa path ke direktori lokal.
commit_message (str, opsional) : Pesan untuk commit saat push. Default ke "Upload {object}".
private (bool, opsional) : Apakah membuat repo menjadi privat. Jika None (default), repo akan menjadi publik kecuali default organisasi adalah privat. Nilai ini diabaikan jika repo sudah ada.
token (str, opsional) : Token yang digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. Token yang dihasilkan saat menjalankan hf auth login (disimpan di ~/.huggingface).
create_pr (bool, opsional, defaultnya False) : Apakah akan membuat PR dengan file yang diunggah atau langsung melakukan commit.
safe_serialization (bool, opsional, defaultnya True) : Apakah akan mengonversi bobot model ke format safetensors atau tidak.
variant (str, opsional) : Jika ditentukan, bobot disimpan dalam format pytorch_model.<variant>.bin.
Unggah file model, scheduler, atau pipeline ke ๐ค Hugging Face Hub.
Contoh:
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:
- 17.1 kB
- Xet hash:
- 38694a655b7ac2990579ac859e6bb05abbb21cd8e1f62919ffbb1ffd3dc3ab2a
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.