fix: trim gen2D slide content to prevent overflow beyond header/footer
Deploy Slides / build-and-deploy (push) Successful in 1m16s
Deploy Slides / build-and-deploy (push) Successful in 1m16s
- Reduce Item count per slide: pipeline 4→3, solution 4→2, highlights 6→4 - Remove tech-stack architecture layering Item (moved to tech-stack grid) - Simplify eino-graph: shorter Go code, 3 Items→2 - Simplify prompt-agent: smaller mermaid, shorter Item text - Simplify async-task: merge 3 Items→2, remove footer - Simplify data-model: merge 4 grid items→2 - Simplify architecture: reduce ASCII diagram from 38 to 20 lines - Simplify dedup-ws: remove JSON code block, shorter Items - Simplify deployment: smaller mermaid, shorter Items - Simplify problem: shorter Item text, remove bullet lists - Simplify style-system: fix typo, shorter Item text
This commit is contained in:
@@ -3,44 +3,26 @@
|
||||
<div class="text-sm mt-2">
|
||||
|
||||
```
|
||||
┌──────────────────────────────────────────────────────────────────┐
|
||||
│ Frontend (React + Vite + TypeScript) │
|
||||
│ │
|
||||
│ ┌──────────┐ ┌──────────────┐ ┌──────────┐ ┌───────────┐ │
|
||||
│ │ 项目画廊 │ │ 工作台面板 │ │ 结果预览 │ │ 风格编辑器 │ │
|
||||
│ └──────────┘ └──────────────┘ └──────────┘ └───────────┘ │
|
||||
│ │ Zustand 状态管理 │
|
||||
│ │ react-router v7 路由 │
|
||||
└────────────────────────┼─────────────────────────────────────────┘
|
||||
│ HTTP (REST API) + WebSocket
|
||||
┌────────────────────────┼─────────────────────────────────────────┐
|
||||
│ Backend (Go + Gin + Eino) │
|
||||
│ │ │
|
||||
│ ┌────────────────────▼─────────────────────────────────────┐ │
|
||||
│ │ Handler Layer (Gin Router) │ │
|
||||
│ │ JWT 中间件 · 请求校验 · 错误处理 │ │
|
||||
│ └────────────────────┬─────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ┌────────────────────▼─────────────────────────────────────┐ │
|
||||
│ │ Service Layer (业务逻辑) │ │
|
||||
│ │ ┌─────────────────────────────────────────────────────┐ │ │
|
||||
│ │ │ Eino compose.Graph Pipeline │ │ │
|
||||
│ │ │ PromptOptimizer → AssetGenerator → QualitySupervisor│ │ │
|
||||
│ │ │ ↓ │ │ │
|
||||
│ │ │ FormatAdapter │ │ │
|
||||
│ │ └─────────────────────────────────────────────────────┘ │ │
|
||||
│ │ ┌──────────┐ ┌───────────┐ ┌──────────┐ │ │
|
||||
│ │ │ 项目管理 │ │ 风格系统 │ │ 用户认证 │ │ │
|
||||
│ │ └──────────┘ └───────────┘ └──────────┘ │ │
|
||||
│ └──────────────────────────────────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ┌────────────────────▼─────────────────────────────────────┐ │
|
||||
│ │ Data Layer (数据访问) │ │
|
||||
│ │ GORM + SQLite sync.Map 缓存 │ │
|
||||
│ └──────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ 外部依赖:DeepSeek LLM · Stability AI · 七牛云 Kodo │
|
||||
└──────────────────────────────────────────────────────────────────┘
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ Frontend (React + Vite + TypeScript) │
|
||||
│ 项目画廊 · 工作台 · 结果预览 · 风格编辑器 │
|
||||
│ Zustand 状态管理 · react-router v7 │
|
||||
└─────────────────────────┬───────────────────────────┘
|
||||
│ HTTP / WebSocket
|
||||
┌─────────────────────────▼───────────────────────────┐
|
||||
│ Backend (Go + Gin + Eino) │
|
||||
│ │
|
||||
│ Handler: JWT 中间件 · 请求校验 · 错误处理 │
|
||||
│ ↓ │
|
||||
│ Service: Eino compose.Graph Pipeline │
|
||||
│ PromptOptimizer → AssetGenerator │
|
||||
│ → QualitySupervisor → FormatAdapter │
|
||||
│ 项目管理 · 风格系统 · 用户认证 │
|
||||
│ ↓ │
|
||||
│ Data: GORM + SQLite · sync.Map 缓存 │
|
||||
│ │
|
||||
│ 外部: DeepSeek LLM · Stability AI · 七牛云 Kodo │
|
||||
└──────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
@@ -2,33 +2,23 @@
|
||||
|
||||
提交即返回,后台并发执行
|
||||
|
||||
<Item title="📤 任务提交流程">
|
||||
<Item title="📤 任务提交 → 后台执行">
|
||||
|
||||
1. 用户提交生成请求 → 创建 Task 记录(状态 `running`)
|
||||
2. 立即返回 `taskId`,前端开始轮询 / 建立 WebSocket
|
||||
3. 后台启动 goroutine 执行管线
|
||||
1. 提交请求 → 创建 Task(`running`)→ 立即返回 `taskId`
|
||||
2. 前端轮询 / WebSocket 获取进度
|
||||
3. 后台 goroutine 执行管线,完成后上传素材
|
||||
|
||||
</Item>
|
||||
|
||||
<Item title="🔄 管线执行与进度推送">
|
||||
<Item title="🔄 进度与重试">
|
||||
|
||||
| 阶段 | 进度范围 | 说明 |
|
||||
|------|---------|------|
|
||||
| PromptOptimizer | 5% → 25% | 风格合并 + LLM 优化 |
|
||||
| AssetGenerator | 25% → 60% | 调用文生图 API |
|
||||
| QualitySupervisor | 60% → 80% | 视觉模型质检 |
|
||||
| FormatAdapter | 80% → 100% | 格式组装 + 上传 |
|
||||
| 阶段 | 进度 | 说明 |
|
||||
|------|------|------|
|
||||
| PromptOptimizer | 5→25% | 风格合并 + LLM 优化 |
|
||||
| AssetGenerator | 25→60% | 调用文生图 API |
|
||||
| QualitySupervisor | 60→80% | 视觉模型质检 |
|
||||
| FormatAdapter | 80→100% | 格式组装 + 上传 |
|
||||
|
||||
质检重试最多 3 次,任务级重试 1 次,超限降级输出。
|
||||
|
||||
</Item>
|
||||
|
||||
<Item title="🔁 重试策略">
|
||||
|
||||
- **质检重试**(管线内):QualitySupervisor 不合格 → 回退 PromptOptimizer,最多 3 次
|
||||
- **任务级重试**(管线外):整个管线失败 → 5 秒间隔重试,最多 1 次
|
||||
- **降级兜底**:超过重试次数后,使用当前最优结果输出
|
||||
|
||||
</Item>
|
||||
|
||||
<div class="mt-4 text-sm text-gray-400">
|
||||
任务生命周期:running → completed / failed
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
四表结构,清晰的实体关系
|
||||
|
||||
```mermaid {scale: 0.8}
|
||||
```mermaid {scale: 0.7}
|
||||
erDiagram
|
||||
USER ||--o{ PROJECT : "拥有"
|
||||
PROJECT ||--|| PROJECT_STYLE : "配置"
|
||||
@@ -12,28 +12,15 @@ erDiagram
|
||||
|
||||
<div class="grid grid-cols-2 gap-4 mt-2">
|
||||
|
||||
<Item title="👤 USER 用户表">
|
||||
- `id`:前缀 + 随机 base62(6 字节 crypto/rand)
|
||||
- `username`:唯一用户名
|
||||
- `password_hash`:bcrypt 哈希
|
||||
<Item title="👤 USER + PROJECT">
|
||||
- 用户:`id`(base62)、`username`、`password_hash`(bcrypt)
|
||||
- 工程:`id`、`user_id`、`name`、`description`
|
||||
</Item>
|
||||
|
||||
<Item title="📁 PROJECT 工程表">
|
||||
- `id`:唯一标识
|
||||
- `user_id`:外键关联用户
|
||||
- `name` / `description`:工程信息
|
||||
</Item>
|
||||
|
||||
<Item title="🎨 PROJECT_STYLE 风格表">
|
||||
- `project_id`:一对一关联工程
|
||||
- `kv_pairs`:JSON 存储风格键值对
|
||||
- 支持 `custom:` 前缀自定义标签
|
||||
</Item>
|
||||
|
||||
<Item title="📦 TASK + ASSET 任务/素材表">
|
||||
- Task:`id` / `project_id` / `prompt` / `status` / `style_override`
|
||||
- Asset:`id` / `task_id` / `file_url` / `metadata`
|
||||
- 文件存储:七牛云 Kodo,CDN 签名访问
|
||||
<Item title="🎨 STYLE + TASK + ASSET">
|
||||
- 风格表:`project_id` 一对一,`kv_pairs` JSON 存储
|
||||
- 任务:`prompt`、`status`、`style_override`
|
||||
- 素材:`file_url`、`metadata`,存于七牛云 Kodo
|
||||
</Item>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -3,30 +3,9 @@
|
||||
两项关键的工程优化
|
||||
|
||||
<Item title="🔍 请求去重(Request Dedup)">
|
||||
|
||||
- **策略**:`hash(prompt + assetType + params)` 生成唯一键
|
||||
- **存储**:`sync.Map` 内存缓存,TTL 自动过期
|
||||
- **逻辑**:相同参数的并发请求自动合并,返回已有 `taskId`
|
||||
- **效果**:避免重复生成,节省 API 调用成本,提升用户体验
|
||||
|
||||
`hash(prompt + assetType + params)` 生成唯一键,`sync.Map` 内存缓存。相同参数并发请求自动合并,返回已有 `taskId`,节省 API 调用成本。
|
||||
</Item>
|
||||
|
||||
<Item title="📡 WebSocket 实时推送">
|
||||
|
||||
- 用户建立 `ws://host/api/v1/tasks/:taskId/ws` 连接
|
||||
- 管线各阶段执行时推送实时状态消息:
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "progress",
|
||||
"stage": "asset_generator",
|
||||
"progress": 45,
|
||||
"message": "正在生成素材..."
|
||||
}
|
||||
```
|
||||
|
||||
- 质检重试时推送额外信息:重试次数、重试原因
|
||||
- 管线完成时推送最终结果:素材 URL、元数据
|
||||
- **兼容方案**:同时支持 HTTP 轮询(`GET /api/v1/tasks/:taskId`)
|
||||
|
||||
建立 `ws://host/api/v1/tasks/:taskId/ws` 连接,管线各阶段推送进度、质检重试信息、最终结果。同时兼容 HTTP 轮询方案。
|
||||
</Item>
|
||||
|
||||
@@ -2,39 +2,21 @@
|
||||
|
||||
Docker Compose 双容器 + 一键部署
|
||||
|
||||
```mermaid {scale: 0.8}
|
||||
```mermaid {scale: 0.7}
|
||||
graph TB
|
||||
subgraph Docker Compose
|
||||
A[nginx 容器<br/>前端静态文件 + 反向代理]
|
||||
B[app 容器<br/>Go 后端 + SQLite]
|
||||
A[nginx 容器] -->|proxy_pass| B[app 容器]
|
||||
end
|
||||
A -->|proxy_pass| B
|
||||
B --> C[七牛云 Kodo<br/>素材文件存储]
|
||||
B --> D[DeepSeek LLM<br/>提示词优化]
|
||||
B --> E[Stability AI<br/>文生图 API]
|
||||
B --> C[七牛云 Kodo]
|
||||
B --> D[DeepSeek LLM]
|
||||
B --> E[Stability AI]
|
||||
User -->|HTTP| A
|
||||
```
|
||||
|
||||
<Item title="🐳 容器化方案">
|
||||
|
||||
- **nginx 容器**:Vite 构建产物 + 反向代理 `/api` 到后端
|
||||
- **app 容器**:Go 二进制 + SQLite 数据库文件挂载
|
||||
- **网络**:Docker 内部网络通信,nginx 暴露 8080 端口
|
||||
|
||||
nginx 容器:Vite 构建产物 + 反向代理 `/api`。app 容器:Go 二进制 + SQLite 挂载。内部网络通信,nginx 暴露 8080 端口。
|
||||
</Item>
|
||||
|
||||
<Item title="🚀 一键部署">
|
||||
|
||||
```bash
|
||||
# 构建并启动
|
||||
docker compose up -d --build
|
||||
|
||||
# 或使用部署脚本
|
||||
./deploy.sh
|
||||
```
|
||||
|
||||
- Gitee CI/CD 自动触发:push → 构建 → 部署
|
||||
- SQLite 嵌入式数据库,无需额外数据库服务
|
||||
- 配置通过环境变量 / `.env` 文件注入
|
||||
|
||||
`docker compose up -d --build` 或 `./deploy.sh`。Gitee CI/CD 自动触发,SQLite 嵌入式零外部依赖。
|
||||
</Item>
|
||||
|
||||
@@ -1,27 +1,19 @@
|
||||
# Eino 管线编排 — compose.Graph
|
||||
|
||||
四阶段智能体协作的核心实现
|
||||
|
||||
<div class="mt-2">
|
||||
|
||||
```go {all|1-8|10-15|17-22|24-28}
|
||||
// 类型定义
|
||||
```go
|
||||
type PipelineInput struct {
|
||||
UserID string
|
||||
ProjectID string
|
||||
TaskID string
|
||||
Prompt string
|
||||
AssetType string
|
||||
StyleMap map[string]string
|
||||
UserID, ProjectID, TaskID string
|
||||
Prompt, AssetType string
|
||||
StyleMap map[string]string
|
||||
}
|
||||
|
||||
type PipelineState struct {
|
||||
OptimizedPrompt string
|
||||
ImageURL string
|
||||
QualityPassed bool
|
||||
RetryCount int
|
||||
}
|
||||
|
||||
type PipelineOutput struct {
|
||||
AssetURL string
|
||||
Metadata map[string]any
|
||||
@@ -30,18 +22,10 @@ type PipelineOutput struct {
|
||||
|
||||
</div>
|
||||
|
||||
<v-clicks>
|
||||
|
||||
<Item title="graph.Build() — 构建管线">
|
||||
使用 `compose.NewGraph[PipelineInput, PipelineOutput]()` 创建有向图,依次注册四个节点:PromptOptimizer → AssetGenerator → QualitySupervisor → FormatAdapter。质检节点支持条件分支:通过则进入格式适配,不通过则回退到提示词优化。
|
||||
</Item>
|
||||
|
||||
<Item title="stateHandler — 状态管理">
|
||||
通过 `AddLambda` 注册状态处理器,在节点间传递优化后的提示词、图片 URL、重试计数等状态。质检节点根据 `RetryCount` 决定重优化还是降级输出。
|
||||
`compose.NewGraph` 创建有向图,注册四节点。质检节点条件分支:通过 → 格式适配,不通过 → 回退提示词优化。
|
||||
</Item>
|
||||
|
||||
<Item title="graph.Invoke() — 执行管线">
|
||||
传入 `PipelineInput`,管线自动按拓扑顺序执行各节点。每个节点执行完成后通过回调更新进度(5% → 25% → 60% → 80% → 100%)。
|
||||
传入 `PipelineInput`,按拓扑顺序执行。每节点完成回调更新进度(5% → 25% → 60% → 80% → 100%)。
|
||||
</Item>
|
||||
|
||||
</v-clicks>
|
||||
|
||||
@@ -1,29 +1,17 @@
|
||||
# 核心亮点总结
|
||||
|
||||
<v-clicks>
|
||||
|
||||
<Item title="🤖 多智能体协作管线">
|
||||
Eino `compose.Graph` 编排四阶段智能体,支持质检重试(最多 3 次)与降级输出。每个节点独立可测试、可替换。
|
||||
Eino `compose.Graph` 编排四阶段智能体,支持质检重试(最多 3 次)与降级输出。
|
||||
</Item>
|
||||
|
||||
<Item title="🧠 提示词优化 Agent">
|
||||
Eino Chain 驱动,支持任意 OpenAI 兼容 API(默认 DeepSeek)。无 API Key 自动回退模板,保证功能可用。
|
||||
Eino Chain 驱动,支持任意 OpenAI 兼容 API。无 Key 自动回退模板,保证功能可用。
|
||||
</Item>
|
||||
|
||||
<Item title="📡 实时进度推送">
|
||||
WebSocket 推送管线各阶段状态、进度百分比与质检重试信息。兼容 HTTP 轮询方案。
|
||||
<Item title="📡 实时进度 + 🔍 请求去重">
|
||||
WebSocket 推送各阶段进度与质检信息。相同参数并发请求自动合并,节省 API 成本。
|
||||
</Item>
|
||||
|
||||
<Item title="🔍 请求去重">
|
||||
`hash(prompt + assetType + params)` + `sync.Map` 缓存,相同参数并发请求自动合并,节省 API 调用成本。
|
||||
<Item title="🎨 风格系统 + 🚀 一键部署">
|
||||
两层风格架构(Project + Task Override)保证一致性。Docker Compose + Gitee CI/CD 零依赖部署。
|
||||
</Item>
|
||||
|
||||
<Item title="🎨 工程级风格系统">
|
||||
两层风格架构(Project Style + Task Override),六个维度预设键 + 自定义标签,保证素材风格一致性。
|
||||
</Item>
|
||||
|
||||
<Item title="🚀 一键部署">
|
||||
Docker Compose 双容器架构 + Gitee CI/CD 自动部署。SQLite 嵌入式数据库,零外部依赖。
|
||||
</Item>
|
||||
|
||||
</v-clicks>
|
||||
|
||||
@@ -2,33 +2,26 @@
|
||||
|
||||
基于 Eino `compose.Graph` 编排的四阶段智能体协作管线
|
||||
|
||||
```mermaid {scale: 0.75}
|
||||
graph LR
|
||||
A[用户输入] --> B[PromptOptimizer<br/>提示词优化]
|
||||
B --> C[AssetGenerator<br/>素材生成]
|
||||
C --> D{QualitySupervisor<br/>质检}
|
||||
D -->|通过| E[FormatAdapter<br/>格式适配]
|
||||
D -->|不通过| B
|
||||
E --> F[输出素材]
|
||||
D -->|重试 ≥ 3| E
|
||||
```
|
||||
|
||||
<v-clicks>
|
||||
|
||||
<Item title="① PromptOptimizer — 提示词优化">
|
||||
合并工程风格 + 任务风格覆盖,将用户描述转化为三段式规范提示词(主体描述 + 风格约束 + 技术规格)。调用 Eino Chain 驱动的 LLM 优化,无 API Key 时自动回退模板。
|
||||
合并工程风格 + 任务风格覆盖,生成三段式规范提示词。调用 Eino Chain 驱动 LLM 优化,无 Key 自动回退模板。
|
||||
</Item>
|
||||
|
||||
<Item title="② AssetGenerator — 素材生成">
|
||||
调用 OpenAI 兼容的文生图 API(默认 Stability AI),根据优化后的提示词生成素材。支持 `/v1/images/generations` 标准接口。
|
||||
调用 OpenAI 兼容的文生图 API(默认 Stability AI),根据优化后提示词生成素材。
|
||||
</Item>
|
||||
|
||||
<Item title="③ QualitySupervisor — 质检">
|
||||
使用视觉模型自动检测生成结果,不合格则触发重优化流程(最多 3 次)。超过重试次数后降级输出当前最优结果。
|
||||
<Item title="③ QualitySupervisor → ④ FormatAdapter">
|
||||
视觉模型自动质检,不合格触发重优化(最多 3 次)。通过后组装 Spritesheet + 元数据,上传七牛云 Kodo。
|
||||
</Item>
|
||||
|
||||
<Item title="④ FormatAdapter — 格式适配">
|
||||
组装输出素材与元数据,支持 Spritesheet 打包。素材上传至七牛云 Kodo,返回 CDN 访问链接。
|
||||
</Item>
|
||||
<div class="mt-4 text-sm text-gray-400">
|
||||
|
||||
</v-clicks>
|
||||
```mermaid {scale: 0.7}
|
||||
graph LR
|
||||
A[用户输入] --> B[PromptOptimizer] --> C[AssetGenerator] --> D{质检}
|
||||
D -->|通过| E[FormatAdapter] --> F[输出]
|
||||
D -->|不通过| B
|
||||
D -->|重试≥3| E
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,33 +1,17 @@
|
||||
# 痛点:2D 游戏素材制作
|
||||
|
||||
<div class="mt-4">
|
||||
|
||||
<Item title="🎨 美术成本高">
|
||||
|
||||
- 像素画 / 手绘需要专业美术人员,独立开发者难以负担
|
||||
- 外包费用高,单张精绘素材 50-500 元不等
|
||||
- 迭代周期长,试错成本高 —— 一次修改可能需要数天
|
||||
|
||||
专业美术人员费用高,独立开发者难以负担。外包单张 50-500 元,迭代周期长,试错成本高。
|
||||
</Item>
|
||||
|
||||
<Item title="🔧 管线适配难">
|
||||
|
||||
- 生成素材尺寸 / 格式不统一,无法直接导入游戏引擎
|
||||
- 精灵表(Spritesheet)需手动拆分与对齐
|
||||
- 多张素材之间风格一致性难以保证
|
||||
|
||||
素材尺寸/格式不统一,Spritesheet 需手动拆分。多张素材之间风格一致性难以保证。
|
||||
</Item>
|
||||
|
||||
<Item title="🤖 现有 AI 工具的局限">
|
||||
|
||||
- 通用文生图模型缺乏游戏素材领域知识
|
||||
- 无法理解 "像素风"、"赛璐璐" 等游戏美术术语
|
||||
- 输出结果不可控,没有质检和重试机制
|
||||
|
||||
通用文生图模型缺乏游戏素材领域知识,无法理解"像素风"等术语,输出不可控,无质检重试。
|
||||
</Item>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-4 text-center text-gray-400">
|
||||
<b>核心诉求</b>:低门槛 · 风格一致 · 管线友好 · 质量可控
|
||||
</div>
|
||||
|
||||
@@ -2,28 +2,21 @@
|
||||
|
||||
Eino Chain 驱动的智能提示词生成
|
||||
|
||||
```mermaid {scale: 0.8}
|
||||
graph LR
|
||||
A[用户描述] --> B[风格合并]
|
||||
B --> C[三段式组装]
|
||||
C --> D[LLM 优化]
|
||||
D --> E[最终提示词]
|
||||
F[工程风格] --> B
|
||||
G[任务覆盖] --> B
|
||||
H[重试注入] --> D
|
||||
```
|
||||
|
||||
<Item title="① 风格合并">
|
||||
`finalStyle = merge(projectStyle, taskStyle)` — 工程风格为基底,任务风格逐键覆盖。自定义标签(`custom:` 前缀)自动提取。
|
||||
`finalStyle = merge(projectStyle, taskStyle)` — 工程风格为基底,任务风格逐键覆盖。自定义标签自动提取。
|
||||
</Item>
|
||||
|
||||
<Item title="② 三段式提示词组装">
|
||||
将合并后的风格信息组装为三段式规范提示词:
|
||||
- **主体描述**:用户输入的角色/场景描述
|
||||
- **风格约束**:美术风格、色调、线条等风格键
|
||||
- **技术规格**:尺寸、格式、透明背景等引擎适配参数
|
||||
**主体描述**(用户输入)+ **风格约束**(美术风格、色调、线条)+ **技术规格**(尺寸、格式、透明背景)
|
||||
</Item>
|
||||
|
||||
<Item title="③ LLM 优化 + 回退机制">
|
||||
调用 Eino Chain 将三段式提示词发给 DeepSeek 等 LLM 进行润色优化。**无 API Key 时自动回退到模板生成**,保证功能可用。优化失败时注入重试上下文,指导模型修正。
|
||||
调用 Eino Chain 发给 DeepSeek 润色。**无 API Key 自动回退模板**,失败时注入重试上下文。
|
||||
</Item>
|
||||
|
||||
```mermaid {scale: 0.65}
|
||||
graph LR
|
||||
A[用户描述] --> B[风格合并] --> C[三段式组装] --> D[LLM 优化] --> E[最终提示词]
|
||||
F[工程风格] --> B
|
||||
G[任务覆盖] --> B
|
||||
```
|
||||
|
||||
@@ -1,29 +1,17 @@
|
||||
# gen2D 的解决方案
|
||||
|
||||
<div class="mt-4">
|
||||
|
||||
| 输入 | 处理 | 输出 |
|
||||
|------|------|------|
|
||||
| 自然语言描述 + 风格参数 | 多智能体协作管线 | Sprite、背景、UI 元素、动画帧 |
|
||||
|
||||
</div>
|
||||
|
||||
<v-clicks>
|
||||
|
||||
<Item title="🗣️ 自然语言驱动">
|
||||
用文字描述你想要的素材,AI 自动理解需求并生成。支持中英文,无需编写 Prompt 工程。
|
||||
<Item title="🗣️ 自然语言驱动 + 🎨 风格一致">
|
||||
用文字描述素材需求,AI 自动生成。工程级风格预设保证同一项目素材风格统一。
|
||||
</Item>
|
||||
|
||||
<Item title="🎨 风格一致性">
|
||||
工程级风格预设系统(Project Style)+ 任务级覆盖(Task Override),保证同一项目素材风格统一。
|
||||
</Item>
|
||||
|
||||
<Item title="📦 管线友好">
|
||||
标准尺寸输出,适配 Unity / Godot 等主流引擎。自动组装 Spritesheet,附带元数据。
|
||||
</Item>
|
||||
|
||||
<Item title="✅ 质量可控">
|
||||
多智能体质检(QualitySupervisor)自动检测不合格素材,触发重优化(最多 3 次),最终降级兜底。
|
||||
<Item title="📦 管线友好 + ✅ 质量可控">
|
||||
标准尺寸输出,适配 Unity / Godot。自动质检 + 重试(最多 3 次)+ 降级兜底。
|
||||
</Item>
|
||||
|
||||
</v-clicks>
|
||||
|
||||
@@ -3,33 +3,13 @@
|
||||
保证一致性与灵活性的风格管理方案
|
||||
|
||||
<Item title="🏗️ 工程风格(Project Style)">
|
||||
|
||||
- 工程级别的全局风格配置,存储在 `project_style` 表中
|
||||
- 以 Key-Value 对(kvPairs)形式存储,如 `artStyle=pixel`, `palette=warm`
|
||||
- 同一工程下所有素材自动继承,保证风格统一
|
||||
|
||||
全局风格配置,以 kvPairs 存储(如 `artStyle=pixel`)。同一工程下所有素材自动继承,保证风格统一。
|
||||
</Item>
|
||||
|
||||
<Item title="🔀 任务风格覆盖(Task Override))">
|
||||
|
||||
- 单次生成任务可覆盖部分风格键,仅指定需要变化的项
|
||||
- 未指定的键自动继承工程风格
|
||||
- 适合在同一工程下生成不同变体(如:同一角色的不同表情)
|
||||
|
||||
<Item title="🔀 任务风格覆盖(Task Override)">
|
||||
单次任务可覆盖部分风格键,未指定的自动继承工程风格。适合生成同一角色的不同变体。
|
||||
</Item>
|
||||
|
||||
<div class="mt-6">
|
||||
|
||||
<Item title="⚙️ 合并逻辑">
|
||||
|
||||
```
|
||||
finalStyle = merge(projectStyle, taskStyle)
|
||||
```
|
||||
|
||||
- 工程风格作为基底,任务风格逐键覆盖
|
||||
- 自定义标签(`custom:` 前缀)自动提取到 Prompt 中
|
||||
- 合并后的风格键注入三段式提示词的风格约束段
|
||||
|
||||
`finalStyle = merge(projectStyle, taskStyle)` — 工程风格为基底,任务风格逐键覆盖。自定义标签(`custom:` 前缀)自动提取注入提示词。
|
||||
</Item>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,51 +1,37 @@
|
||||
# 技术栈一览
|
||||
|
||||
<div class="grid grid-cols-3 gap-6 mt-4">
|
||||
<div class="grid grid-cols-3 gap-4 mt-4">
|
||||
|
||||
<Item title="⚙️ 后端">
|
||||
|
||||
- **语言**:Go 1.26
|
||||
- **框架**:Gin 1.12
|
||||
- **AI 编排**:Eino 0.8(compose.Graph)
|
||||
- **ORM**:GORM + SQLite
|
||||
- **认证**:JWT + bcrypt
|
||||
- **配置**:Viper(多层配置)
|
||||
- **存储**:七牛云 Kodo
|
||||
- Go 1.26 + Gin 1.12
|
||||
- Eino 0.8 管线编排
|
||||
- GORM + SQLite
|
||||
- JWT + bcrypt 认证
|
||||
- Viper 多层配置
|
||||
- 七牛云 Kodo
|
||||
|
||||
</Item>
|
||||
|
||||
<Item title="🖥️ 前端">
|
||||
|
||||
- **框架**:React 18 + TypeScript 5.6
|
||||
- **构建**:Vite 6
|
||||
- **状态管理**:Zustand
|
||||
- **路由**:react-router v7
|
||||
- **样式**:CSS Modules + 暗色主题
|
||||
- **API 层**:封装 Fetch + 类型安全
|
||||
- React 18 + TypeScript
|
||||
- Vite 6 构建
|
||||
- Zustand 状态管理
|
||||
- react-router v7
|
||||
- CSS Modules 暗色主题
|
||||
- 封装 Fetch API 层
|
||||
|
||||
</Item>
|
||||
|
||||
<Item title="🏗️ 基础设施">
|
||||
|
||||
- **容器化**:Docker 多阶段构建
|
||||
- **反向代理**:nginx
|
||||
- **CI/CD**:Gitee Actions 自动部署
|
||||
- **数据库**:SQLite 嵌入式
|
||||
- **文件存储**:七牛云 Kodo CDN
|
||||
- **通信**:REST API + WebSocket
|
||||
|
||||
</Item>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="mt-6">
|
||||
|
||||
<Item title="📐 架构分层原则">
|
||||
|
||||
- **Handler 层**(薄):请求校验、参数绑定、错误处理
|
||||
- **Service 层**(厚):业务逻辑、管线编排、风格合并
|
||||
- **Model 层**(数据):GORM 实体定义、数据库操作
|
||||
- **日志系统**:基于 `log/slog`,分级别记录(Debug / Info / Warn / Error)
|
||||
- Docker 多阶段构建
|
||||
- nginx 反向代理
|
||||
- Gitee CI/CD 自动部署
|
||||
- SQLite 嵌入式 DB
|
||||
- 七牛云 Kodo CDN
|
||||
- REST + WebSocket
|
||||
|
||||
</Item>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user