StoryBloom 是一个使用中国本土 AI 服务栈打通完整绘本创作链路的开源项目。输入一个故事主题,AI 自动完成故事创作、插画生成、语音合成,最终生成一本图文并茂、可朗读的儿童绘本。
这不是一个框架或库 -- 这是一个完整可运行的参考实现,展示了如何用 DeepSeek + 通义万相 + 火山引擎 TTS 构建端到端的 AI 内容生产流水线。
- AI 故事生成 -- DeepSeek 大模型自动创作结构化故事内容,支持词汇难度分级
- AI 插画生成 -- 阿里云通义万相为每一页生成配套插画,支持卡通/写实风格
- AI 语音合成 -- 火山引擎 TTS 生成专业朗读音频,适合儿童收听
- 完整数据持久化 -- PostgreSQL 存储绘本数据,阿里云 OSS 存储图片和音频
- 绘本阅读体验 -- 翻页式阅读界面,支持图文 + 音频同步播放
- 批量流式处理 -- 插画和语音均支持批量并发 + 流式进度回传
| 层级 | 技术 |
|---|---|
| 前端框架 | Next.js 16 + React 19 + TypeScript |
| UI 组件 | shadcn/ui + Tailwind CSS |
| 故事生成 | DeepSeek API |
| 插画生成 | 阿里云 DashScope(通义万相) |
| 语音合成 | 火山引擎 TTS |
| 数据库 | PostgreSQL |
| 文件存储 | 阿里云 OSS |
| 用户认证 | Logto(可选) |
| 部署 | Docker Compose |
graph TB
User[用户] --> NextApp[Next.js App]
subgraph "AI 服务"
DeepSeek[DeepSeek<br/>故事生成]
DashScope[通义万相<br/>插画生成]
Volcengine[火山引擎<br/>语音合成]
end
subgraph "数据存储"
PG[(PostgreSQL<br/>绘本数据)]
OSS[阿里云 OSS<br/>图片/音频]
end
NextApp -->|生成故事| DeepSeek
NextApp -->|生成插画| DashScope
NextApp -->|生成语音| Volcengine
NextApp -->|存取数据| PG
NextApp -->|存取媒体| OSS
subgraph "可选"
Logto[Logto<br/>用户认证]
end
NextApp -.->|认证| Logto
- Node.js 18+
- Docker(用于启动 PostgreSQL)
- 以下 API Key(参见下方获取方式):
- DeepSeek API Key
- 阿里云 DashScope API Key
- 火山引擎 TTS 凭证
- 阿里云 OSS 凭证
# 1. 克隆仓库
git clone https://github.com/September999999999/storybloom.git
cd storybloom
# 2. 启动 PostgreSQL
docker compose up -d
# 3. 配置环境变量
cp .env.example .env.local
# 编辑 .env.local,填入你的 API Key
# 设置 ALLOW_ANONYMOUS_API_IN_DEV="true" 可跳过 Logto 认证
# 4. 安装依赖
npm install
# 5. 启动应用
npm run dev访问 http://localhost:3000 开始创作你的第一本绘本。
除了上述步骤外,还需要:
- 部署或注册 Logto 服务
- 在
.env.local中填写LOGTO_*相关配置 - 将
ALLOW_ANONYMOUS_API_IN_DEV设为"false"或删除该行
| 变量 | 说明 | 获取方式 |
|---|---|---|
DEEPSEEK_API_KEY |
DeepSeek 故事生成 | platform.deepseek.com |
DASHSCOPE_API_KEY |
通义万相插画生成 | dashscope.console.aliyun.com |
VOLCENGINE_APP_ID |
火山引擎 TTS 应用 ID | console.volcengine.com/speech |
VOLCENGINE_ACCESS_TOKEN |
火山引擎 TTS 访问令牌 | 同上,在应用管理中获取 |
| 变量 | 说明 | 获取方式 |
|---|---|---|
DATABASE_URL |
PostgreSQL 连接串 | 本地用 docker compose up -d 即可 |
ALIYUN_OSS_REGION |
OSS 区域 | oss.console.aliyun.com |
ALIYUN_OSS_BUCKET |
OSS Bucket 名称 | 同上 |
ALIYUN_OSS_ACCESS_KEY_ID |
OSS AccessKey ID | ram.console.aliyun.com |
ALIYUN_OSS_ACCESS_KEY_SECRET |
OSS AccessKey Secret | 同上 |
ALIYUN_OSS_ENDPOINT |
OSS Endpoint | 同上 |
| 变量 | 说明 | 默认值 |
|---|---|---|
LOGTO_* |
Logto 认证配置(6 个变量) | 见 .env.example |
ALLOW_ANONYMOUS_API_IN_DEV |
开发环境跳过认证 | false |
VOLCENGINE_TTS_CLUSTER |
TTS 集群 | volcano_tts |
VOLCENGINE_VOICE_TYPE |
TTS 音色 | BV007_streaming |
ALIYUN_OSS_PRIVATE |
OSS 私有访问(签名 URL) | true |
ALIYUN_OSS_PUBLIC_DOMAIN |
OSS 自定义域名 | 自动拼接 |
NEXT_PUBLIC_BASE_URL |
应用基础 URL | http://localhost:3000 |
HEALTHCHECK_TOKEN |
健康检查令牌 | 无 |
完整配置参考:.env.example
| 接口 | 说明 |
|---|---|
POST /api/generate-story |
生成故事内容 |
POST /api/generate-image |
生成单张插画 |
POST /api/generate-images-batch |
批量生成插画(流式) |
POST /api/generate-tts |
生成单段语音 |
POST /api/generate-tts-batch |
批量生成语音(流式) |
POST /api/books |
保存绘本 |
GET /api/books |
获取绘本列表 |
GET /api/books/:id |
获取绘本详情 |
GET /api/db/health |
数据库健康检查 |
src/
├── app/ # Next.js App Router 页面和 API Routes
│ ├── api/ # 后端 API 接口
│ │ ├── generate-story/ # 故事生成
│ │ ├── generate-image/ # 插画生成
│ │ ├── generate-tts/ # 语音合成
│ │ └── books/ # 绘本 CRUD
│ ├── create/ # 创作页面
│ ├── my-books/ # 我的绘本
│ └── book/[id]/ # 绘本阅读页
├── components/ # React 组件
│ ├── ui/ # shadcn/ui 基础组件
│ ├── create/ # 创作流程组件
│ └── pages/ # 页面级组件
└── lib/ # 工具库
├── deepseek.ts # DeepSeek API 封装
├── wanxiang.ts # 通义万相 API 封装
├── volcengine-tts.ts # 火山引擎 TTS 封装
├── oss.ts # 阿里云 OSS 封装
├── books-db.ts # 绘本数据库操作
├── prompts.ts # AI Prompt 资产
└── types.ts # 类型定义
| 文档 | 说明 |
|---|---|
| 架构概览 | 系统结构、模块边界和依赖关系 |
| PoC 范围与目标 | 验证目标、范围和非目标 |
| 已验证能力清单 | 已验证能力、接口入口和验证方式 |
| 边界与下一步 | 当前边界和后续工程化方向 |
| AI 链路技术说明 | AI 链路、Prompt 资产和服务依赖 |
| 核心 Prompt 清单 | 核心 Prompt 原文归档 |
cp .env.production.example .env
# 编辑 .env,填入生产环境配置
docker compose -f docker-compose.prod.yml up -d详见 docker-compose.prod.yml 和 deploy/ 目录。
这是一个 PoC(可行性验证) 版本,已打通核心业务闭环。当前版本不覆盖:
- 多租户与后台管理
- 集中监控、告警与日志平台
- 分布式限流与异步任务队列
- 长期运维与 SLA 服务
如果你对这些方向感兴趣,欢迎提 Issue 讨论。
StoryBloom is an open-source AI-powered children's picture book creation platform. It uses a full Chinese AI service stack (DeepSeek for story generation, Alibaba Cloud DashScope/Wanxiang for illustration, ByteDance Volcengine for TTS) to generate complete picture books with text, illustrations, and narration audio in ~3 minutes.
This is a complete, runnable reference implementation showing how to build an end-to-end AI content production pipeline. See the Chinese documentation above for setup instructions.
