Initial 智念AIGC platform

This commit is contained in:
inman
2026-05-29 10:26:02 +08:00
commit f9c3393f84
86 changed files with 14741 additions and 0 deletions

184
README.md Normal file
View File

@@ -0,0 +1,184 @@
# 智念AIGC平台
这是 `智念AIGC平台` 的 Web 极简 MVP。当前产品只保留核心闭环统一创作图片/视频、查看结果、局部重绘、智能超清和必要设置。
旧的 `runtime/nianxx-play` standalone 运行包只作为旧流程、样例素材和 Seedance 参考,不再作为主应用入口。仓库只保留旧运行时元数据;大体积本地媒体与依赖不纳入代码提交。
## 启动
```bash
cd /Users/inmanx/Documents/zhinian-creation-assistant
npm install
npm run dev -- --hostname 127.0.0.1 --port 3000
```
默认访问:
```text
http://127.0.0.1:3000
```
常用命令:
```bash
npm start
npm run build
npm test
npm run health
npm run info
```
`npm start` 会自动先执行一次生产构建,再启动 `http://127.0.0.1:3000`;开发调试建议继续使用 `npm run dev`
旧 runtime 仍可手动启动:
```bash
npm run legacy:start
```
## Web MVP 信息架构
- `/` 自动跳转到 `/create`
- `/create` 创作,合并图片、视频、局部重绘、智能超清
- `/assets` 结果,保留历史资产和历史生成任务
- `/image-edit` 兼容旧入口,自动跳转到创作页的局部重绘
- `/settings` 设置
主导航只保留创作、结果、设置不包含工作台、项目、模板中心、Billing 或桌面端入口。
## 图片创作引擎
图片生成和局部重绘支持在设置页「状态」里按功能切换创作引擎:
- `jimeng`:默认引擎,走火山 Visual 即梦能力。
- `evolink`:走 EvoLink GPT Image 2 中转站,提交任务后轮询 EvoLink task 结果。
智能超清仍走即梦超清能力。
## 即梦图片能力
V1 接入三类能力:
- `image.generate`:即梦图片生成 4.6,默认 `req_key=jimeng_seedream46_cvtob`
- `image.inpaint`:交互编辑 inpainting默认 `req_key=jimeng_image2image_dream_inpaint`
- `image.upscale`:智能超清,默认 `req_key=jimeng_i2i_seed3_tilesr_cvtob`
后端统一走火山 Visual 异步任务:
- 提交:`CVSync2AsyncSubmitTask`
- 查询:`CVSync2AsyncGetResult`
未配置火山密钥时,`JIMENG_VISUAL_MOCK=auto` 会自动使用 mock 图,方便先跑通产品流。
## EvoLink 图片能力
设置 `IMAGE_GENERATE_ENGINE=evolink``IMAGE_INPAINT_ENGINE=evolink` 后,对应功能会使用 EvoLink
- 提交:`POST /v1/images/generations`
- 查询:`GET /v1/tasks/{task_id}`
- 默认模型:`gpt-image-2`
未配置 `EVOLINK_API_KEY``EVOLINK_MOCK=auto` 时,会自动使用 mock 图。
## AI 生成台与提示词编排
`/create` 是新的统一生成入口,按即梦“图片/视频能力在同一个创作产品内切换”的方式组织:
- 一个提示词框:图片和视频都在同一创作面板内编辑最终提示词。
- 模式切换:图片模式走即梦图片生成 4.6;视频模式走 Seedance 视频生成。
- 素材统一上传:一个入口上传图片、视频或音频,不再拆分参考图、主体、分镜等栏目。
- `@素材` 引用:上传后自动绑定为 `@图片1``@视频1``@音频1`chip 和 @ 候选项都显示缩略图。
- 提示词校验:通过 `/api/prompt/assemble` 检查提示词中引用的素材是否已绑定。
- 工作台只负责生成输入和提交,不展示任务列表或最近结果。
- 结果保存:图片和视频生成结果会写入资产记录,并在 `/assets` 保留历史任务与历史资产。
未配置 `SEEDANCE_API_KEY` 时,`SEEDANCE_MOCK=auto` 会自动使用旧模板样片作为 mock 成品,方便先验收工作流。
## 环境变量
复制配置样例:
```bash
cp .env.example .env.local
```
核心配置:
- `IMAGE_GENERATE_ENGINE=jimeng``evolink`
- `IMAGE_INPAINT_ENGINE=jimeng``evolink`
- `VOLCENGINE_ACCESS_KEY_ID`
- `VOLCENGINE_SECRET_ACCESS_KEY`
- `VOLCENGINE_REGION=cn-north-1`
- `VOLCENGINE_SERVICE=cv`
- `VOLCENGINE_VISUAL_ENDPOINT=https://visual.volcengineapi.com`
- `EVOLINK_API_KEY`
- `EVOLINK_BASE_URL=https://api.evolink.ai`
- `EVOLINK_IMAGE_MODEL=gpt-image-2`
- `EVOLINK_IMAGE_QUALITY=medium`
- `EVOLINK_IMAGE_RESOLUTION=2K`
- `EVOLINK_MOCK=auto`
- `SEEDANCE_API_KEY`
- `SEEDANCE_BASE_URL`
- `SEEDANCE_MODEL`
- `SEEDANCE_RATIO`:支持 `16:9``4:3``1:1``3:4``9:16``21:9``adaptive`
- `SEEDANCE_DURATION`Seedance 2.0 支持 `4``15` 的整数秒,或 `-1` 让模型自动选择
- `SEEDANCE_RESOLUTION`:支持 `480p``720p``1080p`Seedance 2.0 fast 不支持 `1080p`
- `SEEDANCE_MOCK`
- `ALI_OSS_*`:用于上传素材和生成结果转存
- `NEXT_PUBLIC_SUPABASE_URL`
- `NEXT_PUBLIC_SUPABASE_ANON_KEY`
- `SUPABASE_SERVICE_ROLE_KEY`
如果 Supabase 未配置,应用会使用 `.runtime/data/web-app-state.json` 做本地开发数据层。如果 OSS 未配置,上传和 mock 结果会保存到 `.runtime/uploads``.runtime/generated-results`,并通过 Web 路由提供访问。
## 数据库
Supabase/Postgres 表结构在:
```text
supabase/schema.sql
```
当前仍保留必要数据表,供上传、生成任务和用量记录使用:
- `assets`
- `generation_jobs`
- `usage_events`
## API
核心图片 API
- `POST /api/generations/image`
- `GET /api/generations/image`
- `GET /api/generations/image/[id]`
- `POST /api/generations/image/[id]/retry`
- `POST /api/assets/[id]/inpaint`
- `POST /api/assets/[id]/upscale`
- `POST /api/generations/video`
- `GET /api/generations/video`
- `GET /api/generations/video/[id]`
- `POST /api/prompt/assemble`
- `GET /api/assets`
- `POST /api/assets`
- `POST /api/assets/upload`
健康检查:
- `GET /api/health`
## 验证
当前已覆盖:
- 即梦能力矩阵4.6/inpainting/upscale 启用
- 即梦请求参数构造
- 分镜提示词与 `@素材` 引用编排
- 火山 Visual 签名 canonical request
- Next.js 生产构建
```bash
npm test
npm run build
npm run health
```