# YaoAI Video

YaoAI Video 是一个面向 AI 漫剧、短剧与视频内容生产的创作平台仓库，当前采用单仓库结构，保留前端应用与后端服务两部分，方便持续开发、部署和项目展示。

项目目标是把“从剧本到视频”的关键流程串起来，包括项目管理、角色与场景生成、分镜生成、素材管理、Agent 工作流，以及最终的视频任务编排与输出。

仓库地址：

`https://github.com/yaoke602/yaoai-video`

## 核心能力

- AI 漫剧 / 短剧生产后台
- 项目、角色、场景、道具、分镜等内容管理
- AI 生成任务编排与状态追踪
- 多模块 Spring Boot 后端服务
- Vite 前端工作台
- Docker 一键打包与部署

## 仓库结构

```text
.
|-- doc/html                  # 前端工程（Vite）
|-- yaoai-comic-studio        # 后端工程（Spring Boot 多模块）
|-- docker-compose.yml        # 根目录发布态部署编排
`-- .env.example              # 发布态环境变量模板
```

## 技术栈

- 前端：Vite、React、TypeScript、MUI、TanStack Query、Zustand
- 后端：Java 17、Spring Boot 3、MyBatis-Plus、Flyway、Redis
- 基础设施：MySQL、Redis、Docker Compose、Nginx
- AI / 媒体：火山引擎 Ark、TOS、FFmpeg

## 本地开发

当前项目保留了已经跑通的开发方式，建议按下面顺序启动。

1. 启动后端依赖服务

```bash
cd yaoai-comic-studio
docker compose up -d
```

2. 编译后端

```bash
cd yaoai-comic-studio
mvn package -pl yaoai-bootstrap -am -DskipTests
```

3. 启动后端服务

```bash
cd yaoai-comic-studio
java -jar yaoai-bootstrap\target\yaoai-bootstrap-0.1.0-SNAPSHOT.jar
```

4. 启动前端开发服务

```bash
cd doc/html
npm install
npm run dev
```

默认开发访问地址：

- 前端：`http://localhost:5173`
- 后端：`http://localhost:8080`
- Swagger：`http://localhost:8080/swagger-ui/index.html`

## Docker 一键部署

根目录的 `docker-compose.yml` 用于发布态部署，会同时构建前端和后端镜像，并启动 MySQL 与 Redis。

1. 复制环境变量模板

```bash
cp .env.example .env
```

2. 按需填写 `.env`

至少建议检查这些配置：

- `MYSQL_ROOT_PASSWORD`
- `MYSQL_PASSWORD`
- `VOLCENGINE_ARK_API_KEY`
- `VOLCENGINE_TOS_ACCESS_KEY`
- `VOLCENGINE_TOS_SECRET_KEY`
- `VOLCENGINE_TOS_BUCKET`

3. 启动发布态服务

```bash
docker compose up -d --build
```

默认部署访问地址：

- 前端：`http://localhost:3000`
- 后端：`http://localhost:8080`

说明：

- 前端容器内部使用 Nginx 托管打包后的页面，并将 `/api` 反向代理到后端容器。
- 当前前端 Nginx 已配置 `100MB` 上传限制，与后端 `multipart` 配置保持一致，适合脚本、素材等较大的上传请求。
- 如果本机已经启动了开发态依赖服务，请先停止它们，或修改 `.env` 中的端口后再启动根目录部署编排。
- 当前 Docker 基础镜像已切换到更适合当前网络环境的镜像源，减少拉取失败概率。

## 关键文件

- `docker-compose.yml`：发布态部署入口
- `yaoai-comic-studio/docker-compose.yml`：开发态依赖服务编排
- `doc/html/Dockerfile`：前端镜像构建
- `doc/html/nginx.conf`：前端反向代理与上传限制配置
- `yaoai-comic-studio/Dockerfile`：后端镜像构建
- `.env.example`：发布态环境变量模板

## 当前状态

- 仓库已经整理为“前端 + 后端”双工程结构
- GitHub 远程仓库已完成同步
- 根目录发布态镜像构建链路已验证通过
- 若开发态 Docker 服务正在运行，发布态启动前需要避免端口和容器资源冲突
