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.