diff --git a/docs/source-analysis.html b/docs/source-analysis.html index c7f4a97..330dc22 100644 --- a/docs/source-analysis.html +++ b/docs/source-analysis.html @@ -604,7 +604,7 @@ web/app/globals.css全局主题变量、登录页视觉样式、信息流工作台玻璃拟态 token、ReactFlow 样式引用,以及本地开发态 nextjs-portal 遮挡隐藏规则。工作台在 skg-board-theme 内按 Figma 本地 MCP 参考改成黑灰玻璃系统:深灰背景、#383838 胶囊侧栏、rgba(255,255,255,.1) 玻璃面、backdrop-filter: blur(5px)20px 圆角、10px 10px 10px rgba(0,0,0,.3) 阴影和绿黄状态色;新增 skg-board-shellskg-board-railskg-glass-cardskg-glass-card--flatskg-status-orb 等样式。侧栏改为跟随视口拉满工作台可用高度的悬停胶囊,桌面最小 600px,展开时在同一侧栏内承载素材输入抽屉。明暗主题已分开维护 shell、panel、glass、stat、action 和音频波形 token;暗色压低灰雾和面板底色,明亮模式改为暖白工作台,避免指标卡、按钮和波形继续残留黑底/白线;顶部指标卡增加紫、黄绿、琥珀、青绿、绿色光斑变量,接近原版多色玻璃卡效果。主/次按钮、指标卡和空状态继续走统一类,避免各板块散写不同玻璃效果。 web/app/page.tsx当前默认首页:单对话框生成台。页面只保留顶部 SKG logo 和中央对话框,四个主按钮是文生视频、文生图、首帧生视频、首尾帧生视频;首帧 / 首尾帧模式才显示上传位,用户必须手写提示词后点击生成。页面启动时读取 getRuntimeHealth,按 image_options / video_options 显示模型下拉,按 image_size_options 显示文生图尺寸,按 video_size_optionsvideo_duration_options 显示视频画幅和真实可用时长;当前 Doubao / Seedance 生产链路最多暴露 15 秒,不再把 30 秒作为单条可选项。每次生成都会创建新的轻量 Job,文生图调用 generateImage 并传图片模型和尺寸,视频调用 generateStoryboardVideo 并传视频模型、画幅和时长;首尾帧模式先用 createCreativeImageJob 保存首帧,再用 uploadReferenceFrame 保存尾帧并以 last_image 提交。首页视频提交后每 2.6 秒轮询 getJob,结果卡会把 queued 显示为“排队中 / 前方 N 个任务 / 你的上一个视频生成中”,把 in_progress 显示为生成进度,完成后直接显示可播放 controls,避免完成视频只是静态首帧看起来“没有效果”。图片/视频缩略图统一复用 MediaAssetTile,支持顶层 hover 预览和删除;顶部“画布”入口指向 /canvas/。旧 TK 复刻工作台组件仍保留在 web/components/ad-recreation-board.tsx,但不再作为默认首页渲染。 web/canvas-app/SKG 内部画布应用:从 chatfire-AI/huobao-canvas 交互逻辑改造而来,保留 Vue Flow 节点画布、项目列表、节点连接和批量下载等核心画布能力;移除可见原品牌、GitHub 链接、本地 API Key 设置和第三方 base URL 配置,终端可见品牌收敛为 SKG logo。生产路径固定为 /canvas/,内部路由用 /canvas/p/:id?;来源说明保存在 THIRD_PARTY_NOTICES.md,不展示给终端用户。 - web/canvas-app/src/views/Canvas.vue画布主交互:底部悬浮 prompt composer 吸附在画布下方,提供文生视频、文生图、首帧生视频、首尾帧生视频四种模式;首帧 / 尾帧模式只显示必要上传位。提交后自动创建文本节点、参考图节点、图片配置节点或视频配置节点,并用 autoExecute 触发生成;首尾帧连线会用 imageRole 标记首帧和尾帧,方便视频节点按角色组织请求。 + web/canvas-app/src/views/Canvas.vue画布主交互:底部悬浮 prompt composer 吸附在画布下方,提供文生视频、文生图、首帧生视频、首尾帧生视频四种模式;首帧 / 尾帧模式只显示必要上传位,底部不再常驻推荐提示词 chips,避免遮挡画布操作。提交后自动创建文本节点、参考图节点、图片配置节点或视频配置节点,并用 autoExecute 触发生成;首尾帧连线会用 imageRole 标记首帧和尾帧,方便视频节点按角色组织请求。 web/canvas-app/src/hooks/useApi.js画布到本项目后端的适配层:不再读取浏览器 API Key,而是使用当前登录会话 Cookie 调用 /api。文生图 / 图生图先创建轻量 creative job,再调用 /frames/0/generate;文生视频 / 首帧 / 首尾帧视频调用 /storyboard/video 并轮询 /jobs/{id},完成后把图片或 mp4 URL 写回画布节点。 web/scripts/sync-canvas-dist.mjs构建桥接脚本:把 Vite 产物 web/canvas-app/dist 清空复制到 web/public/canvas,使 Next 静态导出时把画布作为同域子路径一起打包。web/public/canvas/ 是生成产物,已加入 .gitignoreweb/app/detail/page.tsx任务详情页:静态导出路由 /detail/?job=<id>,通过 query 读取 job id,调用 getJob 恢复同一任务。页面展示参考图、全部生成图、视频候选、营销图文方案和历史提示词,可继续调用 generateImagegenerateStoryboardVideogenerateCreativeCopy,并支持删除图片/视频。该页继续依赖后端 owner 过滤,用户不能通过切换 URL 读取别人的任务。 @@ -1204,6 +1204,18 @@ ProductRefStateItem {

变更记录

这个记录不是 git log 的替代品。它记录“产品理解发生了什么变化、影响了哪些源码、你以后描述需求时该怎么说”。后续每次改功能都要补一条。

+
+
+

2026-05-25 · 移除画布底部推荐提示词

+ UI + Product +
+
+

问题:画布底部输入框下方常驻“推荐”提示词 chips,占据底部视线和操作空间,用户已经在写提示词时会被这些内容阻挡。

+

改动:web/canvas-app/src/views/Canvas.vue 删除底部推荐提示词区域;web/canvas-app/src/views/Home.vue 同步删除入口页输入框下方推荐 chips,只保留输入框、必要模式/上传控件和发送按钮。

+

影响:生成能力不变,仍由用户手写提示词;画布底部更干净,避免推荐项遮挡主要操作。

+
+

2026-05-25 · 可见品牌收敛为 SKG logo

diff --git a/web/canvas-app/src/views/Canvas.vue b/web/canvas-app/src/views/Canvas.vue index e28568f..6750cf8 100644 --- a/web/canvas-app/src/views/Canvas.vue +++ b/web/canvas-app/src/views/Canvas.vue @@ -213,21 +213,6 @@
- -
- 推荐: - - -
@@ -274,7 +259,6 @@ import { AddOutline, ImageOutline, SendOutline, - RefreshOutline, TextOutline, VideocamOutline, ColorPaletteOutline, @@ -464,14 +448,6 @@ const inputPlaceholder = computed(() => { return '写清楚画面、动作、镜头、产品出现方式、视频比例和时长' }) -// Quick suggestions | 快捷建议 -const suggestions = [ - '15 秒竖屏,办公室午休,人物戴上 SKG 颈部按摩仪放松,镜头缓慢推进', - '详情页横图,SKG 产品在干净桌面上,晨光,质感高级', - '首帧人物低头办公,过渡到佩戴 SKG 后肩颈放松,产品形状保持稳定', - '竖屏广告,真实生活场景,产品清晰可见,无文字水印' -] - const setCreationMode = (mode) => { creationMode.value = mode if (mode === 'text-video' || mode === 'text-image') { diff --git a/web/canvas-app/src/views/Home.vue b/web/canvas-app/src/views/Home.vue index 0dfa9d7..92d545e 100644 --- a/web/canvas-app/src/views/Home.vue +++ b/web/canvas-app/src/views/Home.vue @@ -48,21 +48,6 @@ - -
- 推荐: - - -
@@ -195,10 +180,8 @@ import { ref, onMounted } from 'vue' import { useRouter } from 'vue-router' import { NIcon, NDropdown, NModal, NInput, NButton, useDialog } from 'naive-ui' import { - AddOutline, - ImageOutline, + AddOutline, SendOutline, - RefreshOutline, DocumentOutline, FolderOutline, EllipsisHorizontalOutline, @@ -255,14 +238,6 @@ const showRenameModal = ref(false) const renameValue = ref('') const renameTargetId = ref(null) -// Suggestions tags | 建议标签 -const suggestions = [ - 'SKG 颈部按摩仪竖屏广告', - '办公室午休放松短片', - '详情页产品氛围图', - '首尾帧过渡视频' -] - // Format date | 格式化日期 const formatDate = (date) => { if (!date) return ''