Commit Graph

171 Commits

Author SHA1 Message Date
Gmarker689 96285014b1 feat: 首页素材点击查看详情,支持下载
- 后端 GetRecentAssets 增加 projectName/width/height/projectId 字段
- 前端 AssetGallery 点击图片弹出详情弹窗:提示词/工程/分辨率/格式
- 详情弹窗提供下载按钮,走 /api/v1/assets/download?key= 接口
2026-05-25 21:28:54 +08:00
Gmarker689 1a78744766 feat: 首页素材画廊增加分类筛选标签
- 后端 SQL 增加 json_extract 提取素材 metaType (frame/spritesheet/preview)
- 前端 AssetGallery 新增分类标签栏:全部/精灵表/帧/场景瓦片/背景/UI
- 按 metaType + assetType 组合过滤展示
2026-05-25 21:07:15 +08:00
Gmarker689 b88f9aaf03 feat: 首页展示最近生成的素材画廊
- 后端新增 GET /api/v1/assets 接口,返回已完成任务的素材列表(按创建时间倒序)
- 前端新增 AssetGallery 组件,网格展示素材缩略图、类型标签和提示词
- HomePage 中工程列表上方展示最近生成素材
2026-05-25 21:02:03 +08:00
Gmarker689 5be74e3ce1 feat: 左上角品牌图标更换为自定义 logo
- 文本 "gen2d" 替换为 logo.png 图片
- 同时更新浏览器 favicon
2026-05-25 20:52:06 +08:00
Gmarker689 8e3b576954 feat: 更换网页图标为自定义 favicon 2026-05-25 20:49:47 +08:00
Gmarker689 acef46063c fix: 任务侧边栏点击详情后"任务不存在"问题
GetTasks 返回的 TaskResponse.ID 使用了数据库自增 ID (t.ID) 而非 ExternalID,
导致前端用错误 ID 调用 GetTask 接口时 external_id 查询不到记录。
改为返回 t.ExternalID 与实际查询字段一致。
2026-05-25 20:19:09 +08:00
Gmarker689 7921edd71e fix: 任务详情页 JWT 鉴权失败导致回退登录页
- TaskListPanel 用 React Router <Link> 替代原生 <a href>,避免整页刷新
- auth store 初始化时同步读取 token 设置 isAuthenticated,避免 useEffect 异步执行前 ProtectedRoute 误判未登录
2026-05-25 20:15:06 +08:00
Gmarker689 f44fd56e22 fix: 自定义标签融入原生标签栏,点击切换而非消失
- StyleSelector 新增 customTags 属性,自定义标签作为「自定义标签」行展示在原生标签栏中
- 自定义标签点击切换 true/false,不再移除 key,解决点击消失问题
- CustomTagsEditor 简化为仅输入框+添加按钮
- extractTags 仅提取激活态自定义标签(value=true)
- 导出 CUSTOM_PREFIX 供组件使用
2026-05-25 19:55:29 +08:00
Gmarker689 9d3b8fcd20 fix: 修复工程类型双重标签和自定义标签无法点击的问题
- 移除 CreateProjectModal/ProjectConfigPanel 中外层重复的"工程类型"标签
- CustomTagsEditor 标签 pill 改为 button,点击整个 pill 即可移除标签
2026-05-25 19:46:04 +08:00
Gmarker689 a518168762 feat: 结果页添加帧预览、GIF动画和导出选项
- 后端: GetAssets 返回素材级别 metadata,区分 frame/preview/spritesheet 类型
- 后端: 上传时区分素材类型标签,GIF URL 独立追踪
- 前端: 结果详情页默认展示拆分后的单帧网格
- 前端: 添加动作帧 GIF 预览弹窗
- 前端: 添加导出下拉菜单(整张精灵表/自动切分帧)
- 前端: 失败任务展示错误信息和重试次数
2026-05-25 19:41:55 +08:00
Gmarker689 ab2b72e746 fix: 工程类型与素材风格标签分离,支持双栏自定义标签
- 工程层面:新增 PROJECT_TYPES(2D平台跳跃/角色扮演等8种),替代原先与素材生成重复的风格标签栏
- 素材生成层面:StyleSelector 作为素材风格主配置项,新增 CustomTagsEditor 支持任务级自定义标签
- extractTags 合并工程类型、风格分类、工程自定义标签、任务自定义标签
- StyleSelector 支持 categories 参数复用
- 后端:spritesheet 拆分失败回退为单帧、GIF 上传为独立素材、AssetResponse 增加 metadata 字段
2026-05-25 19:31:36 +08:00
wonder c48ba6e61d !67 fix: 修复管线context取消、添加FIFO任务队列、移除重复提示词优化
Merge pull request !67 from 郭永昊/fix/pipeline-queue-context-dedup
2026-05-25 11:13:02 +00:00
Gmarker689 67e70fa9d4 !65 fix: 七牛云私有 bucket 下载 URL 签名支持
Merge pull request !65 from 何朝晖/fix/qiniu
2026-05-25 11:11:42 +00:00
Gmarker689 96ac56cb4e fix: 修复管线context取消、添加FIFO任务队列、移除重复提示词优化
三个修复:
1. runPipelineBg 改用 context.Background(),避免 HTTP 响应返回后
   Gin 取消 request context 导致后台管线静默失败
2. 新增 TaskQueue FIFO 串行队列,任务提交后进入 pending 状态排队,
   按提交顺序逐个执行,前端轮询显示排队中
3. promptOptimizerNode 移除 RunPromptAgent 调用,提示词优化仅由
   前端在提交前通过 /api/v1/prompt/optimize 执行一次,管线内只做
   风格合并和技术参数追加
2026-05-25 19:10:46 +08:00
wonder 5100a52bca fix: 七牛云私有 bucket 下载 URL 签名支持
对私有读 bucket,通过 HMAC-SHA1 签名生成带 e(过期时间)和 token(下载凭证)
参数的临时下载 URL,前端获取的素材 URL 和下载接口均返回签名 URL。

新增配置项 GEN2D_QINIU_URL_EXPIRE,默认 3600 秒。
2026-05-25 19:05:55 +08:00
wonder 1acf1b51e8 !64 !63 feat: 添加管线阶段可视化展示并改进任务日志
Merge pull request !64 from 何朝晖/develop
2026-05-25 10:36:13 +00:00
wonder 641c53124b !63 feat: 添加管线阶段可视化展示并改进任务日志
Merge pull request !63 from 何朝晖/fix/task-running
2026-05-25 10:35:50 +00:00
wonder e0a70106c1 feat: 添加管线阶段可视化展示并改进任务日志
- 添加 PipelineStages 组件,用圆角矩形和箭头展示管线阶段
- 三色方案:已完成为浅绿、进行中为浅橙、未完成为灰色
- 任务列表中显示进度百分比和管线阶段
- 增强后端日志输出,添加任务启动、进度更新和管线完成日志
- 用于诊断任务卡在 running 状态的问题
2026-05-25 18:34:46 +08:00
wonder b66405ae55 !62 !61 fix: 任务创建后直接进入 running 状态,避免前端显示排队中
Merge pull request !62 from 何朝晖/develop
2026-05-25 10:17:24 +00:00
wonder d9866325cb !61 fix: 任务创建后直接进入 running 状态,避免前端显示排队中
Merge pull request !61 from 何朝晖/fix/task
2026-05-25 10:16:58 +00:00
wonder 0847d126a2 fix: 任务创建后直接进入 running 状态,避免前端显示排队中
- 移除任务初始状态 pending,改为直接创建为 running
- 初始进度设为 5%,stage 设为 prompt_builder
- 更新文档以反映实际执行流程(无队列机制)
- 修复前端轮询时因竞态条件显示排队中的问题
2026-05-25 18:16:21 +08:00
Gmarker689 e612f48b9e !60 !58 refactor: 移除内存存储,全部改为数据库持久化
Merge pull request !60 from 何朝晖/develop
2026-05-25 10:04:02 +00:00
wonder 43817ca26f !59 feat: FormatAdapter 接入 splitsprite+gifmaker 管线
Merge pull request !59 from 郭永昊/feature/prompt-optimize-layout-modes
2026-05-25 10:03:07 +00:00
Gmarker689 d5e2d7fa53 feat: FormatAdapter 接入 splitsprite+gifmaker 管线
- FormatAdapter: 精灵表模式(单图)自动调用 splitsprite.Process 拆分帧
- 拆分后每帧编码为独立 PNG Asset,Metadata 包含 GIFPreview 字节
- 多图/非精灵表模式保持原样透传
- AssetParams 新增 GridRows/GridCols 覆盖投影检测
- AssetMetadata 新增 GIFPreview 字段
2026-05-25 18:01:51 +08:00
Gmarker689 8309d32d4b feat: 投影法波谷检测+白底硬切断+帧底部对齐+gifmaker透明GIF
- prompt_agent: 精灵表/瓦片集间隙从2-4px放宽到8-16px纯白
- splitsprite removeWhiteBg: dist<threshold/2直接A=0,消除半透明残留
- splitsprite findCuts: 波峰-波谷检测替代死阈值,归并原阈值回退
- splitsprite alignCenter: 全局画布底部对齐替代独立居中,人物不跳帧
- splitsprite MinFillRatio 调至0.14,MinGapWidth调至2
- 新增 pkg/gifmaker: 统一画布+透明索引0+DisposalBackground
- test_prompt_to_gif 改用gifmaker包
2026-05-25 17:57:01 +08:00
Gmarker689 0a4f1c44c0 !58 refactor: 移除内存存储,全部改为数据库持久化
Merge pull request !58 from 何朝晖/fix/memory-storage
2026-05-25 09:56:01 +00:00
wonder 3081066d35 refactor: 移除内存存储,全部改为数据库持久化
- 新建 Asset 模型并添加自动迁移
- 移除 taskStore 内存中的任务缓存
- 新任务直接写入数据库 Task 表
- 任务状态更新同步写入数据库
- 素材上传结果保存到 Asset 表
- GetTask/GetAssets 从数据库查询
- 添加 Metadata 字段到 Task 模型存储完整元数据
2026-05-25 17:54:18 +08:00
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