Huobao Drama 开源短剧生成平台:从剧本到视频
Huobao Drama
一句话简介:一个基于 Go + Vue3 的全栈 AI 短剧自动化生产平台,覆盖'剧本解析 → 角色/分镜生成 → 视频合成'的一站式流程。
适用场景:
- 想快速验证'短剧生成工作流'的产品/技术原型(偏全链路演示)
- 需要一个可自建的 AI 素材/分镜/视频任务管理后台(本地存储 + SQLite)
- 自己有模型/聚合 API(OpenAI 兼容/火山/本地 Ollama 等),希望接到可用的 Web 界面里跑通
Huobao Drama 是基于 Go 与 Vue3 的全栈 AI 短剧自动化生产平台,实现从剧本解析到角色分镜生成再到视频合成的一站式流程。支持本地 SQLite 存储及外部 AI 模型接入(如 OpenAI、火山引擎、Ollama)。提供 Docker 部署方案,包含角色管理、分镜制作、视频生成及资源追踪功能。适用于快速验证短剧工作流原型或自建 AI 素材管理后台。
一句话简介:一个基于 Go + Vue3 的全栈 AI 短剧自动化生产平台,覆盖'剧本解析 → 角色/分镜生成 → 视频合成'的一站式流程。
适用场景:
LICENSE 为准

configs/config.yaml 的 storage)DOCKER_HOST_ACCESS.md)FFmpeg 4.0+,用于视频处理(本地跑需要自己安装;Docker 镜像里已安装 ffmpeg,见 Dockerfile)ai.default_video_provider 默认为 doubao(火山相关能力),具体调用方式与 Key 配置以仓库实现/界面为准configs/config.example.yaml)storage.base_url 拼接(默认 http://localhost:5678/static),反代/换域名时要一起调整Go 1.23+ · Gin · GORM · SQLite(含 modernc.org/sqlite) · Zap · ViperVue 3.4+ · TypeScript · Vite 5 · Element Plus · TailwindCSS · Pinia · Vue Router · vue-i18n · AxiosSQLite(默认),配置里也出现 gorm.io/driver/mysql 依赖(是否启用 MySQL 以代码/文档为准)Zap(仓库依赖显示)Docker 多阶段构建(Node 20 + Go 1.23-alpine + alpine runtime) · docker-composeFFmpeg(必需)运行前准备(所有方式通用)
ffmpeg,并确保 ffmpeg -version 可用56783012(仅开发模式,见 web/vite.config.ts)仓库 README 给了两种 Docker 跑法:Docker Hub 直接跑,或本地构建后跑。这里按 README 原样整理可复制命令:
# 直接运行(Docker Hub)
docker run -d \
--name huobao-drama \
-p 5678:5678 \
-v $(pwd)/data:/app/data \
--restart unless-stopped \
huobao/huobao-drama:latest
$(pwd)/data/app/data(SQLite DB + storage 都在这下面,具体以运行后生成内容为准)http://localhost:5678--add-host=host.docker.internal:host-gateway(详见 DOCKER_HOST_ACCESS.md)项目自带 docker-compose.yml(包含 healthcheck、命名卷、extra_hosts),最省事:
# 启动
docker-compose up -d
# 看日志
docker-compose logs -f
# 停止
docker-compose down
5678:5678huobao-data:/app/data(见 docker-compose.yml)./configs/config.yaml:/app/configs/config.yaml:roconfigs/config.yaml(可从示例复制)git clone https://github.com/chatfire-AI/huobao-drama.git
cd huobao-drama
cp configs/config.example.yaml configs/config.yaml
configs/config.yaml 关键项(示例来自仓库,敏感信息不在这里):
server:
port: 5678
host: "0.0.0.0"
cors_origins:
- "http://localhost:3012"
database:
type: "sqlite"
path: "./data/drama_generator.db"
storage:
type: "local"
local_path: "./data/storage"
base_url: "http://localhost:5678/static"
ai:
default_text_provider: "openai"
default_image_provider: "openai"
default_video_provider: "doubao"
# 终端 1:后端
go mod download
go run main.go
# 终端 2:前端
cd web
npm install
npm run dev
http://localhost:3012http://localhost:5678/api 转发到 http://localhost:5678(见 web/vite.config.ts)cd web
npm install
npm run build
cd..
go run main.go
http://localhost:56781.23+(见 go.mod)18+;Dockerfile 使用 node:20-alpine(本地用 18/20 通常都可,最终以你依赖安装结果为准)4.0+(必需)go run main.gonpm run dev(默认 3012),并代理 /api -> 5678data/ 目录与 DB 文件都有写权限;否则可能出现 attempt to write a readonly database(README 给了排查与修复命令)http://host.docker.internal:<port>/v1,Linux 下需要 host-gateway 映射(见 DOCKER_HOST_ACCESS.md 与 docker-compose.yml 的 extra_hosts)configs/config.yaml 的 server.cors_origins 是否包含你的前端地址;开发模式代理在 web/vite.config.tshuobao-drama/
├── main.go # 后端入口
├── go.mod # Go 依赖与版本(Go 1.23)
├── Dockerfile # 多阶段构建(前端 build + 后端 build + runtime 含 ffmpeg)
├── docker-compose.yml # Compose 一键启动(含 healthcheck/volume/extra_hosts)
├── configs/
│ └── config.example.yaml # 配置示例(复制为 config.yaml 使用)
├── api/ # API 层(Gin HTTP,按 README 的分层说明)
├── application/ # 应用服务层(业务编排)
├── domain/ # 领域层(模型/领域逻辑)
├── infrastructure/ # 基础设施层(DB/外部服务等)
├── migrations/ # 迁移相关(README 说明首次启动会自动建表)
├── pkg/ # 通用包/工具代码
└── web/ # 前端(Vue3 + Vite)
├── package.json # 前端依赖与脚本
└── vite.config.ts # dev server(3012) + /api 代理到 5678

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online