写故事 → 拆镜头 → AI 生成 → 配音 → 发布,全自动一人公司视频工厂
| Painterly 3D Noir 风格 (E01) | Painterly 3D Noir 风格 (E03) |
|---|---|
![]() |
![]() |
| E01 · 00:24 · 1280×720 | E03 · 01:31 · 1280×720 |
🎥 5 集完整漫剧已产出 — 《我变成僵尸后全校跪求我别死》全 5 集,每集 6 个分镜,总计 4 分 24 秒 完整视频内容。 风格: Painterly 3D Noir (
#1A1A2E#16213E#E94560#0F3460#FFD700) 产出路径:state/releases/·state/produced_videos/
AIComics 是一个全本地运行的 AI 漫剧创作系统。你只需要有一个故事想法,系统会帮你:
| 环节 | 说明 | 技术 |
|---|---|---|
| 📝 写剧本 | 设定世界观、角色、剧情,自动生成分镜脚本 | 大语言模型 |
| 🎨 出画面 | 每个分镜生成动漫风格的关键帧图片 | ComfyUI + SDXL |
| 🔊 配配音 | 每个分镜生成中文语音旁白 | Piper TTS |
| 🎬 做视频 | 图片+配音合成完整剧集 | FFmpeg |
| 📡 发平台 | 一键发布到小红书/B站/抖音 | social-auto-upload |
当前成品示例: 《我变成僵尸后全校跪求我别死》E01-E05(30 张关键帧 + 30 段配音 + 5 集完整视频)
graph TB
subgraph User["🎭 用户层"]
CLI["CLI 命令行"]
WEB["Web 创作台<br/>(React SPA)"]
API["REST API<br/>(FastAPI)"]
end
subgraph Core["⚙️ 核心引擎 src/aicomic/"]
direction TB
CLI_CORE["cli/<br/>入口 & 命令"]
CORE_BP["core/<br/>业务逻辑<br/>项目/剧集/分镜/版本"]
PROV["providers/<br/>Provider 抽象层<br/>ComfyUI / Piper /<br/>OpenAI / Seedance"]
CHAR["characters/<br/>角色系统<br/>一致性/提示词注入"]
VIDEO_SYNTH["video_synthesis/<br/>视频合成管线<br/>图片→场景→字幕→配音→合成"]
UTILS["utils/<br/>工具函数"]
CLI_CORE --> CORE_BP
CORE_BP --> PROV
CORE_BP --> CHAR
CORE_BP --> VIDEO_SYNTH
end
subgraph Providers["🔌 Provider 插件"]
COMFY["ComfyUI<br/>✨ 图片生成"]
PIPER["Piper TTS<br/>🔊 中文配音"]
OPENAI["OpenAI/DALL·E<br/>🎨 备选生图"]
SEEDANCE["Seedance<br/>🎬 云视频合成"]
MANUAL["手动模式<br/>📁 本地资产导入"]
end
subgraph Output["📦 产出层"]
IMAGES["关键帧图片"]
AUDIO["语音旁白"]
VIDEO["合成视频 MP4<br/>state/releases/"]
PUBLISH["发布包<br/>小红书/B站/抖音"]
end
subgraph Automation["🔄 自动循环"]
VF_LOOP["vf_master_loop<br/>自动生产循环<br/>30分钟/轮"]
MONEY_LOOP["money_loop<br/>自动变现循环"]
STYLE_ROTATION["风格轮换<br/>自动切换色板/风格"]
end
User --> Core
PROV --> Providers
Providers --> Output
Output --> PUBLISH
VF_LOOP --> Core
MONEY_LOOP --> Output
STYLE_ROTATION --> VF_LOOP
flowchart LR
A["📖 故事蓝图"] --> B["episode_manifest.json"]
B --> C["build-season-jobs"]
C --> D["build-provider-requests"]
D --> E["execute-provider-requests"]
E --> F["🎨 图片"]
E --> G["🔊 配音"]
F --> H["🎬 视频合成<br/>FFmpeg"]
G --> H
H --> I["📦 发布包<br/>state/releases/"]
sequenceDiagram
participant U as 用户
participant W as Web/CLI
participant C as Core 引擎
participant P as Provider
participant F as FFmpeg
participant O as 产出
U->>W: 设定故事/角色
W->>C: 生成分镜脚本
C->>P: 请求图片生成(ComfyUI)
P-->>C: 返回关键帧
C->>P: 请求配音(Piper TTS)
P-->>C: 返回音频
C->>F: 合成视频
F-->>C: MP4 文件
C-->>O: 发布到平台
| 依赖 | 版本 | 用途 |
|---|---|---|
| Python | 3.12+ | 运行时 |
| ComfyUI | v0.26.0+ | AI 图片生成(SDXL 模型) |
| Piper TTS | latest | 中文语音合成 |
| FFmpeg | 4.4+ | 视频合成 |
| Node.js | 20+ | Web 前端构建(umijs/max) |
# 1. 克隆仓库
git clone https://github.com/chfr19820610-cell/AIComics.git
cd AIComics
# 2. 创建 Python 虚拟环境
python3.12 -m venv .venv
# 3. 激活环境 & 安装依赖
source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements-lock.txt
# 4. 配置 ComfyUI 路径
# 编辑 config/aicomic_comfyui_paths.yaml,指向你的 ComfyUI models 目录
# 示例:
# comfyui:
# base_path: /path/to/ComfyUI
# models_dir: /path/to/ComfyUI/models
# 5. 初始化演示数据库
PYTHONPATH="src" .venv/bin/python -m aicomic.cli.main init-demo-db
# 6. 启动系统
bash scripts/start.sh# 一键启动(自动生成 .env.docker.local、local_providers/ 骨架)
bash scripts/start.sh
# 仅核心(不含 ComfyUI/Piper sidecar)
bash scripts/start.sh --no-comfyui
# 手动等效命令(start.sh 的内部实现)
docker compose -f docker-compose.yml build && docker compose -f docker-compose.yml up -d
# ComfyUI/Piper sidecar 需以覆盖层方式组合(独立使用 local-providers 文件会报错):
docker compose -f docker-compose.yml -f docker-compose.local-providers.yml up -d
# 查看日志
docker compose logs -f注意:
.env.docker.local/.env.production.local为本地密钥文件(被 .gitignore 排除)。start.sh首次运行会自动从.env.production.example生成。直接docker compose up -d前请确保该文件存在。
| 服务 | 地址 | 说明 |
|---|---|---|
| 创作台 | http://localhost:8000/login | Web SPA 前端 |
| API | http://localhost:7860/api/health | FastAPI 健康检查 |
| ComfyUI | http://localhost:8188 | ComfyUI Web UI |
默认账号:creator / your-password-here
| 指标 | 值 |
|---|---|
| 测试通过率 | 688/688 (100%) |
| 验证脚本 | 39/39 (100%) |
| API 端点 | 52 个 |
| 视频产出 | 5 集完整漫剧(4 分 24 秒) |
| 资产完整度 | 60/60(30 图 + 30 配音) |
| Python 版本 | 3.12 |
| 许可证 | Apache 2.0 |
# 运行全部 688 个测试
PYTHONPATH="src" .venv/bin/python -m pytest tests/ -v
# 快速模式(跳过耗时测试)
PYTHONPATH="src" .venv/bin/python -m pytest tests/ -q --skip-slow
# 运行特定模块测试
PYTHONPATH="src" .venv/bin/python -m pytest tests/test_providers/ -v
PYTHONPATH="src" .venv/bin/python -m pytest tests/test_characters/ -v系统自带轻量后台循环引擎,自动监控生产状态并补充资产:
# 启动生产 + 赚钱循环
PYTHONPATH="src" .venv/bin/python scripts/vf_master_loop.py &
# 查看循环日志
tail -f logs/vf_loop.log定时任务会被自动发现和补充,无需手动干预。系统支持:
- 风格轮换 — 每轮自动切换色板/视觉风格(Painterly 3D Noir → Hybrid Comic Pop → Cinematic Liquid Glass)
- 资产补充 — 自动检测缺失的图片/音频并排队补充
- 自动发布 — 合成完成后自动打包发布包
| 功能 | 说明 |
|---|---|
| 🧩 供应商抽象层 | 统一的 Provider 接口,支持 ComfyUI / OpenAI / Seedance / 手动 等多种图片生成后端,可热切换 |
| 👤 角色系统 | 角色定义、一致性检测、提示词注入、参考图管理,让同一角色在不同分镜中保持外形统一 |
| 📋 分镜版本管理 | 分镜可创建多个版本,对比选择最佳效果,支持回滚 |
| 🎬 视频合成管线 | 端到端视频合成:图片→场景→字幕→配音→合成,支持批量处理 |
| ✅ 688 测试覆盖 | 从 314 提升至 688 测试,新增 Provider 抽象层、角色系统、分镜版本管理等专项测试 |
| 🎨 风格轮换引擎 | 自动轮换视觉风格和色板,每条漫剧可拥有不同艺术风格 |
| 🔄 无限自循环 | vf_master_loop 后台守护,自动生产+补充+发布,无需人工干预 |
graph LR
subgraph Root["AIComics/"]
SRC["src/aicomic/"]
WEB["web/"]
CFG["config/"]
SCR["scripts/"]
TST["tests/"]
ST["state/"]
end
SRC --> CLI["cli/"]
SRC --> CORE["core/"]
SRC --> PROV2["providers/"]
SRC --> CHAR2["characters/"]
SRC --> VS["video_synthesis/"]
SRC --> UTL["utils/"]
WEB --> BE["backend/ (FastAPI)"]
WEB --> FE["frontend/ (React SPA)"]
TST --> T688["688 个测试用例"]
ST --> REL["releases/ (视频产出)"]
ST --> PV["produced_videos/"]
ST --> DA["demo_assets/"]
ST --> GP["generated_projects/"]
| 目录 | 说明 |
|---|---|
src/aicomic/ |
核心引擎 — CLI / 业务逻辑 / Provider 抽象层 / 角色系统 / 视频合成 |
web/backend/ |
FastAPI 后端(52 个 API 端点) |
web/frontend/ |
React SPA 创作台 |
config/ |
配置文件(ComfyUI 路径、Provider 配置) |
scripts/ |
运维脚本(vf_master_loop、启动脚本) |
tests/ |
688 个测试用例 |
state/releases/ |
已合成的 MP4 视频产出 |
state/produced_videos/ |
视频工厂产出目录 |
- 基础漫剧管线 (故事→分镜→图片→配音)
- CLI + Web API + SPA 三端入口
- 688 测试全通过
- 供应商抽象层 (ComfyUI/Piper/OpenAI/Seedance)
- 角色系统 (定义/一致性/提示词注入/参考图)
- 分镜版本管理
- 自动风格轮换引擎 + 无限自循环
- 漫剧专用模板系统
- 小说→漫剧一站式管道
- 多语言配音 & 字幕
- 发布平台自动集成(小红书/B站/抖音一键发布)
- 云端轻量模式
- 社区模板市场
| 分支 | 内容 | 说明 |
|---|---|---|
main |
可部署的 AIComics 系统(当前默认分支) | Docker 化 + docker-compose 一键部署 + 前端后端全栈 |
archive/legacy |
早期静态 HTML 视觉小说站(35 个提交) | 历史资产保留,仅供追溯参考,不含本系统代码 |
feat/acom-0.6-p0 |
ACOM-0.6.0 管线基础设施 + 部署修复 | 与 main 同 commit(2f35fb4),安全网分支 |
gh-pages |
GitHub Pages 静态站 | 独立部署分支 |
说明:公开
main曾承载一批无关的静态 HTML 页面提交(index.html/v2*.html/ai-vn-game等)。 为让 AIComics 以可部署系统对外公开,已将含全部部署修复的可部署系统提升为公开main, 原静态站 35 个提交完整迁移至archive/legacy分支保留,未丢失任何历史数据。
⚠️ 部署前提(联网环境):docker compose build需要联网拉取基础镜像 (node:18-alpine、python:3.12-slim等)。首次部署请在有网络的环境执行bash scripts/start.sh完成完整镜像构建。
Apache 2.0 © 2026 Eric Chen
Issues 和 PR 都欢迎!提交前请确保测试通过。
# 运行测试确认
PYTHONPATH="src" .venv/bin/python -m pytest tests/ -q
