Buckets:
| # | |
| # Berlisensi di bawah Apache License, Versi 2.0 ("Lisensi"); | |
| # Anda mungkin tidak dapat menggunakan file ini kecuali sesuai dengan Lisensi. | |
| # Anda dapat memperoleh salinan Lisensi di | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Kecuali diwajibkan oleh hukum yang berlaku atau disepakati secara tertulis, perangkat lunak | |
| # distribusikan di bawah Lisensi berdasarkan basis "SEBAGAIMANA ADANYA", | |
| # TANPA JAMINAN ATAU SYARAT DALAM BENTUK APAPUN, baik yang dinyatakan maupun yang tersirat. | |
| # Lihat Lisensi untuk bahasa tertentu yang mengatur izin dan | |
| # batasan di bawah Lisensi. | |
| --> | |
| # CogVideoX | |
| [CogVideoX](https://huggingface.co/papers/2408.06072) adalah model diffusion transformer besar - tersedia dalam 2B dan 5B parameter - yang dirancang untuk menghasilkan video yang lebih panjang dan konsisten dari teks. Model ini menggunakan 3D causal variational autoencoder untuk memproses data video secara lebih efisien dengan mengurangi panjang sekuens (dan komputasi pelatihan terkait) serta mencegah efek berkedip pada video yang dihasilkan. Transformer "expert" dengan adaptive LayerNorm meningkatkan keselarasan antara teks dan video, dan 3D full attention membantu menangkap gerakan dan waktu secara akurat pada video yang dihasilkan. | |
| Anda dapat menemukan semua checkpoint asli CogVideoX di bawah koleksi [CogVideoX](https://huggingface.co/collections/THUDM/cogvideo-66c08e62f1685a3ade464cce). | |
| > [!TIP] | |
| > Klik pada model CogVideoX di bilah sisi kanan untuk melihat lebih banyak contoh tugas generasi video lainnya. | |
| Contoh di bawah ini menunjukkan cara menghasilkan video yang dioptimalkan untuk memori atau kecepatan inferensi. | |
| Lihat panduan [Reduce memory usage](../../optimization/memory) untuk detail lebih lanjut tentang berbagai teknik penghematan memori. | |
| Model CogVideoX 5B terkuantisasi di bawah ini membutuhkan sekitar 16GB VRAM. | |
| ```py | |
| import torch | |
| from diffusers import CogVideoXPipeline, AutoModel, TorchAoConfig | |
| from diffusers.quantizers import PipelineQuantizationConfig | |
| from diffusers.hooks import apply_group_offloading | |
| from diffusers.utils import export_to_video | |
| from torchao.quantization import Int8WeightOnlyConfig | |
| # quantize weights to int8 with torchao | |
| pipeline_quant_config = PipelineQuantizationConfig( | |
| quant_mapping={"transformer": TorchAoConfig(Int8WeightOnlyConfig())} | |
| ) | |
| # fp8 layerwise weight-casting | |
| transformer = AutoModel.from_pretrained( | |
| "THUDM/CogVideoX-5b", | |
| subfolder="transformer", | |
| dtype=torch.bfloat16 | |
| ) | |
| transformer.enable_layerwise_casting( | |
| storage_dtype=torch.float8_e4m3fn, compute_dtype=torch.bfloat16 | |
| ) | |
| pipeline = CogVideoXPipeline.from_pretrained( | |
| "THUDM/CogVideoX-5b", | |
| transformer=transformer, | |
| quantization_config=pipeline_quant_config, | |
| dtype=torch.bfloat16 | |
| ) | |
| pipeline.to("cuda") # or "mps", "xpu", "cpu" | |
| # model-offloading | |
| pipeline.enable_model_cpu_offload() | |
| prompt = """ | |
| A detailed wooden toy ship with intricately carved masts and sails is seen gliding smoothly over a plush, blue carpet that mimics the waves of the sea. | |
| The ship's hull is painted a rich brown, with tiny windows. The carpet, soft and textured, provides a perfect backdrop, resembling an oceanic expanse. | |
| Surrounding the ship are various other toys and children's items, hinting at a playful environment. The scene captures the innocence and imagination of childhood, | |
| with the toy ship's journey symbolizing endless adventures in a whimsical, indoor setting. | |
| """ | |
| video = pipeline( | |
| prompt=prompt, | |
| guidance_scale=6, | |
| num_inference_steps=50 | |
| ).frames[0] | |
| export_to_video(video, "output.mp4", fps=8) | |
| ``` | |
| [Compilation](../../optimization/fp16#torchcompile) lambat pada pemanggilan pertama, tetapi pemanggilan pipeline berikutnya lebih cepat. | |
| Waktu inferensi rata-rata dengan torch.compile pada A100 80GB adalah 76,27 detik, dibandingkan dengan 96,89 detik untuk model yang tidak dikompilasi. | |
| ```py | |
| import torch | |
| from diffusers import CogVideoXPipeline | |
| from diffusers.utils import export_to_video | |
| pipeline = CogVideoXPipeline.from_pretrained( | |
| "THUDM/CogVideoX-2b", | |
| dtype=torch.float16 | |
| ).to("cuda") # or "mps", "xpu", "cpu" | |
| # torch.compile | |
| pipeline.transformer.to(memory_format=torch.channels_last) | |
| pipeline.transformer = torch.compile( | |
| pipeline.transformer, mode="max-autotune", fullgraph=True | |
| ) | |
| prompt = """ | |
| A detailed wooden toy ship with intricately carved masts and sails is seen gliding smoothly over a plush, blue carpet that mimics the waves of the sea. | |
| The ship's hull is painted a rich brown, with tiny windows. The carpet, soft and textured, provides a perfect backdrop, resembling an oceanic expanse. | |
| Surrounding the ship are various other toys and children's items, hinting at a playful environment. The scene captures the innocence and imagination of childhood, | |
| with the toy ship's journey symbolizing endless adventures in a whimsical, indoor setting. | |
| """ | |
| video = pipeline( | |
| prompt=prompt, | |
| guidance_scale=6, | |
| num_inference_steps=50 | |
| ).frames[0] | |
| export_to_video(video, "output.mp4", fps=8) | |
| ``` | |
| ## Catatan | |
| - CogVideoX mendukung LoRA dengan [load_lora_weights()](/docs/diffusers/main/id/api/loaders/lora#diffusers.loaders.CogVideoXLoraLoaderMixin.load_lora_weights). | |
| Tampilkan kode contoh | |
| ```py | |
| import torch | |
| from diffusers import CogVideoXPipeline | |
| from diffusers.hooks import apply_group_offloading | |
| from diffusers.utils import export_to_video | |
| pipeline = CogVideoXPipeline.from_pretrained( | |
| "THUDM/CogVideoX-5b", | |
| dtype=torch.bfloat16 | |
| ) | |
| pipeline.to("cuda") # or "mps", "xpu", "cpu" | |
| # load LoRA weights | |
| pipeline.load_lora_weights("finetrainers/CogVideoX-1.5-crush-smol-v0", adapter_name="crush-lora") | |
| pipeline.set_adapters("crush-lora", 0.9) | |
| # model-offloading | |
| pipeline.enable_model_cpu_offload() | |
| prompt = """ | |
| PIKA_CRUSH A large metal cylinder is seen pressing down on a pile of Oreo cookies, flattening them as if they were under a hydraulic press. | |
| """ | |
| negative_prompt = "inconsistent motion, blurry motion, worse quality, degenerate outputs, deformed outputs" | |
| video = pipeline( | |
| prompt=prompt, | |
| negative_prompt=negative_prompt, | |
| num_frames=81, | |
| height=480, | |
| width=768, | |
| num_inference_steps=50 | |
| ).frames[0] | |
| export_to_video(video, "output.mp4", fps=16) | |
| ``` | |
| - Checkpoint text-to-video (T2V) bekerja paling baik dengan resolusi 1360x768 karena resolusi tersebut yang digunakan saat prapelatihan. | |
| - Checkpoint image-to-video (I2V) bekerja dengan beberapa resolusi. Lebar dapat bervariasi dari 768 hingga 1360, tetapi tinggi harus 758. Baik tinggi maupun lebar harus habis dibagi 16. | |
| - Kedua checkpoint T2V dan I2V bekerja paling baik dengan 81 dan 161 frame. Disarankan untuk mengekspor video yang dihasilkan pada 16fps. | |
| - Lihat tabel di bawah untuk melihat penggunaan memori ketika berbagai teknik penghematan memori diaktifkan. | |
| | method | penggunaan memori (diaktifkan) | penggunaan memori (dinonaktifkan) | | |
| |---|---|---| | |
| | enable_model_cpu_offload | 19GB | 33GB | | |
| | enable_sequential_cpu_offload | <4GB | ~33GB (kecepatan inferensi sangat lambat) | | |
| | enable_tiling | 11GB (dengan enable_model_cpu_offload) | --- | | |
| ## CogVideoXPipeline[[diffusers.CogVideoXPipeline]] | |
| #### diffusers.CogVideoXPipeline[[diffusers.CogVideoXPipeline]] | |
| ```python | |
| diffusers.CogVideoXPipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, vae: AutoencoderKLCogVideoX, transformer: CogVideoXTransformer3DModel, scheduler: diffusers.schedulers.scheduling_ddim_cogvideox.CogVideoXDDIMScheduler | diffusers.schedulers.scheduling_dpm_cogvideox.CogVideoXDPMScheduler) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox.py#L147) | |
| **Parameter:** | |
| vae ([AutoencoderKL](/docs/diffusers/main/id/api/models/autoencoderkl#diffusers.AutoencoderKL)) : Model Variational Auto-Encoder (VAE) untuk mengodekan dan mendekodekan video ke dan dari representasi laten. | |
| text_encoder (`T5EncoderModel`) : Pengkode teks beku. CogVideoX menggunakan [T5](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5EncoderModel); khususnya varian [t5-v1_1-xxl](https://huggingface.co/PixArt-alpha/PixArt-alpha/tree/main/t5-v1_1-xxl). | |
| tokenizer (`T5Tokenizer`) : Tokenizer dari kelas [T5Tokenizer](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5Tokenizer). | |
| transformer ([CogVideoXTransformer3DModel](/docs/diffusers/main/id/api/models/cogvideox_transformer3d#diffusers.CogVideoXTransformer3DModel)) : `CogVideoXTransformer3DModel` yang dikondisikan teks untuk mendenoise latens video yang telah dikodekan. | |
| scheduler ([SchedulerMixin](/docs/diffusers/main/id/api/schedulers/overview#diffusers.SchedulerMixin)) : Penjadwal yang digunakan bersama `transformer` untuk menghilangkan noise dari latens video yang telah dikodekan. | |
| Pipeline untuk generasi teks-ke-video menggunakan CogVideoX. | |
| Model ini mewarisi dari [DiffusionPipeline](/docs/diffusers/main/id/api/pipelines/overview#diffusers.DiffusionPipeline). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua pipeline (seperti mengunduh atau menyimpan, menjalankan pada perangkat tertentu, dll.) | |
| #### __call__[[diffusers.CogVideoXPipeline.__call__]] | |
| ```python | |
| __call__(prompt: str | list[str] | None = None, negative_prompt: str | list[str] | None = None, height: int | None = None, width: int | None = None, num_frames: int | None = None, num_inference_steps: int = 50, timesteps: list[int] | None = None, guidance_scale: float = 6, use_dynamic_cfg: bool = False, num_videos_per_prompt: int = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.FloatTensor] = None, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = None, output_type: str = 'pil', return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], max_sequence_length: int = 226) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox.py#L505) | |
| **Parameter:** | |
| prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt untuk mengarahkan generasi gambar. Jika tidak didefinisikan, Anda harus melewatkan `prompt_embeds` sebagai gantinya. | |
| negative_prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt yang tidak akan memandu generasi gambar. Jika tidak didefinisikan, Anda harus meneruskan `negative_prompt_embeds` sebagai gantinya. Diabaikan saat tidak menggunakan guidance (yaitu, diabaikan jika `guidance_scale` kurang dari `1`). | |
| height (`int`, *opsional*, defaultnya self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Tinggi gambar yang dihasilkan dalam piksel. Ini diatur ke 480 secara default untuk hasil terbaik. | |
| width (`int`, *opsional*, defaultnya self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Lebar gambar yang dihasilkan dalam piksel. Ini diatur ke 720 secara default untuk hasil terbaik. | |
| num_frames (`int`, defaultnya `48`) : Jumlah frame yang akan dihasilkan. Harus habis dibagi oleh self.vae_scale_factor_temporal. Video yang dihasilkan akan berisi 1 frame ekstra karena CogVideoX dikondisikan dengan (num_seconds * fps + 1) frame, di mana num_seconds adalah 6 dan fps adalah 8. Namun, karena video dapat disimpan pada fps apa pun, satu-satunya kondisi yang perlu dipenuhi adalah keterbagian yang disebutkan di atas. | |
| num_inference_steps (`int`, *opsional*, defaultnya 50) : Jumlah langkah denoising. Semakin banyak langkah denoising, biasanya menghasilkan gambar dengan kualitas lebih tinggi, namun dengan biaya inferensi yang lebih lambat. | |
| timesteps (`list[int]`, *opsional*) : Timesteps kustom untuk digunakan dalam proses denoising dengan scheduler yang mendukung argumen `timesteps` di metode `set_timesteps` mereka. Jika tidak didefinisikan, perilaku default saat `num_inference_steps` diteruskan akan digunakan. Harus dalam urutan menurun. | |
| guidance_scale (`float`, *opsional*, default 7.0) : Skala panduan seperti yang didefinisikan dalam [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` didefinisikan sebagai `w` dari persamaan 2. pada [Imagen Paper](https://huggingface.co/papers/2205.11487). Skala panduan diaktifkan dengan mengatur `guidance_scale > 1`. Skala panduan yang lebih tinggi mendorong generasi gambar yang sangat terkait dengan `prompt` teks, biasanya dengan mengorbankan kualitas gambar yang lebih rendah. | |
| use_dynamic_cfg (`bool`, *opsional*, defaultnya `False`) : Jika True, secara dinamis menyesuaikan skala panduan selama inferensi. | |
| num_videos_per_prompt (`int`, *opsional*, default 1) : Jumlah video yang akan dihasilkan per prompt. | |
| eta (`float`, *opsional*, default 0.0) : Bersesuaian dengan parameter eta (η) dari paper [DDIM](https://arxiv.org/abs/2010.02502). Hanya berlaku untuk [DDIMScheduler](/docs/diffusers/main/id/api/schedulers/ddim#diffusers.DDIMScheduler), dan diabaikan pada scheduler lainnya. | |
| generator (`torch.Generator` atau `list[torch.Generator]`, *opsional*) : Satu atau daftar [generator torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) untuk membuat proses generasi menjadi deterministik. | |
| latents (`torch.FloatTensor`, *opsional*) : Laten berisik yang telah dibuat sebelumnya, diambil dari distribusi Gaussian, untuk digunakan sebagai input untuk generasi gambar. Dapat digunakan untuk menyesuaikan generasi yang sama dengan prompt yang berbeda. Jika tidak disediakan, tensor laten akan dibuat dengan pengambilan sampel menggunakan `generator` acak yang diberikan. | |
| prompt_embeds (`torch.FloatTensor`, *opsional*) : Embedding teks yang sudah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input `prompt`. | |
| negative_prompt_embeds (`torch.FloatTensor`, *opsional*) : Embedding teks negatif yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input `negative_prompt`. | |
| output_type (`str`, *opsional*, defaultnya `"pil"`) : Format output dari gambar yang dihasilkan. Pilih antara [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` atau `np.array`. | |
| return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan `~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput` alih-alih tuple biasa. | |
| attention_kwargs (`dict`, *opsional*) : Kamus kwargs yang jika ditentukan akan diteruskan ke `AttentionProcessor` seperti yang didefinisikan di bawah `self.processor` dalam [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py). | |
| callback_on_step_end (`Callable`, *opsional*) : Fungsi yang dipanggil di akhir setiap langkah denoising selama inferensi. Fungsi ini dipanggil dengan argumen berikut: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. `callback_kwargs` akan berisi daftar semua tensor sesuai yang ditentukan oleh `callback_on_step_end_tensor_inputs`. | |
| callback_on_step_end_tensor_inputs (`list`, *opsional*) : Daftar input tensor untuk fungsi `callback_on_step_end`. Tensor yang ditentukan dalam daftar akan diteruskan sebagai argumen `callback_kwargs`. Anda hanya dapat menyertakan variabel yang tercantum dalam atribut `._callback_tensor_inputs` dari kelas pipeline Anda. | |
| max_sequence_length (`int`, defaultnya `226`) : Panjang maksimum urutan dalam prompt yang dienkod. Harus konsisten dengan `self.transformer.config.max_text_seq_length`, jika tidak dapat menyebabkan hasil yang buruk. | |
| **Mengembalikan:** [CogVideoXPipelineOutput](/docs/diffusers/main/id/api/pipelines/cogvideox#diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput) atau `tuple` | |
| [CogVideoXPipelineOutput](/docs/diffusers/main/id/api/pipelines/cogvideox#diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput) jika `return_dict` bernilai True, selain itu berupa `tuple`. Saat mengembalikan tuple, elemen pertama adalah daftar berisi gambar yang dihasilkan. | |
| Fungsi yang dipanggil saat memanggil pipeline untuk generasi. | |
| Contoh: | |
| ```python | |
| >>> import torch | |
| >>> from diffusers import CogVideoXPipeline | |
| >>> from diffusers.utils import export_to_video | |
| >>> # Models: "THUDM/CogVideoX-2b" or "THUDM/CogVideoX-5b" | |
| >>> pipe = CogVideoXPipeline.from_pretrained("THUDM/CogVideoX-2b", torch_dtype=torch.float16).to("cuda") | |
| >>> prompt = ( | |
| ... "A panda, dressed in a small, red jacket and a tiny hat, sits on a wooden stool in a serene bamboo forest. " | |
| ... "The panda's fluffy paws strum a miniature acoustic guitar, producing soft, melodic tunes. Nearby, a few other " | |
| ... "pandas gather, watching curiously and some clapping in rhythm. Sunlight filters through the tall bamboo, " | |
| ... "casting a gentle glow on the scene. The panda's face is expressive, showing concentration and joy as it plays. " | |
| ... "The background includes a small, flowing stream and vibrant green foliage, enhancing the peaceful and magical " | |
| ... "atmosphere of this unique musical performance." | |
| ... ) | |
| >>> video = pipe(prompt=prompt, guidance_scale=6, num_inference_steps=50).frames[0] | |
| >>> export_to_video(video, "output.mp4", fps=8) | |
| ``` | |
| #### encode_prompt[[diffusers.CogVideoXPipeline.encode_prompt]] | |
| ```python | |
| encode_prompt(prompt: str | list[str], negative_prompt: str | list[str] | None = None, do_classifier_free_guidance: bool = True, num_videos_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, max_sequence_length: int = 226, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox.py#L244) | |
| **Parameter:** | |
| prompt (`str` atau `list[str]`, *opsional*) : prompt yang akan dienkod | |
| negative_prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt yang tidak akan memandu generasi gambar. Jika tidak didefinisikan, Anda harus meneruskan `negative_prompt_embeds` sebagai gantinya. Diabaikan saat tidak menggunakan guidance (yaitu, diabaikan jika `guidance_scale` kurang dari `1`). | |
| do_classifier_free_guidance (`bool`, *opsional*, defaultnya `True`) : Apakah akan menggunakan classifier free guidance atau tidak. | |
| num_videos_per_prompt (`int`, *opsional*, default 1) : Jumlah video yang harus dihasilkan per prompt. perangkat torch untuk menempatkan embedding yang dihasilkan | |
| prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks yang sudah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input `prompt`. | |
| negative_prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks negatif yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input `negative_prompt`. | |
| device : (`torch.device`, *opsional*): perangkat torch | |
| dtype : (`torch.dtype`, *opsional*): torch dtype | |
| Mengkodekan prompt menjadi hidden states dari text encoder. | |
| #### fuse_qkv_projections[[diffusers.CogVideoXPipeline.fuse_qkv_projections]] | |
| ```python | |
| fuse_qkv_projections() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox.py#L428) | |
| Mengaktifkan proyeksi QKV yang digabungkan. | |
| #### unfuse_qkv_projections[[diffusers.CogVideoXPipeline.unfuse_qkv_projections]] | |
| ```python | |
| unfuse_qkv_projections() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox.py#L433) | |
| Nonaktifkan fusi proyeksi QKV jika diaktifkan. | |
| ## CogVideoXImageToVideoPipeline[[diffusers.CogVideoXImageToVideoPipeline]] | |
| #### diffusers.CogVideoXImageToVideoPipeline[[diffusers.CogVideoXImageToVideoPipeline]] | |
| ```python | |
| diffusers.CogVideoXImageToVideoPipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, vae: AutoencoderKLCogVideoX, transformer: CogVideoXTransformer3DModel, scheduler: diffusers.schedulers.scheduling_ddim_cogvideox.CogVideoXDDIMScheduler | diffusers.schedulers.scheduling_dpm_cogvideox.CogVideoXDPMScheduler) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py#L160) | |
| **Parameter:** | |
| vae ([AutoencoderKL](/docs/diffusers/main/id/api/models/autoencoderkl#diffusers.AutoencoderKL)) : Model Variational Auto-Encoder (VAE) untuk mengodekan dan mendekodekan video ke dan dari representasi laten. | |
| text_encoder (`T5EncoderModel`) : Pengkode teks beku. CogVideoX menggunakan [T5](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5EncoderModel); khususnya varian [t5-v1_1-xxl](https://huggingface.co/PixArt-alpha/PixArt-alpha/tree/main/t5-v1_1-xxl). | |
| tokenizer (`T5Tokenizer`) : Tokenizer dari kelas [T5Tokenizer](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5Tokenizer). | |
| transformer ([CogVideoXTransformer3DModel](/docs/diffusers/main/id/api/models/cogvideox_transformer3d#diffusers.CogVideoXTransformer3DModel)) : `CogVideoXTransformer3DModel` yang dikondisikan teks untuk mendenoise latens video yang telah dikodekan. | |
| scheduler ([SchedulerMixin](/docs/diffusers/main/id/api/schedulers/overview#diffusers.SchedulerMixin)) : Penjadwal yang digunakan bersama `transformer` untuk menghilangkan noise dari latens video yang telah dikodekan. | |
| Pipeline untuk generasi gambar-ke-video menggunakan CogVideoX. | |
| Model ini mewarisi dari [DiffusionPipeline](/docs/diffusers/main/id/api/pipelines/overview#diffusers.DiffusionPipeline). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua pipeline (seperti mengunduh atau menyimpan, menjalankan pada perangkat tertentu, dll.) | |
| #### __call__[[diffusers.CogVideoXImageToVideoPipeline.__call__]] | |
| ```python | |
| __call__(image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], prompt: str | list[str] | None = None, negative_prompt: str | list[str] | None = None, height: int | None = None, width: int | None = None, num_frames: int = 49, num_inference_steps: int = 50, timesteps: list[int] | None = None, guidance_scale: float = 6, use_dynamic_cfg: bool = False, num_videos_per_prompt: int = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.FloatTensor] = None, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = None, output_type: str = 'pil', return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], max_sequence_length: int = 226) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py#L598) | |
| **Parameter:** | |
| image (`PipelineImageInput`) : Gambar input untuk mengondisikan generasi. Harus berupa gambar, daftar gambar, atau `torch.Tensor`. | |
| prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt untuk mengarahkan generasi gambar. Jika tidak didefinisikan, Anda harus melewatkan `prompt_embeds` sebagai gantinya. | |
| negative_prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt yang tidak akan memandu generasi gambar. Jika tidak didefinisikan, Anda harus meneruskan `negative_prompt_embeds` sebagai gantinya. Diabaikan saat tidak menggunakan guidance (yaitu, diabaikan jika `guidance_scale` kurang dari `1`). | |
| height (`int`, *opsional*, defaultnya self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Tinggi gambar yang dihasilkan dalam piksel. Ini diatur ke 480 secara default untuk hasil terbaik. | |
| width (`int`, *opsional*, defaultnya self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Lebar gambar yang dihasilkan dalam piksel. Ini diatur ke 720 secara default untuk hasil terbaik. | |
| num_frames (`int`, defaultnya `48`) : Jumlah frame yang akan dihasilkan. Harus habis dibagi oleh self.vae_scale_factor_temporal. Video yang dihasilkan akan berisi 1 frame ekstra karena CogVideoX dikondisikan dengan (num_seconds * fps + 1) frame, di mana num_seconds adalah 6 dan fps adalah 8. Namun, karena video dapat disimpan pada fps apa pun, satu-satunya kondisi yang perlu dipenuhi adalah keterbagian yang disebutkan di atas. | |
| num_inference_steps (`int`, *opsional*, defaultnya 50) : Jumlah langkah denoising. Semakin banyak langkah denoising, biasanya menghasilkan gambar dengan kualitas lebih tinggi, namun dengan biaya inferensi yang lebih lambat. | |
| timesteps (`list[int]`, *opsional*) : Timesteps kustom untuk digunakan dalam proses denoising dengan scheduler yang mendukung argumen `timesteps` di metode `set_timesteps` mereka. Jika tidak didefinisikan, perilaku default saat `num_inference_steps` diteruskan akan digunakan. Harus dalam urutan menurun. | |
| guidance_scale (`float`, *opsional*, default 7.0) : Skala panduan seperti yang didefinisikan dalam [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` didefinisikan sebagai `w` dari persamaan 2. pada [Imagen Paper](https://huggingface.co/papers/2205.11487). Skala panduan diaktifkan dengan mengatur `guidance_scale > 1`. Skala panduan yang lebih tinggi mendorong generasi gambar yang sangat terkait dengan `prompt` teks, biasanya dengan mengorbankan kualitas gambar yang lebih rendah. | |
| use_dynamic_cfg (`bool`, *opsional*, defaultnya `False`) : Jika True, secara dinamis menyesuaikan skala panduan selama inferensi. | |
| num_videos_per_prompt (`int`, *opsional*, default 1) : Jumlah video yang akan dihasilkan per prompt. | |
| eta (`float`, *opsional*, default 0.0) : Bersesuaian dengan parameter eta (η) dari paper [DDIM](https://arxiv.org/abs/2010.02502). Hanya berlaku untuk [DDIMScheduler](/docs/diffusers/main/id/api/schedulers/ddim#diffusers.DDIMScheduler), dan diabaikan pada scheduler lainnya. | |
| generator (`torch.Generator` atau `list[torch.Generator]`, *opsional*) : Satu atau daftar [generator torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) untuk membuat proses generasi menjadi deterministik. | |
| latents (`torch.FloatTensor`, *opsional*) : Laten berisik yang telah dibuat sebelumnya, diambil dari distribusi Gaussian, untuk digunakan sebagai input untuk generasi gambar. Dapat digunakan untuk menyesuaikan generasi yang sama dengan prompt yang berbeda. Jika tidak disediakan, tensor laten akan dibuat dengan pengambilan sampel menggunakan `generator` acak yang diberikan. | |
| prompt_embeds (`torch.FloatTensor`, *opsional*) : Embedding teks yang sudah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input `prompt`. | |
| negative_prompt_embeds (`torch.FloatTensor`, *opsional*) : Embedding teks negatif yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input `negative_prompt`. | |
| output_type (`str`, *opsional*, defaultnya `"pil"`) : Format output dari gambar yang dihasilkan. Pilih antara [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` atau `np.array`. | |
| return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan `~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput` alih-alih tuple biasa. | |
| attention_kwargs (`dict`, *opsional*) : Kamus kwargs yang jika ditentukan akan diteruskan ke `AttentionProcessor` seperti yang didefinisikan di bawah `self.processor` dalam [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py). | |
| callback_on_step_end (`Callable`, *opsional*) : Fungsi yang dipanggil di akhir setiap langkah denoising selama inferensi. Fungsi ini dipanggil dengan argumen berikut: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. `callback_kwargs` akan berisi daftar semua tensor sesuai yang ditentukan oleh `callback_on_step_end_tensor_inputs`. | |
| callback_on_step_end_tensor_inputs (`list`, *opsional*) : Daftar input tensor untuk fungsi `callback_on_step_end`. Tensor yang ditentukan dalam daftar akan diteruskan sebagai argumen `callback_kwargs`. Anda hanya dapat menyertakan variabel yang tercantum dalam atribut `._callback_tensor_inputs` dari kelas pipeline Anda. | |
| max_sequence_length (`int`, defaultnya `226`) : Panjang maksimum urutan dalam prompt yang dienkod. Harus konsisten dengan `self.transformer.config.max_text_seq_length`, jika tidak dapat menyebabkan hasil yang buruk. | |
| **Mengembalikan:** [CogVideoXPipelineOutput](/docs/diffusers/main/id/api/pipelines/cogvideox#diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput) atau `tuple` | |
| [CogVideoXPipelineOutput](/docs/diffusers/main/id/api/pipelines/cogvideox#diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput) jika `return_dict` bernilai True, selain itu berupa `tuple`. Saat mengembalikan tuple, elemen pertama adalah daftar berisi gambar yang dihasilkan. | |
| Fungsi yang dipanggil saat memanggil pipeline untuk generasi. | |
| Contoh: | |
| ```py | |
| >>> import torch | |
| >>> from diffusers import CogVideoXImageToVideoPipeline | |
| >>> from diffusers.utils import export_to_video, load_image | |
| >>> pipe = CogVideoXImageToVideoPipeline.from_pretrained("THUDM/CogVideoX-5b-I2V", torch_dtype=torch.bfloat16) | |
| >>> pipe.to("cuda") | |
| >>> prompt = "An astronaut hatching from an egg, on the surface of the moon, the darkness and depth of space realised in the background. High quality, ultrarealistic detail and breath-taking movie-like camera shot." | |
| >>> image = load_image( | |
| ... "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/astronaut.jpg" | |
| ... ) | |
| >>> video = pipe(image, prompt, use_dynamic_cfg=True) | |
| >>> export_to_video(video.frames[0], "output.mp4", fps=8) | |
| ``` | |
| #### encode_prompt[[diffusers.CogVideoXImageToVideoPipeline.encode_prompt]] | |
| ```python | |
| encode_prompt(prompt: str | list[str], negative_prompt: str | list[str] | None = None, do_classifier_free_guidance: bool = True, num_videos_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, max_sequence_length: int = 226, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py#L263) | |
| **Parameter:** | |
| prompt (`str` atau `list[str]`, *opsional*) : prompt yang akan dienkod | |
| negative_prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt yang tidak akan memandu generasi gambar. Jika tidak didefinisikan, Anda harus meneruskan `negative_prompt_embeds` sebagai gantinya. Diabaikan saat tidak menggunakan guidance (yaitu, diabaikan jika `guidance_scale` kurang dari `1`). | |
| do_classifier_free_guidance (`bool`, *opsional*, defaultnya `True`) : Apakah akan menggunakan classifier free guidance atau tidak. | |
| num_videos_per_prompt (`int`, *opsional*, default 1) : Jumlah video yang harus dihasilkan per prompt. perangkat torch untuk menempatkan embedding yang dihasilkan | |
| prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks yang sudah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input `prompt`. | |
| negative_prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks negatif yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input `negative_prompt`. | |
| device : (`torch.device`, *opsional*): perangkat torch | |
| dtype : (`torch.dtype`, *opsional*): torch dtype | |
| Mengkodekan prompt menjadi hidden states dari text encoder. | |
| #### fuse_qkv_projections[[diffusers.CogVideoXImageToVideoPipeline.fuse_qkv_projections]] | |
| ```python | |
| fuse_qkv_projections() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py#L519) | |
| Mengaktifkan proyeksi QKV yang digabungkan. | |
| #### unfuse_qkv_projections[[diffusers.CogVideoXImageToVideoPipeline.unfuse_qkv_projections]] | |
| ```python | |
| unfuse_qkv_projections() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_image2video.py#L525) | |
| Nonaktifkan fusi proyeksi QKV jika diaktifkan. | |
| ## CogVideoXVideoToVideoPipeline[[diffusers.CogVideoXVideoToVideoPipeline]] | |
| #### diffusers.CogVideoXVideoToVideoPipeline[[diffusers.CogVideoXVideoToVideoPipeline]] | |
| ```python | |
| diffusers.CogVideoXVideoToVideoPipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, vae: AutoencoderKLCogVideoX, transformer: CogVideoXTransformer3DModel, scheduler: diffusers.schedulers.scheduling_ddim_cogvideox.CogVideoXDDIMScheduler | diffusers.schedulers.scheduling_dpm_cogvideox.CogVideoXDPMScheduler) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py#L169) | |
| **Parameter:** | |
| vae ([AutoencoderKL](/docs/diffusers/main/id/api/models/autoencoderkl#diffusers.AutoencoderKL)) : Model Variational Auto-Encoder (VAE) untuk mengodekan dan mendekodekan video ke dan dari representasi laten. | |
| text_encoder (`T5EncoderModel`) : Pengkode teks beku. CogVideoX menggunakan [T5](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5EncoderModel); khususnya varian [t5-v1_1-xxl](https://huggingface.co/PixArt-alpha/PixArt-alpha/tree/main/t5-v1_1-xxl). | |
| tokenizer (`T5Tokenizer`) : Tokenizer dari kelas [T5Tokenizer](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5Tokenizer). | |
| transformer ([CogVideoXTransformer3DModel](/docs/diffusers/main/id/api/models/cogvideox_transformer3d#diffusers.CogVideoXTransformer3DModel)) : `CogVideoXTransformer3DModel` yang dikondisikan teks untuk mendenoise latens video yang telah dikodekan. | |
| scheduler ([SchedulerMixin](/docs/diffusers/main/id/api/schedulers/overview#diffusers.SchedulerMixin)) : Penjadwal yang digunakan bersama `transformer` untuk menghilangkan noise dari latens video yang telah dikodekan. | |
| Pipeline untuk generasi video-ke-video menggunakan CogVideoX. | |
| Model ini mewarisi dari [DiffusionPipeline](/docs/diffusers/main/id/api/pipelines/overview#diffusers.DiffusionPipeline). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua pipeline (seperti mengunduh atau menyimpan, menjalankan pada perangkat tertentu, dll.) | |
| #### __call__[[diffusers.CogVideoXVideoToVideoPipeline.__call__]] | |
| ```python | |
| __call__(video: list[PIL.Image.Image] = None, prompt: str | list[str] | None = None, negative_prompt: str | list[str] | None = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, timesteps: list[int] | None = None, strength: float = 0.8, guidance_scale: float = 6, use_dynamic_cfg: bool = False, num_videos_per_prompt: int = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.FloatTensor] = None, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = None, output_type: str = 'pil', return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], max_sequence_length: int = 226) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py#L575) | |
| **Parameter:** | |
| video (`list[PIL.Image.Image]`) : Video input untuk mengondisikan generasi. Harus berupa daftar gambar/frame dari video. | |
| prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt untuk mengarahkan generasi gambar. Jika tidak didefinisikan, Anda harus melewatkan `prompt_embeds` sebagai gantinya. | |
| negative_prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt yang tidak akan memandu generasi gambar. Jika tidak didefinisikan, Anda harus meneruskan `negative_prompt_embeds` sebagai gantinya. Diabaikan saat tidak menggunakan guidance (yaitu, diabaikan jika `guidance_scale` kurang dari `1`). | |
| height (`int`, *opsional*, defaultnya self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Tinggi gambar yang dihasilkan dalam piksel. Ini diatur ke 480 secara default untuk hasil terbaik. | |
| width (`int`, *opsional*, defaultnya self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Lebar gambar yang dihasilkan dalam piksel. Ini diatur ke 720 secara default untuk hasil terbaik. | |
| num_inference_steps (`int`, *opsional*, defaultnya 50) : Jumlah langkah denoising. Semakin banyak langkah denoising, biasanya menghasilkan gambar dengan kualitas lebih tinggi, namun dengan biaya inferensi yang lebih lambat. | |
| timesteps (`list[int]`, *opsional*) : Timesteps kustom untuk digunakan dalam proses denoising dengan scheduler yang mendukung argumen `timesteps` di metode `set_timesteps` mereka. Jika tidak didefinisikan, perilaku default saat `num_inference_steps` diteruskan akan digunakan. Harus dalam urutan menurun. | |
| strength (`float`, *opsional*, default 0.8) : Kekuatan yang lebih tinggi menghasilkan lebih banyak perbedaan antara video asli dan video yang dihasilkan. | |
| guidance_scale (`float`, *opsional*, default 7.0) : Skala panduan seperti yang didefinisikan dalam [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` didefinisikan sebagai `w` dari persamaan 2. pada [Imagen Paper](https://huggingface.co/papers/2205.11487). Skala panduan diaktifkan dengan mengatur `guidance_scale > 1`. Skala panduan yang lebih tinggi mendorong generasi gambar yang sangat terkait dengan `prompt` teks, biasanya dengan mengorbankan kualitas gambar yang lebih rendah. | |
| use_dynamic_cfg (`bool`, *opsional*, defaultnya `False`) : Jika True, secara dinamis menyesuaikan skala panduan selama inferensi. | |
| num_videos_per_prompt (`int`, *opsional*, default 1) : Jumlah video yang akan dihasilkan per prompt. | |
| eta (`float`, *opsional*, default 0.0) : Bersesuaian dengan parameter eta (η) dari paper [DDIM](https://arxiv.org/abs/2010.02502). Hanya berlaku untuk [DDIMScheduler](/docs/diffusers/main/id/api/schedulers/ddim#diffusers.DDIMScheduler), dan diabaikan pada scheduler lainnya. | |
| generator (`torch.Generator` atau `list[torch.Generator]`, *opsional*) : Satu atau daftar [generator torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) untuk membuat proses generasi menjadi deterministik. | |
| latents (`torch.FloatTensor`, *opsional*) : Laten berisik yang telah dibuat sebelumnya, diambil dari distribusi Gaussian, untuk digunakan sebagai input untuk generasi gambar. Dapat digunakan untuk menyesuaikan generasi yang sama dengan prompt yang berbeda. Jika tidak disediakan, tensor laten akan dibuat dengan pengambilan sampel menggunakan `generator` acak yang diberikan. | |
| prompt_embeds (`torch.FloatTensor`, *opsional*) : Embedding teks yang sudah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input `prompt`. | |
| negative_prompt_embeds (`torch.FloatTensor`, *opsional*) : Embedding teks negatif yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input `negative_prompt`. | |
| output_type (`str`, *opsional*, defaultnya `"pil"`) : Format output dari gambar yang dihasilkan. Pilih antara [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` atau `np.array`. | |
| return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan `~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput` alih-alih tuple biasa. | |
| attention_kwargs (`dict`, *opsional*) : Kamus kwargs yang jika ditentukan akan diteruskan ke `AttentionProcessor` seperti yang didefinisikan di bawah `self.processor` dalam [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py). | |
| callback_on_step_end (`Callable`, *opsional*) : Fungsi yang dipanggil di akhir setiap langkah denoising selama inferensi. Fungsi ini dipanggil dengan argumen berikut: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. `callback_kwargs` akan berisi daftar semua tensor sesuai yang ditentukan oleh `callback_on_step_end_tensor_inputs`. | |
| callback_on_step_end_tensor_inputs (`list`, *opsional*) : Daftar input tensor untuk fungsi `callback_on_step_end`. Tensor yang ditentukan dalam daftar akan diteruskan sebagai argumen `callback_kwargs`. Anda hanya dapat menyertakan variabel yang tercantum dalam atribut `._callback_tensor_inputs` dari kelas pipeline Anda. | |
| max_sequence_length (`int`, defaultnya `226`) : Panjang maksimum urutan dalam prompt yang dienkod. Harus konsisten dengan `self.transformer.config.max_text_seq_length`, jika tidak dapat menyebabkan hasil yang buruk. | |
| **Mengembalikan:** [CogVideoXPipelineOutput](/docs/diffusers/main/id/api/pipelines/cogvideox#diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput) atau `tuple` | |
| [CogVideoXPipelineOutput](/docs/diffusers/main/id/api/pipelines/cogvideox#diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput) jika `return_dict` bernilai True, selain itu berupa `tuple`. Saat mengembalikan tuple, elemen pertama adalah daftar berisi gambar yang dihasilkan. | |
| Fungsi yang dipanggil saat memanggil pipeline untuk generasi. | |
| Contoh: | |
| ```python | |
| >>> import torch | |
| >>> from diffusers import CogVideoXDPMScheduler, CogVideoXVideoToVideoPipeline | |
| >>> from diffusers.utils import export_to_video, load_video | |
| >>> # Models: "THUDM/CogVideoX-2b" or "THUDM/CogVideoX-5b" | |
| >>> pipe = CogVideoXVideoToVideoPipeline.from_pretrained("THUDM/CogVideoX-5b", torch_dtype=torch.bfloat16) | |
| >>> pipe.to("cuda") | |
| >>> pipe.scheduler = CogVideoXDPMScheduler.from_config(pipe.scheduler.config) | |
| >>> input_video = load_video( | |
| ... "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/hiker.mp4" | |
| ... ) | |
| >>> prompt = ( | |
| ... "An astronaut stands triumphantly at the peak of a towering mountain. Panorama of rugged peaks and " | |
| ... "valleys. Very futuristic vibe and animated aesthetic. Highlights of purple and golden colors in " | |
| ... "the scene. The sky is looks like an animated/cartoonish dream of galaxies, nebulae, stars, planets, " | |
| ... "moons, but the remainder of the scene is mostly realistic." | |
| ... ) | |
| >>> video = pipe( | |
| ... video=input_video, prompt=prompt, strength=0.8, guidance_scale=6, num_inference_steps=50 | |
| ... ).frames[0] | |
| >>> export_to_video(video, "output.mp4", fps=8) | |
| ``` | |
| #### encode_prompt[[diffusers.CogVideoXVideoToVideoPipeline.encode_prompt]] | |
| ```python | |
| encode_prompt(prompt: str | list[str], negative_prompt: str | list[str] | None = None, do_classifier_free_guidance: bool = True, num_videos_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, max_sequence_length: int = 226, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py#L269) | |
| **Parameter:** | |
| prompt (`str` atau `list[str]`, *opsional*) : prompt yang akan dienkod | |
| negative_prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt yang tidak akan memandu generasi gambar. Jika tidak didefinisikan, Anda harus meneruskan `negative_prompt_embeds` sebagai gantinya. Diabaikan saat tidak menggunakan guidance (yaitu, diabaikan jika `guidance_scale` kurang dari `1`). | |
| do_classifier_free_guidance (`bool`, *opsional*, defaultnya `True`) : Apakah akan menggunakan classifier free guidance atau tidak. | |
| num_videos_per_prompt (`int`, *opsional*, default 1) : Jumlah video yang harus dihasilkan per prompt. perangkat torch untuk menempatkan embedding yang dihasilkan | |
| prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks yang sudah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input `prompt`. | |
| negative_prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks negatif yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input `negative_prompt`. | |
| device : (`torch.device`, *opsional*): perangkat torch | |
| dtype : (`torch.dtype`, *opsional*): torch dtype | |
| Mengkodekan prompt menjadi hidden states dari text encoder. | |
| #### fuse_qkv_projections[[diffusers.CogVideoXVideoToVideoPipeline.fuse_qkv_projections]] | |
| ```python | |
| fuse_qkv_projections() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py#L496) | |
| Mengaktifkan proyeksi QKV yang digabungkan. | |
| #### unfuse_qkv_projections[[diffusers.CogVideoXVideoToVideoPipeline.unfuse_qkv_projections]] | |
| ```python | |
| unfuse_qkv_projections() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_video2video.py#L502) | |
| Nonaktifkan fusi proyeksi QKV jika diaktifkan. | |
| ## CogVideoXFunControlPipeline[[diffusers.CogVideoXFunControlPipeline]] | |
| #### diffusers.CogVideoXFunControlPipeline[[diffusers.CogVideoXFunControlPipeline]] | |
| ```python | |
| diffusers.CogVideoXFunControlPipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, vae: AutoencoderKLCogVideoX, transformer: CogVideoXTransformer3DModel, scheduler: KarrasDiffusionSchedulers) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py#L154) | |
| **Parameter:** | |
| vae ([AutoencoderKL](/docs/diffusers/main/id/api/models/autoencoderkl#diffusers.AutoencoderKL)) : Model Variational Auto-Encoder (VAE) untuk mengodekan dan mendekodekan video ke dan dari representasi laten. | |
| text_encoder (`T5EncoderModel`) : Pengkode teks beku. CogVideoX menggunakan [T5](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5EncoderModel); khususnya varian [t5-v1_1-xxl](https://huggingface.co/PixArt-alpha/PixArt-alpha/tree/main/t5-v1_1-xxl). | |
| tokenizer (`T5Tokenizer`) : Tokenizer dari kelas [T5Tokenizer](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5Tokenizer). | |
| transformer ([CogVideoXTransformer3DModel](/docs/diffusers/main/id/api/models/cogvideox_transformer3d#diffusers.CogVideoXTransformer3DModel)) : `CogVideoXTransformer3DModel` yang dikondisikan teks untuk mendenoise latens video yang telah dikodekan. | |
| scheduler ([SchedulerMixin](/docs/diffusers/main/id/api/schedulers/overview#diffusers.SchedulerMixin)) : Penjadwal yang digunakan bersama `transformer` untuk menghilangkan noise dari latens video yang telah dikodekan. | |
| Pipeline untuk generasi teks-ke-video terkendali menggunakan CogVideoX Fun. | |
| Model ini mewarisi dari [DiffusionPipeline](/docs/diffusers/main/id/api/pipelines/overview#diffusers.DiffusionPipeline). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua pipeline (seperti mengunduh atau menyimpan, menjalankan pada perangkat tertentu, dll.) | |
| #### __call__[[diffusers.CogVideoXFunControlPipeline.__call__]] | |
| ```python | |
| __call__(prompt: str | list[str] | None = None, negative_prompt: str | list[str] | None = None, control_video: list[PIL.Image.Image] | None = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, timesteps: list[int] | None = None, guidance_scale: float = 6, use_dynamic_cfg: bool = False, num_videos_per_prompt: int = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, control_video_latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, output_type: str = 'pil', return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], max_sequence_length: int = 226) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py#L551) | |
| **Parameter:** | |
| prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt untuk mengarahkan generasi gambar. Jika tidak didefinisikan, Anda harus melewatkan `prompt_embeds` sebagai gantinya. | |
| negative_prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt yang tidak akan memandu generasi gambar. Jika tidak didefinisikan, Anda harus meneruskan `negative_prompt_embeds` sebagai gantinya. Diabaikan saat tidak menggunakan guidance (yaitu, diabaikan jika `guidance_scale` kurang dari `1`). | |
| control_video (`list[PIL.Image.Image]`) : Video kontrol untuk mengondisikan generasi. Harus berupa daftar gambar/frame dari video. Jika tidak disediakan, `control_video_latents` harus disediakan. | |
| height (`int`, *opsional*, defaultnya self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Tinggi gambar yang dihasilkan dalam piksel. Ini diatur ke 480 secara default untuk hasil terbaik. | |
| width (`int`, *opsional*, defaultnya self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Lebar gambar yang dihasilkan dalam piksel. Ini diatur ke 720 secara default untuk hasil terbaik. | |
| num_inference_steps (`int`, *opsional*, defaultnya 50) : Jumlah langkah denoising. Semakin banyak langkah denoising, biasanya menghasilkan gambar dengan kualitas lebih tinggi, namun dengan biaya inferensi yang lebih lambat. | |
| timesteps (`list[int]`, *opsional*) : Timesteps kustom untuk digunakan dalam proses denoising dengan scheduler yang mendukung argumen `timesteps` di metode `set_timesteps` mereka. Jika tidak didefinisikan, perilaku default saat `num_inference_steps` diteruskan akan digunakan. Harus dalam urutan menurun. | |
| guidance_scale (`float`, *opsional*, default 6.0) : Skala panduan seperti yang didefinisikan dalam [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` didefinisikan sebagai `w` dari persamaan 2. pada [Imagen Paper](https://huggingface.co/papers/2205.11487). Skala panduan diaktifkan dengan mengatur `guidance_scale > 1`. Skala panduan yang lebih tinggi mendorong generasi gambar yang sangat terkait dengan `prompt` teks, biasanya dengan mengorbankan kualitas gambar yang lebih rendah. | |
| use_dynamic_cfg (`bool`, *opsional*, defaultnya `False`) : Jika True, secara dinamis menyesuaikan skala panduan selama inferensi. | |
| num_videos_per_prompt (`int`, *opsional*, default 1) : Jumlah video yang akan dihasilkan per prompt. | |
| eta (`float`, *opsional*, default 0.0) : Bersesuaian dengan parameter eta (η) dari paper [DDIM](https://arxiv.org/abs/2010.02502). Hanya berlaku untuk [DDIMScheduler](/docs/diffusers/main/id/api/schedulers/ddim#diffusers.DDIMScheduler), dan diabaikan pada scheduler lainnya. | |
| generator (`torch.Generator` atau `list[torch.Generator]`, *opsional*) : Satu atau daftar [generator torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) untuk membuat proses generasi menjadi deterministik. | |
| latents (`torch.Tensor`, *opsional*) : Laten berisik yang telah dibuat sebelumnya, diambil dari distribusi Gaussian, untuk digunakan sebagai input untuk generasi video. Dapat digunakan untuk menyesuaikan generasi yang sama dengan prompt yang berbeda. Jika tidak disediakan, tensor laten akan dibuat dengan pengambilan sampel menggunakan `generator` acak yang diberikan. | |
| control_video_latents (`torch.Tensor`, *opsional*) : Laten kontrol yang telah dibuat sebelumnya, diambil dari distribusi Gaussian, untuk digunakan sebagai input untuk generasi video terkendali. Jika tidak disediakan, `control_video` harus disediakan. | |
| prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks yang sudah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input `prompt`. | |
| negative_prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks negatif yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input `negative_prompt`. | |
| output_type (`str`, *opsional*, defaultnya `"pil"`) : Format output dari gambar yang dihasilkan. Pilih antara [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` atau `np.array`. | |
| return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan `~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput` alih-alih tuple biasa. | |
| attention_kwargs (`dict`, *opsional*) : Kamus kwargs yang jika ditentukan akan diteruskan ke `AttentionProcessor` seperti yang didefinisikan di bawah `self.processor` dalam [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py). | |
| callback_on_step_end (`Callable`, *opsional*) : Fungsi yang dipanggil di akhir setiap langkah denoising selama inferensi. Fungsi ini dipanggil dengan argumen berikut: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. `callback_kwargs` akan berisi daftar semua tensor sesuai yang ditentukan oleh `callback_on_step_end_tensor_inputs`. | |
| callback_on_step_end_tensor_inputs (`list`, *opsional*) : Daftar input tensor untuk fungsi `callback_on_step_end`. Tensor yang ditentukan dalam daftar akan diteruskan sebagai argumen `callback_kwargs`. Anda hanya dapat menyertakan variabel yang tercantum dalam atribut `._callback_tensor_inputs` dari kelas pipeline Anda. | |
| max_sequence_length (`int`, defaultnya `226`) : Panjang maksimum urutan dalam prompt yang dienkod. Harus konsisten dengan `self.transformer.config.max_text_seq_length`, jika tidak dapat menyebabkan hasil yang buruk. | |
| **Mengembalikan:** [CogVideoXPipelineOutput](/docs/diffusers/main/id/api/pipelines/cogvideox#diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput) atau `tuple` | |
| [CogVideoXPipelineOutput](/docs/diffusers/main/id/api/pipelines/cogvideox#diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput) jika `return_dict` bernilai True, selain itu berupa `tuple`. Saat mengembalikan tuple, elemen pertama adalah daftar berisi gambar yang dihasilkan. | |
| Fungsi yang dipanggil saat memanggil pipeline untuk generasi. | |
| Contoh: | |
| ```python | |
| >>> import torch | |
| >>> from diffusers import CogVideoXFunControlPipeline, DDIMScheduler | |
| >>> from diffusers.utils import export_to_video, load_video | |
| >>> pipe = CogVideoXFunControlPipeline.from_pretrained( | |
| ... "alibaba-pai/CogVideoX-Fun-V1.1-5b-Pose", torch_dtype=torch.bfloat16 | |
| ... ) | |
| >>> pipe.scheduler = DDIMScheduler.from_config(pipe.scheduler.config) | |
| >>> pipe.to("cuda") | |
| >>> control_video = load_video( | |
| ... "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/hiker.mp4" | |
| ... ) | |
| >>> prompt = ( | |
| ... "An astronaut stands triumphantly at the peak of a towering mountain. Panorama of rugged peaks and " | |
| ... "valleys. Very futuristic vibe and animated aesthetic. Highlights of purple and golden colors in " | |
| ... "the scene. The sky is looks like an animated/cartoonish dream of galaxies, nebulae, stars, planets, " | |
| ... "moons, but the remainder of the scene is mostly realistic." | |
| ... ) | |
| >>> video = pipe(prompt=prompt, control_video=control_video).frames[0] | |
| >>> export_to_video(video, "output.mp4", fps=8) | |
| ``` | |
| #### encode_prompt[[diffusers.CogVideoXFunControlPipeline.encode_prompt]] | |
| ```python | |
| encode_prompt(prompt: str | list[str], negative_prompt: str | list[str] | None = None, do_classifier_free_guidance: bool = True, num_videos_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, max_sequence_length: int = 226, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py#L253) | |
| **Parameter:** | |
| prompt (`str` atau `list[str]`, *opsional*) : prompt yang akan dienkod | |
| negative_prompt (`str` atau `list[str]`, *opsional*) : Prompt atau prompt-prompt yang tidak akan memandu generasi gambar. Jika tidak didefinisikan, Anda harus meneruskan `negative_prompt_embeds` sebagai gantinya. Diabaikan saat tidak menggunakan guidance (yaitu, diabaikan jika `guidance_scale` kurang dari `1`). | |
| do_classifier_free_guidance (`bool`, *opsional*, defaultnya `True`) : Apakah akan menggunakan classifier free guidance atau tidak. | |
| num_videos_per_prompt (`int`, *opsional*, default 1) : Jumlah video yang harus dihasilkan per prompt. perangkat torch untuk menempatkan embedding yang dihasilkan | |
| prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks yang sudah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, embedding teks akan dihasilkan dari argumen input `prompt`. | |
| negative_prompt_embeds (`torch.Tensor`, *opsional*) : Embedding teks negatif yang telah dibuat sebelumnya. Dapat digunakan untuk dengan mudah menyesuaikan input teks, *misalnya* penimbangan prompt. Jika tidak disediakan, negative_prompt_embeds akan dibuat dari argumen input `negative_prompt`. | |
| device : (`torch.device`, *opsional*): perangkat torch | |
| dtype : (`torch.dtype`, *opsional*): torch dtype | |
| Mengkodekan prompt menjadi hidden states dari text encoder. | |
| #### fuse_qkv_projections[[diffusers.CogVideoXFunControlPipeline.fuse_qkv_projections]] | |
| ```python | |
| fuse_qkv_projections() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py#L473) | |
| Mengaktifkan proyeksi QKV yang digabungkan. | |
| #### unfuse_qkv_projections[[diffusers.CogVideoXFunControlPipeline.unfuse_qkv_projections]] | |
| ```python | |
| unfuse_qkv_projections() | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_cogvideox_fun_control.py#L478) | |
| Nonaktifkan fusi proyeksi QKV jika diaktifkan. | |
| ## CogVideoXPipelineOutput[[diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput]] | |
| #### diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput[[diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput]] | |
| ```python | |
| diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput(frames: Tensor) | |
| ``` | |
| [Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/cogvideo/pipeline_output.py#L9) | |
| **Parameter:** | |
| frames (`torch.Tensor`, `np.ndarray`, atau list[list[PIL.Image.Image]]) : daftar output video - Dapat berupa daftar bersarang dengan panjang `batch_size,` di mana setiap sub-daftar berisi urutan gambar PIL yang telah didenoise dengan panjang `num_frames.` Dapat juga berupa array NumPy atau tensor Torch dengan bentuk `(batch_size, num_frames, channels, height, width)`. | |
| Kelas output untuk pipeline CogVideo. | |
Xet Storage Details
- Size:
- 61 kB
- Xet hash:
- 05ce87df6a09f91771e888ad5cedee9ac33b35fa94bbe1154c06d31faad7acd1
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.