zai-org/CogVideoX1.5-5B

zai-org
Texto a video

CogVideoX1.5-5B es un modelo abierto de generación de video texto-a-video de la familia CogVideoX, publicado por Z.ai/THUDM. Genera videos a partir de prompts en inglés y está orientado a clips de 5 o 10 segundos con resolución de hasta 1360 x 768, usando Diffusers o SAT. El modelo recomienda inferencia en BF16 y puede ejecutarse con optimizaciones de memoria o cuantización INT8 para reducir el uso de VRAM, aunque con menor velocidad.

Como usar

Instalación rápida con Diffusers:

pip install -U diffusers transformers accelerate

Ejemplo básico:

import torch
from diffusers import DiffusionPipeline

# switch to "mps" for apple devices
pipe = DiffusionPipeline.from_pretrained("zai-org/CogVideoX1.5-5B", dtype=torch.bfloat16, device_map="cuda")

prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
image = pipe(prompt).images[0]

Ejemplo recomendado con CogVideoXPipeline:

# diffusers (from source)
# transformers>=4.46.2
# accelerate>=1.1.1
# imageio-ffmpeg>=0.5.1
pip install git+https://github.com/huggingface/diffusers
pip install --upgrade transformers accelerate diffusers imageio-ffmpeg
import torch
from diffusers import CogVideoXPipeline
from diffusers.utils import export_to_video

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."

pipe = CogVideoXPipeline.from_pretrained(
    "THUDM/CogVideoX1.5-5B",
    torch_dtype=torch.bfloat16
)

pipe.enable_sequential_cpu_offload()
pipe.vae.enable_tiling()
pipe.vae.enable_slicing()

video = pipe(
    prompt=prompt,
    num_videos_per_prompt=1,
    num_inference_steps=50,
    num_frames=81,
    guidance_scale=6,
    generator=torch.Generator(device="cuda").manual_seed(42),
).frames[0]

export_to_video(video, "output.mp4", fps=8)

Ejemplo de inferencia cuantizada INT8 con TorchAO:

# To get started, PytorchAO needs to be installed from the GitHub source and PyTorch Nightly.
# Source and nightly installation is only required until the next release.
import torch
from diffusers import AutoencoderKLCogVideoX, CogVideoXTransformer3DModel, CogVideoXImageToVideoPipeline
from diffusers.utils import export_to_video
from transformers import T5EncoderModel
from torchao.quantization import quantize_, int8_weight_only

quantization = int8_weight_only

text_encoder = T5EncoderModel.from_pretrained("THUDM/CogVideoX1.5-5B", subfolder="text_encoder", torch_dtype=torch.bfloat16)
quantize_(text_encoder, quantization())

transformer = CogVideoXTransformer3DModel.from_pretrained("THUDM/CogVideoX1.5-5B", subfolder="transformer", torch_dtype=torch.bfloat16)
quantize_(transformer, quantization())

vae = AutoencoderKLCogVideoX.from_pretrained("THUDM/CogVideoX1.5-5B", subfolder="vae", torch_dtype=torch.bfloat16)
quantize_(vae, quantization())

# Create pipeline and run inference
pipe = CogVideoXImageToVideoPipeline.from_pretrained(
    "THUDM/CogVideoX1.5-5B",
    text_encoder=text_encoder,
    transformer=transformer,
    vae=vae,
    torch_dtype=torch.bfloat16,
)
pipe.enable_model_cpu_offload()
pipe.vae.enable_tiling()
pipe.vae.enable_slicing()

prompt = "A little girl is riding a bicycle at high speed. Focused, detailed, realistic."
video = pipe(
    prompt=prompt,
    num_videos_per_prompt=1,
    num_inference_steps=50,
    num_frames=81,
    guidance_scale=6,
    generator=torch.Generator(device="cuda").manual_seed(42),
).frames[0]

export_to_video(video, "output.mp4", fps=8)

Funcionalidades

Generación de video a partir de texto con prompts en inglés.
Modelo de 5B parámetros de la serie CogVideoX1.5.
Resolución objetivo de 1360 x 768.
Soporte para videos de 5 o 10 segundos.
Frecuencia de 16 fotogramas por segundo en CogVideoX1.5-5B.
Límite de prompt de 224 tokens.
Inferencia recomendada en BF16, con soporte para FP16, FP32, FP8 e INT8; INT4 no está soportado.
Compatible con Hugging Face Diffusers y modelos SAT.
Optimizaciones de memoria mediante CPU offload, VAE slicing y VAE tiling.
Cuantización con TorchAO u Optimum Quanto para reducir requisitos de VRAM.
Licencia CogVideoX LICENSE.
No está desplegado actualmente en proveedores de inferencia de Hugging Face.

Casos de uso

Crear clips de video cortos a partir de descripciones textuales en inglés.
Prototipar generación texto-a-video con Diffusers en GPU NVIDIA Ampere o superior.
Generar videos de estilo cinematográfico o realista para investigación, demos y experimentos creativos.
Evaluar inferencia BF16/FP16 o cuantizada INT8 en modelos de difusión de video.
Explorar fine-tuning e inferencia avanzada mediante la versión SAT y el repositorio de CogVideoX.