Gmarker689
|
ecb74a2aed
|
feat: 异步生成管线 + 前端轮询 + 图片编辑 + JWT 中间件
后端:
- 异步生成: POST /api/v1/generate 立即返回 taskId,后台执行管线
- 任务轮询: GET /api/v1/tasks/:id + GET /api/v1/tasks/:id/assets
- 图片保存: 生成图片写入 ../generation/{projectId}/{taskId}/,静态服务
- 图片编辑: POST /api/v1/images/edit (multipart/form-data)
- JWT 中间件: mildware/auth.go 保护生成/编辑端点
- config.yml 清空敏感默认值,交由 .env 控制
- ImageGenConfig 新增 Quality 字段
前端:
- api/generate.ts: 对接真实 API (submitGenerate + poll getTask/getAssets)
- api/types.ts: 新增 GenerateResponse, AssetsResponse, Task 类型
- stores/generation.ts: 异步提交→轮询进度→获取素材→完成
- stores/task.ts: 默认分辨率 256→1024
- GenerateForm: 分辨率范围 1024-1536
- GeneratePage: 显示状态文本,完成后可查看结果/继续生成
- ResultPage: 从 store 读取,下载功能实现
|
2026-05-25 14:08:08 +08:00 |
|
Gmarker689
|
d8bfb81c4d
|
refactor(config): 精简 image_gen 配置为 OpenAI 兼容同步 API
- 移除 yuntts 异步字段: aspect_ratio / x_channel / poll_max_wait / poll_interval
- 改用标准 OpenAI Images API 字段: width / height / quality
- 默认 base_url 改为 api.suchuang.vip/v1
- 模型默认值: gpt-image-2-token(此模型在 suchuang 上需换 gpt-image-1)
|
2026-05-25 13:17:57 +08:00 |
|
Gmarker689
|
8c027d9b52
|
fix(inference): 回退为 OpenAI 兼容同步 Images API,恢复图片编辑功能
- 使用标准 POST /images/generations 端点(suchuang.vip 兼容)
- 恢复 EditImages 的 multipart/form-data 实现
- 移除 yuntts 异步 submit/poll 流程
- 配置精简: base_url / api_key / model / width / height / quality
|
2026-05-25 13:01:13 +08:00 |
|
Gmarker689
|
322e6aecbb
|
feat(generate): 生成管线改为异步,前端接入轮询进度
后端:
- POST /api/v1/generate 改为异步模式,立即返回 taskId
- 管线在后台 goroutine 执行,状态通过 GET /tasks/:taskId 轮询
- 任务状态流转: pending → running → saving → completed/failed
前端:
- generation store: submit 后每 2s 轮询 getTask,完成时自动 getAssets
- GeneratePage: 实时显示轮询状态文本 + 进度条
- ResultPage: 挂载时轮询任务,未完成显示骨架屏+进度,完成自动加载素材
- Types: Task.status 增加 submitted / saving 状态
|
2026-05-25 12:51:49 +08:00 |
|
Gmarker689
|
c4dc7394b1
|
refactor(inference): 统合 image_gen 为 GPT Image 2 异步 API,删除冗余配置
- 删除 gptimage.go,异步逻辑直接内聚到 inference.go
- ImageGenConfig 改为 GPT Image 2 参数:aspect_ratio / x_channel / poll_max_wait / poll_interval
- GenerateImages 流程:submit → poll → download,支持并行多图(spritesheet)
- 移除旧的 OpenAI 兼容同步 API 代码(callImageGenAPI / parseImageResponse 等)
- 统一 env:GEN2D_IMAGE_* 系列,移除 GEN2D_GPT_IMAGE2_* 冗余
|
2026-05-25 12:44:39 +08:00 |
|
Gmarker689
|
d9d3b51262
|
feat(inference): 集成 GPT Image 2 异步文生图 API
- 新增 GptImage2Config 配置(yuntts 等 GPT Image 2 兼容服务)
- 新增 gptimage.go 异步客户端:提交任务 → 轮询状态 → 下载图片
- GenerateImages 优先级调整为:GPT Image 2 > OpenAI 兼容 ImageGen > Mock
- 支持环境变量 GEN2D_GPT_IMAGE2_* 系列配置
|
2026-05-25 12:36:37 +08:00 |
|
Gmarker689
|
74c1725473
|
feat(generate): 图片持久化到本地 generation/ 目录,前端对接真实 API
后端:
- POST /api/v1/generate 接收 projectId,生成 taskId,将图片保存至 generation/{projectId}/{taskId}/
- 新增 GET /api/v1/tasks/:taskId 和 GET /api/v1/tasks/:taskId/assets 查询端点
- 添加 /generation 静态文件服务,前端可通过 URL 直接访问生成的图片
- PipelineInput 增加 ProjectID/TaskID 字段
前端:
- generate.ts 对接真实后端 API,移除 mock 模式
- 401 时不再强制登出跳转,改为抛错由调用方处理
- GeneratePage 加载工程风格,传递 projectId 和完整参数
- generation store 简化为同步 API 模式,移除 WebSocket mock
- ResultPage 使用 getTask/getAssets 按 taskId 查询结果
|
2026-05-25 12:27:07 +08:00 |
|
Gmarker689
|
6bda5a1f35
|
fix(inference): 修正文生图 API 调用参数,支持动态分辨率
- 去掉 response_format 参数(API 默认返回 URL,自动下载)
- Resolution 参数覆盖 API 调用尺寸(不再仅 mock 路径生效)
- parseImageResponse 改为动态 width/height 入参
- 新增 tools/gentest.go 生成测试脚本
- .gitignore 忽略 test_output/
|
2026-05-25 00:21:16 +08:00 |
|
Gmarker689
|
0a9a923d55
|
feat(inference): 实现文生图与图片编辑 API 调用,新增管线与编辑 HTTP 端点,JWT 认证中间件
- inference.go: GenerateImages 改为 API 优先(callImageGenAPI),无 key 回退 mock;新增 EditImages/callImageEditAPI(multipart 上传编辑);提取 parseImageResponse 共享响应解析
- handler/generate.go: POST /api/v1/generate 触发生成管线,返回 base64 图片
- handler/edit.go: POST /api/v1/images/edit 图片编辑端点
- mildware/auth.go: JWT Bearer token 认证中间件
- main.go: 路由拆分公开/认证组,generate 与 images/edit 需鉴权
|
2026-05-24 22:47:43 +08:00 |
|
GYhde
|
5e54591b1f
|
!24 !23 docs(api): 同步 api.md 与后端实际行为
Merge pull request !24 from 何朝晖/develop
|
2026-05-24 13:30:14 +00:00 |
|
GYhde
|
fa93d18e61
|
!23 docs(api): 同步 api.md 与后端实际行为
Merge pull request !23 from 何朝晖/feat/frontend
|
2026-05-24 13:29:12 +00:00 |
|
wonder
|
bc9c511ac3
|
docs(api): 同步 api.md 与后端实际行为
修正认证方式为 Bearer Token(非 Set-Cookie),修正端点路径
为 /auth/*,修正注册字段约束(email 可选、password 6-64、
username 3-32),补充登录响应完整字段。
|
2026-05-24 21:27:26 +08:00 |
|
wonder
|
e880a80c51
|
feat(ux): Toast 通知系统,替换内联错误/成功提示
新增 toast store 和 Toast 组件,风格保存成功/失败显示 toast,
素材生成失败显示 toast,Layout 中全局渲染。
|
2026-05-24 21:26:19 +08:00 |
|
wonder
|
aaf846a60d
|
feat(ux): 空状态组件,替换各页面空白提示
新增 EmptyState 组件,ProjectPage 暂无任务时显示带操作按钮的
友好提示,AssetPreview 暂无素材时显示引导文案。
|
2026-05-24 21:23:02 +08:00 |
|
wonder
|
f063ec564e
|
feat(ux): 骨架屏加载组件与页面入场动画
新增 Skeleton 组件支持 text/card/table 三种变体,替换各页面
"加载中..." 文本为骨架屏,所有页面添加 fadeIn 入场动画。
|
2026-05-24 21:21:52 +08:00 |
|
wonder
|
60c752fad9
|
feat(ux): 素材类型选择器改为图标卡片布局
每个素材类型使用内联 SVG 图标 + 文字垂直排列的卡片式选择器,
选中态高亮边框与背景色。
|
2026-05-24 21:19:44 +08:00 |
|
wonder
|
a7decf86ec
|
feat(ux): 交互元素悬浮/聚焦/按压状态增强
表格行悬浮高亮、StyleSelector 药丸按钮键盘焦点环。
|
2026-05-24 21:17:40 +08:00 |
|
wonder
|
c177cbaf82
|
feat(prompt): AI 提示词优化双栏交互
新增 prompt API 模块调用后端 /api/v1/prompt/optimize,PromptEditor
重构为左右双栏布局支持原始/优化提示词对比编辑,默认开启 AI 优化,
用户可关闭开关或手动编辑优化结果后再提交生成。
|
2026-05-24 21:16:15 +08:00 |
|
wonder
|
eac64105de
|
feat(layout): 认证页面统一导航栏,含主题切换与退出按钮
新增 Layout 组件作为认证路由的公共布局,提供 sticky 导航栏,
移除各页面重复的顶栏代码。
|
2026-05-24 21:12:23 +08:00 |
|
wonder
|
323472ab2b
|
feat(theme): App 初始化时设置 data-theme 属性,首次渲染即为主题
|
2026-05-24 21:09:23 +08:00 |
|
wonder
|
dab9bc9750
|
feat(theme): Zustand 主题 store,localStorage 持久化,默认浅色
|
2026-05-24 21:08:02 +08:00 |
|
wonder
|
6928d9250d
|
feat(theme): CSS 变量重构为暗色/浅色双主题
将 :root 硬编码的深色变量拆分为 [data-theme="light"] 和 [data-theme="dark"]
两套主题块,新增导航栏、骨架屏、Toast 等预留变量,添加页面入场动画。
|
2026-05-24 21:07:29 +08:00 |
|
wonder
|
9e3bb1241e
|
!22 docs: 更新 README 与 API 文档,描述提示词优化链路
Merge pull request !22 from GYhde/feat/promptagent
|
2026-05-24 12:48:32 +00:00 |
|
Gmarker689
|
36a6465f26
|
docs: 更新 README 与 API 文档,描述提示词优化链路
- README 新增提示词优化链路章节(流程图 + 特性 + API 说明)
- docs/api.md 新增提示词优化接口文档与调用链路
- 更新架构描述:PromptBuilder → PromptOptimizer
|
2026-05-24 20:45:24 +08:00 |
|
Gmarker689
|
9ca1e65221
|
feat(pipeline): PromptOptimizer 集成到生成管线,新增优化 API
- PipelineInput 新增 Tags/UserNote 字段
- 管线重构为: START → PromptOptimizer → AssetGenerator → QualitySupervisor → FormatAdapter
- promptOptimizerNode: 有标签调用 PromptAgent,无标签补技术参数,合并风格与重试信息
- PromptBuilder 移除,提示词构建逻辑并入 PromptOptimizer
- 新增 POST /api/v1/prompt/optimize 接口
- main.go 注入 LLM/ImageGen 配置,注册 prompt 路由
- inference.go 新增 InitImageGenConfig 注入
|
2026-05-24 20:45:18 +08:00 |
|
Gmarker689
|
788cd021ef
|
feat(prompt-agent): 新增 PromptAgent Eino Chain 调用 LLM 优化提示词
- Eino Chain: formatMetaPrompt → llmRefine → 三段式输出
- callLLMRefine 调用 OpenAI 兼容 Chat Completions API
- 支持 SSE 流式与非流式响应解析
- 无 API key 或调用失败时自动回退模板生成
- 新增完整的单元测试与集成测试(含 mock HTTP server)
|
2026-05-24 20:45:09 +08:00 |
|
Gmarker689
|
ef5ddcfbb5
|
feat(config): 重构配置层为 Viper + YAML + .env 三级加载
- config 改用 Viper 读取 YAML + 绑定环境变量 + godotenv 加载 .env
- 新增 LLM / ImageGen / JWT / Database / Server 分组配置结构
- 新增 backend/.env.example 环境变量模板
- .gitignore 添加 backend/.env 和 backend/main
|
2026-05-24 20:44:53 +08:00 |
|
wonder
|
5f35600190
|
!21 !20 fix(deploy): 修复后端容器 SQLite 数据目录不存在导致 502
Merge pull request !21 from 何朝晖/develop
|
2026-05-24 06:49:22 +00:00 |
|
wonder
|
87258cb3a8
|
!20 fix(deploy): 修复后端容器 SQLite 数据目录不存在导致 502
Merge pull request !20 from 何朝晖/hotfix/deploy
|
2026-05-24 06:48:14 +00:00 |
|
wonder
|
d92ba33846
|
fix(deploy): 修复后端容器 SQLite 数据目录不存在导致 502
运行时阶段缺少 /data 目录,SQLite 初始化失败后端崩溃,nginx 返回 502。
- Dockerfile 添加 mkdir -p /data 和 WORKDIR
- docker-compose 添加 backend-data 卷挂载,确保持久化
|
2026-05-24 14:46:48 +08:00 |
|
wonder
|
812230f850
|
!19 !18 fix(deploy): 修复 Docker 部署两个问题
Merge pull request !19 from 何朝晖/develop
|
2026-05-24 06:37:09 +00:00 |
|
wonder
|
f0bb2b71fa
|
!18 fix(deploy): 修复 Docker 部署两个问题
Merge pull request !18 from 何朝晖/hotfix/deploy
|
2026-05-24 06:36:32 +00:00 |
|
wonder
|
6a88ec0d46
|
fix(deploy): 修复 Docker 部署两个问题
1. 后端 Dockerfile 开启 CGO(go-sqlite3 依赖),安装 gcc/musl-dev
2. nginx 添加 /auth/ 反向代理,修复注册登录 405 错误
|
2026-05-24 14:33:45 +08:00 |
|
wonder
|
7686047a7f
|
!17 !15 feat(auth+db): 实现注册登录核心逻辑,以及自动建表,用户信息落库
Merge pull request !17 from 何朝晖/develop
|
2026-05-24 06:23:11 +00:00 |
|
GYhde
|
e373f39667
|
!16 chore: 更新 .gitignore,忽略前后端构建产物
Merge pull request !16 from 何朝晖/feat/frontend-mvp
|
2026-05-24 06:22:37 +00:00 |
|
wonder
|
a6bc887a45
|
chore: 更新 .gitignore,忽略前后端构建产物
|
2026-05-24 14:19:39 +08:00 |
|
wonder
|
a2736f722c
|
feat(frontend): 构建前端 MVP,实现完整 UI 框架与 mock 数据层
- 安装 zustand + react-router-dom 依赖
- 修复 Vite 代理配置,添加 /auth 路由转发
- 实现 API 封装层(client.ts 统一 fetch、auth.ts 真实调用)
- 实现 mock 数据层(mock.ts 模拟 WebSocket 管线进度)
- 实现 4 个 zustand stores(auth/project/task/generation)
- 实现 5 个组件(StyleSelector/PromptEditor/GenerateForm/ProgressBar/AssetPreview)
- 实现 5 个页面(Login/Register/Project/Generate/Result)
- 实现路由含 ProtectedRoute 守卫
- 添加暗色主题全局样式
- 更新前端文档与 API 文档
|
2026-05-24 14:18:39 +08:00 |
|
GYhde
|
302b9ba88e
|
!15 feat(auth+db): 实现注册登录核心逻辑,以及自动建表,用户信息落库
Merge pull request !15 from GYhde/feat/auth+db
|
2026-05-24 05:58:38 +00:00 |
|
Gmarker689
|
7c0ce6fce8
|
feat(auth+db): 实现注册登录核心逻辑,以及自动建表,用户信息落库
|
2026-05-24 13:53:03 +08:00 |
|
wonder
|
de3ae72d4c
|
!14 docs: 添加任务完成后自动更新文档并提交的规范
Merge pull request !14 from 何朝晖/docs/update
|
2026-05-24 05:37:49 +00:00 |
|
wonder
|
9a930d2f4e
|
docs: 添加任务完成后自动更新文档并提交的规范
|
2026-05-24 13:36:28 +08:00 |
|
wonder
|
cba24349cb
|
docs: 更新 API 与后端文档,对齐已实现功能
- api.md: 标记 register/login 接口为已完成(handler + User model)
- backend.md: 分层结构标注已有文件,与实际代码对齐
|
2026-05-24 13:34:44 +08:00 |
|
wonder
|
afb33d4d5d
|
!13 feat: 引入 Eino 框架,实现四阶段生成管线
Merge pull request !13 from 何朝晖/feat/ai-invoke
|
2026-05-24 05:30:08 +00:00 |
|
wonder
|
cde856cba8
|
!12 feat(login/register): 实现用户注册登录handler以及用户模型
Merge pull request !12 from GYhde/feat/register
|
2026-05-24 05:25:46 +00:00 |
|
wonder
|
9be4b16bdc
|
feat: 引入 Eino 框架,实现四阶段生成管线
基于 compose.Graph 编排 PromptBuilder → AssetGenerator → QualitySupervisor → FormatAdapter,
含质检重试分支(最多 3 次)和降级输出。推理层提供 mock 模式,可替换为真实 API。
|
2026-05-24 13:21:11 +08:00 |
|
Gmarker689
|
259d8dcbd7
|
feat(login/register): 实现用户注册登录handler以及用户模型
|
2026-05-24 13:14:41 +08:00 |
|
GYhde
|
2601af6da6
|
!11 docs: 适配单机场景,简化存储与认证方案
Merge pull request !11 from 何朝晖/docs/architecture
|
2026-05-24 04:55:47 +00:00 |
|
wonder
|
cbcda82515
|
docs: 适配单机场景,简化存储与认证方案
- 数据库:MySQL → SQLite,去掉连接池配置和 golang-migrate
- 文件存储:OSS 对象存储 → 本地文件系统,统一 Gin 静态文件服务
- ID 生成:Sonyflake → 前缀+随机字符串
- 认证:Bearer Token → httpOnly Cookie,WebSocket 同步改为 Cookie 认证
- 质检重试:PromptBuilder 重试时注入 RejectReason 改进提示词
- 合并 multi-agent-pipeline.md 到 backend.md,消除文档重复
- 移除缓存管理 API(暴露内部实现细节)
|
2026-05-24 10:56:40 +08:00 |
|
wonder
|
f4c1a10403
|
docs: 交叉检查修复文档疏漏与不一致
- 修复 api.md 修改密码接口混入注册场景的 409 错误
- 补充 api.md WebSocket 示例缺失的 quality_supervisor running 消息
- 补充 api.md 注册接口格式校验错误响应、缓存接口详细说明
- 补充 frontend.md Task 接口缺失的 error 字段
- 补充 frontend.md 错误处理章节(API 错误、WebSocket 断连、加载状态)
- frontend.md 风格键表改为引用 style-keys.md,消除重复
- async-tasks.md 去重/文件存储改为引用 database.md,消除重复
- backend.md ER 图改为引用 database.md,消除重复
- 补充 backend.md 目录结构中缺失的 auth/project handler 和 user model
- 补充 backend.md 缓存层设计说明
- 补充 database.md GEN2D_SERVER_PORT 环境变量和迁移文件归属说明
- 补充 multi-agent-pipeline.md 到 backend.md 和 async-tasks.md 的交叉引用
- 补充 async-tasks.md 超时控制说明
|
2026-05-24 10:47:00 +08:00 |
|
wonder
|
5a6bcaffaf
|
docs: 新增用户认证、OSS 存储、异步任务设计
- database.md: 新增 user 表,project 关联 user_id,恢复 OSS 对象存储,
移除 60 分钟文件过期,新增 JWT/OSS 环境变量配置
- api.md: 新增认证章节和错误码表,补充用户注册/登录/修改密码接口,
工程管理新增列表/详情/删除接口,各接口补充错误响应说明
- async-tasks.md: 完善任务队列设计、Worker 流程、并发控制、管线进度、
质检重试与任务级重试策略、进度推送方式
|
2026-05-24 10:38:31 +08:00 |
|