港大开源的 Agentic 视频生成框架,导演、编剧、制片人全由 Agent 担任,一句话产出多镜头成片
⭐ 开源免费ViMax 是香港大学数据智能实验室(HKUDS)开源的 Agentic 视频生成框架, 当前版本 v1.2.0,GitHub 已收获约 1.19 万 Star,采用 MIT 协议,可免费商用。 它的定位可以用官方那句话概括:导演、编剧、制片人、视频生成器四合一—— 你只需要给一个想法,剩下的剧本、分镜、角色设定、镜头设计、生成与合成,它自己一路做到底。
凭什么强?它不是"套一个文生视频模型",而是把整条影视生产流水线拆成了多个 Agent 协同: 先做叙事规划(把想法结构化成故事与剧本),再做分镜与镜头设计(机位、运镜、转场), 然后统一管理参考图与首帧以保证角色和场景跨镜头不变形,最后并行生成多个镜头并自动合成。 这正是针对当前 AI 视频的三个通病设计的:只能出几秒、跨帧一致性崩坏、 只有画面没有剧本和叙事结构。
和 Codex 的关系:ViMax 本身是一个本地运行的 Python 项目(Python 3.12 + uv), 自带交互式 TUI 和 Web UI,并不是一个 Skill 插件。但因为 Codex 能直接执行 shell 与 Python, 你完全可以把「拉仓库、装环境、改 YAML 配置、跑 idea2video、排查报错」这一整套交给 Codex 代劳, 自己只负责说创意、审分镜。对独立创作者来说,它解决的是最贵的那部分成本: 把一个想法变成有故事、有镜头语言、角色不串戏的成片。
| 项目 | 说明 |
|---|---|
| 输入 | 一句话创意(Idea2Video)、完整剧本(Script2Video)、长篇小说文本(Novel2Video)、人物或宠物参考照片(AutoCameo) |
| 适用类型 | 预告片、短故事、动画短片、小说改编分集、带本人出镜的短片;支持指定风格(如 Cartoon、Animate Style) |
| 输出 | 多场景多镜头成片,含剧本、角色设定、分镜板、镜头清单等中间产物,可在 Web UI 逐项查看 |
| 交互方式 | Web UI(浏览器工作台)、Agent TUI(终端交互)、Python 脚本直调(main_idea2video.py / main_script2video.py) |
| 可接模型 | 对话模型走 OpenAI 兼容接口(可接 OpenRouter、MiniMax 等);图像可接 GPT Image 2、Nano Banana;视频可接 Seedance 2.0 Fast、Google Veo、Google Omni |
| 关键机制 | 并行生成(多镜头同时渲染加速)、会话可恢复、渲染检查点、上下文压缩 |
| 环境 | 建议配置 |
|---|---|
| 操作系统 | 官方标注支持 Linux、Windows |
| 运行环境 | Python 3.12;使用 Web UI 还需 Node.js 18 或更高版本 |
| 硬件 | 不需要本地显卡。图像与视频生成都走云端模型接口,本机只负责编排、调度与合成,普通笔记本即可 |
| 无卡方案 | 这本身就是默认方案——本地不跑大模型,算力全在你配置的模型服务商那边 |
| 关键依赖 | uv(Python 环境与依赖管理,官方推荐)、git;Web UI 另需 npm |
| 需要准备 | 三类模型凭据:对话模型、图像生成、视频生成。可以是同一家,也可以分别接不同服务商 |
uv sync → 复制一份配置填模型信息 → 起 Web UI,在浏览器里说一句话即可开拍。全程不需要本地显卡。官方用 uv 管理依赖,先把它装好。最省事的办法是用 pip 装,各平台通用;也可以按 uv 官方文档(地址见文首折叠块)用一键脚本安装。装完重开一个终端,确认版本号能打出来。
pip install uv
uv --version
在 GitHub 搜索 HKUDS ViMax 进入仓库,克隆到本地后执行 uv sync,它会自动建好 Python 3.12 虚拟环境并装齐依赖。
git clone 仓库地址见文首折叠块
cd ViMax
uv sync
从示例配置复制一份私有配置,再把三类模型的信息填进去。三者可以来自不同服务商,对话模型走 OpenAI 兼容接口即可。
cp configs/agent.example.yaml configs/agent.local.yaml
llm:
model_provider: openai
model: 你的对话模型名
base_url: 你的接口地址
api_key: 你的密钥
image:
model: 你的图像模型名
base_url: 你的接口地址
api_key: 你的密钥
video:
model: 你的视频模型名
base_url: 你的接口地址
api_key: 你的密钥
三类模型分别干什么:
| 配置项 | 作用与可选项 |
|---|---|
llm | 大脑。负责写剧本、拆分镜、设计镜头。走 OpenAI 兼容接口,可接 OpenRouter、MiniMax 等 |
image | 出参考图与首帧,决定角色长相是否稳定。可接 GPT Image 2、Nano Banana |
video | 把首帧变成动态镜头,最烧额度的一环。可接 Seedance 2.0 Fast、Google Veo、Google Omni |
configs/agent.local.yaml 留空,改用环境变量 VIMAX_LLM_API_KEY、VIMAX_IMAGE_API_KEY、VIMAX_VIDEO_API_KEY 传入,避免密钥落到文件里。Web UI(推荐,v1.2.0 新增):需要 Node.js 18+。启动后在浏览器打开本地 4173 端口,即可命名项目、和 Agent 对话、看分镜进度、预览渲染结果。端口被占用时用 VIMAX_WEB_PORT 换一个。
cd web
npm install
npm run dev
终端 TUI:不想装前端就用它,同样支持对话式规划、修改方案、控制渲染,而且会话可以中断后续接。
vimax tui
vimax tui new
vimax tui resume
脚本直调(跑批更顺手):直接改 main_idea2video.py 里的三个变量,然后运行。main_script2video.py 则是喂完整剧本。
idea = """
一只猫和一只狗是好朋友,它们遇到一只新来的猫会发生什么?
"""
user_requirement = """
面向儿童,场景不超过 3 个。
"""
style = "Cartoon"
ViMax 不是 Skill 插件,而是一个本地 Python 项目,所以和 Codex 的配合方式是让 Codex 当你的运维和操作员,这条路径完全真实可行:
① 装机交给它:把仓库名丢给 Codex,让它自己 clone、跑 uv sync、装 Node 依赖,遇到依赖冲突或版本报错让它直接改。
② 配置交给它:告诉 Codex 你手上有哪家的模型额度,让它把 configs/agent.local.yaml 按格式填好,密钥用环境变量注入。
③ 批量跑片交给它:写一个循环脚本,让 Codex 依次改 main_idea2video.py 里的 idea 与 style 并执行,一次排一批选题。
④ 出问题让它读日志:渲染中断、镜头缺失、额度不足这类问题,Codex 能直接读 .working_dir 下的中间产物定位到是哪一镜出错,然后从检查点续跑。
ViMax 属于编排型框架,本身不产出跑分。下面是它与"直接用一个文生视频模型"的能力差异对比。
| 维度 | 直接用文生视频模型 | ViMax |
|---|---|---|
| 单次时长 | 通常只有几秒一个片段 | 多镜头串联,可做到分钟级完整叙事 |
| 角色一致性 | 跨片段常出现长相、服装、场景漂移 | 统一管理参考图与首帧,跨镜头维持同一形象 |
| 叙事结构 | 只有画面,没有剧本与节奏设计 | 先出故事与剧本,再做分镜与镜头设计 |
| 镜头语言 | 靠提示词碰运气 | 显式设计机位、运镜、转场与镜头衔接 |
| 生成效率 | 逐个片段串行等待 | 兼容的镜头与素材并行生成 |
| 可干预性 | 不满意只能重抽 | Agent Loop 可改方案、可断点续跑、可复用会话 |
区别在于它管的是整条流程而不是单个片段。普通工具你给一句提示词得到几秒画面,角色下一段就变样;ViMax 会先把想法写成故事和剧本,拆出分镜和镜头设计,统一管理角色参考图,再并行生成几十个镜头并合成。你拿到的是有叙事结构的成片,不是一堆对不上的碎片。
能跑,而且这是默认方式。图像和视频生成都调用云端模型接口,本机只做编排、调度和合成,普通笔记本足够。需要的是 Python 3.12、uv,用 Web UI 再加 Node.js 18+。官方标注支持 Linux 和 Windows。
四种都行:一句话创意走 Idea2Video;完整剧本走 Script2Video;长篇小说走 Novel2Video,它会做叙事压缩和角色追踪拆成分集;上传本人或宠物照片走 AutoCameo,把自己放进故事里。还能指定风格,比如 Cartoon、Animate Style。
对话模型走的是 OpenAI 兼容接口,只要服务商提供兼容端点就能接,官方明确支持过 MiniMax。图像和视频这两环节可选的国内方案相对少一些,官方适配过 Seedance 2.0 Fast。建议先用一家跑通,再逐个替换看效果。
想看分镜预览、渲染进度、逐项检查中间产物就用 Web UI,直观但要多装一层 Node 依赖;只想在终端里对话式地规划和控制渲染就用 TUI,轻量且支持会话中断后续接。两者共用同一份 configs/agent.local.yaml 配置和同一套运行时,随时可以换。
它有渲染检查点和会话恢复机制。TUI 用 vimax tui resume 可以续上之前的会话,也可以指定会话 ID 恢复。中间产物都落在工作目录里,能直接翻出来看是哪一镜出的问题,不必整片重来。
Web UI 默认绑在本机回环地址的 4173 端口。端口冲突时设置环境变量 VIMAX_WEB_PORT 换一个再启动。如果 ViMax 跑在远程服务器上,用 SSH 做端口转发把 4173 映射到本地即可,不要直接把服务暴露到公网。
不是 Skill 插件,它是独立的 Python 项目。结合方式是让 Codex 当操作员:clone 仓库、跑 uv sync、按格式填配置、批量改 idea 跑片、读日志定位失败镜头并从检查点续跑。这些都是 Codex 执行 shell 和改文件的常规能力,不需要额外接什么。
官方没有给统一报价,因为完全取决于你接哪家模型、片子有多少个镜头。烧钱大头是视频生成环节,几十个镜头就是几十次调用。建议第一次跑的时候在需求里限制场景数量(比如不超过 3 个场景),确认效果满意再放开。
ViMax 本身是 MIT 协议,框架层面可以自由商用、修改和二次分发。但要注意:你实际调用的那些对话、图像、视频模型各有各的服务条款和商用授权规定,成片能不能商用取决于它们,用之前先看清楚你接的那家模型怎么规定。