Buckets:

mishig's picture
|
download
raw
13.5 kB
# Pipeline
## ModularPipeline[[diffusers.ModularPipeline]]
#### diffusers.ModularPipeline[[diffusers.ModularPipeline]]
```python
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](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L1700)
**Parameter:**
blocks : ModularPipelineBlocks, blok yang akan digunakan dalam pipeline
Kelas dasar untuk semua pipeline Modular.
#### from_pretrained[[diffusers.ModularPipeline.from_pretrained]]
```python
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](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L1925)
**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]]
```python
get_component_spec(name: str)
```
[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L2401)
**Mengembalikan:**
- salinan objek ComponentSpec untuk nama komponen yang diberikan
#### load_components[[diffusers.ModularPipeline.load_components]]
```python
load_components(names: list[str] | str | None = None, workflow: str | None = None, **kwargs)
```
[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L2489)
**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]]
```python
register_components(**kwargs)
```
[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L2186)
**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]]
```python
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](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L2026)
**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()](/docs/diffusers/v0.43.0/id/api/modular_diffusers/pipeline#diffusers.ModularPipeline.from_pretrained).
#### ke[[diffusers.ModularPipeline.to]]
```python
to(*args, **kwargs)
```
[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L2651)
**Parameter:**
dtype (`torch.dtype`, *opsional*) : Mengembalikan pipeline dengan [`dtype`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype) yang ditentukan
device (`torch.Device`, *opsional*) : Mengembalikan pipeline dengan [`device`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.device) yang ditentukan
silence_dtype_warnings (`str`, *opsional*, defaultnya `False`) : Apakah akan mengabaikan peringatan jika `dtype` target tidak kompatibel dengan `device` target.
**Mengembalikan:** [DiffusionPipeline](/docs/diffusers/v0.43.0/id/api/pipelines/overview#diffusers.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).`
> [!TIP] > 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`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype) yang ditentukan
- `to(device, silence_dtype_warnings=False) → DiffusionPipeline` untuk mengembalikan pipeline dengan [`device`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.device) yang ditentukan
- `to(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipeline` untuk mengembalikan pipeline dengan [`device`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.device) dan [`dtype`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype) yang ditentukan
#### unload_components[[diffusers.ModularPipeline.unload_components]]
```python
unload_components(names: list[str] | str)
```
[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L2595)
**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]]
```python
update_components(**kwargs)
```
[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/modular_pipeline.py#L2408)
**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:
```python
# 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.5 kB
·
Xet hash:
df49e180613f081e55d846621d0b2d296df79e2bb5d12f0051754af5074224e0

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