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.