ReelAgent
Health Warn
- No license — Repository has no license file
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 11 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
ReelAgent — 自研ReAct Agent驱动的短剧工厂。无LangChain,纯手搓Agent框架。剧本→成片全自动,支持shot级审核重生。
ReelAgent
一句话:把剧本变成短剧。多 LLM 协同、7 阶段全自动 Pipeline、自由对话式 Agent。
演示(Web 前端)
一段视频看懂前端能干什么:新建任务、跑 Pipeline、分镜/视频预览、审核批注、在线剪辑重拼。
https://github.com/user-attachments/assets/36b49224-227f-4453-bbc8-a0ef5994a612
它能做什么
输入一份剧本(txt/docx)或一张参考图,自动产出分集短剧成片或单图小视频:
- 智能摄取:解析剧本 → 分集 + 角色注册表 + 场景表
- 角色/场景生图:多风格底图 + 服装变体 + 场景图
- 逐镜分镜:每集 shot 级视频 prompt,一次请求闭环
- AI 视频生成:Seedance 2.0 系列图生视频,可选新增 Seedance 2.5
- BGM 生成:MiniMax 音乐按情绪分组
- ffmpeg 拼装:视频 + BGM 混音输出 mp4
- AI 审核:成片自动挑硬伤,支持 shot 级重生修复
- Clip Mode:单张参考图直出带原生对白的短视频片段
- 自由对话 Agent:
reel终端里直接聊,自动识图、自动调用工具
Pipeline 是引擎,Agent 是自动驾驶——前者保证稳定产出,后者负责听懂人话并编排。
快速开始
# 1. 安装
pip install -e .
# 2. 配置(可选;AGNES 内置免费 key,可零配置先用)
cp .env.example .env
# 编辑 .env,填入 CLAUDE_API_KEY / KIMI_API_KEY / DEEPSEEK_API_KEY 等
# 3. 启动交互终端
reel
首次启动会引导选择默认 LLM:
🎬 ReelAgent
首次使用,请选择 LLM 模型:
1. AGNES 2.0 Flash(免费,推荐先用)
2. Claude Opus 4.7
3. DeepSeek V4
4. Kimi K2.6
> 1
已选择:agnes
Web 前端(可视化操作台)
浏览器里完成新建任务、跑 Pipeline、分镜/视频预览、审核批注、在线剪辑重拼、画风/提示词/密钥管理,全程无需碰命令行。
环境要求
- Python 3.10+(后端 FastAPI,已随
pip install -e .装好) - Node.js 18+ 与 npm(前端构建)
一键启动(推荐)
run.py 会自动安装前端依赖 + 构建 + 起服务 + 开浏览器,API 和页面同端口:
python run.py # 首次自动 npm install + 构建,默认 http://127.0.0.1:7788
python run.py --build # 强制重新构建前端
python run.py --port 9000 # 自定义端口
开发模式(前端热更新 HMR)
前后端分离:后端 7788,前端 Vite dev server 5173(自动代理 /api、/media 到后端):
python run.py --dev # 一条命令同时起后端 + vite HMR,浏览器开 http://localhost:5173
手动安装 / 启动前端依赖
若想单独操作前端(例如只装依赖或只跑构建):
cd web
npm install # 安装前端依赖
npm run dev # 开发模式(需另起后端:uvicorn server:app --port 7788)
npm run build # 构建到 web/dist(供 run.py 生产模式托管)
npm run preview # 本地预览构建产物
后端可单独启动:uvicorn server:app --reload --port 7788。
前端功能一览
| 页面 | 作用 |
|---|---|
| Dashboard | 任务列表、状态总览、新建入口 |
| 新建任务 | 上传/粘贴剧本,选画风、LLM/生图供应商、分辨率/比例 |
| 任务详情 | 7 阶段时间轴 + 逐阶段视图(摄取/生图/分镜/视频/BGM/成片/审核) |
| 在线剪辑 | 逐镜设入出点、单镜重生、非破坏重拼产出 edited.mp4 |
| 审核批注 | AI 审核清单 + 人工时间轴批注(增删改) |
| 画风库 | 在线编辑 styleconfig.json(自动备份 / 一键回退) |
| 提示词 | 在线编辑 sys-prompt/*.md(自动备份 / 一键回退) |
| 设置 | 读写 .env 密钥(Key 打码显示) |
技术栈:React 18 + Vite + TypeScript + Tailwind + shadcn/Radix UI;后端 FastAPI,用 SSE 推送 Pipeline 进度与 Agent 流式对话。
REPL 自由对话(推荐日常用)
安装后输入 reel 进入自然语言控制台:
> 帮我做一个韩漫风格的霸总短剧
> 剧本在 story.docx
> 用 C:\ReelAgent\TEST.png 做一段 16:9 小视频,女人说"老公..."
> 只跑 stage 1 摄取剧本
> 把第 2 集的视频重跑一下
> 审核一下并自动修复
> 看下状态
> /open
> /exit
当前 Agent 能力
- 自然语言理解:闲聊、脑暴、跑 Pipeline、查状态、改配置都能听懂。
- 自动识图:消息里带上图片路径(如
C:\ReelAgent\TEST.png),Agent 会自动调用analyze_image分析并基于结果回复。 - ReAct 工具调用:需要操作时自动输出 JSON 调用工具,观察结果后再决定下一步。
- 流式输出:最终回复逐字实时打印到终端。
- 技能注入:
sys-prompt/*.md会根据对话主题动态注入到系统提示里(如 clip、角色、场景、分镜等)。 - 会话记忆:
~/.reelagent/session.json保存当前任务、模型、风格、最近 50 轮历史,重启后自动续上。
内置命令
| 命令 | 作用 |
|---|---|
/status |
查看当前任务状态 |
/tasks |
最近任务列表 |
/config style 韩漫 |
修改默认风格 |
/config model agnes |
修改默认模型 |
/model |
快速查看/切换模型 |
/open |
打开当前任务输出目录 |
/help |
帮助 |
/exit |
退出 |
命令参考
pipeline.py(专家模式)
python pipeline.py --scene <任务ID> [选项]
| 参数 | 必填 | 默认 | 说明 |
|---|---|---|---|
--scene |
✅ | — | 任务 ID,产物落 output/<id>/ |
--script |
* | — | 剧本 .docx / .txt(Stage1 需要) |
--style |
styleconfig 默认 | 画风名,如 韩漫 赛博朋克 吉卜力 |
|
--stages |
1,2,3,4,5,6 |
阶段,逗号分隔。7=AI 审核 | |
--llm-provider |
.env |
claude / deepseek / kimi / agnes |
|
--image-provider |
.env |
gemini / openai / seedream(兼容 gpt-image-2) |
|
--image-model |
styleconfig | 覆盖生图模型 | |
--video-model |
styleconfig | 覆盖视频模型 | |
--workers |
200 |
生图/视频并发上限 | |
--force |
关 | 强制重做所选阶段 | |
--polish |
关 | Stage1 前润色剧本 | |
--review |
关 | Stage6 后 AI 审核成片 | |
--auto-fix |
关 | 审核后自动重生问题 shot |
*Stage1 需要
--script,纯跑 Stage4~7 不需要。
agent.py / reel(自然语言 / 交互模式)
# 非交互自然语言
python agent.py --ask "把我新传的都市爱情剧本做成韩漫风格短剧,跑完审核一下"
# 终端交互(推荐)
reel
| 参数 | 必填 | 默认 | 说明 |
|---|---|---|---|
--ask |
* | — | 自然语言指令 |
--task |
* | — | 任务 ID(与 --ask 二选一) |
--script |
— | 剧本文件 | |
--style |
韩漫 / 偏好记忆 |
画风名 | |
--llm-provider |
.env |
claude / deepseek / kimi / agnes |
|
--image-provider |
.env |
gemini / openai / seedream(兼容 gpt-image-2) |
|
--stages |
1,2,3,4,5,6 |
阶段范围 | |
--workers |
50 / 偏好记忆 |
并发数 | |
--force |
关 | 强制重做所选阶段 | |
--polish |
关 | Stage1 前润色剧本 | |
--review |
关 | Stage6 后 AI 审核成片 | |
--auto-fix |
关 | 审核后自动重生问题 shot | |
--reference-image |
— | Clip Mode 外部参考图路径 | |
--video-ratio |
— | 视频比例 16:9 / 9:16 / 1:1 |
|
--video-resolution |
— | 分辨率 480p / 720p / 1080p |
|
--video-duration |
— | 视频时长(秒) | |
--video-prompt |
— | 片段镜头描述 | |
--preserve-style |
关 | 保持参考图原风格 | |
--dialogue |
— | 对白 JSON,如 [{"speaker":"女人","text":"老公..."}] |
|
--choices |
— | 选项列表 JSON 或 | 分隔 |
*
--task与--ask至少提供一个。
7 个 Stage
| # | 名称 | 输入 | 输出 |
|---|---|---|---|
| 1 | 摄取 | 剧本 .docx/.txt | 分集 + 角色 + 场景注册表 |
| 2 | 生图 | 注册表 | 角色底图 + 服装变体 + 场景图 |
| 3 | 分镜 | 注册表 + 图片 | shot 级 video prompt |
| 4 | 视频 | prompt + 参考图 | Seedance 视频片段 |
| 5 | BGM | shot 分组 | MiniMax 背景音乐 |
| 6 | 拼装 | 视频 + BGM | ffmpeg 成片 .mp4 |
| 7 | 审核 | 成片 | AI 硬伤清单 → control.json |
Clip Mode:单图直出小视频
用一张外部参考图直接生成带原生对白的短视频片段,无需完整剧本:
python agent.py --ask "用 C:\ReelAgent\TEST.png 做一段 16:9 的小视频,保持原图风格,女人说\"老公...\",男人说\"别走\",最后弹出选项 A.来吧宝贝 B.我想起来还有工作"
- 参考图默认作为角色底图复用
- 对白按
角色名(音色) {中文台词}格式直接写进 Seedance video_prompt,由模型原生生成口型/对白 - 不再默认 ffmpeg 后期烧字幕(
burn_subtitles仍作为可选工具保留)
常用示例
# 全流程
python pipeline.py --scene my --script story.docx --style 韩漫 --stages 1,2,3,4,5,6
# 只跑视频+拼装+审核
python pipeline.py --scene my --stages 4,5,6,7 --review
# 重跑分镜
python pipeline.py --scene my --stages 3 --force
# 润色粗糙剧本
python pipeline.py --scene my --script rough.txt --polish --style 赛博朋克
# Agent 全自动
python agent.py --task my --script story.docx --style 韩漫
# 自然语言全自动
python agent.py --ask "把我新传的剧本做成韩漫风格短剧"
# 只重跑视频
python agent.py --ask "重跑 my 的视频"
# 审核并自动修复
python agent.py --task my --ask "审核一下,有问题自动修"
# 查看状态
python agent.py --task my --ask "看下状态"
# 终端交互
reel
# Clip Mode
python agent.py --ask "用 C:\\ReelAgent\\TEST.png 做一段 16:9 小视频,保持原图风格,女人说\"老公...\""
# 免费全自动(AGNES 零配置)
python agent.py --task my --script story.docx --llm-provider agnes
LLM / 生图 / 视频 / BGM 供应商
| 类型 | Provider | 说明 |
|---|---|---|
| LLM | Claude Opus 4.7 | 原生多模态,长上下文 |
| DeepSeek V4 | 纯文本高性价比,需 AGNES 识图桥 | |
| Kimi K2.6 | 原生多模态,OpenAI 兼容 | |
| AGNES 2.0 Flash | 内置免费 key,零配置启动 | |
| 生图 | Gemini Nano Banana 2.1 / 2 Lite / Pro / 2 | Google 官方,最多 14 张参考图 |
| GPT Image 2.5 Sunburst / Flare | OpenAI 生图/编辑,最多 16 张参考图;保留 2 / 1.5 | |
| Seedream 5.0 Pro / Flash | 火山引擎 Ark,最多 10 张参考图 | |
| 视频 | Seedance 2.5 / 2.0 / 2.0 Mini / 2.0 Fast | 火山引擎 Ark,按模型选择参考图与时长上限 |
| BGM | MiniMax Music 2.6 | 按情绪分组生成 |
*_BASE_URL / *_MODEL 均可从 .env 覆盖,支持三方代理。
图片与视频模型(2026-11-02 核对)
新模型为新增选项,不替换旧模型或默认配置。新建任务和任务详情中的模型设置均可选择图片/视频模型;任务选择保存到 control.json,重新打开或继续生成时沿用。设置页管理全局模型与 API Key。旧任务不会因为升级代码自动切换模型。
| 模型 ID | 参考图上限 | 输出能力 |
|---|---|---|
gpt-image-2.5-sunburst / gpt-image-2.5-flare |
16 | 自定义尺寸至 4K;auto/low/medium/high/xhigh/max 质量 |
gemini-nano-banana-2.1 / gemini-3-pro-image |
14 | 1K / 2K / 4K |
gemini-3.1-flash-lite-image |
14 | 仅 1K;多图和连续编辑建议选 2.1 / Pro |
doubao-seedream-5-0-pro-260628 / doubao-seedream-5-0-flash-260915 |
10 | 1K / 1.5K / 2K |
doubao-seedance-2-5-260628 |
30 | 4–30 秒或自动;480p / 720p / 1080p |
| Seedance 2.0 系列 | 9 | 4–15 秒或自动;分辨率按具体版本校验 |
GPT Image 2.5 的参考图上限仍为 16 张,不应按版本号推断容量。OpenAI 编辑会按顺序发送全部参考图;各客户端在请求前拒绝超限输入,不静默截断。图片原始产物保留生成分辨率,Seedance 提交时另行压缩参考图副本,不改写原图。
系统提示词按当前模型和任务时长注入镜头预算、参考图预算;参考图绑定顺序保持一致。Seedance 2.5 的接入覆盖现有图片参考视频流程,音视频参考、视频编辑/延长与 MOV 输出未在本次新增。Seedream 接入单图生成/多图参考编辑,未开放图层拆分;其宽高比按官网档位模式写入提示词,由模型确定最终像素。
使用 OpenAI 时配置 OPENAI_API_KEY 与 GPT_IMAGE_MODEL,提供商选择 openai(旧 gpt-image-2 名称兼容);使用 Seedream 时配置 SEEDREAM_API_KEY / SEEDREAM_MODEL。Seedance 使用 SEEDANCE_API_KEY。各账户仍需具备所选模型的访问权限。自定义代理模型 ID 不代表已验证能力;需要按供应商实际契约配置。
官方依据:OpenAI 图片接口、图片提示词与参数、Gemini 图片生成、Seedream 5.0、Seedance API、Seedance 2.5 提示词。
风格库
配置在 styleconfig.json,当前内置:韩漫、美漫、日漫、美式厚涂、维多利亚 2D、3D 皮克斯、爱死机、古风 3D、赛博朋克、吉卜力、2D 像素等,可自行增删。
项目结构
ReelAgent/
├── pipeline.py # 7 Stage 生产引擎 + LLM/生图/视频客户端封装
├── reelagent/ # 新 Agent 实现
│ ├── agent.py # ReelAgent 主类(ReAct + 流式 + 识图)
│ ├── intent.py # 自然语言意图解析器
│ ├── planner.py # 执行计划器(DAG)
│ ├── executor.py # ReAct 执行引擎 + Tool Registry 桥接
│ ├── tools.py # Tool Registry 与本地工具实现
│ ├── skills.py # sys-prompt/*.md 作为 skill 动态注入
│ ├── review_loop.py # 审核→重生闭环
│ ├── prefs.py # 用户偏好记忆
│ ├── report.py # 结构化报告
│ └── repl.py # 终端自然语言交互 REPL
├── agent_state.py # AgentState / Tool / ToolStatus
├── agent_core.py # 兼容层
├── agent.py # Agent CLI 入口
├── server.py # FastAPI 后端(任务/Pipeline/Agent/审核/剪辑 API,SSE)
├── run.py # Web 一键启动(构建前端 + 起服务 + 开浏览器)
├── web/ # Web 前端(React + Vite + TS + Tailwind + shadcn)
│ ├── src/pages/ # Dashboard / 新建任务 / 任务详情 / 画风 / 提示词 / 设置
│ ├── src/views/ # 摄取/生图/分镜/视频/BGM/成片/剪辑/审核 视图
│ ├── src/api/ # 后端 API 封装
│ └── dist/ # 构建产物(生产模式由 server.py 托管)
├── ai_review.py # AI 审核
├── styleconfig.json # 画风库
├── sys-prompt/ # 提示词工程(skill)
├── tests/ # 单元测试(60 passed)
├── .env.example
├── pyproject.toml
└── requirements.txt
记忆系统
| 位置 | 作用 | 说明 |
|---|---|---|
~/.reelagent/prefs.json |
用户偏好 | 默认风格、模型、并发数、recent_tasks |
~/.reelagent/session.json |
REPL 会话 | 当前 task_id、模型、风格、最近 50 轮对话 |
output/<task_id>/control.json |
任务数据 | 剧本、角色、场景、episodes、shots、状态 |
reelagent/agent.py 内 _image_analysis_cache |
图片分析缓存 | 同一张图同 mtime 不重复调用 LLM |
设计要点
- 自研 Agent 框架:没有使用 LangChain / AutoGen / LlamaIndex,直接基于 ReAct + Tool Registry 实现。
- 脏标记级联:上游修改自动标记下游阶段失效。
- 多供应商工厂:LLM / 生图 / 视频 / BGM 统一接口。
- 幂等续写:中断后从断点恢复。
- 审核闭环:AI 逐镜审核 + shot 级重生。
- 供应商可观测:每个 shot 记录 task_id / request_id / errors。
- Windows 适配:ffmpeg 路径转义、surrogate 编码清理等针对 Windows 终端做了处理。
Roadmap / TODO
- 开发 Web 前端页面,支持可视化剧本编辑、分镜预览、审核批注、在线剪辑
- 兼容 Claude Code、Cursor、Windsurf 等主流 Agent 编辑器的调用规范
- 多角色/多场景一致性与角色锁定优化
- 视频生成失败自动重试与异地容灾
- 更细粒度的成本/耗时统计面板
License
MIT
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found