# AI 漫剧 · 无限画布 + manju 出片管线（已合并）

一个项目、两条腿：
- **画布工作台**（`aicomic-canvas.html` + `aicomic-server.py`）：无限画布规划分集/分镜/角色，SQLite 自动存档、快照、导入小说拆章拆集。
- **manju 出片管线**（`manju/`）：剧本/分镜 → AI 出图 → TTS 配音 → FFmpeg 运镜+字幕 → 合成竖屏 MP4。

合并后可从画布一键生成成片：场景卡 → `manju/script/shots.json` → `manju/build.py` → MP4。

## 快速开始
```bash
# 1. 启动服务器（合并版，含新接口）
python3 aicomic-server.py          # 默认 8765，自动打开画布

# 2. 在画布上：规划场景卡 →（可选）🎨 生图 → 🚀 一键成片

# 3. 只看管线本身
.venv/bin/python manju/build.py --skip-images --skip-tts   # 跳过已生成步骤
```

## 关键文件
| 文件 | 作用 |
|---|---|
| `aicomic-server.py` | SQLite 画布服务器 + 一键成片接口（export-shots / build / build-status / output） |
| `aicomic-canvas.html` | 无限画布前端（含一键成片弹窗） |
| `aicomic_bridge.py` | 画布卡片 ↔ manju 分镜转换（运镜/台词/角色/图片复用） |
| `aicomic_import.py` | 小说导入：拆章 → 拆集 → 提取人物/场景/道具 |
| `manju/build.py` | 出片管线本体 |
| `manju/script/shots.json` | 画布导出的当前分镜 |

## 新接口
- `POST /api/export-shots`：画布卡片 → shots.json
- `POST /api/build`：后台启动生成（可传 skip_images / skip_tts / skip_clips / force / use_ai_clips）
- `GET /api/build-status`：进度 + 日志尾
- `GET /api/output`：成片 MP4（新窗口播放/下载）
