[docs] Update README files to enhance clarity and accessibility; change project title, improve language options, and refine descriptions of features and workflows for AI-generated short dramas.

This commit is contained in:
extreme committed 2026-04-20 13:41:35 +08:00
1 parent 8eee5a6db9
commit a9678194dd
4 files changed
+485 -267

No files matched your search

+139 -265
View File
@@ -1,4 +1,4 @@
# Jellyfish AI短剧工厂 / AI Short Drama Studio
# Jellyfish — AI Short Drama Studio
<p align="center">
<img src="./docs/img/logo.svg" alt="Jellyfish Logo" width="160" />
@@ -23,266 +23,208 @@
</p>
<p align="center">
<a href="./README.md">简体中文</a> ·
<a href="./docs/README.en.md">English</a>
<a href="./README.md">English</a> ·
<a href="./docs/README.ja.md">日本語</a>
</p>
一站式 AI 生成短剧(竖屏短剧 / 微短剧)的生产工具
从剧本输入 → 智能分镜 → 角色/场景/道具一致性管理 → AI 视频生成 → 后期剪辑 → 一键导出成片
An end-to-end production workspace for AI-generated short dramas.
From script input to structured storyboarding, consistency management,
shot preparation, video generation, and export.
## 📷 项目截图 / Screenshots
## 📷 Screenshots
| 项目概览 | 资产管理 |
| Project overview | Asset management |
| --- | --- |
| <img src="./docs/img/project.png" alt="项目概览 / Project Overview" width="420" /> | <img src="./docs/img/%E8%B5%84%E4%BA%A7%E7%AE%A1%E7%90%86.png" alt="资产管理 / Asset Management" width="420" /> |
| <img src="./docs/img/project.png" alt="Project overview" width="420" /> | <img src="./docs/img/%E8%B5%84%E4%BA%A7%E7%AE%A1%E7%90%86.png" alt="Asset management" width="420" /> |
## ✨ 核心价值
## ✨ Core Value
- **把短剧生产流程串起来**:从剧本输入、分镜拆解、镜头准备,到图片/视频生成与任务追踪,尽量减少工具切换和流程割裂
- **把 AI 结果变成可确认、可复用的生产资料**:先沉淀为分镜、候选资产、对白、提示词和生成任务,再进入后续制作
- **把“一致性”作为核心问题来处理**:通过角色、场景、道具、服装等实体管理和镜头级关联,尽量降低人物漂移和场景跑偏
- **把长耗时生成变成可追踪的任务系统**:统一管理文本处理、图片生成、视频生成等异步任务,支持状态可见、可取消、可恢复
- **把 AI 能力接入做成基础设施**:通过模型管理、提示词模板、OpenAPI 协作和任务执行体系,为后续扩展更多工作流留出空间
- **Connect the full production flow**: Move from script input to storyboard preparation, image/video generation, and task tracking in one place.
- **Turn AI output into reusable production assets**: Shots, candidate assets, dialogue, prompts, and generation tasks can all be reviewed and reused.
- **Treat consistency as a first-class problem**: Centralized character, scene, prop, and costume management reduces drift across shots.
- **Handle long-running generation as trackable tasks**: Text, image, and video jobs all go through one async task system with status, cancel, and recovery.
- **Build AI capability as infrastructure**: Model management, prompt templates, files, and OpenAPI-based collaboration make the system extensible.
## ✨ 核心能力
## ✨ Core Capabilities
Jellyfish 不是单点的“AI 出图 / AI 出视频”工具,而是一套面向短剧生产的工作台。
它围绕“剧本理解、分镜准备、资产一致性、生成执行、任务追踪”构建了一条可落地的主流程。
Jellyfish is not just a single “AI image/video” utility. It is a
production workspace built around:
### 1. AI 剧本理解与分镜拆解
- script understanding
- shot preparation
- asset consistency
- generation execution
- task tracking
支持将章节剧本交给 AI 进行结构化处理,形成后续制作可用的分镜基础数据,包括:
### 1. AI script understanding and storyboard breakdown
- 剧本拆分为镜头
- 角色 / 场景 / 道具 / 服装等要素提取
- 对白提取与整理
- 剧本优化、简化与一致性检查
- 角色画像、场景信息、道具信息等专项分析
- Split chapter scripts into shots
- Extract characters, scenes, props, costumes, and dialogue
- Run script optimization, simplification, and consistency checks
- Support targeted analysis such as character portraits or scene details
### 2. 分镜准备与确认工作流
### 2. Shot preparation and confirmation workflow
当前主流程是:
The main workflow is:
`剧本拆分 → 分镜准备 → 候选确认 → 镜头 ready → 进入生成工作台`
`script breakdown → shot preparation → candidate confirmation → shot ready → generation workspace`
在准备阶段,支持:
Preparation currently supports:
- 提取并刷新镜头候选信息
- 确认或忽略资产候选
- 接受或忽略对白候选
- 关联已有角色 / 场景 / 道具 / 服装
- 对单镜头基础信息进行修正
- 用统一状态判断镜头是否完成准备
- extracting and refreshing shot candidates
- accepting or ignoring asset candidates
- accepting or ignoring dialogue candidates
- linking existing characters, scenes, props, and costumes
- correcting shot-level basic information
- using a unified readiness state to decide whether a shot is prepared
### 3. 资产一致性与复用体系
### 3. Asset consistency and reuse
围绕短剧生产中的一致性问题,项目提供统一实体管理能力,覆盖角色、演员、场景、道具和服装。
支持实体库管理、镜头级关联、图片管理和复用,尽量减少跨镜头生成时的内容漂移。
The system maintains a shared entity model across:
### 4. 镜头级图片与视频生成编排
- characters / actors
- scenes
- props
- costumes
在镜头进入 `ready` 后,可继续进入生成工作台完成生成准备与执行,包括:
This supports asset reuse across shots and helps stabilize style and identity.
- 关键帧与参考图管理
- 镜头级视频提示词预览
- 图片 / 视频生成任务发起
- 单镜头与批量生成前检查
- 生成结果回流到镜头与素材体系
### 4. Shot-level image and video orchestration
### 5. 统一任务中心与异步执行能力
Once a shot is `ready`, the generation workspace supports:
当前支持:
- keyframe and reference image management
- shot-level video prompt preview
- image and video generation tasks
- single-shot and batch pre-checks
- writing generation outputs back into the shot/media system
- 文本处理任务异步执行
- 图片 / 视频任务异步执行
- 任务状态、结果、耗时统一追踪
- 取消任务
- 全局任务中心查看运行中与最近完成任务
- 从任务回到对应项目 / 章节 / 镜头上下文
### 5. Unified async task center
### 6. 模型、提示词与生成基础设施
Current task infrastructure supports:
项目还提供支撑 AI 生产的基础设施能力,包括:
- async text-processing tasks
- async image and video generation tasks
- unified task status, result, and elapsed-time tracking
- task cancellation
- a global task center with context-aware navigation back to project/chapter/shot
- 多 Provider / 多模型管理
- 模型分类与默认模型设置
- 提示词模板管理
- 文件与生成素材管理
- OpenAPI 驱动的前后端接口协作
### 6. Model, prompt, and generation infrastructure
## 🚀 主要功能一览
Supporting capabilities include:
### 项目与章节管理
- multi-provider / multi-model management
- default model settings by category
- prompt template management
- file and generated media management
- OpenAPI-driven frontend/backend contracts
- 创建和管理项目、章节
- 以章节为单位承载剧本、分镜与生成流程
- 提供基础统计与工作台入口
## 🚀 Feature Overview
### AI 剧本处理
### Project and chapter management
- 将章节剧本拆分为多个镜头
- 提取角色、场景、道具、服装与对白信息
- 支持剧本优化、简化与一致性检查
- 支持角色画像、场景信息、道具信息等专项分析
- Create and manage projects and chapters
- Use chapters as the unit for scripts, shots, and generation
- Provide dashboard-style entry points and aggregated stats
### 分镜准备工作流
### AI script processing
- 编辑镜头标题、摘要和基础信息
- 提取并刷新资产/对白候选
- 确认、忽略或关联候选项
- 通过统一准备态判断镜头是否完成确认
- 明确区分“准备完成”和“生成中”
- Break chapter scripts into shots
- Extract characters, scenes, props, costumes, and dialogue
- Support optimization, simplification, and consistency checks
- Support focused analysis such as character portraits or scene information
### 资产与实体管理
### Shot preparation workflow
- 管理角色、演员、场景、道具、服装等实体
- 支持镜头级关联与复用
- 支持实体图片管理
- 支持名称存在性检查,辅助复用已有资产
- Edit shot title, summary, and basic information
- Refresh extracted asset and dialogue candidates
- Confirm, ignore, or link candidate items
- Use preparation state to determine shot readiness
- Keep “prepared” distinct from “currently generating”
### 镜头生成工作台
### Asset and entity management
- 管理关键帧、参考图与视频提示词
- 检查镜头视频生成准备度
- 发起图片 / 视频生成任务
- 支持单镜头和批量推进生成流程
- Manage characters, actors, scenes, props, and costumes
- Link and reuse them at shot level
- Manage entity images
- Check name existence to encourage reuse of existing assets
### 任务中心
### Shot generation workspace
- 统一查看运行中与最近完成的任务
- 跟踪任务状态、进度、耗时与结果
- 支持取消任务
- 支持从任务快速回到对应项目、章节或镜头
- Manage keyframes, reference images, and video prompts
- Check video readiness before generation
- Launch image/video generation tasks
- Support both single-shot and batch generation workflows
### 模型与提示词基础设施
### Task center
- 管理 Provider、Model 与默认模型设置
- 管理图片、视频、分镜等提示词模板
- 通过 OpenAPI 生成前端请求与类型
- 为后续扩展更多 AI 工作流提供统一底座
- View active and recently finished tasks
- Track status, progress, elapsed time, and results
- Cancel tasks
- Jump back to the related project, chapter, or shot
### 文件与素材管理
### Model and prompt infrastructure
- 管理上传文件与生成产物
- 统一预览、关联和复用图片/视频素材
- 为镜头和实体提供可回溯的素材支撑
- Manage providers, models, and default settings
- Manage prompt templates for images, video, and shots
- Generate frontend request helpers and types from OpenAPI
- Provide a stable base for future AI workflow expansion
## 🎯 适用场景
### File and media management
- 短剧/微短剧内容创作者
- AI 影视工作室批量生产
- 个人创作者想低成本试水竖屏短剧
- 教育/培训机构制作教学短视频
- 品牌/电商制作带剧情的产品宣传短片
- Manage uploads and generated outputs
- Preview, link, and reuse image/video assets
- Preserve shot and entity context around generated media
## 🛠 技术栈(示例)
## 🎯 Use Cases
- 前端:React 18 + TypeScript + Vite + Ant Design / Tailwind CSS
- 状态管理:Redux Toolkit / Zustand
- 工作流编辑:React Flow
- 视频播放器:Video.js / Plyr
- 富文本/代码编辑:Monaco Editor / React Quill
- 后端(可选开源部分):Node.js / NestJS / FastAPI / Spring Boot
- AI 生成层:对接多种大模型 API(OpenAI / Anthropic / Midjourney / Runway / Kling / Luma 等)
- Short / micro-drama creators
- AI studios producing video content in batches
- Solo creators exploring vertical drama production
- Education and training teams making lesson videos
- Brands and e-commerce teams producing story-driven promos
## 🔁 前端 OpenAPI 请求/类型生成与更新
## 🔁 Frontend OpenAPI client and type generation
前端请求函数与数据结构由后端 OpenAPI 文档生成,生成目录为 `front/src/services/generated/`,OpenAPI 文档缓存为 `front/openapi.json`。
Frontend request helpers and types are generated from the backend
OpenAPI spec. Output directory:
在后端开发服务已启动(默认 `http://127.0.0.1:8000`)时,在前端目录执行:
- `front/src/services/generated/`
Cached spec file:
- `front/openapi.json`
With the backend dev server running at `http://127.0.0.1:8000`, run:
```bash
cd front
pnpm run openapi:update
```
说明:
## 🐳 Docker Compose
- `openapi:update` 会先拉取 `http://127.0.0.1:8000/openapi.json` 到 `front/openapi.json`,再生成代码到 `front/src/services/generated/`
- 如需修改请求基础地址,可配置 `VITE_BACKEND_URL`(构建时)或在部署时通过 `BACKEND_URL` 运行时注入(`front/index.html` 引入 `/env.js`),见 `front/src/services/openapi.ts`
The repository includes a ready-to-run compose setup under
`deploy/compose/`.
## 🐳 Docker 一键启动(MySQL + Redis + RustFS + Backend + Celery Worker + Front)
### Ports
项目已提供开箱即用的 compose 编排,文件位于 `deploy/compose/`。
- Frontend: `http://localhost:7788`
- Backend: `http://localhost:8000` (`/docs` for Swagger)
- MySQL: `localhost:${MYSQL_PORT:-3306}`
- Redis: `localhost:${REDIS_PORT:-6379}`
- RustFS: `http://localhost:${RUSTFS_PORT:-9000}`
### 端口
- 前端:`http://localhost:7788`
- 后端:`http://localhost:8000`(`/docs` 为 Swagger)
- MySQL:`localhost:${MYSQL_PORT:-3306}`
- Redis:`localhost:${REDIS_PORT:-6379}`
- RustFS(S3 API):`http://localhost:${RUSTFS_PORT:-9000}`(Console:`http://localhost:${RUSTFS_CONSOLE_PORT:-9001}`)
### 启动
### Start
```bash
cp deploy/compose/.env.example deploy/compose/.env
docker compose --env-file deploy/compose/.env -f deploy/compose/docker-compose.yml up --build
```
首次启动会自动运行一次 `backend/init_db.py` 创建表结构(`backend-init-db` 服务)。
并在其成功后自动按文件名前缀顺序依次导入 `backend/sql/` 下的 SQL 文件(`mysql-init-sql` 服务),例如:
## 🧑‍💻 Local Development
- `001-init-prompt-template.sql`
- `002-add-shot-extracted-candidates.sql`
另外,compose 还会启动:
- `redis`
- 作为 Celery broker
- `celery-worker`
- 负责执行 `divide / extract` 等长耗时任务
### Redis / Celery Broker 配置
compose 环境变量中可单独配置 Redis:
- `REDIS_PORT`
- `REDIS_DB`
- `REDIS_PASSWORD`
如果**未显式设置** `CELERY_BROKER_URL`,后端会自动按以下规则拼接:
```text
redis://[:password@]REDIS_HOST:REDIS_PORT/REDIS_DB
```
在 compose 场景下默认使用:
```text
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB=${REDIS_DB:-0}
```
### Celery 首轮联调检查
完成启动后,建议优先验证:
1. `redis` 为 `healthy`
2. `celery-worker` 日志中出现 `ready`
3. 触发:
- 分镜管理页的 `一键提取分镜`
- 分镜编辑页的 `提取并刷新候选`
4. 页面刷新后继续查看:
- 章节详情
- 分镜列表
- `/api/v1/film/tasks/{task_id}/status`
联调成功的核心判断标准:
- `divide / extract` 任务由 `celery-worker` 承担主要耗时执行
- `backend` 仍然能继续响应其他接口
- 页面刷新后任务状态仍能恢复
## 🧑‍💻 开发环境启动(前后端分离)
### 端口
- 前端(Vite dev):`http://localhost:7788`
- 后端(FastAPI):`http://localhost:8000`(`/docs` 为 Swagger)
### 启动后端
### Backend
```bash
cd backend
@@ -291,9 +233,7 @@ uv sync
uv run uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```
提交前可在 `backend` 目录执行 `uv sync --group dev` 与 `uv run pylint app` 做静态检查(配置与说明见 [backend/README.md](backend/README.md))。
### 启动前端
### Frontend
```bash
cd front
@@ -301,77 +241,11 @@ pnpm install
pnpm dev
```
### (可选)仅启动依赖服务 MySQL + Redis + RustFS
## 📄 License
如果你希望开发时使用 MySQL + Redis + RustFS(而不是默认 SQLite),可以只启动基础设施服务:
This project is licensed under [Apache-2.0](./LICENSE).
```bash
cp deploy/compose/.env.example deploy/compose/.env
docker compose --env-file deploy/compose/.env -f deploy/compose/docker-compose.yml up -d mysql redis rustfs
```
## 💬 Community & Feedback
### Git 提交说明格式
- [GitHub Issues](https://github.com/Forget-C/Jellyfish/issues)
本地提交时,**首行**须符合:`[类型] 摘要`。`类型` 只能是下列**枚举之一**(**必须小写**),后接**一个空格**再写摘要:
| 类型 | 含义 |
|------|------|
| `feat` | 新功能 |
| `fix` | 缺陷 / Bug 修复 |
| `docs` | 文档 |
| `style` | 格式调整(不改变代码含义) |
| `refactor` | 重构 |
| `perf` | 性能优化 |
| `test` | 测试 |
| `chore` | 杂项 / 工具 / 非 src |
| `ci` | CI 配置 |
| `build` | 构建系统或依赖 |
| `revert` | 回滚 |
示例:`[feat] 新功能`、`[fix] 修复登录`、`[docs] 更新 README`。不可使用未在表中的类型(如 `[wip]`、`[update]`)。
启用校验(在本仓库根目录执行一次即可):
```bash
git config core.hooksPath .githooks
```
说明:合并提交(`Merge …`)、`Revert …` 及合并流程中的提交会被钩子放行。
**远端强制**:向默认分支发起的 Pull Request 会由 [`.github/workflows/commit-messages.yml`](.github/workflows/commit-messages.yml) 校验 PR 内每个提交的标题行(规则与上相同;`Merge` / `Revert` 开头跳过)。请在分支上把提交信息写成符合规范的格式后再推。
## 🚧 开发状态 / Roadmap
项目处于**活跃开发中**,以下为当前功能完成度与规划进度。欢迎通过 [Issues](https://github.com/Forget-C/Jellyfish/issues) 参与讨论与贡献。
### ✅ 已完成
| 模块 | 说明 |
|------|------|
| 模型管理交互 | 模型列表、筛选、配置等前端交互已就绪 |
| 项目管理交互 | 项目创建、编辑、仪表盘等交互流程已打通 |
| 项目工作台交互 | 项目级工作台布局与基础操作已实现 |
| 章节拍摄工作台交互 | 章节拍摄相关界面与交互已就绪 |
| 模型管理功能 | 多供应商、多类型模型的管理与默认配置 |
| 项目管理功能 | 项目 CRUD、全局风格与种子等配置能力 |
### 🚧 进行中 / 规划中
| 模块 | 说明 |
|------|------|
| 章节拍摄工作台 | 完整分镜编辑、视频生成与预览流程(功能深化中) |
| 高级提示词 | 分镜/角色/场景等高级提示词模板与智能填充(规划中) |
## 开发者
项目仍处于开发阶段,核心流程与数据模型尚未完全稳定;但已提供基于 Docker Compose 的本地启动方式(见上方)。
## 📄 开源协议 / License
本项目采用 [Apache-2.0](LICENSE) 开源协议。
欢迎提交 **Pull Request**、**Issue** 与 **Star**,与社区一起把 AI 短剧生产工具做成可落地的行业方案。
## 💬 交流与反馈 / Community
- **[GitHub Issues](https://github.com/Forget-C/Jellyfish/issues)** — 功能建议、Bug 反馈、使用讨论
- **微信群 / Discord** — 待建设,后续会在本页更新入口
+2 -2
View File
@@ -5,8 +5,8 @@
</p>
<p align="center">
<a href="../README.md">简体中文</a> ·
<a href="./README.en.md">English</a>
<a href="./README.en.md">English</a> ·
<a href="./README.ja.md">日本語</a>
</p>
An end-to-end production tool for AI-generated short dramas (vertical / micro drama).
+118
View File
@@ -0,0 +1,118 @@
# Jellyfish — AI短編ドラマ制作スタジオ
<p align="center">
<img src="./img/logo.svg" alt="Jellyfish Logo" width="160" />
</p>
<p align="center">
<a href="./README.en.md">English</a> ·
<a href="./README.ja.md">日本語</a>
</p>
AI生成の短編ドラマ制作を一気通貫で支えるワークスペースです。
脚本入力から、分鏡、アセット整合性管理、生成実行、書き出しまでをつなぎます。
## 📷 スクリーンショット
| プロジェクト概要 | アセット管理 |
| --- | --- |
| <img src="./img/project.png" alt="Project overview" width="420" /> | <img src="./img/%E8%B5%84%E4%BA%A7%E7%AE%A1%E7%90%86.png" alt="Asset management" width="420" /> |
## ✨ コアバリュー
- **制作フローを一本化**:脚本入力から分鏡準備、画像・動画生成、タスク追跡までを一つの流れで扱えます
- **AI出力を再利用可能な制作資産に変換**:ショット、候補アセット、台詞、プロンプト、生成タスクとして蓄積できます
- **整合性を最重要課題として扱う**:キャラクター、シーン、小道具、衣装を統合管理し、ショット間のブレを抑えます
- **長時間ジョブを追跡可能なタスクとして扱う**:テキスト、画像、動画の非同期処理を統一的に可視化・中断・再開できます
## ✨ 主な機能
### 1. AI脚本理解と分鏡分解
- 章の脚本をショット単位に分解
- キャラクター、シーン、小道具、衣装、台詞の抽出
- 脚本の最適化、簡略化、一貫性チェック
- キャラクター像やシーン情報などの補助分析
### 2. 分鏡準備ワークフロー
標準フロー:
`脚本分解 → 分鏡準備 → 候補確認 → ショット ready → 生成ワークスペース`
準備段階では次を扱えます:
- ショット候補の抽出と再取得
- アセット候補の採用 / 無視
- 台詞候補の採用 / 無視
- 既存キャラクター / シーン / 小道具 / 衣装との関連付け
- ショット基本情報の修正
- 準備状態による ready 判定
### 3. アセット整合性と再利用
以下のエンティティを統一管理します:
- キャラクター / 俳優
- シーン
- 小道具
- 衣装
これによりショット間での再利用とスタイル安定化を支えます。
### 4. ショット単位の画像・動画生成
ショットが `ready` になると、生成ワークスペースで次を行えます:
- キーフレームと参照画像の管理
- 動画プロンプトのプレビュー
- 画像 / 動画生成タスクの起動
- 単ショット / バッチの生成前チェック
- 生成結果のショット・素材体系への反映
### 5. 統一タスクセンター
- 実行中および最近完了したタスクの一覧
- ステータス、進捗、経過時間、結果の追跡
- タスク取消
- 関連プロジェクト / 章 / ショットへのジャンプ
## 🔁 OpenAPI クライアント生成
フロントエンドの API クライアントと型は、バックエンドの
OpenAPI 仕様から生成されます。
```bash
cd front
pnpm run openapi:update
```
## 🐳 Docker Compose
```bash
cp deploy/compose/.env.example deploy/compose/.env
docker compose --env-file deploy/compose/.env -f deploy/compose/docker-compose.yml up --build
```
## 🧑‍💻 ローカル開発
### Backend
```bash
cd backend
cp .env.example .env
uv sync
uv run uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```
### Frontend
```bash
cd front
pnpm install
pnpm dev
```
## 📄 License
This project is licensed under [Apache-2.0](../LICENSE).
+226
View File
@@ -0,0 +1,226 @@
# Jellyfish AI短剧工厂 / AI Short Drama Studio
<p align="center">
<img src="./img/logo.svg" alt="Jellyfish Logo" width="160" />
</p>
<p align="center">
<a href="./README.en.md">English</a> ·
<a href="./README.ja.md">日本語</a>
</p>
一站式 AI 生成短剧(竖屏短剧 / 微短剧)的生产工具
从剧本输入 → 智能分镜 → 角色/场景/道具一致性管理 → AI 视频生成 → 后期剪辑 → 一键导出成片
## 📷 项目截图 / Screenshots
| 项目概览 | 资产管理 |
| --- | --- |
| <img src="./img/project.png" alt="项目概览 / Project Overview" width="420" /> | <img src="./img/%E8%B5%84%E4%BA%A7%E7%AE%A1%E7%90%86.png" alt="资产管理 / Asset Management" width="420" /> |
## ✨ 核心价值
- **把短剧生产流程串起来**:从剧本输入、分镜拆解、镜头准备,到图片/视频生成与任务追踪,尽量减少工具切换和流程割裂
- **把 AI 结果变成可确认、可复用的生产资料**:先沉淀为分镜、候选资产、对白、提示词和生成任务,再进入后续制作
- **把“一致性”作为核心问题来处理**:通过角色、场景、道具、服装等实体管理和镜头级关联,尽量降低人物漂移和场景跑偏
- **把长耗时生成变成可追踪的任务系统**:统一管理文本处理、图片生成、视频生成等异步任务,支持状态可见、可取消、可恢复
- **把 AI 能力接入做成基础设施**:通过模型管理、提示词模板、OpenAPI 协作和任务执行体系,为后续扩展更多工作流留出空间
## ✨ 核心能力
Jellyfish 不是单点的“AI 出图 / AI 出视频”工具,而是一套面向短剧生产的工作台。
它围绕“剧本理解、分镜准备、资产一致性、生成执行、任务追踪”构建了一条可落地的主流程。
### 1. AI 剧本理解与分镜拆解
支持将章节剧本交给 AI 进行结构化处理,形成后续制作可用的分镜基础数据,包括:
- 剧本拆分为镜头
- 角色 / 场景 / 道具 / 服装等要素提取
- 对白提取与整理
- 剧本优化、简化与一致性检查
- 角色画像、场景信息、道具信息等专项分析
### 2. 分镜准备与确认工作流
当前主流程是:
`剧本拆分 → 分镜准备 → 候选确认 → 镜头 ready → 进入生成工作台`
在准备阶段,支持:
- 提取并刷新镜头候选信息
- 确认或忽略资产候选
- 接受或忽略对白候选
- 关联已有角色 / 场景 / 道具 / 服装
- 对单镜头基础信息进行修正
- 用统一状态判断镜头是否完成准备
### 3. 资产一致性与复用体系
围绕短剧生产中的一致性问题,项目提供统一实体管理能力,覆盖角色、演员、场景、道具和服装。
支持实体库管理、镜头级关联、图片管理和复用,尽量减少跨镜头生成时的内容漂移。
### 4. 镜头级图片与视频生成编排
在镜头进入 `ready` 后,可继续进入生成工作台完成生成准备与执行,包括:
- 关键帧与参考图管理
- 镜头级视频提示词预览
- 图片 / 视频生成任务发起
- 单镜头与批量生成前检查
- 生成结果回流到镜头与素材体系
### 5. 统一任务中心与异步执行能力
当前支持:
- 文本处理任务异步执行
- 图片 / 视频任务异步执行
- 任务状态、结果、耗时统一追踪
- 取消任务
- 全局任务中心查看运行中与最近完成任务
- 从任务回到对应项目 / 章节 / 镜头上下文
### 6. 模型、提示词与生成基础设施
项目还提供支撑 AI 生产的基础设施能力,包括:
- 多 Provider / 多模型管理
- 模型分类与默认模型设置
- 提示词模板管理
- 文件与生成素材管理
- OpenAPI 驱动的前后端接口协作
## 🚀 主要功能一览
### 项目与章节管理
- 创建和管理项目、章节
- 以章节为单位承载剧本、分镜与生成流程
- 提供基础统计与工作台入口
### AI 剧本处理
- 将章节剧本拆分为多个镜头
- 提取角色、场景、道具、服装与对白信息
- 支持剧本优化、简化与一致性检查
- 支持角色画像、场景信息、道具信息等专项分析
### 分镜准备工作流
- 编辑镜头标题、摘要和基础信息
- 提取并刷新资产/对白候选
- 确认、忽略或关联候选项
- 通过统一准备态判断镜头是否完成确认
- 明确区分“准备完成”和“生成中”
### 资产与实体管理
- 管理角色、演员、场景、道具、服装等实体
- 支持镜头级关联与复用
- 支持实体图片管理
- 支持名称存在性检查,辅助复用已有资产
### 镜头生成工作台
- 管理关键帧、参考图与视频提示词
- 检查镜头视频生成准备度
- 发起图片 / 视频生成任务
- 支持单镜头和批量推进生成流程
### 任务中心
- 统一查看运行中与最近完成的任务
- 跟踪任务状态、进度、耗时与结果
- 支持取消任务
- 支持从任务快速回到对应项目、章节或镜头
### 模型与提示词基础设施
- 管理 Provider、Model 与默认模型设置
- 管理图片、视频、分镜等提示词模板
- 通过 OpenAPI 生成前端请求与类型
- 为后续扩展更多 AI 工作流提供统一底座
### 文件与素材管理
- 管理上传文件与生成产物
- 统一预览、关联和复用图片/视频素材
- 为镜头和实体提供可回溯的素材支撑
## 🎯 适用场景
- 短剧/微短剧内容创作者
- AI 影视工作室批量生产
- 个人创作者想低成本试水竖屏短剧
- 教育/培训机构制作教学短视频
- 品牌/电商制作带剧情的产品宣传短片
## 🛠 技术栈(示例)
- 前端:React 18 + TypeScript + Vite + Ant Design / Tailwind CSS
- 状态管理:Redux Toolkit / Zustand
- 工作流编辑:React Flow
- 视频播放器:Video.js / Plyr
- 富文本/代码编辑:Monaco Editor / React Quill
- 后端(可选开源部分):Node.js / NestJS / FastAPI / Spring Boot
- AI 生成层:对接多种大模型 API(OpenAI / Anthropic / Midjourney / Runway / Kling / Luma 等)
## 🔁 前端 OpenAPI 请求/类型生成与更新
前端请求函数与数据结构由后端 OpenAPI 文档生成,生成目录为 `front/src/services/generated/`,OpenAPI 文档缓存为 `front/openapi.json`。
在后端开发服务已启动(默认 `http://127.0.0.1:8000`)时,在前端目录执行:
```bash
cd front
pnpm run openapi:update
```
## 🐳 Docker 一键启动(MySQL + Redis + RustFS + Backend + Celery Worker + Front)
项目已提供开箱即用的 compose 编排,文件位于 `deploy/compose/`。
### 端口
- 前端:`http://localhost:7788`
- 后端:`http://localhost:8000`(`/docs` 为 Swagger)
- MySQL:`localhost:${MYSQL_PORT:-3306}`
- Redis:`localhost:${REDIS_PORT:-6379}`
- RustFS(S3 API):`http://localhost:${RUSTFS_PORT:-9000}`(Console:`http://localhost:${RUSTFS_CONSOLE_PORT:-9001}`)
### 启动
```bash
cp deploy/compose/.env.example deploy/compose/.env
docker compose --env-file deploy/compose/.env -f deploy/compose/docker-compose.yml up --build
```
## 🧑‍💻 开发环境启动(前后端分离)
### 启动后端
```bash
cd backend
cp .env.example .env
uv sync
uv run uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```
### 启动前端
```bash
cd front
pnpm install
pnpm dev
```
## 📄 开源协议 / License
本项目采用 [Apache-2.0](../LICENSE) 开源协议。
## 💬 交流与反馈 / Community
- **[GitHub Issues](https://github.com/Forget-C/Jellyfish/issues)** — 功能建议、Bug 反馈、使用讨论