128 Commits

Author SHA1 Message Date
Your Name
2f667cede8 feat: LLM 驱动的精准提示词优化
1. 使用 Qwen VL 根据历史对话动态优化提示词
2. 强调精准局部编辑,只修改用户指定的部分
3. 保护其他元素不被误改
4. 包含具体的编辑要求和避免项

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 16:28:39 +08:00
Your Name
7ed0dad3f6 fix: Smart Auto Mode 变量初始化顺序错误
在 Smart Auto Mode 内部单独获取历史消息,避免依赖
后面才定义的 messagesFromDb 变量

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 16:18:06 +08:00
Your Name
544a1cd46a feat: 智能分析器支持历史对话上下文
1. analyzeIntent 接收历史对话消息
2. 传递最近10条对话给 LLM 分析
3. 帮助 AI 理解用户连续对话的意图(如再调亮一点)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 16:13:44 +08:00
Your Name
1f26ec911c fix: 修复 auto-title API 模型查找
1. 正确访问 model 和 provider 对象结构
2. 直接使用返回的 provider 信息,无需再次查询

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 16:03:34 +08:00
Your Name
aac42de4c5 debug: 添加 auto-title 模型查找详细日志
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 15:57:43 +08:00
Your Name
517d8e493c fix: auto-title API 使用数据库配置的千问VL模型
1. 从数据库查找支持视觉的模型(qwen-vl 系列)
2. 使用对应 provider 的配置调用 API
3. 添加详细日志便于调试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 12:51:00 +08:00
Your Name
e84b002302 fix: 画布 API 支持 upsert 操作
当画布不存在时自动创建,而不是返回 404

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 12:36:18 +08:00
Your Name
5b4e350568 debug: 添加 chat API 请求验证日志
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 12:28:43 +08:00
Your Name
057014900c feat: 完善画布功能按钮与后端 API 对接
1. 修复 CanvasChatPanel 中的图片上传 - 使用 parts 数组而非 attachments
2. 扩展 chat schema 支持更多图片格式(gif, bmp, svg)
3. 实现尺寸调整功能 - 添加对话框选择尺寸
4. 更新 imageGenerationService.resizeImage 使用 canvas API 调整尺寸
5. 所有图片编辑功能已对接:抠图、变清晰、扩展、角度编辑、场景裂变、尺寸调整

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 12:18:16 +08:00
Your Name
05236a7b86 fix: 在 onFinish 后从数据库重新加载消息
这是根治方案 B:
1. 添加 GET /api/messages 端点从数据库获取消息
2. 在 onFinish 后延迟 500ms,然后从数据库重新加载消息
3. 更新 setMessages 和清空 appendedMessages

这确保了 data-appendMessage 保存到数据库的消息能正确显示

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 10:58:08 +08:00
Your Name
231d726b37 fix: 完善智能自动模式对话流程
修复内容:
1. 前端:检查用户最后一条消息是否有图片(而不是整个对话最后一条)
2. 前端:useEffect 依赖项添加 selectedModelId
3. 后端:错误回退时也生成友好消息
4. 后端:保存消息时添加完整的数据库字段
5. 分析器:增加颜色调整关键词匹配(改成X色、换成X色)

现在大模型(Qwen3 VL)会生成自然对话回复

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:18:30 +08:00
Your Name
ddada59db1 fix: 使用特殊标记保持占位图显示
问题:对话消息发送后占位图消失
解决:
1. 后端在对话消息末尾加上 <!-- GENERATING_IMAGE --> 标记
2. 前端检测到此标记时继续显示占位图
3. 渲染时清理掉这个标记(用户看不到)
4. 数据库保存时不带标记(纯对话)

流程:
1. 用户发送请求
2. AI回复对话(带标记)+ 占位图继续显示
3. 图片生成后显示

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:12:08 +08:00
Your Name
920fb5aa95 fix: 添加延迟让前端渲染对话消息
在发送对话消息后等待500ms,让前端有时间渲染第一条消息,
然后再开始第二轮(图片生成),这样不会在同一个回复里重叠

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:04:31 +08:00
Your Name
ff9f45858b feat: 智能自动模式先对话再生图
流程:
1. 用户发送请求(图片+文字)
2. AI立即回复对话('好的,我来帮你...')
3. 显示占位图(正在生成中...)
4. 图片生成后显示

修改:
- 后端:先发送对话消息,再调用生图API
- 前端:检查用户消息后所有assistant消息是否有图片
- 只有图片出现才隐藏占位图,对话文字不影响

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 02:00:21 +08:00
Your Name
73d1ab7912 fix: 智能自动模式对话和图片合并发送
修复流程:
1. 用户发送请求
2. 显示占位图
3. 图片生成后显示(对话文字 + 图片)

- 将对话消息和图片合并成一条消息
- 对话文字在前,图片在后
- 占位图显示到图片出现为止

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 01:56:18 +08:00
Your Name
6462fe2456 feat: 智能自动模式先对话再生图
修复内容:
1. 修复变量名 smartAutoHistoryImage -> smartAutoHistoryImages
2. 修复 model-router.ts 循环依赖问题
3. 智能自动模式显示占位图(当用户发送图片时)
4. 先发送对话消息(如:好的,我来帮你...),再生成图片
5. 让用户感受到是在和AI对话,而不是机器执行

流程:
用户发送请求 -> AI回复对话 -> 显示生图占位图 -> 显示生成结果

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-01 00:08:37 +08:00
Your Name
0901bc6329 feat: 支持历史多张图片的连续编辑
- 从历史对话中提取多张图片,支持多图融合编辑
- 收集同一条消息中的所有图片(用户上传或AI生成)
- 将所有历史图片注入到后续编辑请求中
- 日志输出图片数量便于调试

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 23:41:07 +08:00
Your Name
691e9862e7 feat: 自动使用历史图片进行连续对话编辑
- 用户没有发送新图片时,自动使用历史中最近的图片
- 支持连续对话场景:换颜色、调整、重做等
- 优先使用AI生成的图片,其次是用户上传的图片
- 让对话更自然,不需要每次都重新上传图片

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 23:37:23 +08:00
Your Name
760509100c fix: 保持用户消息原样显示,AI自然对话后再执行编辑
- 用户发送的消息不再被修改,保持原样显示
- 优化后的提示词只用于API调用,不影响用户消息
- AI会先用自然语言回复用户,再显示编辑结果

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 23:29:30 +08:00
Your Name
8763e8d53f feat: 智能图片编辑系统 - 意图分析、提示词优化、模型路由
新增智能自动模式功能:
- smart-analyzer.ts: 智能意图分析器,识别抠图/换背景/增强等8种子意图
- prompt-optimizer.ts: 提示词优化器,将简单输入转为专业提示词
- model-router.ts: 智能模型路由器,根据意图选择最佳模型
- 修改route.ts集成新模块,替换原有关键词匹配逻辑

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 23:15:11 +08:00
Your Name
8d580ad3ab chore: sync local changes
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 22:39:49 +08:00
Your Name
2e62d17317 fix: preserve chat context after image generation by updating URL to /chat/id
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 22:11:29 +08:00
Your Name
876386ecec fix: properly center video tutorial modal and fix featured image dialog overflow
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 21:51:35 +08:00
Your Name
da3c6bb135 fix: allow empty coverUrl in tutorial videos API
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 21:42:55 +08:00
Your Name
db070f8a37 fix: increase request body size limit to 500MB for video uploads
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 21:32:07 +08:00
Your Name
4e42b3e1c1 fix: use xhr.upload.onloadend to correctly show compressing stage
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 21:27:45 +08:00
Your Name
acc9407ec7 fix: improve video upload progress UI with better stage indicators
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 21:22:21 +08:00
Your Name
344c9bc956 feat: add real-time video upload progress bar with stage indicators
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 21:17:35 +08:00
Your Name
b99b3e5718 perf: optimize video playback and encoding for better web streaming experience
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 20:54:25 +08:00
Your Name
e861fc5203 feat: add multi-video tutorial support with dropdown menu and video management
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 20:48:14 +08:00
Your Name
024ec19c70 feat: add tutorial video button and ranking visibility toggle in navbar settings
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 20:37:29 +08:00
Your Name
c44c8cff6a feat: add toolbox1/toolbox2 name and enable settings in navbar config
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-31 11:11:58 +08:00
Your Name
a76e97eec0 fix: save provider and photoroomApiKey in RMBG config 2026-01-27 22:22:37 +08:00
Your Name
ab583c38ef feat: add PhotoRoom background removal support in RMBG settings 2026-01-27 22:15:29 +08:00
Your Name
59bc3636e1 feat: rename scene fusion to detail replace, add auto-retry up to 10 times 2026-01-27 21:47:59 +08:00
Your Name
ee4bb14736 feat: add banner settings to admin panel for configuring ad banner text and link 2026-01-26 22:26:44 +08:00
Your Name
0c4a2a455e fix: create new canvas instead of redirecting when canvas not found 2026-01-26 22:17:58 +08:00
Your Name
8e82b0ea99 fix: use Button with router.push for reliable navigation
- Replace Link components with Button + router.push
- Add e.preventDefault() and e.stopPropagation() to prevent event issues
- Fix file list button click handler in CanvasChatPanel
- Ensures single click navigation works consistently
2026-01-26 21:31:58 +08:00
Your Name
2566c00cb1 fix: redirect /canvas to new canvas editor instead of list page
- Replace full-screen canvas list with auto-redirect to new canvas
- Ensures users always enter canvas editor mode directly
- Use Link component for reliable navigation in top navbar
2026-01-26 21:24:25 +08:00
Your Name
676be1c70c feat: switch file list from dialog to inline panel
- Replace dialog-based file list with inline panel in sidebar
- Click file list button now switches panel content instead of opening popup
- Add CanvasFileListPanel component for embedded file list view
- Fix thumbnail property name and type casting issues
- Add placeholder handleAction function
2026-01-26 21:19:52 +08:00
Your Name
9385b6f6d6 feat: implement auto-save, auto-title, and canvas file list sidebar
- Remove manual rename and save buttons from canvas header
- Add auto-save logic with debounce
- Add AI auto-titling and thumbnail generation based on canvas content
- Add CanvasFileList sidebar for managing canvases
- Direct entry to new canvas from top navigation
- Add new API endpoint for auto-titling
2026-01-24 22:50:34 +08:00
Your Name
7704a799f8 fix: update canvas chat panel header to match official design 2026-01-24 22:29:31 +08:00
Your Name
77b2b765ea fix: remove quick tools tab from canvas sidebar 2026-01-24 22:21:51 +08:00
Your Name
3c2943e1cb feat: integrate image editing tools into canvas sidebar and optimize UI 2026-01-24 22:18:03 +08:00
Your Name
39c726b5af fix: shrink canvas toolbar and restore chat banner 2026-01-24 22:03:17 +08:00
Your Name
1ad0bc8db6 fix: remove logo from canvas chat panel greeting 2026-01-24 21:57:55 +08:00
Your Name
601900f933 fix: adjust canvas UI layout - vertical toolbar and header position 2026-01-24 21:48:05 +08:00
Your Name
30950a89dc fix: adjust canvas layout - move toolbar to left, save to left, increase chat height 2026-01-24 21:40:46 +08:00
Your Name
f5c52bfdc6 feat: redesign chat panel to match LOVART style 2026-01-24 21:36:05 +08:00
Your Name
79e5a870e1 feat: comprehensive UI redesign for infinite canvas (LOVART style) 2026-01-24 21:27:36 +08:00