🎬 火宝短剧 - 基于AI的一站式短剧生成平台 《一句话生成完整短剧,从剧本到成片全自动化》 Huobao Drama - An AI-Powered End-to-End Short Drama Generator "One Sentence to Complete Drama: Fully Automated
🎬 火宝短剧 - 基于AI的一站式短剧生成平台 《一句话生成完整短剧,从剧本到成片全自动化》 Huobao Drama - An AI-Powered End-to-End Short Drama Generator "One Sentence to Complete Drama: Fully Automated
Huobao Drama 是一个基于 AI 的短剧自动化生产平台,实现从剧本生成、角色设计、分镜制作到视频合成的全流程自动化。
frontend/ — Nuxt 3 + Vue 3 + TypeScript (纯 CSS,无 UI 框架)
backend/ — Hono + Drizzle ORM + Mastra AI Agents + mysql2
backend/workspace/skills/ — Agent 技能定义 (SKILL.md,支持界面在线编辑)
data/ — 生成资源文件
docker/ — init.sql 数据库初始化脚本(可选,启动时自动建表)
🔥 AI创作省钱攻略|快乐马 & Seedance 合作专属折扣,优惠到底 👉 立即查看
内置 4 个 Mastra Agent,支持数据库配置和 Skill 扩展:
Agent 职责script_rewriter
小说 → 格式化剧本改写
extractor
角色 / 场景 / 道具智能提取与去重
storyboard_breaker
剧本 → 分镜序列拆解
prompt_generator
角色/场景/道具图片提示词 + 分镜视频提示词生成
FFmpeg 无需安装:项目通过
ffmpeg-static/ffprobe-staticnpm 包内置二进制,本地与 Docker 均开箱即用。
无需配置文件,通过环境变量设置(均有默认值,本地开发可零配置启动):
变量 默认值 说明DATABASE_URL
—
完整 MySQL 连接串(优先)
MYSQL_HOST / MYSQL_PORT
127.0.0.1 / 3306
未设 DATABASE_URL 时分项配置
MYSQL_USER / MYSQL_PASSWORD
huobao / huobao
同上
MYSQL_DATABASE
huobao_drama
同上
PORT
5679
后端服务端口
STORAGE_PATH
./data/static
生成文件存储目录
PUBLIC_BASE_URL
—
使用本地参考视频、音频或文件时,供上游模型访问 static/ 素材的公网地址
说明:AI 服务的 API Key、Base URL 和模型参数全部在 Web 界面的「设置」页配置并入库,不在配置文件/环境变量中维护。
# 克隆项目
git clone https://github.com/chatfire-AI/huobao-drama.git
cd huobao-drama
# 安装后端依赖
cd backend && npm install
# 安装前端依赖
cd ../frontend && npm install
前后端分离,支持热重载:
# 终端1:启动后端
cd backend
npm run dev
# 终端2:启动前端
cd frontend
npm run dev
http://localhost:3013http://localhost:5679/api/v1/api 和 /static 到后端后端同时提供 API 和前端静态文件:
# 1. 构建前端
cd frontend && npm run generate
# 2. 复制构建产物到后端读取的目录(generate 产物在 .output/public,后端只读取 frontend/dist)
cp -r .output/public dist
# 3. 启动后端
cd ../backend && npm start
访问: http://localhost:5679
数据库表在首次启动时自动创建(幂等,每次启动自动重放初始化与迁移)。默认连接读取 DATABASE_URL,也可以通过 MYSQL_HOST、MYSQL_PORT、MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASE 分项配置:
DATABASE_URL=mysql://huobao:[email protected]:3306/huobao_drama npm start
如需在应用外预建表(如 DBA 审核场景),可使用 docker/init.sql;schema 变更后通过 cd backend && npx tsx scripts/export-init-sql.ts 重新生成。
启动后所有 AI 功能(文本/生图/视频)都需要先配置模型服务,未配置时页面顶部会有横幅引导:
Wan 3.0 可直接通过「火宝快捷配置」接入 ChatFire 网关;若直连阿里云,则选择「阿里云百炼 Wan 3.0」模板,将 Base URL 中的 {WorkspaceId} 替换为真实业务空间 ID。直连时 Base URL、API Key 与模型必须属于同一地域。
POST /api/v1/tasks 的 Wan 3.0 请求可直接使用官方入参结构(另加项目任务类型 type):
{
"type": "video",
"model": "wan3.0-video-prime",
"input": {
"prompt": "图1中的人物走进房间",
"media": [{ "type": "reference_image", "url": "https://example.com/ref.png" }]
},
"parameters": {
"resolution": "1080P",
"ratio": "16:9",
"duration": 5,
"audio": true,
"seed": -1,
"prompt_extend": true,
"watermark": false
}
}
配置完成横幅自动消失,即可开始创建剧集生产。
一条命令拉起应用 + MySQL 8.4,含健康检查与启动顺序编排(应用等待 MySQL 就绪后启动,建表自动完成):
# 构建并启动
docker compose up -d --build
# 查看日志
docker compose logs -f
# 停止服务
docker compose down
访问: http://localhost:5679
持久化数据:
挂载 内容./data
生成的图片/视频等文件
./backend/workspace
Agent 技能文件(设置页可在线编辑)
mysql-data(命名卷)
MySQL 数据
提示:compose 为源码构建方式,构建过程需从外网下载
ffmpeg-static/sharp预编译二进制,网络受限环境请先配置 npm 镜像或代理;想跳过构建可直接使用方式二的 Docker Hub 预构建镜像。
已发布多架构镜像(linux/amd64 + linux/arm64,x86 服务器与 ARM 设备均自动匹配),无需克隆仓库、无需本地构建:
# 拉取镜像
docker pull huobao/huobao-drama:3.1.0
# 运行(MySQL 需另行准备,通过 DATABASE_URL 指向;命名卷自动从镜像初始化 skills 等内容)
docker run -d \
--name huobao-drama \
-p 5679:5679 \
-v huobao-data:/app/data \
-v huobao-workspace:/app/backend/workspace \
-e DATABASE_URL=mysql://huobao:[email protected]:3306/huobao_drama \
--restart unless-stopped \
huobao/huobao-drama:3.1.0
# 查看日志
docker logs -f huobao-drama
注意:Linux 用户需添加
--add-host=host.docker.internal:host-gateway以访问宿主机服务
从源码构建(可选,需克隆仓库):
docker build -t huobao-drama:latest .
Docker 部署优势:
data/ 与 workspace/ 目录 volume 挂载,数据与技能持久化容器内可通过 http://host.docker.internal:端口号 访问宿主机服务。
配置步骤:
宿主机启动服务(监听所有接口):
export OLLAMA_HOST=0.0.0.0:11434 && ollama serve
在 Web 界面「设置 → AI 服务配置」中填写:
http://host.docker.internal:11434/v1openaiqwen2.5:latest# 1. 构建前端
cd frontend && npm run generate
# 2. 复制构建产物(generate 产物在 frontend/.output/public,后端只读取 frontend/dist,缺此步 API 正常但页面 404)
cp -r .output/public dist && cd ..
# 3. 启动后端
cd backend && npm start
需要上传到服务器的文件:
backend/ # 后端源码 + node_modules
backend/workspace/skills/ # Agent 技能文件
frontend/dist/ # 前端构建产物
data/ # 数据目录(首次运行自动创建)
…
媒体加载优化:生成图片时后端会自动产出 400px 缩略图(
*_thumb.webp)供列表页加载,视频会抽取海报帧(*_poster.jpg)作为封面,前端仅在点开大图/播放时才加载原文件。历史存量文件可在backend/下执行npm run backfill-artwork一次性补齐。
A: 使用 http://host.docker.internal:11434/v1 作为 Base URL。注意:
0.0.0.0:export OLLAMA_HOST=0.0.0.0:11434 && ollama servedocker run 需添加:--add-host=host.docker.internal:host-gatewayA: 无需安装。项目内置 ffmpeg-static / ffprobe-static 二进制(本地与 Docker 均是)。如自定义 PATH 中的系统 FFmpeg 也不会冲突,代码优先使用内置二进制。
A: 这是正常的首次部署引导。前往「设置」页,用「火宝快捷配置」粘贴 API Key 一键写入,或通过「手动模板」按厂商添加。文本、图片、视频三类均有启用中的配置后横幅自动消失。
A: 检查后端是否启动,端口是否正确。开发模式下前端代理配置在 frontend/nuxt.config.ts。
A: 后端会在首次启动时自动创建所有表,检查日志确认初始化是否成功。
docker/init.sql 及导出脚本(DBA 审核 / 预建表)欢迎提交 Issue 和 Pull Request!
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)常用检查命令:
cd backend && npm run typecheck
cd ../frontend && npm run build
如果这个项目对你有帮助,欢迎扫码请作者喝杯咖啡 ☕,你的支持是持续更新的动力!
"让 AI 帮我们做更有创造力的事"
本项目已获得 LINUX DO 社区链接认可。
No open issues yet, or sync has not completed.