Mochi 1 视频生成模型的LoRA微调指南
mochi The best OSS video generation models 项目地址: https://gitcode.com/gh_mirrors/mochi9/mochi
项目概述
Mochi 1是一个先进的视频生成模型,本指南将详细介绍如何使用LoRA(Low-Rank Adaptation)技术对其进行微调。LoRA是一种高效的参数微调方法,可以在保持原始模型大部分参数不变的情况下,仅调整少量关键参数来适应特定任务或风格。
准备工作
硬件要求
- 单GPU配置:推荐使用H100或A100显卡(80GB显存为佳)
- 显存需求取决于视频长度:处理1秒左右的视频需要较少显存
视频素材准备
- 收集MP4或MOV格式的视频文件
- 为每个视频准备详细的文字描述(保存为同名txt文件)
- 建议视频素材组织结构:
videos/ video_1.mp4 video_1.txt video_2.mp4 video_2.txt ...
微调流程详解
第一步:视频预处理
运行预处理脚本将视频转换为模型可处理的格式:
bash demos/fine_tuner/preprocess.bash -v videos/ -o videos_prepared/ -w weights/ --num_frames 37
关键参数说明:
-v
:原始视频目录-o
:预处理后输出目录-w
:模型权重目录--num_frames
:提取的帧数(建议选择6的倍数加1:25,31,37,...85)
第二步:配置微调参数
编辑lora.yaml
配置文件,主要可调整项包括:
- 训练过程中的提示词
- 学习率(推荐1e-4到2e-4)
- 训练步数(通常200-400步可见效果,1000步约30分钟)
- 视频路径设置
第三步:启动微调
bash ./demos/fine_tuner/run.bash -c ./demos/fine_tuner/configs/lora.yaml -n 1
训练过程中,每200步会在finetunes/my_mochi_lora/samples
生成样本视频。
第四步:使用微调后的模型
python3 ./demos/cli.py --model_dir weights/ --lora_path finetunes/my_mochi_lora/model_2000.lora.safetensors --num_frames 37 --cpu_offload --prompt "你的提示词"
性能优化技巧
显存管理
不同视频长度的显存占用参考:
| 帧数 | 视频时长 | 显存需求 | 单步时间 | |------|----------|----------|----------| | 37 | 1.2秒 | 50GB | 1.67秒 | | 61 | 2.0秒 | 64GB | 3.35秒 | | 85 | 2.8秒 | 80GB | 5.44秒 |
优化建议:
- 确保启用模型编译(
COMPILE_DIT=1
) - 调整检查点数量(
num_post_attn_checkpoint
等参数) - 减少处理帧数(
num_frames
)
训练效率提升
- 对于未充分利用显存的情况,可降低
num_ff_checkpoint
值加速训练 - 使用WandB监控训练过程(配置文件中启用)
技术细节
LoRA微调主要调整以下矩阵:
- 查询(Query)、键(Key)、值(Value)投影矩阵
- 输出投影矩阵
这些调整通过低秩分解实现,既保留了模型原有能力,又引入了特定风格的适应性。
注意事项
- 目前仅支持单GPU训练和推理
- 视频会被截取前
num_frames
帧,确保关键内容在开头 - iPhone拍摄的HDR视频建议先用Handbrake转换为MP4
- 描述文本越详细,微调效果越好
应用建议
- 风格迁移:通过特定风格的视频集微调模型
- 特定对象生成:使用包含目标对象的多角度视频
- 动作控制:收集特定动作的视频序列
通过本指南,您可以高效地定制Mochi 1视频生成模型,使其适应您的特定需求,而无需从头训练整个模型。
mochi The best OSS video generation models 项目地址: https://gitcode.com/gh_mirrors/mochi9/mochi
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考