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.