wonder 8ac039ef38 docs: 添加全局/后端/前端架构图生成提示词
新增三个多模态 AI 架构图提示词文件,分别对应全局系统架构、
后端分层与管线、前端组件树与数据流的可视图生成。
2026-05-25 20:52:59 +08:00

gen2d

AI 驱动的 2D 游戏素材生成工具
文本描述 + 风格参数 → 风格一致、管线友好的 Sprite、背景、UI 与动画帧
无缝融入 Unity / Godot 等主流 2D 游戏引擎工作流

Go Gin Eino React TypeScript Vite License

在线体验  |  文档  |  快速开始  |  API


目录

特性

  • 多智能体协作管线 — PromptOptimizer → AssetGenerator → QualitySupervisor → FormatAdapter,基于 Eino compose.Graph 编排,支持质检重试与降级输出
  • 提示词优化 — Eino Chain 驱动的 PromptAgent,支持任意 OpenAI 兼容 API,无 key 时自动回退模板生成
  • 风格系统 — 预设美术风格、色调、线条、场景、光照、情绪等维度,支持工程级与任务级风格覆盖
  • 实时进度 — WebSocket 推送管线各阶段状态、进度与质检重试信息
  • 异步任务 — goroutine 模型,支持并发控制、失败重试(最多 3 次)与降级输出
  • 请求去重 — 相同 prompt + assetType + params 的并发请求自动合并,返回已有 taskId
  • 暗色主题 — 前端支持 Light / Dark 双主题,CSS 自定义属性驱动
  • 一键部署 — Docker Compose 双容器架构 + deploy.sh 脚本

快速开始

环境要求

  • Go 1.26+
  • Node.js 20+
  • Docker & Docker Compose(部署用)

后端

cd backend
cp .env.example .env        # 编辑 .env 填入 API key
go mod tidy
go run cmd/main.go

服务默认运行在 http://localhost:8080。

前端

cd frontend
npm install
npm run dev

开发服务器运行在 http://localhost:5173,通过 Vite proxy 转发 /api 和 /auth 请求到后端。

配置

配置通过 Viper 读取,优先级从高到低:

优先级 来源 说明
1 环境变量 适合 Docker / CI,敏感字段推荐使用
2 .env 文件 位于 backend/.env,通过 godotenv 加载
3 config.yml 位于 backend/internal/config/config.yml,存放非敏感默认值
4 代码默认值 无需任何配置文件即可启动

大语言模型

环境变量 YAML 路径 默认值 说明
GEN2D_LLM_BASE_URL llm.base_url https://api.deepseek.com/v1 LLM API 地址(兼容 OpenAI 接口)
GEN2D_LLM_API_KEY llm.api_key (空) API 密钥
GEN2D_LLM_MODEL llm.model deepseek-v4-pro 模型名称
GEN2D_LLM_TEMPERATURE llm.temperature 0.7 生成温度 (0-2)
GEN2D_LLM_MAX_TOKENS llm.max_tokens 2048 最大输出 token 数

文生图

环境变量 YAML 路径 默认值 说明
GEN2D_IMAGE_BASE_URL image_gen.base_url https://api.stability.ai/v1 文生图 API 地址
GEN2D_IMAGE_API_KEY image_gen.api_key (空) API 密钥
GEN2D_IMAGE_MODEL image_gen.model stable-diffusion-xl 模型名称
GEN2D_IMAGE_WIDTH image_gen.width 1024 生成图片宽度
GEN2D_IMAGE_HEIGHT image_gen.height 1024 生成图片高度
GEN2D_IMAGE_NUM_IMAGES image_gen.num_images 1 每次生成图片数量
GEN2D_IMAGE_STEPS image_gen.steps 30 扩散步数
GEN2D_IMAGE_CFG_SCALE image_gen.cfg_scale 7.0 CFG 引导强度

服务基础

环境变量 YAML 路径 默认值 说明
GEN2D_PORT server.port 8080 HTTP 监听端口
GEN2D_MODE server.mode debug Gin 运行模式 (debug / release)
GEN2D_DSN database.dsn data/gen2d.db SQLite 数据库路径
GEN2D_JWT_SECRET jwt.secret gen2d-dev-secret JWT 签名密钥
GEN2D_JWT_EXPIRE jwt.expire 7200 JWT 过期时间(秒)

架构

生成管线

基于 Eino compose.Graph 的四阶段管线,支持质检重试与降级输出:

graph TD
    START(( )) --> PromptOptimizer
    PromptOptimizer["PromptOptimizer<br/>合并工程风格 + 任务风格覆盖<br/>调用 PromptAgent 生成三段式提示词"]
    PromptOptimizer --> AssetGenerator
    AssetGenerator["AssetGenerator<br/>调用文生图 API 生成素材"]
    AssetGenerator --> QualitySupervisor
    QualitySupervisor{"QualitySupervisor<br/>质检通过?"}
    QualitySupervisor -->|pass| FormatAdapter
    QualitySupervisor -->|fail, retry < 3| PromptOptimizer
    QualitySupervisor -->|fail, retry ≥ 3| FormatAdapter
    FormatAdapter["FormatAdapter<br/>组装输出素材与元数据"]
    FormatAdapter --> END(( ))

提示词优化链路

graph TD
    A["用户输入<br/>标签 + 原始 Prompt + 素材类型"] --> B["formatMetaPrompt<br/>构建元提示词:角色设定 + 输出格式 + 用户输入"]
    B --> C["llmRefine<br/>调用 OpenAI 兼容 Chat API<br/>支持 SSE 流式 / 非流式<br/>无 key 自动回退模板"]
    C --> D["三段式规范提示词<br/>【主题】【风格】【技术】"]

预设风格键

分类 键名 可选值示例
美术风格 artStyle pixel, cartoon, hand-drawn, vector, flat
色调 palette warm, cool, neutral, vibrant, muted, monochrome
线条 lineWeight none, thin, medium, thick
场景 scene forest, dungeon, city, space, underwater, desert
光照 lighting bright, dim, dramatic, ambient, neon
情绪 mood cheerful, dark, mysterious, epic, calm

API

接口统一前缀 /api/v1/,统一响应格式:

{ "code": 0, "message": "ok", "data": {} }

除健康检查和注册登录外,所有接口需通过 Authorization: Bearer <token> 认证。

已实现

方法 路径 说明
GET /api/v1/health 健康检查
POST /auth/register 用户注册
POST /auth/login 用户登录(返回 JWT Token)
POST /api/v1/prompt/optimize 提示词优化
GET/POST /api/v1/projects 工程列表 / 创建工程
GET/PUT/DELETE /api/v1/projects/:id 工程详情 / 更新 / 删除
GET/PUT /api/v1/projects/:id/style 工程风格读写
POST /api/v1/generate 提交生成任务
GET /api/v1/tasks/:id 任务状态与进度
GET /api/v1/tasks/:id/assets 生成结果素材列表
GET /api/v1/assets/download 下载素材(重定向到 CDN)

规划中

方法 路径 说明
WS /api/v1/tasks/:id/ws WebSocket 实时进度推送
GET /api/v1/auth/me 获取当前用户信息
PUT /api/v1/auth/password 修改密码

完整 API 文档见 docs/api.md。

技术栈

层 技术 说明
后端语言 Go 1.26 —
HTTP 框架 Gin v1.12 路由、中间件、JSON 绑定
管线编排 Eino v0.8 compose.Graph + compose.Chain
ORM GORM + SQLite 零配置数据库
认证 JWT (golang-jwt) + bcrypt 无状态认证
配置 Viper + godotenv 多层配置优先级
对象存储 七牛云 Kodo CDN 加速、私有 Bucket 签名访问
前端框架 React 18 + TypeScript 5.6 函数组件 + Hooks
构建工具 Vite 6 HMR 开发体验
状态管理 Zustand 5 轻量、不可变状态
路由 react-router-dom v7 SPA 路由
样式 CSS Modules + CSS 自定义属性 主题切换
容器化 Docker 多阶段构建 nginx 反向代理
CI/CD Gitee Workflow 自动构建部署

项目结构

gen2d/
├── backend/                    # Go + Gin API 服务
│   ├── cmd/main.go             # 入口:加载配置 → 初始化 DB → 注册路由 → 启动
│   ├── internal/
│   │   ├── config/             # Viper 配置加载 + config.yml
│   │   ├── db/                 # SQLite + GORM 初始化
│   │   ├── handler/            # HTTP 处理器(health, prompt, auth, generate, storage)
│   │   ├── model/              # 数据模型(User, Response)
│   │   ├── mildware/           # 中间件(JWT 认证、日志、恢复)
│   │   ├── logger/             # 日志包(基于 log/slog)
│   │   └── service/            # 业务逻辑
│   │       ├── pipeline.go     # Eino Graph 四阶段管线编排
│   │       ├── prompt_agent.go # Eino Chain 提示词优化
│   │       ├── nodes.go        # 管线节点实现
│   │       ├── inference.go    # 文生图推理
│   │       ├── auth.go         # 注册 / 登录 / JWT
│   │       └── storage.go      # 七牛云对象存储
│   └── pkg/splitsprite/        # 精灵表拆分工具
├── frontend/                   # Vite + React 前端
│   └── src/
│       ├── api/                # HTTP 客户端与类型定义
│       ├── components/         # UI 组件
│       ├── pages/              # 页面(Login, Register, Home, Project, Result)
│       ├── stores/             # Zustand 状态管理
│       ├── hooks/              # 自定义 Hooks
│       ├── router/             # 路由配置
│       ├── utils/              # 工具函数
│       └── styles/             # 全局样式与主题变量
├── docs/                       # 项目文档
│   ├── _index.md               # 文档索引
│   ├── api.md                  # API 设计
│   ├── backend.md              # 后端工程
│   ├── frontend.md             # 前端工程
│   ├── database.md             # 数据存储
│   ├── async-tasks.md          # 异步任务
│   └── style-keys.md           # 预设风格键
├── docker-compose.yml          # 容器编排
├── deploy.sh                   # 一键部署脚本
└── .workflow/                  # CI/CD 流水线配置

部署

Docker Compose

cd backend
cp .env.example .env        # 编辑填入 API key
cd ..
docker compose up -d --build
  • 后端:Go 多阶段构建,暴露 8080 端口
  • 前端:Node 构建 + nginx 反向代理,默认映射宿主机 10000 端口
  • 数据持久化:backend-data 卷挂载 SQLite 数据库与生成素材

一键脚本

bash deploy.sh

自动完成仓库克隆/拉取、环境检查、.env 模板复制、docker compose up。

文档

详细设计文档见 docs/ 目录:

文档 说明
docs/_index.md 文档索引与架构概述
docs/api.md API 接口设计、请求/响应示例、错误码
docs/backend.md 后端分层结构、管线设计、风格模型、缓存层
docs/frontend.md 前端组件树、状态管理、路由、交互流程
docs/database.md SQLite 选型、表结构、ER 关系、对象存储、去重策略
docs/async-tasks.md 任务生命周期、并发控制、重试策略、进度推送
docs/style-keys.md 预设风格键分类与可选值

路线图

  • 提示词优化 Agent(Eino Chain)
  • 多智能体生成管线(Eino Graph)
  • 工程风格系统 + 任务级覆盖
  • 用户认证(JWT + bcrypt)
  • 异步任务 + 实时进度推送
  • 素材帧预览、GIF 动画与导出
  • 自定义标签
  • WebSocket 实时进度推送(待完成)
  • 批量生成与队列调度
  • 文生图多模型适配(DALL-E, Midjourney)
  • 素材版本管理与历史记录

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

参考链接

后端

前端

AI / 模型

游戏引擎

基础设施

License

MIT

S
Description
🎨 AI 驱动的 2D 游戏素材生成工具。通过文本提示词或可视化参数,快速生成风格一致、管线友好的 Sprite、背景、UI 与动画帧。支持 Unity/Godot 一键集成,兼顾生成效率、画质与低成本工作流。
Readme MIT 6.3 MiB
Languages
Go 53.8%
TypeScript 42%
CSS 2.9%
Shell 0.8%
Dockerfile 0.4%
Other 0.1%