AnyV2V
AnyV2V 是一个专为视频编辑打造的开源框架,旨在让复杂的视频修改变得像处理单张图片一样简单。它核心解决了传统视频编辑中难以兼顾“画面美观度”与“时间连贯性”的痛点,同时避免了繁琐的模型训练过程。
以往想要改变视频风格或内容,往往需要针对特定任务微调模型或逐帧修图,不仅耗时且容易导致画面闪烁。AnyV2V 创新性地将视频编辑转化为图像编辑问题,用户只需提供一张参考图片,即可驱动整个视频的变换。无论是基于提示词的内容修改,还是艺术风格的迁移,它都能无缝衔接现有的图像编辑方法(如 InstructPix2Pix 或 InstantStyle),在保持视频流畅自然的同时实现多样化编辑。
其最大的技术亮点在于“无需训练”(Training-Free)。这意味着用户无需具备深厚的深度学习背景或昂贵的算力资源来微调模型,下载代码配置好环境后即可直接使用。此外,作为首个利用图像生成视频(I2V)模型进行视频编辑的工作,它在学术界也具有重要意义。
AnyV2V 非常适合希望快速尝试视频创意的设计师、需要灵活实验算法的研究人员,以及想要体验前沿 AI 视频技术的开发者。通过本地 Gradio 界面或在线 Demo,各类用户都能轻松上手,将静态图像的编辑能力瞬间扩展到动态视频领域。
使用场景
一位短视频创作者需要为旅游 Vlog 制作一段“四季变换”的特效视频,要求将原本夏季拍摄的街道画面无缝转换为冬季雪景,同时保持人物动作和镜头运动的绝对流畅。
没有 AnyV2V 时
- 训练成本高昂:为了实现特定的风格转换,通常需要收集大量成对的夏冬视频数据进行模型微调(Fine-tuning),耗时数天且对算力要求极高。
- 时序闪烁严重:若直接使用逐帧图像编辑工具处理,生成的视频会出现严重的画面闪烁,人物衣物纹理和背景建筑在帧间跳变,破坏观看体验。
- 操作门槛极高:开发者需编写复杂的代码来对齐帧间特征,或依赖昂贵的商业软件手动逐帧修图,效率极低且难以保证一致性。
- 灵活性受限:一旦想要尝试另一种风格(如从雪景改为赛博朋克风),必须重新收集数据并再次训练模型,无法即时响应创意变化。
使用 AnyV2V 后
- 零训练即时生效:仅需提供一张冬季街道的参考图,AnyV2V 无需任何训练或微调,即可直接将整段视频转换为雪景,几分钟内完成部署。
- 完美的时序一致性:利用其特有的框架将视频编辑转化为图像编辑问题,自动保持帧间连贯性,消除了画面闪烁,人物动作自然流畅。
- 工作流极简高效:创作者可直接复用成熟的图像编辑模型(如 InstructPix2Pix 或 InstantStyle),通过简单的 Gradio 界面上传视频和参考图即可生成结果。
- 创意迭代自由:想切换风格只需替换那张参考图或修改提示词,AnyV2V 能立即重新生成不同风格的视频,极大降低了试错成本。
AnyV2V 通过将复杂的视频编辑任务简化为单图驱动且无需训练的流水线,彻底打破了高质量视频风格迁移的技术与时间壁垒。
运行环境要求
- Linux
- 需要 NVIDIA GPU
- 文中明确提到在 A6000 (48GB 显存) 上可编辑长达 16 秒 (128 帧) 的视频
- 基于 i2vgen-xl 模型,通常建议显存 24GB+ 以获得最佳效果,最低可能需 16GB
- 未明确说明 CUDA 版本,但通常需 CUDA 11.7+ 以支持较新的 PyTorch 版本
未说明 (建议 32GB+ 以处理视频数据)

快速开始
AnyV2V
🌐 主页 | 📖 arXiv | 🤗 HuggingFace 演示 | 🎬 Replicate 演示
此仓库包含我们发表于 TMLR 2024 的论文“AnyV2V:一种无需微调的通用视频到视频编辑框架”的代码库(论文链接)。
简介
AnyV2V 是一个能够在视频编辑中实现高度外观一致性和时间一致性的框架。
- 仅需一张图片即可完成视频编辑
- 将视频编辑问题转化为图像编辑问题
- 可以无缝地基于现有的图像编辑方法实现多样化的编辑任务
- 无需训练
- 不需要任何训练或微调
📰 最新消息
- 2024年10月29日:论文已被 TMLR 2024 接收。
- 2024年4月16日:本地 Gradio 演示现支持最长 16 秒(128 帧)的编辑。
- 2024年4月11日:新增了 AnyV2V(i2vgen-xl)+InstantStyle 的本地 Gradio 演示。
- 2024年4月7日:新增了【展示区】章节(issue #6)。欢迎大家分享你的 AnyV2V 编辑作品!
- 2024年4月7日:我们推荐将 AnyV2V 与 InstantStyle 结合使用,以实现视频风格化!请查看演示!
- 2024年4月3日:HuggingFace 演示正式上线!
- 2024年4月2日:新增了 AnyV2V(i2vgen-xl) 的本地 Gradio 演示。
- 2024年3月24日:为 AnyV2V(i2vgen-xl) 添加了 Replicate 演示。感谢 @chenxwh 的辛勤付出!!
- 2024年3月22日:代码正式发布。
- 2024年3月21日:我们的论文被收录于 HuggingFace Daily Papers!
- 2024年3月21日:论文已在 Arxiv 上线。AnyV2V 是首个在视频编辑中利用 I2V 模型的工作!
▶️ AnyV2V(i2vgen-xl) 快速入门
环境配置
使用以下命令准备 AnyV2V 项目代码库和 Conda 环境:
git clone https://github.com/TIGER-AI-Lab/AnyV2V
cd AnyV2V
cd i2vgen-xl
conda env create -f environment.yml
🤗 本地 Gradio 演示
AnyV2V+InstructPix2Pix(基于提示的编辑)
python gradio_demo.py
AnyV2V+InstantStyle 演示(风格迁移)
# 下载 InstantStyle 相关依赖
git lfs install
git clone https://huggingface.co/h94/IP-Adapter
mv IP-Adapter/models models
mv IP-Adapter/sdxl_models sdxl_models
rm -rf IP-Adapter
# 运行脚本
python gradio_demo_style.py
📜 Notebook 演示
我们提供了 AnyV2V(i2vgen-xl) 的 notebook 演示文件 i2vgen-xl/demo.ipynb。你可以运行该 notebook 对单个视频进行基于提示的编辑。请确保环境已正确配置后再运行 notebook。
若要编辑多个演示视频,请参阅【视频编辑】部分。
视频编辑
我们在 demo 文件夹中提供了演示源视频和编辑后的图像。以下是针对所提供源视频进行视频编辑的操作指南。请导航至 i2vgen-xl/configs/group_ddim_inversion 和 i2vgen-xl/configs/group_pnp_edit:
- 修改
template.yaml文件以指定device。 - 根据提供的示例修改
group_config.json文件。group_config.json中的配置会覆盖template.yaml中的配置。 要启用某个示例,将active: true;要禁用,则设置active: false。
然后可以运行以下命令进行推理:
cd i2vgen-xl/scripts
bash run_group_ddim_inversion.sh
bash run_group_pnp_edit.sh
或者使用 Python 运行以下命令:
cd i2vgen-xl/scripts
# 首先反演源视频的潜在表示
python run_group_ddim_inversion.py \
--template_config "configs/group_ddim_inversion/template.yaml" \
--configs_json "configs/group_ddim_inversion/group_config.json"
# 然后使用源视频的潜在表示运行 AnyV2V 流程
python run_group_pnp_edit.py \
--template_config "configs/group_pnp_edit/template.yaml" \
--configs_json "configs/group_pnp_edit/group_config.json"
若要编辑你自己的源视频,请按照以下步骤操作:
- 将源视频
Your-Video.mp4放入demo文件夹。 - 创建两个新文件夹
demo/Your-Video-Name和demo/Your-Video-Name/edited_first_frame。 - 运行以下命令进行首帧图像编辑:
python edit_image.py --video_path "./demo/Your-Video.mp4" --input_dir "./demo" --output_dir "./demo/Your-Video-Name/edited_first_frame" --prompt "Your prompt"
你也可以使用其他图像编辑方法,如 InstantID、AnyDoor 或 WISE 来编辑首帧。请将编辑后的首帧图像放入 demo/Your-Video-Name/edited_first_frame 文件夹。
- 根据提供的示例,在位于
i2vgen-xl/configs/group_ddim_inversion和i2vgen-xl/configs/group_pnp_edit目录中的group_config.json文件中为你的视频添加条目。 - 运行推理命令:
cd i2vgen-xl/scripts
bash run_group_ddim_inversion.sh
bash run_group_pnp_edit.sh
▶️ AnyV2V(consisti2v) 快速入门
▶️ AnyV2V(seine) 快速入门
▶️ 其他
第一帧图像编辑
我们提供了基于指令提示的图像编辑工具 instructpix2pix 的端口。
用法:edit_image.py [-h] [--model {magicbrush,instructpix2pix}]
[--video_path VIDEO_PATH] [--input_dir INPUT_DIR]
[--output_dir OUTPUT_DIR] [--prompt PROMPT] [--force_512]
[--dict_file DICT_FILE] [--seed SEED]
[--negative_prompt NEGATIVE_PROMPT]
处理一些图像。
可选参数:
-h, --help 显示此帮助信息并退出
--model {magicbrush,instructpix2pix}
图像编辑模型名称
--video_path VIDEO_PATH
视频文件名
--input_dir INPUT_DIR
包含视频的目录
--output_dir OUTPUT_DIR
保存处理后图像的目录
--prompt PROMPT 编辑的指令提示
--force_512 在输入图像模型时强制调整为512x512
--dict_file DICT_FILE
包含文件、指令等的JSON文件
--seed SEED 随机数生成器的种子
--negative_prompt NEGATIVE_PROMPT
编辑的负面提示
使用示例:
python edit_image.py --video_path "./demo/Man Walking.mp4" --input_dir "./demo" --output_dir "./demo/Man Walking/edited_first_frame" --prompt "把这个人变成达斯·维达"
您还可以使用其他图像模型进行编辑,以下是一些您可以使用的在线演示模型:
视频预处理脚本
在A6000显卡下,可以对16秒(128帧)的视频进行编辑。我们提供了一个脚本,用于将视频剪切和裁剪成任意尺寸和长度。
用法:prepare_video.py [-h] [--input_folder INPUT_FOLDER] [--video_path VIDEO_PATH] [--output_folder OUTPUT_FOLDER]
[--clip_duration CLIP_DURATION] [--width WIDTH] [--height HEIGHT] [--start_time START_TIME] [--end_time END_TIME]
[--n_frames N_FRAMES] [--center_crop] [--x_offset X_OFFSET] [--y_offset Y_OFFSET] [--longest_to_width]
裁剪和调整视频片段的大小。
可选参数:
-h, --help 显示此帮助信息并退出
--input_folder INPUT_FOLDER
包含视频文件的输入文件夹路径
--video_path VIDEO_PATH
输入视频文件的路径
--output_folder OUTPUT_FOLDER
输出视频文件的文件夹路径
--clip_duration CLIP_DURATION
视频片段的时长,单位为秒,默认值为2
--width WIDTH 输出视频的宽度(可选),默认值为512
--height HEIGHT 输出视频的高度(可选),默认值为512
--start_time START_TIME
裁剪的开始时间(可选)
--end_time END_TIME 裁剪的结束时间(可选)
--n_frames N_FRAMES 从每个视频中提取的帧数
--center_crop 对视频进行居中裁剪
--x_offset X_OFFSET 居中裁剪的水平偏移量,范围为-1到1(可选)
--y_offset Y_OFFSET 居中裁剪的垂直偏移量,范围为-1到1(可选)
--longest_to_width 将最长边调整为指定的宽度
使用示例:
python prepare_video.py --input_folder src_center_crop/ --output_folder processed --start_time 1 --center_crop --x_offset 0 --y_offset 0
python prepare_video.py --input_folder src_left_crop/ --output_folder processed --start_time 1 --center_crop --x_offset -1 --y_offset 0
python prepare_video.py --input_folder src_right_crop/ --output_folder processed --start_time 1 --center_crop --x_offset 1 --y_offset 0
📋 待办事项
AnyV2V(i2vgen-xl)
- 发布AnyV2V(i2vgen-xl)的代码
- 发布笔记本演示
- 发布Gradio演示
- 在HuggingFace Space上托管Gradio演示
AnyV2V(SEINE)
- 发布AnyV2V(SEINE)的代码
AnyV2V(ConsistI2V)
- 发布AnyV2V(ConsistI2V)的代码
杂项
- 辅助脚本用于预处理源视频
- 辅助脚本用于从源视频中获取编辑后的第一帧
🖊️ 引用
如果您使用我们的代码、数据、模型或结果,请引用我们的论文:
@article{ku2024anyv2v,
title={AnyV2V: 一种无需微调的通用视频到视频编辑框架},
author={Ku, Max and Wei, Cong and Ren, Weiming and Yang, Harry and Chen, Wenhu},
journal={arXiv预印本 arXiv:2403.14468},
year={2024}
}
🎫 许可证
本项目采用MIT许可证发布。然而,我们的代码基于一些可能使用其他许可证的项目:
- i2vgen-xl: 缺少许可证
- SEINE: Apache-2.0
- ConsistI2V: MIT许可证
⭐ 星标历史
📞 联系作者
Max Ku @vinemsuic, m3ku@uwaterloo.ca
Cong Wei @lim142857, c58wei@uwaterloo.ca
Weiming Ren @wren93, w2ren@uwaterloo.ca
💞 致谢
代码基于以下仓库构建,我们感谢所有开源贡献者:
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

