Buckets:

mishig's picture
|
download
raw
84.2 kB

Лицензия Apache License, Version 2.0 («Лицензия»);

вы можете использовать этот файл только в соответствии с Лицензией.

Вы можете получить копию Лицензии по адресу

http://www.apache.org/licenses/LICENSE-2.0

Если это не требуется применимым законодательством или не оговорено письменно, программное

распространяется по Лицензии на условиях «КАК ЕСТЬ»,

БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ, прямо указанных или подразумеваемых.

См. Лицензию для получения конкретных условий, регулирующих разрешения и

ограничениями, предусмотренными Лицензией.

-->

CogVideoX

CogVideoX — это большая диффузионная трансформерная модель, доступная в вариантах с 2B и 5B параметрами, предназначенная для генерации более длинных и последовательных видео по текстовому описанию. Модель использует 3D-каузальный вариационный автоэнкодер для более эффективной обработки видеоданных за счет сокращения длины последовательности (и связанных с ней вычислительных затрат при обучении) и предотвращения мерцания в генерируемых видео. «Экспертный» трансформер с адаптивным LayerNorm улучшает согласование текста и видео, а 3D-полное внимание помогает точно передавать движение и время в генерируемых видео.

Все исходные контрольные точки CogVideoX можно найти в коллекции CogVideoX.

Нажмите на модели CogVideoX в правой боковой панели, чтобы увидеть больше примеров других задач генерации видео.

Пример ниже демонстрирует, как сгенерировать видео, оптимизированное по памяти или скорости инференса.

См. руководство Сокращение использования памяти для получения подробной информации о различных техниках экономии памяти.

Квантованная модель CogVideoX 5B, приведённая ниже, требует ~16 ГБ видеопамяти.

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)

Компиляция выполняется медленно при первом запуске, но последующие вызовы пайплайна становятся быстрее.

Среднее время инференса с использованием torch.compile на 80GB A100 составляет 76,27 секунды по сравнению с 96,89 секундами для нескомпилированной модели.

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)

Примечания

  • CogVideoX поддерживает LoRA с помощью load_lora_weights().

    Показать пример кода

    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)
    
  • Чекпоинты для генерации видео из текста (T2V) работают лучше всего при разрешении 1360x768, так как именно на этом разрешении они были предварительно обучены.

  • Чекпоинты для генерации видео по изображению (I2V) поддерживают несколько разрешений. Ширина может варьироваться от 768 до 1360, но высота должна быть равна 758. И высота, и ширина должны делиться на 16.

  • Обе контрольные точки T2V и I2V лучше всего работают с 81 и 161 кадрами. Рекомендуется экспортировать сгенерированное видео со скоростью 16 fps.

  • См. таблицу ниже, чтобы увидеть использование памяти при включении различных методов экономии памяти.

    метод использование памяти (включено) использование памяти (отключено)
    enable_model_cpu_offload 19 ГБ 33 ГБ
    enable_sequential_cpu_offload <4 ГБ ~33 ГБ (очень низкая скорость вывода)
    enable_tiling 11 ГБ (с enable_model_cpu_offload) ---

CogVideoXPipeline[[diffusers.CogVideoXPipeline]]

diffusers.CogVideoXPipeline[[diffusers.CogVideoXPipeline]]

diffusers.CogVideoXPipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, vae: AutoencoderKLCogVideoX, transformer: CogVideoXTransformer3DModel, scheduler: diffusers.schedulers.scheduling_ddim_cogvideox.CogVideoXDDIMScheduler | diffusers.schedulers.scheduling_dpm_cogvideox.CogVideoXDPMScheduler)

Источник

Параметры:

vae (AutoencoderKL) : Модель вариационного автоэнкодера (VAE) для кодирования и декодирования видео в латентные представления и обратно.

text_encoder (T5EncoderModel) : Замороженный текстовый энкодер. CogVideoX использует T5; конкретно вариант t5-v1_1-xxl.

tokenizer (T5Tokenizer) : Токенизатор класса T5Tokenizer.

transformer (CogVideoXTransformer3DModel) : модель CogVideoXTransformer3DModel с текстовым условием для удаления шума из закодированных латентных представлений видео.

scheduler (SchedulerMixin) : планировщик, используемый в сочетании с transformer для удаления шума из закодированных латентных представлений видео.

Pipeline для генерации видео из текста с использованием CogVideoX.

Эта модель наследуется от DiffusionPipeline. См. документацию родительского класса для общих методов, которые библиотека реализует для всех пайплайнов (например, загрузка или сохранение, запуск на конкретном устройстве и т. д.)

call[[diffusers.CogVideoXPipeline.call]]

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

Источник

Параметры:

prompt (str или list[str], необязательный) : Промпт или промпты для управления генерацией изображения. Если не задан, необходимо передать prompt_embeds вместо него.

negative_prompt (str или list[str], необязательный) : Промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, необходимо передать negative_prompt_embeds. Игнорируется, если не используется направляющее влияние (то есть игнорируется, если guidance_scale меньше 1).

height (int, optional, по умолчанию self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Высота генерируемого изображения в пикселях. По умолчанию установлено значение 480 для достижения наилучших результатов.

width (int, optional, по умолчанию self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Ширина генерируемого изображения в пикселях. По умолчанию установлено значение 720 для достижения наилучших результатов.

num_frames (int, по умолчанию 48) : Количество кадров для генерации. Должно делиться на self.vae_scale_factor_temporal. Сгенерированное видео будет содержать на 1 кадр больше, так как CogVideoX использует условие (num_seconds * fps + 1) кадров, где num_seconds равно 6, а fps — 8. Однако, поскольку видео можно сохранить с любой частотой кадров, необходимо выполнить только условие делимости, указанное выше.

num_inference_steps (int, optional, по умолчанию 50) : Количество шагов денойзинга. Как правило, большее число шагов денойзинга приводит к изображению более высокого качества, но за счёт более медленного вывода.

timesteps (list[int], optional) : Пользовательские шаги для процесса денойзинга с планировщиками, поддерживающими аргумент timesteps в их методе set_timesteps. Если не определено, будет использоваться поведение по умолчанию при передаче num_inference_steps. Должны быть в порядке убывания.

guidance_scale (float, optional, по умолчанию 7.0) : Масштаб руководства, определённый в Classifier-Free Diffusion Guidance. guidance_scale определяется как w из уравнения 2 в Imagen Paper. Масштаб руководства активируется при установке guidance_scale > 1. Более высокий масштаб руководства способствует генерации изображений, тесно связанных с текстовым prompt, обычно за счёт снижения качества изображения.

use_dynamic_cfg (bool, необязательный, по умолчанию False) : Если True, динамически корректирует масштаб руководства (guidance scale) во время вывода.

num_videos_per_prompt (int, необязательный, по умолчанию 1) : Количество видео, генерируемых на один промпт.

eta (float, необязательный, по умолчанию 0.0) : Соответствует параметру eta (η) из статьи DDIM. Применяется только к DDIMScheduler и игнорируется другими планировщиками.

generator (torch.Generator или list[torch.Generator], необязательный) : Один или список генераторов torch для обеспечения детерминированности генерации.

latents (torch.FloatTensor, необязательный) : Предварительно сгенерированные шумовые латенты, выбранные из гауссова распределения, которые используются в качестве входных данных для генерации изображений. Позволяет корректировать одну и ту же генерацию с помощью разных промптов. Если не заданы, тензор латентов будет сгенерирован путём выборки с использованием переданного случайного generator.

prompt_embeds (torch.FloatTensor, необязательный) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, текстовые эмбеддинги будут сгенерированы из входного аргумента prompt.

negative_prompt_embeds (torch.FloatTensor, необязательный) : Предварительно сгенерированные отрицательные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, negative_prompt_embeds будут сгенерированы из входного аргумента negative_prompt.

output_type (str, необязательный, по умолчанию "pil") : Формат вывода для генерируемого изображения. Выберите между PIL: PIL.Image.Image или np.array.

return_dict (bool, необязательный, по умолчанию True) : Возвращать ли ~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput вместо обычного кортежа.

attention_kwargs (dict, необязательный) : Словарь kwargs, который при указании передается в AttentionProcessor, определенный в self.processor в diffusers.models.attention_processor.

callback_on_step_end (Callable, необязательный) : функция, вызываемая в конце каждого шага денойзинга во время инференса. Функция вызывается со следующими аргументами: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs будет содержать список всех тензоров, как указано в callback_on_step_end_tensor_inputs.

callback_on_step_end_tensor_inputs (list, optional) : Список тензорных входных данных для функции callback_on_step_end. Тензоры, указанные в списке, будут переданы в качестве аргумента callback_kwargs. Вы сможете включать только переменные, перечисленные в атрибуте ._callback_tensor_inputs вашего класса pipeline.

max_sequence_length (int, по умолчанию 226) : Максимальная длина последовательности в закодированном промпте. Должна соответствовать self.transformer.config.max_text_seq_length, иначе это может привести к некачественным результатам.

Возвращает: CogVideoXPipelineOutput или tuple

CogVideoXPipelineOutput, если return_dict равно True, иначе tuple. При возврате кортежа первым элементом является список с сгенерированными изображениями.

Функция, вызываемая при обращении к конвейеру для генерации.

Примеры:

>>> 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]]

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)

Источник

Параметры:

prompt (str или list[str], необязательный) : промпт для кодирования

negative_prompt (str или list[str], необязательный) : Промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, необходимо передать negative_prompt_embeds. Игнорируется, если не используется направляющее влияние (то есть игнорируется, если guidance_scale меньше 1).

do_classifier_free_guidance (bool, необязательный, по умолчанию True) : Использовать ли classifier free guidance.

num_videos_per_prompt (int, optional, по умолчанию 1) : Количество видео, которые должны быть сгенерированы для каждого промпта. Устройство torch, на котором должны размещаться результирующие эмбеддинги

prompt_embeds (torch.Tensor, необязательный) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, текстовые эмбеддинги будут сгенерированы из входного аргумента prompt.

negative_prompt_embeds (torch.Tensor, необязательный) : Предварительно сгенерированные отрицательные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, negative_prompt_embeds будут сгенерированы из входного аргумента negative_prompt.

device : (torch.device, необязательный): устройство torch

dtype : (torch.dtype, необязательный): torch dtype

Кодирует промпт в скрытые состояния текстового энкодера.

fuse_qkv_projections[[diffusers.CogVideoXPipeline.fuse_qkv_projections]]

fuse_qkv_projections()

Источник

Включает объединённые проекции QKV.

unfuse_qkv_projections[[diffusers.CogVideoXPipeline.unfuse_qkv_projections]]

unfuse_qkv_projections()

Источник

Отключите слияние QKV-проекций, если оно включено.

CogVideoXImageToVideoPipeline[[diffusers.CogVideoXImageToVideoPipeline]]

diffusers.CogVideoXImageToVideoPipeline[[diffusers.CogVideoXImageToVideoPipeline]]

diffusers.CogVideoXImageToVideoPipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, vae: AutoencoderKLCogVideoX, transformer: CogVideoXTransformer3DModel, scheduler: diffusers.schedulers.scheduling_ddim_cogvideox.CogVideoXDDIMScheduler | diffusers.schedulers.scheduling_dpm_cogvideox.CogVideoXDPMScheduler)

Источник

Параметры:

vae (AutoencoderKL) : Модель вариационного автоэнкодера (VAE) для кодирования и декодирования видео в латентные представления и обратно.

text_encoder (T5EncoderModel) : Замороженный текстовый энкодер. CogVideoX использует T5; конкретно вариант t5-v1_1-xxl.

tokenizer (T5Tokenizer) : Токенизатор класса T5Tokenizer.

transformer (CogVideoXTransformer3DModel) : модель CogVideoXTransformer3DModel с текстовым условием для удаления шума из закодированных латентных представлений видео.

scheduler (SchedulerMixin) : планировщик, используемый в сочетании с transformer для удаления шума из закодированных латентных представлений видео.

Pipeline для генерации видео из изображений с использованием CogVideoX.

Эта модель наследуется от DiffusionPipeline. См. документацию родительского класса для общих методов, которые библиотека реализует для всех пайплайнов (например, загрузка или сохранение, запуск на конкретном устройстве и т. д.)

call[[diffusers.CogVideoXImageToVideoPipeline.call]]

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

Источник

Параметры:

image (PipelineImageInput) : Входное изображение для обусловливания генерации. Должно быть изображением, списком изображений или torch.Tensor.

prompt (str или list[str], необязательный) : Промпт или промпты для управления генерацией изображения. Если не задан, необходимо передать prompt_embeds вместо него.

negative_prompt (str или list[str], необязательный) : Промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, необходимо передать negative_prompt_embeds. Игнорируется, если не используется направляющее влияние (то есть игнорируется, если guidance_scale меньше 1).

height (int, optional, по умолчанию self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Высота генерируемого изображения в пикселях. По умолчанию установлено значение 480 для достижения наилучших результатов.

width (int, optional, по умолчанию self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Ширина генерируемого изображения в пикселях. По умолчанию установлено значение 720 для достижения наилучших результатов.

num_frames (int, по умолчанию 48) : Количество кадров для генерации. Должно делиться на self.vae_scale_factor_temporal. Сгенерированное видео будет содержать на 1 кадр больше, так как CogVideoX использует условие (num_seconds * fps + 1) кадров, где num_seconds равно 6, а fps — 8. Однако, поскольку видео можно сохранить с любой частотой кадров, необходимо выполнить только условие делимости, указанное выше.

num_inference_steps (int, optional, по умолчанию 50) : Количество шагов денойзинга. Как правило, большее число шагов денойзинга приводит к изображению более высокого качества, но за счёт более медленного вывода.

timesteps (list[int], optional) : Пользовательские шаги для процесса денойзинга с планировщиками, поддерживающими аргумент timesteps в их методе set_timesteps. Если не определено, будет использоваться поведение по умолчанию при передаче num_inference_steps. Должны быть в порядке убывания.

guidance_scale (float, optional, по умолчанию 7.0) : Масштаб руководства, определённый в Classifier-Free Diffusion Guidance. guidance_scale определяется как w из уравнения 2 в Imagen Paper. Масштаб руководства активируется при установке guidance_scale > 1. Более высокий масштаб руководства способствует генерации изображений, тесно связанных с текстовым prompt, обычно за счёт снижения качества изображения.

use_dynamic_cfg (bool, необязательный, по умолчанию False) : Если True, динамически корректирует масштаб руководства (guidance scale) во время вывода.

num_videos_per_prompt (int, необязательный, по умолчанию 1) : Количество видео, генерируемых на один промпт.

eta (float, необязательный, по умолчанию 0.0) : Соответствует параметру eta (η) из статьи DDIM. Применяется только к DDIMScheduler и игнорируется другими планировщиками.

generator (torch.Generator или list[torch.Generator], необязательный) : Один или список генераторов torch для обеспечения детерминированности генерации.

latents (torch.FloatTensor, необязательный) : Предварительно сгенерированные шумовые латенты, выбранные из гауссова распределения, которые используются в качестве входных данных для генерации изображений. Позволяет корректировать одну и ту же генерацию с помощью разных промптов. Если не заданы, тензор латентов будет сгенерирован путём выборки с использованием переданного случайного generator.

prompt_embeds (torch.FloatTensor, необязательный) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, текстовые эмбеддинги будут сгенерированы из входного аргумента prompt.

negative_prompt_embeds (torch.FloatTensor, необязательный) : Предварительно сгенерированные отрицательные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, negative_prompt_embeds будут сгенерированы из входного аргумента negative_prompt.

output_type (str, необязательный, по умолчанию "pil") : Формат вывода для генерируемого изображения. Выберите между PIL: PIL.Image.Image или np.array.

return_dict (bool, необязательный, по умолчанию True) : Возвращать ли ~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput вместо обычного кортежа.

attention_kwargs (dict, необязательный) : Словарь kwargs, который при указании передается в AttentionProcessor, определенный в self.processor в diffusers.models.attention_processor.

callback_on_step_end (Callable, необязательный) : функция, вызываемая в конце каждого шага денойзинга во время инференса. Функция вызывается со следующими аргументами: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs будет содержать список всех тензоров, как указано в callback_on_step_end_tensor_inputs.

callback_on_step_end_tensor_inputs (list, optional) : Список тензорных входных данных для функции callback_on_step_end. Тензоры, указанные в списке, будут переданы в качестве аргумента callback_kwargs. Вы сможете включать только переменные, перечисленные в атрибуте ._callback_tensor_inputs вашего класса pipeline.

max_sequence_length (int, по умолчанию 226) : Максимальная длина последовательности в закодированном промпте. Должна соответствовать self.transformer.config.max_text_seq_length, иначе это может привести к некачественным результатам.

Возвращает: CogVideoXPipelineOutput или tuple

CogVideoXPipelineOutput, если return_dict равно True, иначе tuple. При возврате кортежа первым элементом является список с сгенерированными изображениями.

Функция, вызываемая при обращении к конвейеру для генерации.

Примеры:

>>> 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]]

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)

Источник

Параметры:

prompt (str или list[str], необязательный) : промпт для кодирования

negative_prompt (str или list[str], необязательный) : Промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, необходимо передать negative_prompt_embeds. Игнорируется, если не используется направляющее влияние (то есть игнорируется, если guidance_scale меньше 1).

do_classifier_free_guidance (bool, необязательный, по умолчанию True) : Использовать ли classifier free guidance.

num_videos_per_prompt (int, optional, по умолчанию 1) : Количество видео, которые должны быть сгенерированы для каждого промпта. Устройство torch, на котором должны размещаться результирующие эмбеддинги

prompt_embeds (torch.Tensor, необязательный) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, текстовые эмбеддинги будут сгенерированы из входного аргумента prompt.

negative_prompt_embeds (torch.Tensor, необязательный) : Предварительно сгенерированные отрицательные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, negative_prompt_embeds будут сгенерированы из входного аргумента negative_prompt.

device : (torch.device, необязательный): устройство torch

dtype : (torch.dtype, необязательный): torch dtype

Кодирует промпт в скрытые состояния текстового энкодера.

fuse_qkv_projections[[diffusers.CogVideoXImageToVideoPipeline.fuse_qkv_projections]]

fuse_qkv_projections()

Источник

Включает объединённые проекции QKV.

unfuse_qkv_projections[[diffusers.CogVideoXImageToVideoPipeline.unfuse_qkv_projections]]

unfuse_qkv_projections()

Источник

Отключите слияние QKV-проекций, если оно включено.

CogVideoXVideoToVideoPipeline[[diffusers.CogVideoXVideoToVideoPipeline]]

diffusers.CogVideoXVideoToVideoPipeline[[diffusers.CogVideoXVideoToVideoPipeline]]

diffusers.CogVideoXVideoToVideoPipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, vae: AutoencoderKLCogVideoX, transformer: CogVideoXTransformer3DModel, scheduler: diffusers.schedulers.scheduling_ddim_cogvideox.CogVideoXDDIMScheduler | diffusers.schedulers.scheduling_dpm_cogvideox.CogVideoXDPMScheduler)

Источник

Параметры:

vae (AutoencoderKL) : Модель вариационного автоэнкодера (VAE) для кодирования и декодирования видео в латентные представления и обратно.

text_encoder (T5EncoderModel) : Замороженный текстовый энкодер. CogVideoX использует T5; конкретно вариант t5-v1_1-xxl.

tokenizer (T5Tokenizer) : Токенизатор класса T5Tokenizer.

transformer (CogVideoXTransformer3DModel) : модель CogVideoXTransformer3DModel с текстовым условием для удаления шума из закодированных латентных представлений видео.

scheduler (SchedulerMixin) : планировщик, используемый в сочетании с transformer для удаления шума из закодированных латентных представлений видео.

Pipeline для генерации видео из видео с использованием CogVideoX.

Эта модель наследуется от DiffusionPipeline. См. документацию родительского класса для общих методов, которые библиотека реализует для всех пайплайнов (например, загрузка или сохранение, запуск на конкретном устройстве и т. д.)

call[[diffusers.CogVideoXVideoToVideoPipeline.call]]

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

Источник

Параметры:

video (list[PIL.Image.Image]) : Исходное видео для обусловливания генерации. Должно быть списком изображений/кадров видео.

prompt (str или list[str], необязательный) : Промпт или промпты для управления генерацией изображения. Если не задан, необходимо передать prompt_embeds вместо него.

negative_prompt (str или list[str], необязательный) : Промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, необходимо передать negative_prompt_embeds. Игнорируется, если не используется направляющее влияние (то есть игнорируется, если guidance_scale меньше 1).

height (int, optional, по умолчанию self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Высота генерируемого изображения в пикселях. По умолчанию установлено значение 480 для достижения наилучших результатов.

width (int, optional, по умолчанию self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Ширина генерируемого изображения в пикселях. По умолчанию установлено значение 720 для достижения наилучших результатов.

num_inference_steps (int, optional, по умолчанию 50) : Количество шагов денойзинга. Как правило, большее число шагов денойзинга приводит к изображению более высокого качества, но за счёт более медленного вывода.

timesteps (list[int], optional) : Пользовательские шаги для процесса денойзинга с планировщиками, поддерживающими аргумент timesteps в их методе set_timesteps. Если не определено, будет использоваться поведение по умолчанию при передаче num_inference_steps. Должны быть в порядке убывания.

strength (float, optional, по умолчанию 0.8) : Чем выше значение, тем больше различий между исходным и сгенерированным видео.

guidance_scale (float, optional, по умолчанию 7.0) : Масштаб руководства, определённый в Classifier-Free Diffusion Guidance. guidance_scale определяется как w из уравнения 2 в Imagen Paper. Масштаб руководства активируется при установке guidance_scale > 1. Более высокий масштаб руководства способствует генерации изображений, тесно связанных с текстовым prompt, обычно за счёт снижения качества изображения.

use_dynamic_cfg (bool, необязательный, по умолчанию False) : Если True, динамически корректирует масштаб руководства (guidance scale) во время вывода.

num_videos_per_prompt (int, необязательный, по умолчанию 1) : Количество видео, генерируемых на один промпт.

eta (float, необязательный, по умолчанию 0.0) : Соответствует параметру eta (η) из статьи DDIM. Применяется только к DDIMScheduler и игнорируется другими планировщиками.

generator (torch.Generator или list[torch.Generator], необязательный) : Один или список генераторов torch для обеспечения детерминированности генерации.

latents (torch.FloatTensor, необязательный) : Предварительно сгенерированные шумовые латенты, выбранные из гауссова распределения, которые используются в качестве входных данных для генерации изображений. Позволяет корректировать одну и ту же генерацию с помощью разных промптов. Если не заданы, тензор латентов будет сгенерирован путём выборки с использованием переданного случайного generator.

prompt_embeds (torch.FloatTensor, необязательный) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, текстовые эмбеддинги будут сгенерированы из входного аргумента prompt.

negative_prompt_embeds (torch.FloatTensor, необязательный) : Предварительно сгенерированные отрицательные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, negative_prompt_embeds будут сгенерированы из входного аргумента negative_prompt.

output_type (str, необязательный, по умолчанию "pil") : Формат вывода для генерируемого изображения. Выберите между PIL: PIL.Image.Image или np.array.

return_dict (bool, необязательный, по умолчанию True) : Возвращать ли ~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput вместо обычного кортежа.

attention_kwargs (dict, необязательный) : Словарь kwargs, который при указании передается в AttentionProcessor, определенный в self.processor в diffusers.models.attention_processor.

callback_on_step_end (Callable, необязательный) : функция, вызываемая в конце каждого шага денойзинга во время инференса. Функция вызывается со следующими аргументами: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs будет содержать список всех тензоров, как указано в callback_on_step_end_tensor_inputs.

callback_on_step_end_tensor_inputs (list, optional) : Список тензорных входных данных для функции callback_on_step_end. Тензоры, указанные в списке, будут переданы в качестве аргумента callback_kwargs. Вы сможете включать только переменные, перечисленные в атрибуте ._callback_tensor_inputs вашего класса pipeline.

max_sequence_length (int, по умолчанию 226) : Максимальная длина последовательности в закодированном промпте. Должна соответствовать self.transformer.config.max_text_seq_length, иначе это может привести к некачественным результатам.

Возвращает: CogVideoXPipelineOutput или tuple

CogVideoXPipelineOutput, если return_dict равно True, иначе tuple. При возврате кортежа первым элементом является список с сгенерированными изображениями.

Функция, вызываемая при обращении к конвейеру для генерации.

Примеры:

>>> 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]]

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)

Источник

Параметры:

prompt (str или list[str], необязательный) : промпт для кодирования

negative_prompt (str или list[str], необязательный) : Промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, необходимо передать negative_prompt_embeds. Игнорируется, если не используется направляющее влияние (то есть игнорируется, если guidance_scale меньше 1).

do_classifier_free_guidance (bool, необязательный, по умолчанию True) : Использовать ли classifier free guidance.

num_videos_per_prompt (int, optional, по умолчанию 1) : Количество видео, которые должны быть сгенерированы для каждого промпта. Устройство torch, на котором должны размещаться результирующие эмбеддинги

prompt_embeds (torch.Tensor, необязательный) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, текстовые эмбеддинги будут сгенерированы из входного аргумента prompt.

negative_prompt_embeds (torch.Tensor, необязательный) : Предварительно сгенерированные отрицательные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, negative_prompt_embeds будут сгенерированы из входного аргумента negative_prompt.

device : (torch.device, необязательный): устройство torch

dtype : (torch.dtype, необязательный): torch dtype

Кодирует промпт в скрытые состояния текстового энкодера.

fuse_qkv_projections[[diffusers.CogVideoXVideoToVideoPipeline.fuse_qkv_projections]]

fuse_qkv_projections()

Источник

Включает объединённые проекции QKV.

unfuse_qkv_projections[[diffusers.CogVideoXVideoToVideoPipeline.unfuse_qkv_projections]]

unfuse_qkv_projections()

Источник

Отключите слияние QKV-проекций, если оно включено.

CogVideoXFunControlPipeline[[diffusers.CogVideoXFunControlPipeline]]

diffusers.CogVideoXFunControlPipeline[[diffusers.CogVideoXFunControlPipeline]]

diffusers.CogVideoXFunControlPipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, vae: AutoencoderKLCogVideoX, transformer: CogVideoXTransformer3DModel, scheduler: KarrasDiffusionSchedulers)

Источник

Параметры:

vae (AutoencoderKL) : Модель вариационного автоэнкодера (VAE) для кодирования и декодирования видео в латентные представления и обратно.

text_encoder (T5EncoderModel) : Замороженный текстовый энкодер. CogVideoX использует T5; конкретно вариант t5-v1_1-xxl.

tokenizer (T5Tokenizer) : Токенизатор класса T5Tokenizer.

transformer (CogVideoXTransformer3DModel) : модель CogVideoXTransformer3DModel с текстовым условием для удаления шума из закодированных латентных представлений видео.

scheduler (SchedulerMixin) : планировщик, используемый в сочетании с transformer для удаления шума из закодированных латентных представлений видео.

Пайплайн для контролируемого генерирования видео из текста с использованием CogVideoX Fun.

Эта модель наследуется от DiffusionPipeline. См. документацию родительского класса для общих методов, которые библиотека реализует для всех пайплайнов (например, загрузка или сохранение, запуск на конкретном устройстве и т. д.)

call[[diffusers.CogVideoXFunControlPipeline.call]]

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

Источник

Параметры:

prompt (str или list[str], необязательный) : Промпт или промпты для управления генерацией изображения. Если не задан, необходимо передать prompt_embeds вместо него.

negative_prompt (str или list[str], необязательный) : Промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, необходимо передать negative_prompt_embeds. Игнорируется, если не используется направляющее влияние (то есть игнорируется, если guidance_scale меньше 1).

control_video (list[PIL.Image.Image]) : Контрольное видео, на основе которого выполняется генерация. Должно быть списком изображений/кадров видео. Если не указано, необходимо указать control_video_latents.

height (int, optional, по умолчанию self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Высота генерируемого изображения в пикселях. По умолчанию установлено значение 480 для достижения наилучших результатов.

width (int, optional, по умолчанию self.transformer.config.sample_height * self.vae_scale_factor_spatial) : Ширина генерируемого изображения в пикселях. По умолчанию установлено значение 720 для достижения наилучших результатов.

num_inference_steps (int, optional, по умолчанию 50) : Количество шагов денойзинга. Как правило, большее число шагов денойзинга приводит к изображению более высокого качества, но за счёт более медленного вывода.

timesteps (list[int], optional) : Пользовательские шаги для процесса денойзинга с планировщиками, поддерживающими аргумент timesteps в их методе set_timesteps. Если не определено, будет использоваться поведение по умолчанию при передаче num_inference_steps. Должны быть в порядке убывания.

guidance_scale (float, optional, по умолчанию 6.0) : Масштаб направленного генерирования, как определено в Classifier-Free Diffusion Guidance. guidance_scale определяется как w из уравнения 2 в Imagen Paper. Направленное генерирование включается при установке guidance_scale > 1. Более высокий масштаб направленного генерирования способствует созданию изображений, тесно связанных с текстовым prompt, обычно за счёт снижения качества изображения.

use_dynamic_cfg (bool, необязательный, по умолчанию False) : Если True, динамически корректирует масштаб руководства (guidance scale) во время вывода.

num_videos_per_prompt (int, необязательный, по умолчанию 1) : Количество видео, генерируемых на один промпт.

eta (float, необязательный, по умолчанию 0.0) : Соответствует параметру eta (η) из статьи DDIM. Применяется только к DDIMScheduler и игнорируется другими планировщиками.

generator (torch.Generator или list[torch.Generator], необязательный) : Один или список генераторов torch для обеспечения детерминированности генерации.

latents (torch.Tensor, необязательный) : Предварительно сгенерированные шумовые латенты, выбранные из гауссова распределения, которые используются в качестве входных данных для генерации видео. Можно использовать, чтобы скорректировать одну и ту же генерацию с разными промптами. Если не предоставлены, тензор латентов будет сгенерирован путём выборки с использованием переданного случайного generator.

control_video_latents (torch.Tensor, необязательный) : Предварительно сгенерированные управляющие латенты, выбранные из гауссова распределения, которые используются в качестве входных данных для управляемой генерации видео. Если не указаны, необходимо предоставить control_video.

prompt_embeds (torch.Tensor, необязательный) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, текстовые эмбеддинги будут сгенерированы из входного аргумента prompt.

negative_prompt_embeds (torch.Tensor, необязательный) : Предварительно сгенерированные отрицательные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, negative_prompt_embeds будут сгенерированы из входного аргумента negative_prompt.

output_type (str, необязательный, по умолчанию "pil") : Формат вывода для генерируемого изображения. Выберите между PIL: PIL.Image.Image или np.array.

return_dict (bool, необязательный, по умолчанию True) : Возвращать ли ~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput вместо обычного кортежа.

attention_kwargs (dict, необязательный) : Словарь kwargs, который при указании передается в AttentionProcessor, определенный в self.processor в diffusers.models.attention_processor.

callback_on_step_end (Callable, необязательный) : функция, вызываемая в конце каждого шага денойзинга во время инференса. Функция вызывается со следующими аргументами: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs будет содержать список всех тензоров, как указано в callback_on_step_end_tensor_inputs.

callback_on_step_end_tensor_inputs (list, optional) : Список тензорных входных данных для функции callback_on_step_end. Тензоры, указанные в списке, будут переданы в качестве аргумента callback_kwargs. Вы сможете включать только переменные, перечисленные в атрибуте ._callback_tensor_inputs вашего класса pipeline.

max_sequence_length (int, по умолчанию 226) : Максимальная длина последовательности в закодированном промпте. Должна соответствовать self.transformer.config.max_text_seq_length, иначе это может привести к некачественным результатам.

Возвращает: CogVideoXPipelineOutput или tuple

CogVideoXPipelineOutput, если return_dict равно True, иначе tuple. При возврате кортежа первым элементом является список с сгенерированными изображениями.

Функция, вызываемая при обращении к конвейеру для генерации.

Примеры:

>>> 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]]

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)

Источник

Параметры:

prompt (str или list[str], необязательный) : промпт для кодирования

negative_prompt (str или list[str], необязательный) : Промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, необходимо передать negative_prompt_embeds. Игнорируется, если не используется направляющее влияние (то есть игнорируется, если guidance_scale меньше 1).

do_classifier_free_guidance (bool, необязательный, по умолчанию True) : Использовать ли classifier free guidance.

num_videos_per_prompt (int, optional, по умолчанию 1) : Количество видео, которые должны быть сгенерированы для каждого промпта. Устройство torch, на котором должны размещаться результирующие эмбеддинги

prompt_embeds (torch.Tensor, необязательный) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, текстовые эмбеддинги будут сгенерированы из входного аргумента prompt.

negative_prompt_embeds (torch.Tensor, необязательный) : Предварительно сгенерированные отрицательные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлены, negative_prompt_embeds будут сгенерированы из входного аргумента negative_prompt.

device : (torch.device, необязательный): устройство torch

dtype : (torch.dtype, необязательный): torch dtype

Кодирует промпт в скрытые состояния текстового энкодера.

fuse_qkv_projections[[diffusers.CogVideoXFunControlPipeline.fuse_qkv_projections]]

fuse_qkv_projections()

Источник

Включает объединённые проекции QKV.

unfuse_qkv_projections[[diffusers.CogVideoXFunControlPipeline.unfuse_qkv_projections]]

unfuse_qkv_projections()

Источник

Отключите слияние QKV-проекций, если оно включено.

CogVideoXPipelineOutput[[diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput]]

diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput[[diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput]]

diffusers.pipelines.cogvideo.pipeline_output.CogVideoXPipelineOutput(frames: Tensor)

Источник

Параметры:

frames (torch.Tensor, np.ndarray или list[list[PIL.Image.Image]]) : список видеовыходов — может представлять собой вложенный список длины batch_size, где каждый подсписок содержит последовательности денойзированных изображений PIL длины num_frames. Также может быть массивом NumPy или тензором Torch формы (batch_size, num_frames, channels, height, width).

Класс вывода для пайплайнов CogVideo.

Xet Storage Details

Size:
84.2 kB
·
Xet hash:
d5ebbfbc72ab5642320c47e8e6daf88fe515832a7b5518124f7389e4d5a35bb3

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