Diffusers documentation
IP-Adapter
IP-Adapter
IP-Adapter adalah adapter ringan yang memungkinkan pemromptan model difusi dengan gambar. Metode ini memisahkan lapisan cross-attention untuk fitur gambar dan teks. Fitur gambar dihasilkan dari image encoder.
Pelajari cara memuat dan menggunakan checkpoint serta gambar IP-Adapter dalam panduan IP-Adapter.
IPAdapterMixin
Mixin untuk menangani IP Adapters.
load_ip_adapter
< source >( pretrained_model_name_or_path_or_dict: str | list[str] | dict[str, torch.Tensor]subfolder: str | list[str]weight_name: str | list[str]image_encoder_folder: str | None = 'image_encoder'**kwargs )
Parameter
- pretrained_model_name_or_path_or_dict (
strataulist[str]atauos.PathLikeataulist[os.PathLike]ataudictataulist[dict]) — 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 bobot model yang disimpan dengan ModelMixin.save_pretrained(). - torch state dict.
- String, model id (misalnya
- subfolder (
strataulist[str]) — Lokasi subfolder dari file model di dalam repositori model yang lebih besar di Hub atau secara lokal. Jika daftar yang diberikan, panjangnya harus sama denganweight_name. - weight_name (
strataulist[str]) — Nama file bobot yang akan dimuat. Jika daftar yang diberikan, panjangnya harus sama dengansubfolder. - image_encoder_folder (
str, opsional, defaultnyaimage_encoder) — Lokasi subfolder dari image encoder di dalam repositori model yang lebih besar di Hub atau secara lokal. LewatiNoneuntuk tidak memuat image encoder. Jika image encoder berada di dalam folder di dalamsubfolder, Anda hanya perlu melewatkan nama folder yang berisi bobot image encoder, misalnyaimage_encoder_folder="image_encoder". Jika image encoder berada di folder selainsubfolder, Anda harus melewatkan path ke folder yang berisi bobot image encoder, misalnyaimage_encoder_folder="different_subfolder/image_encoder". - cache_dir (
str | os.PathLike, opsional) — Path ke direktori tempat konfigurasi model pretrained yang diunduh di-cache jika cache standar tidak digunakan. - force_download (
bool, opsional, defaultFalse) — Apakah akan memaksa (mengunduh ulang) bobot model dan file konfigurasi, menimpa versi yang sudah di-cache jika ada. - proxies (
dict[str, str], opsional) — Kamus server proxy yang digunakan berdasarkan protokol atau endpoint, misalnya{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Proxy digunakan pada setiap permintaan. - local_files_only (
bool, opsional, defaultFalse) — Apakah hanya memuat bobot model dan file konfigurasi lokal atau tidak. Jika diatur keTrue, model tidak akan diunduh dari Hub. - token (
stratau bool, opsional) — Token yang digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. JikaTrue, token yang dihasilkan daridiffusers-cli login(disimpan di~/.huggingface) akan digunakan. - revision (
str, opsional, default"main") — Versi model spesifik yang akan digunakan. Bisa berupa nama branch, nama tag, commit id, atau identifier apa pun yang diizinkan oleh Git. - low_cpu_mem_usage (
bool, opsional, defaultnyaTruejika versi torch >= 1.9.0 selain ituFalse) — Percepat pemuatan model dengan hanya memuat bobot pretrained dan tidak menginisialisasi bobot. Ini juga berusaha untuk tidak menggunakan lebih dari 1x ukuran model di memori CPU (termasuk memori puncak) saat memuat model. Hanya didukung untuk PyTorch >= 1.9.0. Jika Anda menggunakan versi PyTorch yang lebih lama, mengatur argumen ini keTrueakan memicu error.
Set IP-Adapter menskalakan per blok transformer. Input scale dapat berupa satu config atau daftar config untuk kontrol granular atas perilaku masing-masing IP-Adapter. Sebuah config dapat berupa float atau dictionary.
Contoh:
# To use original IP-Adapter
scale = 1.0
pipeline.set_ip_adapter_scale(scale)
# To use style block only
scale = {
"up": {"block_0": [0.0, 1.0, 0.0]},
}
pipeline.set_ip_adapter_scale(scale)
# To use style+layout blocks
scale = {
"down": {"block_2": [0.0, 1.0]},
"up": {"block_0": [0.0, 1.0, 0.0]},
}
pipeline.set_ip_adapter_scale(scale)
# To use style and layout from 2 reference images
scales = [{"down": {"block_2": [0.0, 1.0]}}, {"up": {"block_0": [0.0, 1.0, 0.0]}}]
pipeline.set_ip_adapter_scale(scales)Memuat ulang bobot IP Adapter
SD3IPAdapterMixin
Mixin untuk menangani IP Adapter StableDiffusion 3.
is_ip_adapter_active
< source >( ) → bool
Mengembalikan
bool
Benar ketika IP-Adapter dimuat dan lapisan mana pun memiliki scale > 0.
Memeriksa apakah IP-Adapter dimuat dan scale > 0.
IP-Adapter scale mengontrol pengaruh prompt gambar dibandingkan dengan prompt teks. Ketika nilai ini diatur ke 0, konteks gambar tidak relevan.
load_ip_adapter
< source >( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]weight_name: str = 'ip-adapter.safetensors'subfolder: str | None = Noneimage_encoder_folder: str | None = 'image_encoder'**kwargs )
Parameter
- pretrained_model_name_or_path_or_dict (
stratauos.PathLikeataudict) — Dapat 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 bobot model yang disimpan dengan ModelMixin.save_pretrained(). - torch state dict.
- String, model id (misalnya
- weight_name (
str, defaultnya “ip-adapter.safetensors”) — Nama file bobot yang akan dimuat. Jika sebuah daftar yang dilewatkan, panjangnya harus sama dengansubfolder. - subfolder (
str, opsional) — Lokasi subfolder dari file model di dalam repositori model yang lebih besar di Hub atau secara lokal. Jika daftar yang dilewatkan, panjangnya harus sama denganweight_name. - image_encoder_folder (
str, opsional, defaultnyaimage_encoder) — Lokasi subfolder dari image encoder di dalam repositori model yang lebih besar di Hub atau secara lokal. LewatiNoneuntuk tidak memuat image encoder. Jika image encoder berada di dalam folder di dalamsubfolder, Anda hanya perlu melewatkan nama folder yang berisi bobot image encoder, misalnyaimage_encoder_folder="image_encoder". Jika image encoder berada di folder selainsubfolder, Anda harus melewatkan path ke folder yang berisi bobot image encoder, misalnyaimage_encoder_folder="different_subfolder/image_encoder". - cache_dir (
str | os.PathLike, opsional) — Path ke direktori tempat konfigurasi model pretrained yang diunduh di-cache jika cache standar tidak digunakan. - force_download (
bool, opsional, defaultFalse) — Apakah akan memaksa (mengunduh ulang) bobot model dan file konfigurasi, menimpa versi yang sudah di-cache jika ada. - proxies (
dict[str, str], opsional) — Kamus server proxy yang digunakan berdasarkan protokol atau endpoint, misalnya{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Proxy digunakan pada setiap permintaan. - local_files_only (
bool, opsional, defaultFalse) — Apakah hanya memuat bobot model dan file konfigurasi lokal atau tidak. Jika diatur keTrue, model tidak akan diunduh dari Hub. - token (
stratau bool, opsional) — Token yang digunakan sebagai otorisasi bearer HTTP untuk file jarak jauh. JikaTrue, token yang dihasilkan daridiffusers-cli login(disimpan di~/.huggingface) akan digunakan. - revision (
str, opsional, default"main") — Versi model spesifik yang akan digunakan. Bisa berupa nama branch, nama tag, commit id, atau identifier apa pun yang diizinkan oleh Git. - low_cpu_mem_usage (
bool, opsional, defaultnyaTruejika versi torch >= 1.9.0 selain ituFalse) — Percepat pemuatan model dengan hanya memuat bobot pretrained dan tidak menginisialisasi bobot. Ini juga berusaha untuk tidak menggunakan lebih dari 1x ukuran model di memori CPU (termasuk memori puncak) saat memuat model. Hanya didukung untuk PyTorch >= 1.9.0. Jika Anda menggunakan versi PyTorch yang lebih lama, mengatur argumen ini keTrueakan memicu error.
set_ip_adapter_scale
< source >( scale: float )
Set skala IP-Adapter, yang mengontrol kondisioning prompt gambar. Nilai 1.0 berarti model hanya dikondisikan oleh prompt gambar, dan 0.0 hanya dikondisikan oleh prompt teks. Menurunkan nilai ini mendorong model untuk menghasilkan gambar yang lebih beragam, tetapi gambar tersebut mungkin tidak selaras dengan prompt gambar.
Memuat ulang bobot IP Adapter.
IPAdapterMaskProcessor
kelas diffusers.IPAdapterMaskProcessor
< source >( do_resize: bool = Truevae_scale_factor: int = 8resample: str = 'lanczos'do_normalize: bool = Falsedo_binarize: bool = Truedo_convert_grayscale: bool = True )
Parameter
- do_resize (
bool, opsional, defaultTrue) — Apakah akan menurunkan dimensi (tinggi, lebar) gambar menjadi kelipatan darivae_scale_factor. - vae_scale_factor (
int, opsional, default8) — Faktor skala VAE. Jikado_resizeadalahTrue, gambar akan di-resize secara otomatis menjadi kelipatan dari faktor ini. - resample (
str, opsional, defaultlanczos) — Filter resampling yang digunakan saat mengubah ukuran gambar. - do_normalize (
bool, opsional, defaultFalse) — Apakah akan menormalisasi gambar ke [-1,1]. - do_binarize (
bool, opsional, defaultnyaTrue) — Apakah akan mbinariskan gambar menjadi 0/1. - do_convert_grayscale (
bool, opsional, defaultnyaTrue) — Apakah akan mengonversi gambar ke format grayscale.
Pemroses gambar untuk masker gambar IP Adapter.
downsample
< source >( mask: Tensorbatch_size: intnum_queries: intvalue_embed_dim: int ) → torch.Tensor
Menurunkan sampel tensor mask yang diberikan agar sesuai dengan dimensi yang diharapkan untuk scaled dot-product attention. Jika rasio aspek mask tidak cocok dengan rasio aspek gambar keluaran, peringatan akan diterbitkan.