194 Commits

Author SHA1 Message Date
Gmarker689 ccb7a19947 !57 fix: 修复新建任务后任务列表返回为空的问题
Merge pull request !57 from 何朝晖/fix/task
2026-05-25 09:50:10 +00:00
wonder bb5d3431c1 fix: 修复新建任务后任务列表返回为空的问题
- 在 Task 模型中添加 ExternalID 字段用于关联内存中的 taskID
- 修改 Generate 函数,将任务记录同时存入内存和数据库
- 添加 saveTaskToDB 和 updateTaskInDB 函数处理任务持久化
- 同步更新任务状态到数据库,确保 GetProjectTasks 能正确查询
- 处理 default 工程的特殊情况(跳过数据库存储)
2026-05-25 17:48:31 +08:00
wonder 8f9b543c0d !56 !55 docs: 修正工程管理文档中的认证方式说明
Merge pull request !56 from 何朝晖/develop
2026-05-25 09:00:46 +00:00
Gmarker689 8568ce91ac !55 docs: 修正工程管理文档中的认证方式说明
Merge pull request !55 from 何朝晖/fix/auth
2026-05-25 08:59:39 +00:00
wonder 8d98472a05 docs: 修正工程管理文档中的认证方式说明
从 Cookie 携带 Token 修正为 Authorization Bearer header,与实际实现一致。
2026-05-25 16:58:19 +08:00
wonder 5d8d186d74 fix: 修复 JWT Claims 类型转换问题
AuthMiddleware 中的 userID 从 JWT claims 解析时,JWT 库默认将数字字段解析为 float64 类型,
但 handler 使用 GetUint 获取,导致类型不匹配。

修复内容:
- 增加 strconv 导入
- 增强类型转换逻辑,支持 float64、int、int64、uint 和 string 类型统一转换为 uint

这将确保用户登录后能正常访问需要认证的接口。
2026-05-25 16:57:53 +08:00
Gmarker689 f3dfcd3b0b feat: splitsprite 增加白底移除、固定网格拆分与帧居中功能
- 新增 RemoveWhiteBg:纯白色背景(#FFFFFF)像素半透明化
- 新增 fixedGridSplit:GridRows×GridCols 固定网格拆分
- 新增 CenterAlign:帧内容居中对齐,确保人物不跳帧
- Options 新增 WhiteBg/GridRows/GridCols/GridPadding/CenterAlign
- 默认模式从绿幕切换为白底
- 新增 tools/test_prompt_to_gif.go 端到端测试脚本
- .gitignore 忽略 test_output 目录
2026-05-25 16:48:48 +08:00
Gmarker689 cce10f3bfe !54 !53 docs: 更新 API 文档反映实现状态
Merge pull request !54 from 何朝晖/develop
2026-05-25 08:45:18 +00:00
Gmarker689 feeb83b2a8 !53 docs: 更新 API 文档反映实现状态
Merge pull request !53 from 何朝晖/feat/backend-api
2026-05-25 08:44:53 +00:00
wonder 6a87cbe23f docs: 更新 API 文档反映实现状态
- 标记工程管理相关接口为已完成
- 标记工程风格接口为已完成
2026-05-25 16:40:59 +08:00
wonder 60a86f67d2 feat: 更新项目 API 客户端对接真实后端
- 实现 listProjects getProject createProject 等真实 API 调用
- 移除 mock 实现,直接调用后端接口
2026-05-25 16:40:30 +08:00
wonder 77ffd0e58d feat: 新增前端 API 客户端
- 新增 edit.ts: 图片编辑 API 客户端
- 新增 health.ts: 健康检查 API 客户端
2026-05-25 16:40:12 +08:00
wonder f5ec4a6406 feat: 在路由中注册工程管理接口
- 注册所有工程相关的 API 路由
- 初始化 ProjectService 服务
- 更新数据库迁移包含 Project Task ProjectStyleRecord 表
2026-05-25 16:39:35 +08:00
wonder 8f622f6814 feat: 实现工程管理模块
- 新增 Project ProjectStyleRecord Task 数据模型
- 新增 ProjectService 服务层,支持工程和风格的 CRUD 操作
- 新增工程相关 handler,实现前端所需的所有工程接口
- 数据库层新增 GetDB 方法,便于服务层获取数据库连接

涉及接口:
- GET /api/v1/projects - 获取工程列表
- POST /api/v1/projects - 创建工程
- GET /api/v1/projects/:projectId - 获取工程详情
- PUT /api/v1/projects/:projectId - 更新工程信息
- DELETE /api/v1/projects/:projectId - 删除工程
- GET /api/v1/projects/:projectId/style - 获取工程风格
- PUT /api/v1/projects/:projectId/style - 更新工程风格
- GET /api/v1/projects/:projectId/tasks - 获取工程任务列表
2026-05-25 16:38:46 +08:00
Gmarker689 aff48b6780 feat: 提示词优化支持多布局模式识别与纯白背景统一
- buildMetaPrompt 按素材类型给出双模式指令(单素材/网格瓦片集),LLM 根据用户意图选择
- 新增 isSheetRequest 自动识别精灵表/瓦片集/tileset 关键字
- 模板回退链路全面支持 isSheet 双模式,默认单素材模式
- 所有素材类型统一纯白色背景(#FFFFFF),由后期 format 节点清洗去背
- 补充 sprite/background/ui/animation 四类素材的完整生成场景覆盖
2026-05-25 16:23:00 +08:00
wonder 408e7f36e4 !52 !51 refactor: 前端重构为项目+任务双核心模型
Merge pull request !52 from 何朝晖/develop
2026-05-25 08:17:51 +00:00
wonder 11d1ca54d0 !51 refactor: 前端重构为项目+任务双核心模型
Merge pull request !51 from 何朝晖/refactor/frontend
2026-05-25 08:17:15 +00:00
wonder a603f5548c refactor: 前端重构为项目+任务双核心模型
- 新增 HomePage 项目画廊页,支持新建/删除工程
- 新增 ProjectDetailPage 三栏工作台(配置+生成+任务列表)
- 新增 CustomTagsEditor 支持自定义风格标签(custom: 前缀存入 kvPairs)
- 重构 project store 为 draft/commit 模式,支持手动保存/取消
- 新增 projectList store 管理工程列表
- 扩展 mock.ts 为多工程数据结构
- 扩展 api/project.ts 新增项目 CRUD API(mock-gated)
- 简化 ResultPage,仅展示素材预览
- 删除 GeneratePage、ProjectPage 及未使用的 hooks
- 更新 docs/ 文档(frontend.md、api.md、style-keys.md、_index.md)
2026-05-25 16:15:31 +08:00
wonder 57cbd11ff3 !50 !49 fix: mock.ts 中 Asset 补充 key 字段,修复 tsc 编译错误
Merge pull request !50 from 何朝晖/develop
2026-05-25 07:32:29 +00:00
wonder 2bc0ec2eaa !49 fix: mock.ts 中 Asset 补充 key 字段,修复 tsc 编译错误
Merge pull request !49 from 何朝晖/fix/show-img
2026-05-25 07:32:04 +00:00
wonder 4fdf02d433 fix: mock.ts 中 Asset 补充 key 字段,修复 tsc 编译错误 2026-05-25 15:31:13 +08:00
wonder dc7e283e04 !48 !47 fix: 修复前端无法加载七牛云图片的问题
Merge pull request !48 from 何朝晖/develop
2026-05-25 07:29:10 +00:00
Gmarker689 9d5ee1fc05 !47 fix: 修复前端无法加载七牛云图片的问题
Merge pull request !47 from 何朝晖/fix/show-img
2026-05-25 07:27:33 +00:00
wonder 2f8e7ead17 fix: 修复前端无法加载七牛云图片的问题
1. 修复 buildURL 中 url.PathEscape 对路径分隔符 / 的错误编码(/→%2F),
   改为逐段编码后拼接
2. AssetResponse 新增 key 字段,返回七牛云对象存储 Key
3. 前端改用 /api/v1/assets/download 接口加载图片,通过后端 302 重定向
   访问 CDN,避免浏览器直接访问 CDN 可能出现的跨域或编码问题
4. 更新 api.md 文档,补充 key 字段说明和 download 接口公开属性
2026-05-25 15:25:40 +08:00
Gmarker689 b434ec7d11 !46 !45 fix: 七牛云上传缺少 File.Name 导致上传失败
Merge pull request !46 from 何朝晖/develop
2026-05-25 07:00:13 +00:00
Gmarker689 50caad8e6c !45 fix: 七牛云上传缺少 File.Name 导致上传失败
Merge pull request !45 from 何朝晖/fix/upload-img
2026-05-25 06:59:29 +00:00
wonder 7d89faff5c fix: 七牛云上传缺少 File.Name 导致上传失败
UploadReader 调用时未设置 ObjectOptions.FileName,SDK 内部
PostObject 校验 File.Name 不能为空,返回 missing required field 错误。
从 key 中提取文件名填入 FileName 字段即可。
2026-05-25 14:58:12 +08:00
wonder 3890a50809 !44 !43 fix: 修复 runPipelineBg 调用参数不匹配的编译错误
Merge pull request !44 from 何朝晖/develop
2026-05-25 06:47:00 +00:00
Gmarker689 2d6797ab3d !43 fix: 修复 runPipelineBg 调用参数不匹配的编译错误
Merge pull request !43 from 何朝晖/fix/runtime
2026-05-25 06:46:04 +00:00
wonder 20787fcde7 fix: 修复 runPipelineBg 调用参数不匹配的编译错误 2026-05-25 14:44:55 +08:00
wonder d835038f95 !42 !41 feat: .env example示例
Merge pull request !42 from 何朝晖/develop
2026-05-25 06:39:11 +00:00
Gmarker689 c2d5acfb52 !41 feat: .env example示例
Merge pull request !41 from 郭永昊/feat/async-generate-pipeline
2026-05-25 06:38:52 +00:00
wonder cc8310860b Merge branch 'develop' of gitee.com:hezhaohui123/gen2d into feat/async-generate-pipeline
Signed-off-by: 何朝晖 <hezhaohui0807@163.com>
2026-05-25 06:38:14 +00:00
Gmarker689 610c7ebbc0 !40 docs: 更新后端文档,补充日志系统说明
Merge pull request !40 from 何朝晖/refactor/log
2026-05-25 06:33:07 +00:00
wonder 2471f97066 docs: 更新后端文档,补充日志系统说明 2026-05-25 14:31:09 +08:00
wonder 25c11ed649 refactor: 全面集成 slog 日志到 handler、service、middleware
- cmd/main.go: 集成 logger.Init 和日志中间件,替换标准 log 包
- handler 层: 5xx 错误记录完整日志,返回通用消息(防内部信息泄露)
- service 层: LLM/图片生成/存储/认证等关键操作补充结构化日志
- auth 中间件: 记录认证失败原因
- generate.go: 后台管线任务使用带 task_id 的 logger
2026-05-25 14:31:04 +08:00
wonder 681bc8f472 feat(middleware): 新建请求日志与 Panic 恢复中间件
- Logger 中间件:生成 request_id(注入 X-Request-ID header),记录 method/path/status/latency/client_ip
- Recovery 中间件:自定义 panic 恢复,记录 request 上下文和堆栈
2026-05-25 14:30:44 +08:00
wonder fb0d83251f feat(log): 新建 logger 包,基于 log/slog 提供结构化日志
- 新建 internal/logger/logger.go,提供 Init/FromCtx/WithRequestID 方法
- Config 新增 LogConfig(level/format),支持 GEN2D_LOG_LEVEL/GEN2D_LOG_FORMAT 环境变量
- config.yml 和 .env.example 添加日志配置示例
2026-05-25 14:30:35 +08:00
Gmarker689 e51e1b6742 feat: .env example示例 2026-05-25 14:29:02 +08:00
Gmarker689 5d5fe60426 feat: 管线四阶段进度上报 + 图片预览 + Vite 代理
后端:
- pipeline.go: ProgressReporter 回调类型 + WithProgressReporter 注入 context
- nodes.go: 各节点 pre/post handler 调用 reportProgress() 上报阶段进度
- generate.go: TaskResponse 新增 stage 字段,runPipelineBg 注入进度回调

前端:
- vite.config.ts: 添加 /generation 代理到后端静态文件服务
- generation.ts: 轮询读取 stage 字段,暴露 stage/retryCount/rejectReason
- GeneratePage.tsx: ProgressBar 接收真实管线阶段数据
2026-05-25 14:26:26 +08:00
wonder 4826516901 !39 !38 fix: 为图片生成 API 添加超时与 5xx 重试机制
Merge pull request !39 from 何朝晖/develop
2026-05-25 06:09:48 +00:00
Gmarker689 87120af486 !38 fix: 为图片生成 API 添加超时与 5xx 重试机制
Merge pull request !38 from 何朝晖/hotfix/nginx
2026-05-25 06:08:33 +00:00
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
wonder 50f95adb98 fix: 为图片生成 API 添加超时与 5xx 重试机制
- ImageGenConfig 新增 timeout/max_retries/retry_delay 配置项(默认 120s/2次/5s)
- 替换 http.DefaultClient 为带超时的 imageHTTPClient
- callImageAPI 对 5xx 错误自动重试,避免 504 等瞬时故障直接失败
2026-05-25 14:05:14 +08:00
wonder 63ad88db68 !37 !36 feat: 接入七牛云存储,替换本地文件存储
Merge pull request !37 from 何朝晖/develop
2026-05-25 05:50:30 +00:00
Gmarker689 fc4e6b58f4 !36 feat: 接入七牛云存储,替换本地文件存储
Merge pull request !36 from 何朝晖/feat/invoke-qiniu
2026-05-25 05:50:07 +00:00
wonder 83d3d2663d feat: 接入七牛云存储,替换本地文件存储
- generate handler 中的本地文件写入替换为 storageSvc.Upload() 调用
- 移除 main.go 中的本地 generation 目录创建和静态文件服务
- 更新 api.md 接口状态标记
2026-05-25 13:48:37 +08:00
wonder 8aa36900c7 !35 !34 refactor(config): 精简 image_gen 配置为 OpenAI 兼容同步 API
Merge pull request !35 from 郭永昊/develop
2026-05-25 05:32:58 +00:00
wonder ebc6c171d5 !34 refactor(config): 精简 image_gen 配置为 OpenAI 兼容同步 API
Merge pull request !34 from 郭永昊/feat/AssertGeneration
2026-05-25 05:30:42 +00:00
wonder a711985b31 Merge branch 'develop' of gitee.com:hezhaohui123/gen2d into feat/AssertGeneration
Signed-off-by: 何朝晖 <hezhaohui0807@163.com>
2026-05-25 05:29:13 +00:00