跳到生产流程
免费 · 开源 · Apache-2.0

从一页故事,
到一集可交付的成片。

MakeMovie 收取一段原文——小说节选、故事梗概或剧本——交回一集成片母版:拍摄剧本、分镜清单、角色与道具参考图、首帧、视频片段、角色配音、背景配乐床、字幕轨与交付清单。文字阶段自行接力。每一个要花钱的阶段都等一个按钮。

看到真实计数之前,什么都不排队。批次启动前,控制台会写明它将创建多少任务、哪些分镜还缺输入——花费决策因此当场基于真实数字做一次,而不是事后在账单里发现。

git clone https://github.com/DreamOfXM/makemovie.git
7个阶段,从原文到交付
9个模型槽位可绑定——其中 4 个必需
8份内置厂商目录,其中一份不需要密钥
0个 API Key 就能走完整条链
MakeMovie 制作台:左侧镜头清单与每镜产物状态点,中间是选中镜头的剧本字段,右侧是它的首帧、视频片段与配音轨。
每镜一张卡:左边读它的剧本,右边是它的首帧、片段与配音。截图来自本机实例上的一次真实生产——13 个镜头里 2 个产物齐了等审、1 个首帧失败,其余斜纹格还没开跑。
为什么做它

我们相信,讲故事的门槛,不该由预算和团队规模决定。MakeMovie 想为每一位热爱视频制作的人提供一种新的可能:一个人、一台电脑,也能把心里的故事,做成一集拿得出手的成片。

提示框不给你的那部分

决定权始终在你手上。

生成是最容易的那一环。真正让一次生产散架的是没人做的那部分:这一刀谁批的、哪个版本进了剪辑、它消耗了你什么。

审批挡在花费前面

原文、剧本与参考图各有自己的审批动作,生产线在每一个要计费的阶段停下。重跑某个阶段是你有意的决定,运行中的批次可以在控制台停止——取消的是还没开始的任务,而不是让一个错误跑完。

花钱的阶段等一次点击

每个产物自带履历

每一版剧本、分镜、资产与媒体文件都记下产出它的任务、提示词、提供商、模型与质量检查。版本号按「分镜 + 阶段」保持一条连续序列,重跑给出 v2 而不是再铸一个 v1——被驳回的产物会写明它的理由。

任务 · 提示词 · 提供商 · 模型 · 评分

用量只报物理量,不报账单

账本只报可核查的物理量——计费调用次数、重抽次数、提示词字符、产物字节——按阶段、按模型。控制台与 API 里刻意没有任何金额字段,因为平台看不见你的厂商实际向你收多少。

调用 · 重抽 · 字符 · 字节

它跑在你跑的地方

你的 Postgres、你的 Redis、你的磁盘或 S3 桶、你的密钥——落盘加密,且任何读取接口都不会回传它。应用里没有埋点或遥测代码:唯一的外发调用只指向你绑定的模型厂商和你配置的存储端点。

docker compose up -d

对照同类

生成器交给你片段,这里交给你一集。

头部产品与高星开源工具都擅长用一句提示做出一段内容——一键出片的需求是真实的。MakeMovie 从一段文字开始,到母版加一份剪辑列表结束,中间由人签字放行。

产品 你喂给它什么 跑在哪里 花费前的人工审批 每个产物的血缘
MakeMovie 小说节选、故事梗概或剧本 你自己的机器或服务器 —— Compose 栈,Apache-2.0 有 —— 内置在生产流程里 有 —— 任务、提示词、模型与评分
LTX Studio 剧本、概念、图像或视频 托管服务 — —
Runway 每次生成一段提示或参考素材 托管服务 — —
HeyGen 剧本或提示,数字人主导 托管服务 在其企业版页面写明 在其企业版页面写明
可灵 每个片段一段提示或图像 托管服务 — —
Pika 每个工具一段提示或图像 托管服务 — —
MoneyPrinterTurbo 一个主题或关键词——自动写文案、检索现成素材、配解说 你自己的机器——开源(MIT) — —
ShortGPT 一个主题——自动化框架:LLM 写脚本、找素材、配音、自动剪辑 你自己的机器——开源(MIT,Python 框架) — —
NarratoAI 现成的视频素材——AI 写解说词并自动剪辑成片 你自己的机器——开源,本地部署 — —

MakeMovie

你喂给它什么
小说节选、故事梗概或剧本
跑在哪里
你自己的机器或服务器 —— Compose 栈,Apache-2.0
花费前的审批
有 —— 内置在生产流程里
每个产物的血缘
有 —— 任务、提示词、模型与评分

LTX Studio

你喂给它什么
剧本、概念、图像或视频
跑在哪里
托管服务
花费前的审批
—
每个产物的血缘
—

Runway

你喂给它什么
每次生成一段提示或参考素材
跑在哪里
托管服务
花费前的审批
—
每个产物的血缘
—

HeyGen

你喂给它什么
剧本或提示,数字人主导
跑在哪里
托管服务
花费前的审批
在其企业版页面写明
每个产物的血缘
在其企业版页面写明

可灵

你喂给它什么
每个片段一段提示或图像
跑在哪里
托管服务
花费前的审批
—
每个产物的血缘
—

Pika

你喂给它什么
每个工具一段提示或图像
跑在哪里
托管服务
花费前的审批
—
每个产物的血缘
—

MoneyPrinterTurbo

你喂给它什么
一个主题或关键词——自动写文案、检索现成素材、配解说
跑在哪里
你自己的机器——开源(MIT)
花费前的审批
—
每个产物的血缘
—

ShortGPT

你喂给它什么
一个主题——自动化框架:LLM 写脚本、找素材、配音、自动剪辑
跑在哪里
你自己的机器——开源(MIT,Python 框架)
花费前的审批
—
每个产物的血缘
—

NarratoAI

你喂给它什么
现成的视频素材——AI 写解说词并自动剪辑成片
跑在哪里
你自己的机器——开源,本地部署
花费前的审批
—
每个产物的血缘
—

收录标准:这张表只收「把文字或素材自动变成成片」的同工种产品。模型权重仓库(Wan、Open-Sora、CogVideoX、HunyuanVideo……)、用代码写视频的渲染框架(Remotion、Revideo……)和字幕/翻译流水线(VideoLingo……)星数都不低,但它们是另外的工种,各有其强,不在同一张表里比。GitHub 上同类管线有几十个,这张表选的是各自路径上最有代表性的;想让某一个进来,提个 issue 说它该替换谁。

这张表怎么来的:2026 年 10 月 5 日,我们逐条读了各家自己的公开页面——LTX Studio 的 /studio、Runway 的 /enterprise、HeyGen 的首页与企业页、可灵与 Pika 的首页。破折号表示那一页没有写明,不是对软件本身的断言。LTX 确实以社区许可开放模型权重供本地与隔离网络部署,那是模型权重,不是它的 Studio 平台。

生产流程

八件事,按这个顺序发生。

每一件都是页面上的一个位置,而不是藏在背后的接口调用。你可以逐阶段走,也可以让文字阶段自行接力。

01

剧本

粘贴或上传原文、审批它,平台据此撰写拍摄剧本:场景、对白、说话人——用你为项目设定的内容语言,并按整集目标时长预算,口径是每分钟 350 个朗读字符。

  • 整本小说按章节拆开;两枚一键预设会提出分集边界,之后仍可原地编辑。
  • 编辑已审批的剧本会重算校验和并退回草稿,于是一次改动不可能绕过第二次审批。
02

角色、道具与场景

拆解阶段抽出出场的人与物,为每个资产建一张档案。它的参考图按项目的风格预设绘制,于是定妆照、画面与母版共用同一套色彩 DNA,而不是每一镜都在跟自己的参考图唱反调。

  • 形象先由你审批才会被使用,声音绑定在角色身上而不是某句台词上。
  • 文字里出现了人却没点名角色的分镜,会注入这些角色的已审批形象;没有绑定任何资产的分镜会被拦下,以免在一张没有形象锚点的画面上烧掉配额。
03

逐镜分镜

每个分镜携带自己的场景、空间锚点、台词与说话人、它出自原文的哪一句,以及进与出的衔接。台词是数据而非装饰:只有真正开口说话的分镜才欠一条配音任务。

  • 制作台打开在「镜头」上而不是引擎阶段上——一条节奏条把整集画成一根横条,每一格按是谁在拿着这一镜上色。
04

先首帧,再运动

首帧由这一镜自己的文字与它绑定的参考图产出;绑定图生视频模型后,片段再从这张首帧出发。两者都是带计划任务数的批次,于是这一刀多大,你在按下之前就知道。

  • 已审批的文字与真正的调用之间站着一层守卫链:从未点名视觉风格的提示词会追加项目风格;描述一连串动作的首帧提示词只告警,而不是被渲染成一张拼贴。
05

配音与配乐

声音属于角色:上传一段参考音频或直接在浏览器里录一段,给出其中所读的文本,此后该角色说的每一镜都从它取声——本集与后续各集都是。第一镜使用之前,绑定的声音可以当场试听。

  • 本机引擎优先。说话角色已绑定声音时,worker 先试内嵌的 Qwen3-TTS MLX 引擎,再试本机 Voicebox,最后才回落到你绑定的云端 TTS。克隆跑在你自己的硬件上,需要 Apple Silicon 或 NVIDIA 显卡;控制台会检测芯片,检测不过时写明原因,而不是给你一个下载按钮。
  • 每镜四种声音来源,都写进交付清单:合成配音、片段原生音频、两者叠加、你导入的音频文件——外加配音下面一条可导入的环境音轨,以及在对白下方自动闪避而不是与它抢的配乐。
06

评审,并钦定进剪辑的那一版

每个阶段的产出都保持可编辑,每次重跑都保留上一版。每一镜由你决定哪张首帧开场、哪个片段进剪辑、哪条配音被听见——合成读的是你的选择,而不是碰巧最新的那个文件。

  • 每帧过质量闸门评分;被驳回的产物会展示失败的几次尝试与评审的扣分点,返工时把这些理由带进下一条提示词,而不是无方向盲抽。重抽上限是项目设置:1 到 3 次,默认 2 次。
  • 归因不说谎:因为厂商免费额度耗尽而死掉的任务报成额度,而不是报成「评审没看上」。
  • 预映在浏览器里用已有产物拼出一条静音粗剪,于是在为缺失部分花钱之前,你就能感觉到整集的节奏。
07

母版、字幕与交接

FFmpeg 剪出单集母版:每个分镜贡献自己成功的片段,台词音频按该镜实测时长补齐或裁齐,对白以软字幕轨承载,画面因此无需重编码。有台词却缺配音的分镜会挡住合成——但仅在已绑定语音模型之后,从未开通音频的部署仍可交付。

  • 母版之外的剪辑交接:由同一份分镜清单生成 EDL 与 FCP XML 剪辑列表,整集可以交给真正的剪辑师收尾,而不是按生产线的剪法直接接受。
  • 交付由验收闸门把关并版本化:一份 JSON 清单列出每个分镜的产物与校验和,与质量统计并列。合成未完成或仍有在线分镜缺少成功片段时,打包会被拒绝并给出原因。
  • 交付文件携带 AI 生成内容标识,依中国 GB 45438-2025 生成合成内容标识规范;清单记录标识是否写入,未写入时记录降级原因——绝不静默通过。
08

九个模型槽位,和可信的就绪度

剧本文本、分镜文本、图像生成、视频(文生视频、图生视频、参考生视频)、语音、音乐与视觉审核。按组织绑成一条有序回退链,并可按项目覆盖。

  • 槽位只在厂商自己确认之后才变成就绪:探测校验凭据本身,验证该模型按名字单独校验一个模型,而被点名拒绝的模型会撤销它的就绪标记。调不通的密钥永远不会被算成可用。
  • 内置目录:阿里云百炼 / DashScope、火山方舟 Seedance、快手可灵、OpenAI、Google、Anthropic、面向私有端点的 OpenAI 兼容网关,以及一个 mock 提供商。单个 DashScope 连接即可覆盖全部 4 个必需槽位与所有可选槽位。
  • 另外五个可选槽位缺的是产出,不是闸门:不绑语音剪出的是静音母版,不绑音乐没有配乐床,不绑视觉审核的画面会标注为未审核,而不是未经审视地通过。
MakeMovie 模型中心的就绪度标签页:上方是四步配置流程说明,下方逐个能力槽位标为就绪,横幅显示必填 4/4 已配齐。
配好密钥后的模型中心:每个能力槽位解析到绑定在它上面的模型,而一个槽位只有在厂商自己确认过权限后才会变成就绪。

安装

在你自己的机器上跑起来。

一个仓库,三条入口。下面每一条都抄自 README——如果这里某一步咬人,该读的是 README。

一切都进容器

用于评估或部署。Postgres、Redis、MinIO、API、worker 与控制台一起起来。

git clone https://github.com/DreamOfXM/makemovie.git
cd makemovie
cp .env.example .env   # 然后设置 STUDIO_MASTER_KEY:
                       # openssl rand -hex 32
docker compose --profile full up -d --build
# 数据库迁移在 api 容器启动时自动执行,起来即用

控制台在 http://localhost:3010,API 在 4010。国内网络拉不动镜像或依赖时,前面加 NPM_REGISTRY=https://registry.npmmirror.com。

应用留在宿主机

日常开发循环:依赖进容器,三个应用跑在本地,热重载还是你的。

pnpm install
cp .env.example .env
pnpm --filter @studio/db generate
pnpm build
docker compose up -d        # postgres, redis, minio
pnpm db:migrate
pnpm dev                    # api :4010 · web :3010 · worker

Postgres 与 Redis 对外发布在宿主端口 5433 与 6380,以免撞上你本机已有的安装。

零密钥走完全链

仓库自带 mock 提供商。把 mock-* 模型绑定到槽位,各阶段即以合成产物完成——不出网、不注册、不花钱。

模型中心 → 绑定:
  mock-script      mock-storyboard
  mock-image       mock-t2v   mock-i2v
  mock-tts         mock-music mock-vlm

装了 FFmpeg 的环境下,mock-tts 与 mock-music 生成真正可听的合成音而非占位文件,于是配音、配乐与字幕链路也能离线走完。它是测试替身,不是结果。

Node.js 22.18+ pnpm 9 PATH 中的 FFmpeg 6+ Docker 或任意 Compose 运行时 中英双语控制台 深色与浅色主题

完整快速开始、配置参考与两种自托管模式都在 README 里。FFmpeg 负责剪出母版并写入标识,worker 镜像已经带了它。

常见问题

值得先问的几件事。

这跟 LTX Studio、Runway、HeyGen 有什么区别?

那些产品围绕一次生成构建:你描述一个镜头,它把它交回来。形状上最接近的是 LTX Studio——它同样讲述一条从概念到成片的路径,并提供分镜板、时间线与声音设计——但你购买的基本单位仍然是「一次生成」。

MakeMovie 的基本单位是一集。它从你拥有的一段文字开始,把台词按分镜保存为结构化数据,每个阶段挡在你的审批之后,结束时交出的是一份母版、一条字幕轨、剪辑列表与带校验和的清单。它还可自托管、Apache-2.0,上面几家都不是。今天只需要一个好片段,去用生成器;需要四十个片段凑成一集连贯的、有人能签字的内容,那是它的用途。

体验它需要 API Key 吗?

不需要。把内置的 mock 提供商绑到每个槽位,整条链就会跑完:剧本、拆解、资产、首帧、片段、配音、配乐、合成、交付。产出是合成的测试素材——mock-tts 与 mock-music 生成可听的声音而不是占位字节——所以它适合走通流程,不适合交出去。真实产出需要你绑定的模型,而那家厂商是在这个应用之外向你计费。

它会告诉我某件事花多少钱吗?

它会告诉你某件事消耗了什么:计费调用次数、重抽次数、提示词字符、产物字节,按阶段按模型,单集或整个项目。控制台与 API 里刻意没有金额字段——平台看不见你的厂商定价方案,而一个长得像账单的估算比没有更糟。

它在你花出去之前会做的:预审门写明任务数与仍缺输入的分镜,用量看板里有一行写着绑定的模型还剩多少次免费额度。

哪些部分还没做?
  • 参考生视频槽位会像其他槽位一样列出并绑定,但链路还没消费它——片段由这一镜自己的首帧驱动,而不是由它的班底驱动。
  • OpenAI、Google 与 Anthropic 三个适配器按厂商公开文档接线,并由对着桩化 HTTP 的契约测试覆盖。它们还没在真实账号上跑过,目录里每一条都这样写着。
  • 音频质检停在响度地板:没有逐镜响度对齐,也没有把字幕烧进画面(而不是作为软字幕轨交付)的选项。
  • 视觉审核的合格线固定在 70 分,尚未按真实视觉模型的评分校准。
  • 深度内容审核——原文覆盖率、生成后的跨镜连续性——已被写进提示词,但还没有生成之后的验证环节。
可以多人一起用吗?

可以。多租户组织,五种角色(OWNER / ADMIN / EDITOR / REVIEWER / VIEWER),基于数据库的会话与 Argon2id 密码哈希,成员管理并在移除时吊销会话,以及一条完整审计日志记录状态流转与特权操作——每条动作都以人话标签呈现,而不是把内部标识符直接甩在界面上。

控制台本身提供中文与英文、深色与浅色主题。内容用哪种语言撰写是项目设置,与控制台的显示语言无关。

我的东西会离开这台机器吗?

只有你发给你绑定的模型厂商的那些调用,以及你把存储指向 S3 端点时的产物字节。MakeMovie 不训练模型,应用里没有埋点或遥测代码。提供商凭据以 AES-256-GCM 落盘加密,任何读取接口都不会回传它。

装起来,或者和我们一起建它。

一个仓库,Apache-2.0,没有付费档位,也没有托管版。这是一套还在生长的开源生产线——无论你热爱视频制作,还是热爱技术,都欢迎加入建设:提一个 issue 指出毛边,投一个 PR 把它修掉,或者写下你想要的工作流。目标只有一个:把它建成一套更友好、更灵活、能服务更多人的视频制作平台。

也要坦白一件事:受经费所限,本项目的测试还远谈不上彻底——真实模型、不同组合、各种边界,覆盖到的只是其中一部分。所以测试恰恰是最需要帮手的地方:用你自己的书跑一遍完整链路,换一个模型试试,拆一本长篇;撞见问题就提 issue,愿意的话顺手修掉再投个 PR。每一次这样的参与,都在替下一个人把路铺平。