Няма описание

Yi Jiarui 34b358323e commit "功能完善" преди 3 месеца
.codegraph 34b358323e commit "功能完善" преди 3 месеца
cloud-functions 34b358323e commit "功能完善" преди 3 месеца
public 2bd6aab6bb Merge branch 'master' of https://git.fmode.cn/18307996893/video-workflow преди 4 месеца
scripts 34b358323e commit "功能完善" преди 3 месеца
src 34b358323e commit "功能完善" преди 3 месеца
.editorconfig 9e4914a8bf new file: .editorconfig преди 4 месеца
.gitignore c3894106ad commit преди 3 месеца
.prettierrc 9e4914a8bf new file: .editorconfig преди 4 месеца
README.md c3894106ad commit преди 3 месеца
angular.json b4fc8713b8 commit 云函数实现,线上部署完成 преди 3 месеца
deploy.ps1 79adec1595 chore: преди 4 месеца
package-lock.json b4fc8713b8 commit 云函数实现,线上部署完成 преди 3 месеца
package.json 34b358323e commit "功能完善" преди 3 месеца
proxy.conf.json 9e4914a8bf new file: .editorconfig преди 4 месеца
server.js b4fc8713b8 commit 云函数实现,线上部署完成 преди 3 месеца
tsconfig.app.json 9e4914a8bf new file: .editorconfig преди 4 месеца
tsconfig.json 9e4914a8bf new file: .editorconfig преди 4 месеца
tsconfig.spec.json 9e4914a8bf new file: .editorconfig преди 4 месеца
高频用户视角改进路线图.md 34b358323e commit "功能完善" преди 3 месеца

README.md

video-workflow · 抖音 AI 视频生成系统

一个基于 Angular 21 + Express 的 AI 视频创作平台,集成数字人合成、图生视频、动作迁移、素材合成、主题生视频、语音合成(含音色复刻 / 音色选择弹窗)等多条生成 Pipeline。

项目名:tik-tok(package.json)/ 仓库名:video-workflow

当前试运营版本已接入账号系统与积分框架:用户登录后可查看个人创作、素材库、视频管理、博主监测和积分流水;生成、合成、训练等任务在提交前进行登录与积分校验。


✨ 功能总览

按"Pipeline 注册中心"模式组织(见 src/app/pipelines/pipeline-registry.ts),目前已上线/在迭代的 Pipeline:

Pipeline 路由 输入 状态
数字人合成 digital-human 参考视频 / 形象图 + 脚本 + 音色 ✅ stable
标准视频生成 video-generation 原始视频 + 改造指令 🟡 beta
图生视频 image-to-video 图片 + 提示词 + 时长 🟡 beta
动作迁移 action-transfer 角色图 + 参考动作视频(即梦 Actor v2) 🟡 beta
素材合成视频 asset-remix 3-10 张图片 + 主题 + 音色 🟡 beta
主题生视频 topic-to-video 一句话主题(LLM 拆分镜 → 文生图 → TTS → ffmpeg 全自动拼接) 🟡 beta

辅助模块

  • 抖音视频搜索 / 监控 / 任务管理 / 历史 / 结果库
  • 语音合成(音色复刻 + 官方音色库选择弹窗 + 试听)
  • 数字人形象准备(normalize / benchmark)
  • 账号系统(Parse _User 登录、用户中心、管理员账号页、积分流水、充值框架)

账号与隔离

  • 试运营阶段关闭公开注册,账号由管理员统一发放。
  • 管理员身份读取 _User.role === 'admin'_User.isAdmin === true
  • 积分规则:1 元 = 10 积分;新账号赠送 10 积分;任务提交前预扣,明确失败时退回。
  • 个人内容页包括「我的创作」「素材库」「视频管理」「博主监测」,未登录时跳转登录页。
  • 草稿/素材库和博主监测使用当前用户 objectId 做本地存储隔离,避免同一浏览器多账号串数据。

🏗️ 技术栈

前端

  • Angular 21(Standalone Components + Signals)
  • TypeScript 5.9 / RxJS 7.8
  • 设计系统:自研 dh-* 组件类(深色 / 浅色双主题)

后端

  • Node.js + Express 4
  • multer(文件上传)、cors、axios
  • 数据:本地 JSON 文件(data/*.json)+ ffmpeg 处理视频

外部服务

  • 火山引擎(豆包 TTS、即梦文生图、即梦 Actor v2 动作迁移)
  • TikHub(抖音数据 API)
  • fmode 后端代理服务(server.fmode.cn

🚀 快速开始

1. 安装依赖

npm install

2. 启动开发环境(同时启动前后端)

npm run dev

concurrently 会同时启动:

  • 后端:node server.js(默认 7337 端口)
  • 前端:ng serve --proxy-config proxy.conf.json(默认 4200 端口)

打开浏览器:http://localhost:4200/

3. 分开启动(可选)

npm run server      # 仅后端
npm start           # 仅前端
npm run start:dev   # 前端 + 监听 0.0.0.0(局域网调试)

4. 构建生产包

npm run build       # 输出到 dist/

📁 目录结构

video-workflow/
├── server.js                    # Express 后端主文件
├── proxy.conf.json              # ng serve 代理配置(/api → tikhub、/backend → 本地后端等)
├── data/                        # 后端运行时数据(history.json / tasks.json / videos/ ...)
├── src/
│   └── app/
│       ├── app.ts               # 主组件(包含全局 UI 状态、tab 切换、各模块入口)
│       ├── app.html / app.css   # 主模板与全局样式
│       ├── components/          # 可复用组件
│       │   ├── app-sidebar/
│       │   ├── digital-human-form/
│       │   ├── portrait-prepare/
│       │   ├── recent-task-pill/
│       │   ├── app-assistant/
│       │   ├── auth-required-modal/ # 登录保护提示弹窗
│       │   └── voice-picker/    # 声音模型选择弹窗(声音库 + 我的声音 + 试听)
│       ├── pages/
│       │   ├── home/
│       │   ├── account/         # 登录、用户中心、管理员账号页
│       │   └── pipelines/       # 各 Pipeline 独立页面
│       │       ├── digital-human/
│       │       ├── image-to-video/
│       │       ├── action-transfer/
│       │       ├── asset-remix/
│       │       └── topic-to-video/
│       ├── pipelines/
│       │   ├── pipeline-registry.ts   # Pipeline 注册中心(添加新模式只需改这里)
│       │   └── composite-sse.ts
│       ├── services/            # HTTP / 业务服务(含账号积分、云函数拦截、草稿存储)
│       └── pipes/               # 时间、文件大小等格式化管道
└── public/                      # 静态资源

🔌 代理 / 上游服务(proxy.conf.json

前端路径 上游 用途
/api https://api.tikhub.io 抖音数据 API
/jimeng https://server.fmode.cn/api/volcengine/jimeng 即梦(图生视频 / 动作迁移)
/parse https://server.fmode.cn/parse Parse 后端(音色档案等)
/functions https://server.fmode.cn/api/functions fmode Functions
/backend http://localhost:3000 本地后端(如有需要)

🎙️ 语音合成模块说明

  • 声音训练:上传一段参考音频 → 调火山 voice_clone → 获得可复用的声音模型
  • 声音模型选择弹窗components/voice-picker):
    • 声音库 Tab:豆包 2.0 模型 25 个精选官方声音,按场景分组(通用/角色扮演/有声阅读/视频配音/客服/多语种),支持关键词搜索
    • 我的声音 Tab:用户训练成功的声音模型
    • 试听:点 ▶ 实时调 TTS 合成固定文本,内存缓存避免重复消耗
  • 合成接口:根据声音来源自动切换参数
    • 训练声音:timbreId
    • 官方声音:volcengine_voice_type + x_api_resource_id: seed-tts-2.0_uranus_bigtts 后缀必须用 2.0 资源)

参考文档:docs/语音合成/tts.mddocs/语音合成/音色列表.md(本地参考,已加入 .gitignore 不入库)


📦 npm scripts

脚本 说明
npm run dev 同时启动前后端(推荐开发)
npm run server 仅启动后端 (node server.js)
npm start 仅启动前端 (ng serve)
npm run start:dev 前端 + 监听 0.0.0.0(局域网)
npm run build 生产构建 → dist/
npm run watch 开发模式 watch 构建
npm test 运行测试(vitest)