alibaba-pai/CogVideoX-Fun-V1.1-Reward-LoRAs

alibaba-pai
Texto a video

Conjunto de LoRAs de recompensa para CogVideoX-Fun-V1.1 que optimizan la generación de video mediante Reward Backpropagation para alinear mejor los resultados con preferencias humanas. Incluye adaptadores oficiales HPS v2.1 y MPS para las variantes CogVideoX-Fun-V1.1-5B-InP y CogVideoX-Fun-V1.1-2B-InP, pensados para usarse como plug-in sobre el modelo base o como referencia para entrenar LoRAs de recompensa propios.

Como usar

El modelo se usa cargando el modelo base CogVideoX-Fun-V1.1-InP, fusionando la LoRA de recompensa correspondiente y generando el video con Diffusers/CogVideoX-Fun.

import torch
from diffusers import CogVideoXDDIMScheduler
from cogvideox.models.transformer3d import CogVideoXTransformer3DModel
from cogvideox.pipeline.pipeline_cogvideox_inpaint import CogVideoX_Fun_Pipeline_Inpaint
from cogvideox.utils.lora_utils import merge_lora
from cogvideox.utils.utils import get_image_to_video_latent, save_videos_grid

model_path = "alibaba-pai/CogVideoX-Fun-V1.1-5b-InP"
lora_path = "alibaba-pai/CogVideoX-Fun-V1.1-Reward-LoRAs/CogVideoX-Fun-V1.1-5b-InP-HPS2.1.safetensors"
lora_weight = 0.7
prompt = "Pig with wings flying above a diamond mountain"
sample_size = [512, 512]
video_length = 49

transformer = CogVideoXTransformer3DModel.from_pretrained_2d(model_path, subfolder="transformer").to(torch.bfloat16)
scheduler = CogVideoXDDIMScheduler.from_pretrained(model_path, subfolder="scheduler")
pipeline = CogVideoX_Fun_Pipeline_Inpaint.from_pretrained(
    model_path,
    transformer=transformer,
    scheduler=scheduler,
    torch_dtype=torch.bfloat16
)
pipeline.enable_model_cpu_offload()
pipeline = merge_lora(pipeline, lora_path, lora_weight)

generator = torch.Generator(device="cuda").manual_seed(42)
input_video, input_video_mask, _ = get_image_to_video_latent(None, None, video_length=video_length, sample_size=sample_size)

sample = pipeline(
    prompt,
    num_frames=video_length,
    negative_prompt="bad detailed",
    height=sample_size[0],
    width=sample_size[1],
    generator=generator,
    guidance_scale=7.0,
    num_inference_steps=50,
    video=input_video,
    mask_video=input_video_mask,
).videos

save_videos_grid(sample, "samples/output.mp4", fps=8)

Funcionalidades

LoRAs de recompensa para generación texto-a-video con CogVideoX-Fun-V1.1.
Soporte para modelos base CogVideoX-Fun-V1.1-5B-InP y CogVideoX-Fun-V1.1-2B-InP.
Variantes entrenadas con modelos de recompensa HPS v2.1 y MPS.
Configuración LoRA indicada como rank=128 y network_alpha=64.
Ejemplos de uso con peso LoRA 0.7 y prompts de T2V-CompBench.
Incluye script de entrenamiento y pesos preentrenados en archivos .safetensors.

Casos de uso

Mejorar la alineación de videos generados por CogVideoX-Fun-V1.1 con preferencias humanas.
Comparar salidas base frente a salidas ajustadas con LoRAs HPS v2.1 o MPS.
Generar videos texto-a-video de 49 fotogramas con modelos CogVideoX-Fun-V1.1-InP.
Entrenar o experimentar con LoRAs de recompensa propias para modelos de difusión de video.
Investigación sobre Reward Backpropagation aplicada a generación de video.