AI个人学习
和实操指南
阿里绘蛙

VideoGrain:文本提示对视频进行局部编辑的开源项目

综合介绍

VideoGrain 是一个专注于多粒度视频编辑的开源项目,由 xAI 团队开发并在 GitHub 上托管。这个项目出自论文《VideoGrain: Modulating Space-Time Attention for Multi-Grained Video Editing》,已入选 ICLR 2025 会议。它通过调制扩散模型中的时空注意力机制,实现对视频内容在类别、实例和局部三个层面的精细化编辑。相比传统方法,VideoGrain 解决了文本与区域控制的语义对齐问题和特征耦合难题,能在无需额外训练的情况下完成高质量编辑。项目提供完整代码、安装指南和预训练模型下载,适合开发者、研究者和视频编辑爱好者使用,目前已在学术界和开源社区引发关注。

VideoGrain:文本提示对视频进行局部编辑的开源项目-1


 

功能列表

  • 多粒度视频编辑:支持对视频中的类别(如将“人”替换为“机器人”)、实例(如特定对象)和局部细节(如手部动作)进行精准修改。
  • 零样本编辑能力:无需针对特定视频重新训练,直接输入文本提示即可完成编辑。
  • 时空注意力调制:通过增强跨注意力(文本到区域)和自注意力(区域内特征分离),提升编辑准确度和视频质量。
  • 开源代码与模型:提供完整实现代码和预训练模型,方便用户复现和扩展。
  • 兼容扩散模型:基于 diffusers 和 FateZero 等框架,便于集成到现有视频生成流程。
  • 多种文件支持:可处理用户上传的视频、图像等内容,输出编辑后的视频结果。

 

使用帮助

VideoGrain 的使用需要一定的编程基础和硬件支持,但其安装和操作流程在 GitHub 仓库中有详细说明。以下是具体的安装和使用指南,帮助用户快速上手。

安装流程

  1. 创建 Conda 环境
    在终端输入以下命令,创建一个独立的 Python 3.10 环境并激活:
conda create -n videograin python=3.10
conda activate videograin

确保 Conda 已安装,若未安装,可前往 Anaconda 官网下载。

  1. 安装 PyTorch 和相关依赖
    VideoGrain 依赖 PyTorch 及其 CUDA 支持,推荐使用 GPU 加速。执行以下命令安装:
conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=12.1 -c pytorch -c nvidia
pip install --pre -U xformers==0.0.27

xformers 可优化内存和运行速度,若不需要可跳过。

  1. 安装其他依赖
    从仓库根目录运行以下命令安装所有依赖库:
pip install -r requirements.txt

确保网络畅通,可能需要科学上网下载部分包。

  1. 下载预训练模型
    VideoGrain 需要 Stable Diffusion 1.5 和 ControlNet 等模型权重。运行仓库提供的脚本:
bash download_all.sh

这会自动下载基础模型至指定目录。若需手动下载,可访问 Hugging Face 或 Google Drive 链接(详见 README)。

  1. 准备 ControlNet 预处理器权重
    下载 annotator 权重(如 DW-Pose、depth_midas 等),约 4GB。使用以下命令:
gdown https://drive.google.com/file/d/1dzdvLnXWeMFR3CE2Ew0Bs06vyFSvnGXA/view?usp=drive_link
tar -zxvf videograin_data.tar.gz

解压后将文件放入 ./annotator/ckpts 目录。

使用方法

安装完成后,用户可以通过命令行运行 VideoGrain 进行视频编辑。以下是主要功能操作流程:

1. 多粒度视频编辑

  • 准备输入文件
    将待编辑的视频文件放入项目目录(如 ./input_video.mp4)。支持常见格式如 MP4、AVI。
  • 编写文本提示
    在脚本中指定编辑指令,例如:
prompt = "将视频中的汽车替换为保时捷"

支持类别替换(如“汽车”到“保时捷”)、实例修改(如“特定人物”到“钢铁侠”)和局部调整(如“手部动作”到“挥手”)。

  • 运行编辑命令
    在终端输入:
python edit_video.py --input ./input_video.mp4 --prompt "将视频中的汽车替换为保时捷" --output ./output_video.mp4

编辑完成后,结果保存至 ./output_video.mp4

2. 零样本编辑

  • 无需训练直接编辑
    VideoGrain 的核心优势是零样本能力。用户只需提供视频和提示,无需预训练。例如:
python edit_video.py --input ./sample_video.mp4 --prompt "将狗替换为猫" --output ./edited_video.mp4
  • 调整参数
    可通过 --strength 参数控制编辑强度(0.0-1.0,默认 0.8),如:

python edit_video.py --input ./sample_video.mp4 --prompt "将狗替换为猫" --strength 0.6

3. 时空注意力调制

  • 增强文本到区域控制
    VideoGrain 自动优化跨注意力,确保提示只影响目标区域。例如,若提示为“将人物服装改为红色”,无关背景不会受影响。
  • 提升特征分离
    自注意力机制增强区域内细节一致性,减少跨区域干扰。用户无需手动调整,运行时自动生效。

操作注意事项

  • 硬件要求
    推荐使用 NVIDIA GPU(如 A100 或 RTX 3090),显存至少 12GB。CPU 运行可能较慢。
  • 提示词建议
    提示词需具体且明确,如“将左侧人物替换为机器人”优于模糊的“编辑人物”。
  • 调试与日志
    若出错,可查看 ./logs 目录下的日志文件,或在命令后添加 --verbose 查看详细输出。

特色功能详解

  • 多粒度编辑实战
    假设用户想将视频中的“自行车”替换为“摩托车”,只需输入视频路径和提示词,VideoGrain 会识别所有自行车并替换为摩托车,保持动作和背景一致。
  • 开源扩展
    用户可修改 edit_video.py 中的模型参数,或基于 diffusers 框架添加新功能,如支持更高分辨率或更多编辑类型。
  • 社区支持
    GitHub 仓库提供 issue 板块,用户可提交问题或查看他人解决方案。

通过以上步骤,用户即可快速上手 VideoGrain,完成从简单替换到复杂局部调整的视频编辑任务。

CDN1
未经允许不得转载:首席AI分享圈 » VideoGrain:文本提示对视频进行局部编辑的开源项目

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文