# ArcReel **Repository Path**: cellinlab/ArcReel ## Basic Information - **Project Name**: ArcReel - **Description**: AI Agent 驱动的开源视频生成工作台 — 小说→角色/场景/道具设计→剧本→分镜图→视频,跨镜头角色与场景一致 | Open-source AI video workspace powered by AI Agents, Nano Banana 2 & Veo 3.1 / Grok / Seedance / OpenAI - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2026-04-09 - **Last Updated**: 2026-05-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README


ArcReel Logo
ArcReel

开源 AI 视频生成工作台 — 从小说到短视频,全程 AI Agent 驱动

Open-source AI Video Generation Workspace — Novel to Short Video, Powered by AI Agents

Quick Start License Stars Docker Tests

Python React FastAPI Claude Agent SDK Gemini 火山方舟 Grok OpenAI

ArcReel 工作台

--- ## 核心能力

🤖 AI Agent 工作流

基于 Claude Agent SDK,编排 Skill + 聚焦 Subagent 多智能体协作,自动完成从剧本创作到视频合成的完整流水线

🎨 多供应商图像生成

Gemini火山方舟GrokOpenAI 及自定义供应商,角色设计图确保角色一致性,线索追踪保证道具/场景跨镜连贯

🎬 多供应商视频生成

Veo 3.1SeedanceGrokSora 2 及自定义供应商,全局/项目级可切换

⚡ 异步任务队列

RPM 速率限制 + Image/Video 独立并发通道,lease-based 调度,支持断点续传

🖥️ 可视化工作台

Web UI 管理项目、预览素材、版本回滚、实时 SSE 任务追踪,内置 AI 助手
## 工作流程 ```mermaid graph TD A["📖 上传小说"] --> B["📝 AI Agent 生成分镜剧本"] B --> C["👤 生成角色设计图"] B --> D["🔑 生成线索设计图"] C --> E["🖼️ 生成分镜图片"] D --> E E --> F["🎬 生成视频片段"] F --> G["🎞️ FFmpeg 合成最终视频"] F --> H["📦 导出剪映草稿"] ``` ## 快速开始 ### 默认部署(SQLite) ```bash git clone https://github.com/ArcReel/ArcReel.git cd ArcReel/deploy cp .env.example .env docker compose up -d # 访问 http://localhost:1241 ``` ### 生产部署(PostgreSQL) ```bash cd ArcReel/deploy/production cp .env.example .env # 需设置 POSTGRES_PASSWORD docker compose up -d ``` 首次启动后,使用默认账号登录(用户名 `admin`,密码在 `.env` 中通过 `AUTH_PASSWORD` 设置;未设置则首次启动时自动生成并回写到 `.env`),前往 **设置页**(`/settings`)完成配置: 1. **ArcReel 智能体** — 配置 Anthropic API Key(驱动 AI 助手),支持自定义 Base URL 和模型 2. **AI 生图/生视频** — 配置至少一个供应商的 API Key(Gemini / 火山方舟 / Grok / OpenAI),或添加自定义供应商 > 📖 详细步骤请参考 [完整入门教程](docs/getting-started.md) ## 功能特性 - **完整生产流水线** — 小说 → 剧本 → 角色设计 → 分镜图片 → 视频片段 → 成片,一键编排 - **多智能体架构** — 编排 Skill 检测项目状态并自动调度聚焦 Subagent,每个 Subagent 独立完成一项任务后返回摘要 - **多供应商支持** — 图片/视频/文本生成均支持 Gemini、火山方舟、Grok、OpenAI 四大预置供应商,全局/项目级可切换 - **自定义供应商** — 接入任何 OpenAI 兼容 / Google 兼容 API(如 Ollama、vLLM、第三方中转),自动发现可用模型并分配媒体类型,与预置供应商享有同等功能 - **两种内容模式** — 说书模式(narration)按朗读节奏拆分片段,剧集动画模式(drama)按场景/对话结构组织 - **渐进式分集规划** — 人机协作切分长篇小说:peek 探测 → Agent 建议断点 → 用户确认 → 物理切分,按需制作 - **风格参考图** — 上传风格图,AI 自动分析并统一应用到所有图片生成,确保全项目视觉一致 - **角色一致性** — AI 先生成角色设计图,后续所有分镜和视频均参考该设计 - **线索追踪** — 关键道具、场景元素标记为"线索",跨镜头保持视觉连贯 - **版本历史** — 每次重新生成自动保存历史版本,支持一键回滚 - **多供应商费用追踪** — 图片/视频/文本全部纳入费用计算,按供应商分策略计费,不同币种分别统计 - **剪映草稿导出** — 按集导出剪映草稿 ZIP,支持剪映 5.x / 6+([操作指南](docs/jianying-export-guide.md)) - **项目导入/导出** — 整个项目打包归档,方便备份和迁移 ## 供应商支持 ArcReel 通过统一的 `ImageBackend` / `VideoBackend` / `TextBackend` 协议,支持多个预置供应商和自定义供应商,可在全局或项目级别切换: ### 图片供应商 | 供应商 | 可用模型 | 能力 | 计费方式 | |--------|----------|------|----------| | **Gemini** (Google) | Nano Banana 2, Nano Banana Pro | 文生图、图生图(多参考图) | 按分辨率查表 (USD) | | **火山方舟** | Seedream 5.0, Seedream 5.0 Lite, Seedream 4.5, Seedream 4.0 | 文生图、图生图 | 按张计费 (CNY) | | **Grok** (xAI) | Grok Imagine Image, Grok Imagine Image Pro | 文生图、图生图 | 按张计费 (USD) | | **OpenAI** | GPT Image 1.5, GPT Image 1 Mini | 文生图、图生图(多参考图) | 按张计费 (USD) | ### 视频供应商 | 供应商 | 可用模型 | 能力 | 计费方式 | |--------|----------|------|----------| | **Gemini** (Google) | Veo 3.1, Veo 3.1 Fast, Veo 3.1 Lite | 文生视频、图生视频、视频延展、负面提示词 | 按分辨率 × 时长查表 (USD) | | **火山方舟** | Seedance 2.0, Seedance 2.0 Fast, Seedance 1.5 Pro | 文生视频、图生视频、视频延展、音频生成、种子控制、离线推理 | 按 token 用量 (CNY) | | **Grok** (xAI) | Grok Imagine Video | 文生视频、图生视频 | 按秒计费 (USD) | | **OpenAI** | Sora 2, Sora 2 Pro | 文生视频、图生视频 | 按秒计费 (USD) | ### 文本供应商 | 供应商 | 可用模型 | 能力 | 计费方式 | |--------|----------|------|----------| | **Gemini** (Google) | Gemini 3.1 Flash, Gemini 3.1 Flash Lite, Gemini 3 Pro | 文本生成、结构化输出、视觉理解 | 按 token 用量 (USD) | | **火山方舟** | Doubao Seed 系列 | 文本生成、结构化输出、视觉理解 | 按 token 用量 (CNY) | | **Grok** (xAI) | Grok 4.20, Grok 4.1 Fast 系列 | 文本生成、结构化输出、视觉理解 | 按 token 用量 (USD) | | **OpenAI** | GPT-5.4, GPT-5.4 Mini, GPT-5.4 Nano | 文本生成、结构化输出、视觉理解 | 按 token 用量 (USD) | ### 自定义供应商 除预置供应商外,可接入任何 **OpenAI 兼容** 或 **Google 兼容** API: - 在设置页添加自定义供应商,填入 Base URL 和 API Key - 自动调用 `/v1/models` 发现可用模型,按名称推断媒体类型(图片/视频/文本) - 与预置供应商享有同等功能:全局/项目级切换、费用追踪、版本管理 供应商选择优先级:项目级设置 > 全局默认。切换供应商时通用设置(分辨率、宽高比、音频等)直接沿用,供应商特有参数保留。 ## 交流群 扫码加入飞书交流群,获取帮助和最新动态:

飞书交流群二维码

## AI 助手架构 ArcReel 的 AI 助手基于 Claude Agent SDK 构建,采用**编排 Skill + 聚焦 Subagent** 的多智能体架构: ```mermaid flowchart TD User["用户对话"] --> Main["主 Agent"] Main --> MW["manga-workflow
编排 Skill"] MW -->|"状态检测"| PJ["读取 project.json
+ 文件系统"] MW -->|"dispatch"| SA1["analyze-characters-clues
全局角色/线索提取"] MW -->|"dispatch"| SA2["split-narration-segments
说书模式片段拆分"] MW -->|"dispatch"| SA3["normalize-drama-script
剧集动画规范化"] MW -->|"dispatch"| SA4["create-episode-script
JSON 剧本生成"] MW -->|"dispatch"| SA5["资产生成 Subagent
角色/线索/分镜/视频"] SA1 -->|"摘要"| Main SA4 -->|"摘要"| Main Main -->|"展示结果
等待确认"| User ``` **核心设计原则**: - **编排 Skill(manga-workflow)** — 具备状态检测能力,自动判断项目当前阶段(角色设计 / 分集规划 / 预处理 / 剧本生成 / 资产生成),dispatch 对应的 Subagent,支持从任意阶段进入和中断恢复 - **聚焦 Subagent** — 每个 Subagent 只完成一项任务后返回,小说原文等大量上下文留在 Subagent 内部,主 Agent 只收到精炼摘要,保护上下文空间 - **Skill vs Subagent 边界** — Skill 负责确定性脚本执行(API 调用、文件生成),Subagent 负责需要推理分析的任务(角色提取、剧本规范化) - **阶段间确认** — 每个 Subagent 返回后,主 Agent 向用户展示结果摘要并等待确认,确认后才进入下一阶段 ## OpenClaw 集成 ArcReel 支持通过 [OpenClaw](https://openclaw.ai) 等外部 AI Agent 平台调用,实现自然语言驱动的视频创作: 1. 在 ArcReel 设置页生成 API Key(`arc-` 前缀) 2. 在 OpenClaw 中加载 ArcReel 的 Skill 定义(访问 `http://your-domain/skill.md` 自动获取) 3. 通过 OpenClaw 对话即可创建项目、生成剧本、制作视频 技术实现:API Key 认证(Bearer Token)+ 同步 Agent 对话端点(`POST /api/v1/agent/chat`),内部对接 SSE 流式助手并收集完整响应返回。 ## 技术架构 ```mermaid flowchart TB subgraph UI["Web UI — React 19"] U1["项目管理"] ~~~ U2["素材预览"] ~~~ U3["AI 助手"] ~~~ U4["任务监控"] end subgraph Server["FastAPI Server"] S1["REST API
路由分发"] ~~~ S2["Agent Runtime
Claude Agent SDK"] S3["SSE Stream
实时状态推送"] ~~~ S4["Auth
JWT + API Key"] end subgraph Core["Core Library"] C1["VideoBackend 抽象层
Gemini · 火山方舟 · Grok · OpenAI · 自定义"] ~~~ C2["ImageBackend 抽象层
Gemini · 火山方舟 · Grok · OpenAI · 自定义"] C5["TextBackend 抽象层
Gemini · 火山方舟 · Grok · OpenAI · 自定义"] ~~~ C3["GenerationQueue
RPM 限速 · Image/Video 通道"] C4["ProjectManager
文件系统 + 版本管理"] end subgraph Data["数据层"] D1["SQLAlchemy 2.0 Async ORM"] ~~~ D2["SQLite / PostgreSQL"] D3["Alembic 迁移"] ~~~ D4["UsageTracker
多供应商费用追踪"] end UI --> Server --> Core --> Data ``` ## 技术栈 | 层级 | 技术 | |------|------| | **前端** | React 19, TypeScript, Tailwind CSS 4, wouter, zustand, Framer Motion, Vite | | **后端** | FastAPI, Python 3.12+, uvicorn, Pydantic 2 | | **AI 智能体** | Claude Agent SDK (Skill + Subagent 多智能体架构) | | **图像生成** | Gemini (`google-genai`), 火山方舟 (`volcengine-python-sdk[ark]`), Grok (`xai-sdk`), OpenAI (`openai`) | | **视频生成** | Gemini Veo 3.1 (`google-genai`), 火山方舟 Seedance 2.0/1.5 (`volcengine-python-sdk[ark]`), Grok (`xai-sdk`), OpenAI Sora 2 (`openai`) | | **文本生成** | Gemini (`google-genai`), 火山方舟 (`volcengine-python-sdk[ark]`), Grok (`xai-sdk`), OpenAI (`openai`), Instructor (结构化输出降级) | | **媒体处理** | FFmpeg, Pillow | | **ORM & 数据库** | SQLAlchemy 2.0 (async), Alembic, aiosqlite, asyncpg — SQLite (默认) / PostgreSQL (生产) | | **认证** | JWT (`pyjwt`), API Key (SHA-256 哈希), Argon2 密码哈希 (`pwdlib`) | | **部署** | Docker, Docker Compose(`deploy/` 默认, `deploy/production/` 含 PostgreSQL) | ## 文档 - 📖 [完整入门教程](docs/getting-started.md) — 从零开始的手把手指南 - 📦 [剪映草稿导出指南](docs/jianying-export-guide.md) — 将视频片段导入剪映桌面版进行二次编辑 - 💰 [Google GenAI 费用说明](docs/google-genai-docs/Google视频&图片生成费用参考.md) — Gemini 图像 / Veo 视频生成费用参考 - 💰 [火山方舟费用说明](docs/ark-docs/火山方舟费用参考.md) — 火山方舟视频 / 图片 / 文本模型费用参考 ## 贡献 欢迎贡献代码、报告 Bug 或提出功能建议! ### 本地开发环境 ```bash # 前置要求:Python 3.12+, Node.js 20+, uv, pnpm, ffmpeg # 安装依赖 uv sync cd frontend && pnpm install && cd .. # 初始化数据库 uv run alembic upgrade head # 启动后端 (终端 1) uv run uvicorn server.app:app --reload --port 1241 # 启动前端 (终端 2) cd frontend && pnpm dev # 访问 http://localhost:5173 ``` ### 运行测试 ```bash # 后端测试 python -m pytest # 前端类型检查 + 测试 cd frontend && pnpm check ``` ## 许可证 [AGPL-3.0](LICENSE) ---

如果觉得项目有用,请给个 ⭐ Star 支持一下!