Yihen-Drama 是一个面向短剧创作的全流程平台,覆盖:
文本输入 → 信息提取 → 角色/场景资产生成 → 分镜管理 → 视频生成 → 视频编辑
仓库包含:
- 后端:
yihen-drama(Spring Boot) - 前端:
yihen-ai-short-drama-front-end/frontend(Vue 3 + Vite) - 容器编排:支持本地开发模式与一键全容器部署模式
在“模型管理”中为默认模型实例填写可用 API Key(至少文本、图像、视频模型)。
以下为当前系统已支持的核心能力清单。
- 创建/编辑/删除项目
- 项目列表分页(支持页码导航)
- 项目关键词搜索(Elasticsearch)
- 项目搜索补全建议(suggest)
- 项目状态筛选(草稿/处理中/已完成)
- 项目封面自动占位图
- 创建章节(支持空内容创建)
- 更新章节(名称、内容等)
- 删除章节(主题风格确认弹窗)
- 章节步骤状态维护(current_step)
- 步骤条可点击跳转(受步骤进度约束)
- 从章节文本提取角色与场景
- 支持“开始提取/重新提取”
- 提取结果回写章节资产
- 支持手动选择文本模型(默认自动选中默认模型)
- 结果页实时展示人数/场景数
- 角色图生成、重生、下载、删除、上传替换
- 场景图生成、重生、下载、删除、上传替换
- 名称与描述可编辑,支持防抖更新
- 新增角色/新增场景(抽屉表单)
- 角色/场景卡片统一主题样式
- 无图时自动首字占位图
- 图片支持单击放大预览
- 操作提示统一消息风格(成功/失败/警告)
- 按项目统一管理角色和场景
- 角色/场景切换 Tab
- 角色/场景增删改查
- 按项目内搜索(Elasticsearch)
- 搜索补全建议(suggest)
- 卡片固定尺寸,超长内容滚动显示
- 每页最多 8 条,超出后分页
- 统一主题弹窗与消息提示
- 生成分镜(按章节)
- 生成分镜时可选“使用向量检索”(
usedVector,默认关闭) - 分镜描述可编辑并保存
- 删除单条分镜(确认弹窗)
- 分镜关联角色(可搜索,可多选,限制最多 3 个)
- 分镜关联场景(可搜索,限制必须且仅 1 个)
- 关联结果保存后在后续步骤保持一致
- 分镜列表与镜头配置联动展示
- 生成首帧提示词(可编辑、可保存)
- 生成首帧图片(thumbnail 回显)
- 生成分镜视频提示词
- 生成分镜视频任务提交
- 时长参数可调,并以数字传入
params.duration - 支持默认视频模型与手动切换视频模型
- 视频生成成功后自动切换预览
- 任务状态通过 WebSocket 回传
- 失败状态展示后端错误信息(
errorMessage)
- 厂商管理(分页)
- 模型实例管理(按类型分页)
- 文本/文生图/视频/语音/向量多类型管理
- 设置默认实例(按类型)
- 默认实例通过后端默认接口回显(不依赖前端临时字段)
- 新增/更新实例参数映射(如
max_token) - 删除模型失败时展示后端原始错误信息(如“默认模型不可删除”)
- 多场景提示词模板管理
- 新增/编辑/删除提示词
- 设置默认提示词
- 场景枚举对齐后端
SceneCode - 分镜/视频流程中调用与保存对应提示词
- 进入项目后建立项目级 WebSocket 连接
- 后端轮询第三方任务状态并推送到前端
- 前端按
targetId + taskType精准更新对应实体 - 支持多任务并发状态跟踪,按钮独立 loading
- 创建项目与章节
- 在模型管理中确认默认模型与 API Key
- 提交章节文本,执行信息提取
- 在“生成图片”中完善角色/场景资产
- 在“生成分镜”中调整镜头描述及关联关系
- 在“生成视频”中生成提示词、首帧和分镜视频
- 在“视频编辑”中完成拼接与导出(持续迭代中)
前后端本机运行;中间件容器运行。
.\infra-up.ps1或
infra-up.bat等价:
docker compose -f docker-compose.infra.yml up -d --buildcd yihen-drama
mvn spring-boot:runcd yihen-ai-short-drama-front-end/frontend
npm install
npm run dev说明:
- 前端已配置开发代理:
/api、/webSocket自动转发到localhost:8080 - 不需要手工改前端请求端口
.\deploy.ps1或
deploy.bat等价:
docker compose -f docker-compose.full.yml up -d --build- 前端:
http://localhost:3000 - 后端:
http://localhost:8080 - API 文档:
http://localhost:8080/doc.html - MinIO Console:
http://localhost:9001 - RabbitMQ Console:
http://localhost:15672 - Elasticsearch:
http://localhost:9200 - Kibana:
http://localhost:5601 - Qdrant HTTP:
http://localhost:6333 - Qdrant gRPC:
localhost:6334
- 初始化脚本:
yihen-drama/sql/init_schema.sql - MySQL 数据卷为空时自动执行
- 若要重置:
docker compose -f docker-compose.full.yml down -v
docker compose -f docker-compose.full.yml up -d --buildES 镜像已集成 IK + pinyin 插件(构建自动安装)。
验证:
docker compose -f docker-compose.full.yml exec es elasticsearch-plugin list- 已接入 Qdrant 作为向量数据库(compose 已包含
qdrant服务) - 章节内容在提取流程后会进入向量化入库链路(异步消息)
- 分镜生成可通过前端开关决定是否使用向量检索增强上下文
后端配置文件:yihen-drama/src/main/resources/application.yml
已支持“环境变量优先 + 本地默认值回退”。
核心变量:
SPRING_DATASOURCE_URL/USERNAME/PASSWORDSPRING_DATA_REDIS_HOST/PORT/PASSWORDSPRING_RABBITMQ_HOST/PORT/USERNAME/PASSWORDSPRING_ELASTICSEARCH_URISMINIO_END_POINT/MINIO_ACCESS_KEY/MINIO_SECRET_KEYQDRANT_HOST/QDRANT_PORTQDRANT_COLLECTION_NAME/QDRANT_DIMENSIONQDRANT_MAX_SEGMENTSIZE_IN_TOKENS/QDRANT_MAX_OVERLAP_SIZE_IN_TOKENSQDRANT_MAX_RESULT/QDRANT_MIN_SCORE
- 检查
docker compose -f docker-compose.infra.yml ps - 确认
redis服务健康后再启动后端
- 本地开发下这是 Vite 代理行为,属于正常
- 实际后端仍在
8080
- 可切换镜像源
- 建议先手工
docker pull关键镜像再构建
- 后端:
yihen-drama/README.md - 前端:
yihen-ai-short-drama-front-end/frontend/README.md










