From a9678194ddf2d9be3ccbe78d4287d87d5089e123 Mon Sep 17 00:00:00 2001 From: extreme Date: Mon, 20 Apr 2026 13:41:35 +0800 Subject: [PATCH] [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. --- README.md | 404 ++++++++++++++++------------------------------ docs/README.en.md | 4 +- docs/README.ja.md | 118 ++++++++++++++ docs/README.zh.md | 226 ++++++++++++++++++++++++++ 4 files changed, 485 insertions(+), 267 deletions(-) create mode 100644 docs/README.ja.md create mode 100644 docs/README.zh.md diff --git a/README.md b/README.md index 93d7f06..9b11a8d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Jellyfish AI短剧工厂 / AI Short Drama Studio +# Jellyfish — AI Short Drama Studio

Jellyfish Logo @@ -23,266 +23,208 @@

- 简体中文 · - English + English · + 日本語

-一站式 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 | | --- | --- | -| 项目概览 / Project Overview | 资产管理 / Asset Management | +| Project overview | Asset management | -## ✨ 核心价值 +## ✨ 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** — 待建设,后续会在本页更新入口 diff --git a/docs/README.en.md b/docs/README.en.md index 8d45b12..5e58e0a 100644 --- a/docs/README.en.md +++ b/docs/README.en.md @@ -5,8 +5,8 @@

- 简体中文 · - English + English · + 日本語

An end-to-end production tool for AI-generated short dramas (vertical / micro drama). diff --git a/docs/README.ja.md b/docs/README.ja.md new file mode 100644 index 0000000..219fdf1 --- /dev/null +++ b/docs/README.ja.md @@ -0,0 +1,118 @@ +# Jellyfish — AI短編ドラマ制作スタジオ + +

+ Jellyfish Logo +

+ +

+ English · + 日本語 +

+ +AI生成の短編ドラマ制作を一気通貫で支えるワークスペースです。 +脚本入力から、分鏡、アセット整合性管理、生成実行、書き出しまでをつなぎます。 + +## 📷 スクリーンショット + +| プロジェクト概要 | アセット管理 | +| --- | --- | +| Project overview | Asset management | + +## ✨ コアバリュー + +- **制作フローを一本化**:脚本入力から分鏡準備、画像・動画生成、タスク追跡までを一つの流れで扱えます +- **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). diff --git a/docs/README.zh.md b/docs/README.zh.md new file mode 100644 index 0000000..af6ca54 --- /dev/null +++ b/docs/README.zh.md @@ -0,0 +1,226 @@ +# Jellyfish AI短剧工厂 / AI Short Drama Studio + +

+ Jellyfish Logo +

+ +

+ English · + 日本語 +

+ +一站式 AI 生成短剧(竖屏短剧 / 微短剧)的生产工具 +从剧本输入 → 智能分镜 → 角色/场景/道具一致性管理 → AI 视频生成 → 后期剪辑 → 一键导出成片 + +## 📷 项目截图 / Screenshots + +| 项目概览 | 资产管理 | +| --- | --- | +| 项目概览 / Project Overview | 资产管理 / Asset Management | + +## ✨ 核心价值 + +- **把短剧生产流程串起来**:从剧本输入、分镜拆解、镜头准备,到图片/视频生成与任务追踪,尽量减少工具切换和流程割裂 +- **把 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 反馈、使用讨论 +