Buckets:

mishig's picture
|
download
raw
13.4 kB

Pipeline

ModularPipeline[[diffusers.ModularPipeline]]

diffusers.ModularPipeline[[diffusers.ModularPipeline]]

diffusers.ModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs)

Sumber

Parameter:

blocks : ModularPipelineBlocks, blok yang akan digunakan dalam pipeline

Kelas dasar untuk semua pipeline Modular.

from_pretrained[[diffusers.ModularPipeline.from_pretrained]]

from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None, trust_remote_code: bool | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, **kwargs)

Sumber

Parameter:

pretrained_model_name_or_path (str atau os.PathLike, opsional) : Path ke konfigurasi pipeline pretrained. Sistem akan pertama kali mencoba memuat config dari modular_model_index.json, lalu fallback ke model_index.json untuk kompatibilitas dengan repositori non-modular standar. Jika pretrained_model_name_or_path tidak mengandung konfigurasi pipeline apa pun, nilainya akan diset ke None selama inisialisasi.

trust_remote_code (bool, opsional) : Apakah kode jarak jauh akan dipercaya 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) : instance ComponentsManager untuk mengelola beberapa komponen lintas pipeline yang berbeda dan menerapkan strategi offloading.

collection (str, opsional) --` Nama koleksi untuk mengorganisasi komponen di dalam ComponentsManager.

workflow (str, opsional) : Nama workflow yang dideklarasikan oleh blok pipeline. Jika diberikan, blok-blok akan dipangkas menjadi blok eksekusi 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[[diffusers.ModularPipeline.get_component_spec]]

get_component_spec(name: str)

Sumber

Mengembalikan:

  • salinan objek ComponentSpec untuk nama komponen yang diberikan

load_components[[diffusers.ModularPipeline.load_components]]

load_components(names: list[str] | str | None = None, workflow: str | None = None, **kwargs)

Sumber

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 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(). Dapat berupa: - nilai tunggal yang diterapkan ke semua komponen yang akan dimuat, mis. dtype=torch.bfloat16 - dict, mis. dtype={"unet": torch.bfloat16, "default": torch.float32} - jika berpotensi menimpa ComponentSpec jika field pemuatan yang berbeda diteruskan dalam kwargs, mis. pretrained_model_name_or_path, variant, revision, dll. - jika berpotensi menimpa ComponentSpec jika field pemuatan yang berbeda diteruskan dalam kwargs, mis. pretrained_model_name_or_path, variant, revision, dll.

Muat komponen yang dipilih dari spesifikasi.

register_components[[diffusers.ModularPipeline.register_components]]

register_components(**kwargs)

Sumber

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[[diffusers.ModularPipeline.save_pretrained]]

save_pretrained(save_directory: str | os.PathLike, safe_serialization: bool = True, variant: str | None = None, max_shard_size: int | str | None = None, push_to_hub: bool = False, **kwargs)

Sumber

Parameter:

save_directory (str atau os.PathLike) : Direktori untuk menyimpan pipeline. Akan dibuat jika belum ada.

safe_serialization (bool, opsional, defaultnya 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, defaultnya None) : Ukuran maksimum untuk checkpoint sebelum di-shard. Checkpoint yang di-shard kemudian akan masing-masing berukuran lebih kecil dari ukuran ini. Jika dinyatakan sebagai string, harus berupa angka diikuti oleh satuan (seperti "5GB"). Jika dinyatakan sebagai integer, satuannya adalah byte.

push_to_hub (bool, opsional, defaultnya False) : Apakah akan mendorong pipeline ke Hugging Face model hub setelah menyimpannya.

  • **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. Default ke komponen terakhir dari save_directory. - commit_message (str, opsional): Pesan commit untuk operasi dorong ke hub. - private (bool, opsional): Apakah repositori harus bersifat privat. - create_pr (bool, opsional, default False): Apakah akan membuat pull request alih-alih mendorong secara langsung. - token (str, opsional): Token Hugging Face yang akan digunakan untuk autentikasi.

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

ke[[diffusers.ModularPipeline.to]]

to(*args, **kwargs)

Sumber

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 perangkat 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 tersebut dikembalikan apa adanya. Jika tidak, > 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[[diffusers.ModularPipeline.unload_components]]

unload_components(names: list[str] | str)

Sumber

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[[diffusers.ModularPipeline.update_components]]

update_components(**kwargs)

Sumber

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)

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 memiliki spesifikasi yang dimuat dipertahankan 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.

Xet Storage Details

Size:
13.4 kB
·
Xet hash:
a191a0e4486a73f7863b6ebed685dd26e5cdc1bd0a259e5d2b0d3b066cda5f6e

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