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

alibaba-pai
Texto a video

Conjunto de LoRAs de recompensa para CogVideoX-Fun-V1.5-5B orientadas a mejorar la alineación de los videos generados con preferencias humanas mediante Reward Backpropagation. Incluye LoRAs entrenadas con HPS v2.1 y MPS para usarse como complemento del modelo base CogVideoX-Fun-V1.5-5b-InP o como referencia para entrenar LoRAs de recompensa propias.

Como usar

Uso básico con CogVideoX-Fun-V1.5-5b-InP y el LoRA HPS2.1:

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.5-5b-InP"
lora_path = "alibaba-pai/CogVideoX-Fun-V1.5-Reward-LoRAs/CogVideoX-Fun-V1.5-5b-InP-HPS2.1.safetensors"
lora_weight = 0.7
prompt = "Pig with wings flying above a diamond mountain"
sample_size = [512, 512]
video_length = 85

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 oficiales para CogVideoX-Fun-V1.5-5b-InP con rank 128 y network_alpha 64.
Incluye una variante optimizada con el modelo de recompensa HPS v2.1, entrenada durante 1.500 pasos con batch size 8.
Incluye una variante optimizada con el modelo de recompensa MPS, entrenada durante 5.500 pasos con batch size 8.
Diseñado para mejorar la preferencia percibida de videos generados a partir de texto, usando el LoRA como plug-in sobre el modelo base.
Soporta inferencia local mediante VideoX-Fun, Diffusers y carga de pesos LoRA en formato safetensors.

Casos de uso

Mejorar videos generados por CogVideoX-Fun-V1.5-5B para que se ajusten mejor a preferencias humanas evaluadas por modelos de recompensa.
Comparar el efecto de distintos LoRAs de recompensa, como HPS v2.1 y MPS, sobre prompts de generación texto-a-video.
Investigar Reward Backpropagation aplicado a modelos de difusión de video.
Entrenar LoRAs de recompensa propios partiendo de los scripts y pesos publicados por Alibaba PAI.
Generar muestras texto-a-video con un peso LoRA ajustable, por ejemplo 0.7, para evaluar calidad visual y alineación con el prompt.