Diffusers documentation

Pipeline

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Pipeline

ModularPipeline

kelas diffusers.ModularPipeline

< >

( 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 )

Parameter

  • blocks — ModularPipelineBlocks, blok yang akan digunakan dalam pipeline

Kelas dasar untuk semua pipeline Modular.

from_pretrained

< >

( 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 )

Parameter

  • pretrained_model_name_or_path (str atau os.PathLike, opsional) — Path ke konfigurasi pipeline pretrained. Sistem akan terlebih dahulu mencoba memuat konfigurasi dari modular_model_index.json, lalu beralih ke model_index.json untuk kompatibilitas dengan repositori standar non-modular. Jika pretrained_model_name_or_path tidak berisi konfigurasi pipeline apa pun, nilainya akan diset ke None selama inisialisasi.
  • trust_remote_code (bool, opsional) — Apakah akan mempercayai kode jarak jauh saat memuat pipeline, perlu diatur ke True jika Anda ingin membuat blok pipeline berdasarkan kode kustom di pretrained_model_name_or_path
  • components_manager (ComponentsManager, opsional) — Instans ComponentsManager untuk mengelola beberapa komponen lintas pipeline yang berbeda dan menerapkan strategi offloading.
  • collection (str, opsional) —` Nama koleksi untuk mengorganisasi komponen di ComponentsManager.
  • workflow (str, opsional) — Nama dari workflow yang dideklarasikan oleh blok pipeline. Jika diberikan, blok-blok tersebut akan dipangkas menjadi blok eksekusi dari workflow tersebut, sehingga pipeline hanya mengharapkan — dan load_components() hanya memuat — komponen yang digunakan oleh workflow tersebut.

Muat ModularPipeline dari repositori huggingface hub.

get_component_spec

< >

( name: str )

load_components

< >

( names: list[str] | str | None = Noneworkflow: str | None = None**kwargs )

Parameter

  • names — daftar nama komponen yang akan dimuat. Jika None, akan memuat semua komponen dengan default_creation_method == “from_pretrained”. Jika diberikan sebagai daftar atau string, hanya komponen yang ditentukan yang akan dimuat.
  • workflow — nama dari workflow yang dideklarasikan oleh blok pipeline. Jika diberikan, hanya komponen yang digunakan oleh blok eksekusi workflow tersebut yang dimuat. Tidak dapat digabungkan dengan names.
  • **kwargs — kwargs tambahan yang akan diteruskan ke from_pretrained().Bisa berupa:
    • satu nilai yang akan diterapkan ke semua komponen yang akan dimuat, misalnya dtype=torch.bfloat16
    • dict, mis. dtype={“unet”: torch.bfloat16, “default”: torch.float32}
    • jika berpotensi menimpa ComponentSpec jika diberikan field pemuatan yang berbeda di kwargs, misalnya pretrained_model_name_or_path, variant, revision, dll.
    • jika berpotensi menimpa ComponentSpec jika diberikan field pemuatan yang berbeda di kwargs, misalnya pretrained_model_name_or_path, variant, revision, dll.

Muat komponen yang dipilih dari spesifikasi.

register_components

< >

( **kwargs )

Parameter

  • **kwargs — Argumen kata kunci di mana kuncinya adalah nama komponen dan nilainya adalah objek komponen. Contoh: register_components(unet=unet_model, text_encoder=encoder_model)

Daftarkan komponen dengan spesifikasi yang sesuai.

Metode ini bertanggung jawab untuk:

  1. Menetapkan objek komponen sebagai atribut pada loader (misalnya, self.unet = unet)
  2. Memperbarui dict config, yang akan disimpan sebagai modular_model_index.json selama save_pretrained (hanya untuk komponen from_pretrained)
  3. Menambahkan komponen ke manajer komponen jika ada yang terpasang (hanya untuk komponen from_pretrained)

Metode ini dipanggil ketika:

  • Komponen pertama kali diinisialisasi di init:
    • komponen from_pretrained tidak dimuat selama init sehingga didaftarkan sebagai None;
    • non from_pretrained dibuat selama init dan didaftarkan sebagai objek itu sendiri
  • Komponen diperbarui dengan metode update_components(): misalnya loader.update_components(unet=unet) atau loader.update_components(guider=guider_spec)
  • (from_pretrained) Komponen dimuat dengan metode load_components(): misalnya loader.load_components(names=[“unet”]) atau loader.load_components() untuk memuat semua komponen default

Catatan:

  • Saat mendaftarkan None untuk sebuah komponen, atribut diset ke None tetapi spesifikasi tetap disinkronkan dengan dict konfigurasi, yang akan disimpan sebagai modular_model_index.json selama save_pretrained
  • component_specs diperbarui agar sesuai dengan komponen baru di luar metode ini, misalnya pada metode update_components()

save_pretrained

< >

( save_directory: str | os.PathLikesafe_serialization: bool = Truevariant: str | None = Nonemax_shard_size: int | str | None = Nonepush_to_hub: bool = False**kwargs )

Parameter

  • save_directory (str atau os.PathLike) — Direktori untuk menyimpan pipeline. Akan dibuat jika belum ada.
  • safe_serialization (bool, opsional, default True) — Apakah model disimpan menggunakan safetensors atau cara tradisional PyTorch dengan pickle.
  • variant (str, opsional) — Jika ditentukan, bobot disimpan dalam format pytorch_model.<variant>.bin.
  • max_shard_size (int atau str, default None) — Ukuran maksimum checkpoint sebelum dipecah menjadi shard. Setiap shard checkpoint akan memiliki ukuran lebih kecil dari nilai ini. Jika dinyatakan sebagai string, harus berupa angka diikuti satuan (seperti "5GB"). Jika dinyatakan sebagai integer, satuannya adalah byte.
  • push_to_hub (bool, opsional, default False) — Apakah pipeline akan didorong ke Hugging Face model hub setelah disimpan.
  • **kwargs — Argumen kata kunci tambahan:
    • overwrite_modular_index (bool, opsional, default True): Apakah akan memperbarui modular_model_index.json sehingga spesifikasi pemuatan setiap komponen yang disimpan menunjuk ke tujuan: repo_id saat mendorong ke Hub, selain itu save_directory. Komponen yang tidak dimuat tidak disimpan dan selalu mempertahankan spesifikasi pemuatan yang tercatat. Berikan False untuk juga mempertahankan spesifikasi yang tercatat dari komponen yang sedang disimpan (misalnya untuk indeks yang sengaja merujuk ke repositori lain); komponen tanpa id pemuatan (seperti model kustom yang ditambahkan dengan update_components) tetap ditulis ulang karena tidak memiliki sumber yang tercatat.
    • repo_id (str, opsional): ID repositori untuk mendorong pipeline ke sana. Secara default menggunakan komponen terakhir dari save_directory.
    • commit_message (str, opsional): Pesan commit untuk operasi push ke hub.
    • private (bool, opsional): Apakah repositori harus bersifat privat.
    • create_pr (bool, opsional, default False): Apakah akan membuat pull request alih-alih mendorong langsung.
    • token (str, opsional): Token Hugging Face yang digunakan untuk autentikasi.

Simpan pipeline dan semua komponennya ke sebuah direktori, sehingga dapat dimuat ulang menggunakan metode kelas from_pretrained().

ke

< >

( *args**kwargs ) → DiffusionPipeline

Parameter

  • dtype (torch.dtype, opsional) — Mengembalikan pipeline dengan dtype yang ditentukan
  • device (torch.Device, opsional) — Mengembalikan pipeline dengan device yang ditentukan
  • silence_dtype_warnings (str, opsional, defaultnya False) — Apakah akan mengabaikan peringatan jika dtype target tidak kompatibel dengan device target.

Mengembalikan

DiffusionPipeline

Pipeline dikonversi ke dtype dan/atau dtype yang ditentukan.

Melakukan konversi dtype dan/atau device Pipeline. Sebuah torch.dtype dan torch.device disimpulkan dari argumen self.to(*args, **kwargs).

> Jika pipeline sudah memiliki torch.dtype dan torch.device yang benar, maka pipeline dikembalikan apa adanya. Selain itu, > pipeline yang dikembalikan adalah salinan dari self dengan torch.dtype dan torch.device yang diinginkan.

Berikut adalah cara untuk memanggil to:

  • to(dtype, silence_dtype_warnings=False) → DiffusionPipeline untuk mengembalikan pipeline dengan dtype yang ditentukan
  • to(device, silence_dtype_warnings=False) → DiffusionPipeline untuk mengembalikan pipeline dengan device yang ditentukan
  • to(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipeline untuk mengembalikan pipeline dengan device dan dtype yang ditentukan

unload_components

< >

( names: list[str] | str )

Parameter

  • names — nama komponen atau daftar nama komponen untuk dimuat ulang.

Muat turun komponen yang dipilih, membebaskan memori mereka.

Atribut komponen diatur kembali ke None dan, jika ComponentsManager terlampir, komponen dihapus darinya. Spesifikasi komponen tidak diubah, sehingga komponen dapat dimuat kembali nanti dengan load_components().

update_components

< >

( **kwargs )

Parameter

  • **kwargs — Objek komponen atau nilai konfigurasi untuk diperbarui: Objek komponen: Model yang dimuat dengan AutoModel.from_pretrained() atau ComponentSpec.load() secara otomatis diberi tag dengan informasi pemuatan. Objek ConfigMixin tanpa bobot (misalnya, scheduler, guider) dapat diteruskan secara langsung. Nilai konfigurasi: Nilai sederhana untuk memperbarui pengaturan konfigurasi (misalnya, requires_safety_checker=False)
    • Objek komponen: Model yang dimuat dengan AutoModel.from_pretrained() atau ComponentSpec.load() secara otomatis diberi tag dengan informasi pemuatan. Objek ConfigMixin tanpa bobot (misalnya, scheduler, guider) dapat diteruskan secara langsung.
    • Nilai konfigurasi: Nilai sederhana untuk memperbarui pengaturan konfigurasi (Contoh: requires_safety_checker=False)

Perbarui komponen dan nilai konfigurasi serta spesifikasi setelah pipeline diinstansiasi.

Metode ini memungkinkan Anda untuk:

  1. Ganti komponen yang ada dengan yang baru (misalnya, memperbarui self.unet atau self.text_encoder)
  2. Perbarui nilai konfigurasi (misalnya, mengubah flag self.requires_safety_checker)

Selain memperbarui komponen dan nilai konfigurasi sebagai atribut pipeline, metode ini juga memperbarui:

  • spesifikasi yang sesuai di _component_specs dan _config_specs
  • dict config, yang akan disimpan sebagai modular_model_index.json selama save_pretrained

Contoh:

# 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)

Catatan:

  • Komponen yang dimuat dengan AutoModel.from_pretrained() atau ComponentSpec.load() akan mempertahankan spesifikasi pemuatan untuk serialisasi. Komponen kustom atau yang dimuat secara lokal tanpa referensi Hub akan memiliki entri modular_model_index.json yang diperbarui secara otomatis selama save_pretrained().
  • Objek ConfigMixin tanpa bobot (misalnya, scheduler, guider) dapat diteruskan secara langsung.
Update on GitHub