
今天拆的是 ViMax:一个自己造 Agent runtime、让 13 个专职 Agent 把一句想法推到多镜头成片的开源框架;文章给全它在链条上的层级、四条上手路径、十处已知阻塞,以及那笔按秒计费的模型账。

agent_runtime/ 目录里:一个 agent loop、一个工具注册表、一个会话索引、一个上下文压缩器,外加一个 4.7 万字节的适配层。5read_file、read_json、write_json、list_files、glob_files、search_text、view_image、memory_read、memory_write、todo_read、todo_write、sleep;领域件只有三个:叙事规划 vimax_narrative_planning、小说规划 vimax_novel_planning、出片 vimax_render_video。67VIMAX_ENABLE_RUN_SHELL=1 才放行,放行之后还会拦危险命令、限时、截断输出。6google/gemini-2.5-flash-lite-preview-09-2025 当对话模型,Google 的 nanobanana 出图,Google 的 Veo 出视频。10
agents/ 目录下是 13 个 Agent 实现,一个文件一个:script_planner(2.6 万字节,最大的一块)、storyboard_artist(1.9 万)、global_information_planner(1.8 万)、reference_image_selector(1.6 万)、camera_image_generator(1.4 万)、screenwriter(1 万),加上 script_enhancer、character_extractor、character_portraits_generator、scene_extractor、event_extractor、novel_compressor、best_image_selector。11image_selection.num_candidates 就是它的开关。pipelines/ 下:idea2video_pipeline.py(1.2 万字节)、script2video_pipeline.py(5.5 万)、novel2movie_pipeline.py(5.5 万)。12 随包的基准 vimax_benchmark/ 有 35 个故事,分成 A、B、C 三类,一个故事一份 JSON。13| 你提供 | 它交回 |
|---|---|
| 一台 Linux 或 Windows 的机器,Python 3.12 加 uv;README 的环境那一栏只写了这两个系统8 | 一套留在本地的工程:剧本、分镜、角色、关键帧、逐镜片段和中间产物都落在 .working_dir 下 |
| 三类模型的接口和 Key——一个支持视觉输入的对话模型、一个图像生成器、一个视频生成器10 | 从一句想法、一份剧本或一部长篇推出来的一条多镜头成片 |
| 一个你选得出来的视频模型;要成片有声音,就得选同时能生成音频的那一个14 | 按机位依赖顺序生成的镜头,依赖已满足的那部分并发生成4 |
| 自己写一个 provider 类,或者从随包那九个适配器里挑一个9 | 每个镜头两三张候选关键帧,由视觉模型打分挑一张进下一步10 |
| 时间:默认配置下视频一天只放 10 次,长片要按天排10 | 可以续跑的会话、可以逐份检查的文本产物,和一套 35 个故事的自带基准13 |
pyproject.toml 里的包名还是历史上的 autolongvideogeneration,版本 1.2.0,要求 Python 3.12 以上;15 所以只有源码一条路:git clone https://github.com/HKUDS/ViMax.git
cd ViMax
uv synccp configs/agent.example.yaml configs/agent.local.yamlllm、image、video 三段各要 model、base_url、api_key;不写文件也行,用 VIMAX_LLM_API_KEY、VIMAX_IMAGE_API_KEY、VIMAX_VIDEO_API_KEY 三个环境变量代替。816tsx 起界面;17cd ui && npm install && cd ..
./vimax tuiconfigs/idea2video.yaml 之后跑 python main_idea2video.py 就行,main_script2video.py 同理。8
configs/idea2video.yaml 文件页,2026-10-02 采集:对话模型 500 次/分钟、2000 次/天,图像生成器 10 次/分钟、500 次/天,视频生成器 2 次/分钟、10 次/天;每一条下面都注着「设为 null 可关闭本服务的限流」,第 33 行的 image_selection: 2 是候选关键帧的张数。10image_generator 与 video_generator 在 YAML 里写的是 class_path: tools.ImageGeneratorNanobananaGoogleAPI 这种形式,换供应商就是换一个类。10 #9 在 2025-11-20 15:41(UTC+08)提交、至今未关闭,问的就是「图像和视频生成模型必须使用 Google 的 nano-banana 和 veo3 吗」,维护方当天回「可以自定义使用其他图像/视频生成模型(eg. doubao / wan / sora2),openrouter 目前只能支持 nanobanana 跟 LLM 配置」。19 你能做的:先翻 tools/__init__.py 看有没有你要的那一家,没有就照现有类的样子写一个;这一层不是「填一个 OpenAI 兼容地址」就能接上的。max_requests_per_minute 来控制成本」。21 适用范围要写清楚:那是 2026 年 4 月一个人在某一次运行上的实测,不是标价,也不是平均数。你能做的:先跑短故事、先只出文本和关键帧,用速率上限当闸门。.working_dir 下的中间产物在不在,缺了就从断点续跑,别整条重来。vimax render 这样的 MCP 工具,翻遍仓库没有。触发条件是你打算让 Claude Code 或 Codex 直接驱动它。仓库里没有任何 MCP 服务端,README 的路线图里「Skill-based workflow extensions」还停在未勾选状态。8 现成能用的只有那三个领域工具 vimax_narrative_planning、vimax_novel_planning、vimax_render_video,要桥接得自己包。7 你能做的:接受自己写这层桥,或者先去看第 6 期的 OpenStoryline、第 16 期的 OpenChatCut 这类自带 MCP 的方案。
gemini-2.5-flash-lite)占的比例很小。1029image_selection.num_candidates 设成 1 才关掉;10 报告里那套 best-of-k 是同一件事的放大版。4 多镜头、重渲、候选,在这里都是乘法。gemini-2.5-flash-lite 加 nanobanana 加 Veo,10 两者不是同一套东西。真实账单长什么样,能查到的是一条个人记录:#37 那次「单次 30 欧」。21 这条只能当量级参考,它不是标价,也不是平均数。| 方案 | 你给它什么 | 它给你什么 | 它在这一层 | 许可与公开体量 |
|---|---|---|---|---|
| ViMax | 三类模型接口、一个工程目录、按天排的时间 | 从想法或剧本推到多镜头成片的一条产线 | 自带 Agent runtime 的多 Agent 编排 | MIT,12,542 star1 |
| Toonflow(第 17 期) | 一台机器、四类模型 Key、逐段授权 | 一张可继续编辑的无限画布工程 | 编排与工作台 | MIT,16,319 star30 |
| OpenChatCut(第 16 期) | 素材与一句自然语言 | 可撤销的真时间线工程 | 编辑器加 MCP | AGPL-3.0,2,079 star31 |
| hypit(第 15 期) | 一条参考视频 | 可重跑的 SVML 作品源码 | 工作流描述语言 | 改过的 Apache-2.0,18,448 star32 |
| HyperFrames(第 14 期) | 一份 HTML / CSS 工程 | 逐帧拍出来的 mp4 | 渲染底座 | Apache-2.0,55,309 star33 |
| Diffusion Studio(第 13 期) | 一份 JSX 时间线 | 同一份文件上的协同编辑 | 编辑器 | MPL-2.0,3,189 star34 |
| OpenStoryline(第 6 期) | 素材与一份 config.toml | 一条 18 节点的成片产线 | 自带 Agent 的产线 | Apache-2.0,3,457 star35 |
| video-shotcraft(第 1 期) | Claude Code 或 Codex | 157 张镜头卡排出的产品片 | 技能包与镜头资产库 | Apache-2.0,10,192 star36 |
| Remotion | 一份 React 工程 | 程序化生成的视频 | 渲染底座 | 自订许可(GitHub 识别为 NOASSERTION),61,428 star37 |

assets/vimax-web-ui.png:左侧是项目列表(Testing、000),中间是 Agent 对话入口,右侧 Storyboard 面板把「Planning incomplete」拆成 Storyboards、Shot descriptions、Camera plans 三项计数,下面 Render 一栏再拆成 Keyframes、Video clips、Final video。所谓「多 Agent 推进一条产线」,落到界面上就是这些计数一格一格往前走。8github.com
github.com
github.com
arxiv.org
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
ai.google.dev
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.