auto-save 2026-05-14 01:00 (+2, ~2)
This commit is contained in:
@@ -2711,6 +2711,13 @@
|
|||||||
"type": "session-heartbeat",
|
"type": "session-heartbeat",
|
||||||
"message": "Claude 会话活跃 · 最近命令:claude · 2 项未提交变更 · 最近提交:auto-save 2026-05-14 00:48 (+4, ~3)",
|
"message": "Claude 会话活跃 · 最近命令:claude · 2 项未提交变更 · 最近提交:auto-save 2026-05-14 00:48 (+4, ~3)",
|
||||||
"files_changed": 2
|
"files_changed": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ts": "2026-05-14T00:54:42+08:00",
|
||||||
|
"type": "commit",
|
||||||
|
"message": "auto-save 2026-05-14 00:54 (+4, ~2)",
|
||||||
|
"hash": "7804fd1",
|
||||||
|
"files_changed": 6
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
19
.playwright-mcp/page-2026-05-13T16-56-47-209Z.yml
Normal file
19
.playwright-mcp/page-2026-05-13T16-56-47-209Z.yml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
- generic [active] [ref=e1]:
|
||||||
|
- main [ref=e3]:
|
||||||
|
- button "自动排版 · 保留每个节点的尺寸,重新排好间距和列布局" [ref=e5]:
|
||||||
|
- img [ref=e6]
|
||||||
|
- application [ref=e13]:
|
||||||
|
- img
|
||||||
|
- generic "Control Panel" [ref=e16]:
|
||||||
|
- button "Zoom In" [ref=e17] [cursor=pointer]:
|
||||||
|
- img [ref=e18]
|
||||||
|
- button "Zoom Out" [ref=e20] [cursor=pointer]:
|
||||||
|
- img [ref=e21]
|
||||||
|
- button "Fit View" [ref=e23] [cursor=pointer]:
|
||||||
|
- img [ref=e24]
|
||||||
|
- button "Toggle Interactivity" [ref=e26] [cursor=pointer]:
|
||||||
|
- img [ref=e27]
|
||||||
|
- img "Mini Map" [ref=e30]
|
||||||
|
- region "Notifications alt+T"
|
||||||
|
- button "Open Next.js Dev Tools" [ref=e37] [cursor=pointer]:
|
||||||
|
- img [ref=e38]
|
||||||
451
.playwright-mcp/page-2026-05-13T16-56-49-357Z.yml
Normal file
451
.playwright-mcp/page-2026-05-13T16-56-49-357Z.yml
Normal file
@@ -0,0 +1,451 @@
|
|||||||
|
- generic [active] [ref=e1]:
|
||||||
|
- generic [ref=e36] [cursor=pointer]:
|
||||||
|
- button "Open Next.js Dev Tools" [ref=e37]:
|
||||||
|
- img [ref=e38]
|
||||||
|
- generic [ref=e43]:
|
||||||
|
- button "Open issues overlay" [ref=e44]:
|
||||||
|
- generic [ref=e45]:
|
||||||
|
- generic [ref=e46]: "0"
|
||||||
|
- generic [ref=e47]: "1"
|
||||||
|
- generic [ref=e48]: Issue
|
||||||
|
- button "Collapse issues badge" [ref=e49]:
|
||||||
|
- img [ref=e50]
|
||||||
|
- main [ref=e53]:
|
||||||
|
- button "自动排版 · 保留每个节点的尺寸,重新排好间距和列布局" [ref=e55]:
|
||||||
|
- img [ref=e56]
|
||||||
|
- button "切到明亮主题" [ref=e62]:
|
||||||
|
- img [ref=e63]
|
||||||
|
- generic [ref=e69]:
|
||||||
|
- generic [ref=e72]:
|
||||||
|
- generic [ref=e73]:
|
||||||
|
- img [ref=e74]
|
||||||
|
- generic [ref=e79]: 分镜头编排
|
||||||
|
- generic [ref=e80]: 0 分镜 · 0 元素
|
||||||
|
- generic [ref=e81]: · 组织分镜画面 → 为生成视频做准备
|
||||||
|
- button "展开编排" [disabled] [ref=e83]:
|
||||||
|
- img [ref=e84]
|
||||||
|
- text: 展开编排
|
||||||
|
- application [ref=e87]:
|
||||||
|
- generic [ref=e89]:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- img:
|
||||||
|
- group "Edge from input to keyframe" [ref=e90] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from input to asr" [ref=e93] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from asr to translate"
|
||||||
|
- img:
|
||||||
|
- group "Edge from translate to rewrite" [ref=e96] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from keyframe to storyboard" [ref=e99] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from rewrite to storyboard" [ref=e102] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from storyboard to videogen" [ref=e105] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from videogen to compose" [ref=e108] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from rewrite to compose" [ref=e111] [cursor=pointer]
|
||||||
|
- generic:
|
||||||
|
- group [ref=e114]:
|
||||||
|
- generic [ref=e115]:
|
||||||
|
- generic [ref=e116]:
|
||||||
|
- button "再上传一个视频" [ref=e117]:
|
||||||
|
- img [ref=e118]
|
||||||
|
- generic [ref=e119]:
|
||||||
|
- button "64.5s" [ref=e120]:
|
||||||
|
- generic [ref=e122]: 64.5s
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 1080×1920
|
||||||
|
- generic: 64.5s
|
||||||
|
- generic [ref=e123]:
|
||||||
|
- button "72.4s" [ref=e124]:
|
||||||
|
- generic [ref=e126]: 72.4s
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 576×1024
|
||||||
|
- generic: 72.4s
|
||||||
|
- generic [ref=e127]:
|
||||||
|
- button "64.5s" [ref=e128]:
|
||||||
|
- generic [ref=e130]: 64.5s
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 1080×1920
|
||||||
|
- generic: 64.5s
|
||||||
|
- generic [ref=e131]:
|
||||||
|
- button "71.4s" [ref=e132]:
|
||||||
|
- generic [ref=e134]: 71.4s
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 1080×1920
|
||||||
|
- generic: 71.4s
|
||||||
|
- generic [ref=e135]:
|
||||||
|
- button "72.4s" [ref=e136]:
|
||||||
|
- generic [ref=e138]: 72.4s
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 576×1024
|
||||||
|
- generic: 72.4s
|
||||||
|
- generic [ref=e139]:
|
||||||
|
- button "71.4s" [ref=e140]:
|
||||||
|
- generic [ref=e142]: 71.4s
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 1080×1920
|
||||||
|
- generic: 71.4s
|
||||||
|
- generic [ref=e143]:
|
||||||
|
- button "71.4s" [ref=e144]:
|
||||||
|
- generic [ref=e146]: 71.4s
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 1080×1920
|
||||||
|
- generic: 71.4s
|
||||||
|
- generic [ref=e147]:
|
||||||
|
- button "71.4s" [ref=e148]:
|
||||||
|
- generic [ref=e150]: 71.4s
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 1080×1920
|
||||||
|
- generic: 71.4s
|
||||||
|
- generic [ref=e151]:
|
||||||
|
- button "71.4s" [ref=e152]:
|
||||||
|
- generic [ref=e154]: 71.4s
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 1080×1920
|
||||||
|
- generic: 71.4s
|
||||||
|
- generic [ref=e155]:
|
||||||
|
- button "71.4s" [ref=e156]:
|
||||||
|
- generic [ref=e158]: 71.4s
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 1080×1920
|
||||||
|
- generic: 71.4s
|
||||||
|
- generic [ref=e159]:
|
||||||
|
- button "8.0s" [ref=e160]:
|
||||||
|
- generic [ref=e162]: 8.0s
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 640×360
|
||||||
|
- generic: 8.0s
|
||||||
|
- generic [ref=e163]:
|
||||||
|
- button "8.0s" [ref=e164]:
|
||||||
|
- generic [ref=e166]: 8.0s
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 640×360
|
||||||
|
- generic: 8.0s
|
||||||
|
- generic [ref=e167]:
|
||||||
|
- button "8.0s" [ref=e168]:
|
||||||
|
- generic [ref=e170]: 8.0s
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 640×360
|
||||||
|
- generic: 8.0s
|
||||||
|
- generic [ref=e171]:
|
||||||
|
- button "8.0s" [ref=e172]:
|
||||||
|
- generic [ref=e174]: 8.0s
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 640×360
|
||||||
|
- generic: 8.0s
|
||||||
|
- button "…" [ref=e176]:
|
||||||
|
- img [ref=e178]
|
||||||
|
- generic [ref=e180]: …
|
||||||
|
- button "…" [ref=e182]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e186]: …
|
||||||
|
- button "…" [ref=e188]:
|
||||||
|
- img [ref=e190]
|
||||||
|
- generic [ref=e192]: …
|
||||||
|
- generic [ref=e193]:
|
||||||
|
- generic [ref=e194]:
|
||||||
|
- img [ref=e196]
|
||||||
|
- generic [ref=e199]: 输入 · Input
|
||||||
|
- generic [ref=e200]:
|
||||||
|
- img [ref=e201]
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e205]:
|
||||||
|
- img [ref=e206]
|
||||||
|
- generic [ref=e209]:
|
||||||
|
- generic [ref=e210]: STEP 1 · 视频就绪 · 完成
|
||||||
|
- textbox "再加一个 TK 链接" [ref=e211]
|
||||||
|
- generic [ref=e212]:
|
||||||
|
- button "+ 加链接" [disabled] [ref=e213]
|
||||||
|
- button "再传一个" [ref=e214]:
|
||||||
|
- img [ref=e215]
|
||||||
|
- text: 再传一个
|
||||||
|
- generic [ref=e218]:
|
||||||
|
- generic [ref=e219]: 1080×1920 · 64.5s
|
||||||
|
- generic [ref=e220]: 🔗 链接
|
||||||
|
- button "重新解析" [ref=e221]
|
||||||
|
- generic "拖动调整宽度" [ref=e223]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e224]
|
||||||
|
- group [ref=e225]:
|
||||||
|
- generic [ref=e226]:
|
||||||
|
- generic [ref=e227]:
|
||||||
|
- generic [ref=e228]:
|
||||||
|
- button "frame 9 1.7s" [ref=e229]:
|
||||||
|
- img "frame 9" [ref=e230]
|
||||||
|
- generic [ref=e231]: 1.7s
|
||||||
|
- button "📋" [ref=e232]
|
||||||
|
- button "删除该关键帧" [ref=e233]:
|
||||||
|
- img [ref=e234]
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 分镜 10
|
||||||
|
- generic: 1.66s
|
||||||
|
- generic [ref=e237]:
|
||||||
|
- button "frame 0 ✨ 24.7s" [ref=e238]:
|
||||||
|
- img "frame 0" [ref=e239]
|
||||||
|
- generic "已清洗" [ref=e241]: ✨
|
||||||
|
- generic [ref=e242]: 24.7s
|
||||||
|
- button "📋" [ref=e243]
|
||||||
|
- button "删除该关键帧" [ref=e244]:
|
||||||
|
- img [ref=e245]
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 分镜 1
|
||||||
|
- generic: 24.73s
|
||||||
|
- generic [ref=e248]:
|
||||||
|
- button "frame 1 33.6s" [ref=e249]:
|
||||||
|
- img "frame 1" [ref=e250]
|
||||||
|
- generic [ref=e251]: 33.6s
|
||||||
|
- button "📋" [ref=e252]
|
||||||
|
- button "删除该关键帧" [ref=e253]:
|
||||||
|
- img [ref=e254]
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 分镜 2
|
||||||
|
- generic: 33.61s
|
||||||
|
- generic [ref=e257]:
|
||||||
|
- button "frame 2 37.7s" [ref=e258]:
|
||||||
|
- img "frame 2" [ref=e259]
|
||||||
|
- generic [ref=e260]: 37.7s
|
||||||
|
- button "📋" [ref=e261]
|
||||||
|
- button "删除该关键帧" [ref=e262]:
|
||||||
|
- img [ref=e263]
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 分镜 3
|
||||||
|
- generic: 37.70s
|
||||||
|
- generic [ref=e266]:
|
||||||
|
- button "frame 3 39.4s" [ref=e267]:
|
||||||
|
- img "frame 3" [ref=e268]
|
||||||
|
- generic [ref=e269]: 39.4s
|
||||||
|
- button "📋" [ref=e270]
|
||||||
|
- button "删除该关键帧" [ref=e271]:
|
||||||
|
- img [ref=e272]
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 分镜 4
|
||||||
|
- generic: 39.42s
|
||||||
|
- generic [ref=e275]:
|
||||||
|
- button "frame 4 1 43.1s" [ref=e276]:
|
||||||
|
- img "frame 4" [ref=e277]
|
||||||
|
- generic "1 个元素已抠图" [ref=e279]: "1"
|
||||||
|
- generic [ref=e280]: 43.1s
|
||||||
|
- button "📋" [ref=e281]
|
||||||
|
- button "删除该关键帧" [ref=e282]:
|
||||||
|
- img [ref=e283]
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 分镜 5
|
||||||
|
- generic: 43.13s
|
||||||
|
- generic [ref=e286]:
|
||||||
|
- button "frame 5 45.0s" [ref=e287]:
|
||||||
|
- img "frame 5" [ref=e288]
|
||||||
|
- generic [ref=e289]: 45.0s
|
||||||
|
- button "📋" [ref=e290]
|
||||||
|
- button "删除该关键帧" [ref=e291]:
|
||||||
|
- img [ref=e292]
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 分镜 6
|
||||||
|
- generic: 45.05s
|
||||||
|
- generic [ref=e295]:
|
||||||
|
- button "frame 6 53.6s" [ref=e296]:
|
||||||
|
- img "frame 6" [ref=e297]
|
||||||
|
- generic [ref=e298]: 53.6s
|
||||||
|
- button "📋" [ref=e299]
|
||||||
|
- button "删除该关键帧" [ref=e300]:
|
||||||
|
- img [ref=e301]
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 分镜 7
|
||||||
|
- generic: 53.60s
|
||||||
|
- generic [ref=e304]:
|
||||||
|
- button "frame 7 56.0s" [ref=e305]:
|
||||||
|
- img "frame 7" [ref=e306]
|
||||||
|
- generic [ref=e307]: 56.0s
|
||||||
|
- button "📋" [ref=e308]
|
||||||
|
- button "删除该关键帧" [ref=e309]:
|
||||||
|
- img [ref=e310]
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 分镜 8
|
||||||
|
- generic: 55.96s
|
||||||
|
- generic [ref=e313]:
|
||||||
|
- button "frame 8 58.4s" [ref=e314]:
|
||||||
|
- img "frame 8" [ref=e315]
|
||||||
|
- generic [ref=e316]: 58.4s
|
||||||
|
- button "📋" [ref=e317]
|
||||||
|
- button "删除该关键帧" [ref=e318]:
|
||||||
|
- img [ref=e319]
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 分镜 9
|
||||||
|
- generic: 58.39s
|
||||||
|
- generic [ref=e322]:
|
||||||
|
- generic [ref=e324]:
|
||||||
|
- img [ref=e326]
|
||||||
|
- generic [ref=e330]: 镜头拆解 · 元素提取
|
||||||
|
- generic [ref=e331]:
|
||||||
|
- img [ref=e332]
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e336]:
|
||||||
|
- img [ref=e337]
|
||||||
|
- generic [ref=e340]:
|
||||||
|
- generic [ref=e341]: STEP 2 · 0/10 入编排 · 完成
|
||||||
|
- generic [ref=e342]:
|
||||||
|
- text: 自动 10 张 ·
|
||||||
|
- generic [ref=e343]: 1 已清洗
|
||||||
|
- text: ·
|
||||||
|
- generic [ref=e344]: 1/2 已抠图
|
||||||
|
- text: 点缩略图 → 清洗水印 / 提取可借鉴元素 → 改造成 SKG 画面素材
|
||||||
|
- generic "拖动调整宽度" [ref=e346]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e347]
|
||||||
|
- group [ref=e348]:
|
||||||
|
- generic [ref=e349]:
|
||||||
|
- generic [ref=e351]:
|
||||||
|
- img [ref=e353]
|
||||||
|
- generic [ref=e356]: 声音文案 · ASR
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e359]:
|
||||||
|
- img [ref=e360]
|
||||||
|
- generic [ref=e363]:
|
||||||
|
- generic [ref=e364]: STEP 3 · 可选文案轨 · 待运行
|
||||||
|
- generic [ref=e365]: Gemini 2.5 · 英文带时间戳分段
|
||||||
|
- generic "拖动调整宽度" [ref=e367]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e368]
|
||||||
|
- group [ref=e369]:
|
||||||
|
- generic [ref=e370]:
|
||||||
|
- generic [ref=e372]:
|
||||||
|
- img [ref=e374]
|
||||||
|
- generic [ref=e378]: 翻译理解 · Translate
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e381]:
|
||||||
|
- img [ref=e382]
|
||||||
|
- generic [ref=e385]:
|
||||||
|
- generic [ref=e386]: STEP 4 · EN → ZH · 待运行
|
||||||
|
- generic [ref=e387]: 中文翻译 · 段落级 · 实时输出
|
||||||
|
- generic "拖动调整宽度" [ref=e389]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e390]
|
||||||
|
- group [ref=e391]:
|
||||||
|
- generic [ref=e392]:
|
||||||
|
- generic [ref=e394]:
|
||||||
|
- button "透明骷髅" [ref=e395]:
|
||||||
|
- img "透明骷髅" [ref=e396]
|
||||||
|
- button "📋" [ref=e397]
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 分镜 5
|
||||||
|
- generic: 43.13s
|
||||||
|
- generic [ref=e398]:
|
||||||
|
- generic [ref=e400]:
|
||||||
|
- img [ref=e402]
|
||||||
|
- generic [ref=e407]: 元素改造 · Storyboard
|
||||||
|
- generic [ref=e408]:
|
||||||
|
- img [ref=e409]
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e413]:
|
||||||
|
- img [ref=e414]
|
||||||
|
- generic [ref=e417]:
|
||||||
|
- generic [ref=e418]: STEP 6 · 参考元素 → SKG 画面 · 完成
|
||||||
|
- generic [ref=e419]:
|
||||||
|
- text: 不是复刻原视频:先把参考图里的主体 / 场景 / 动作 / 道具拆出来,再替换成 SKG 产品画面。
|
||||||
|
- generic [ref=e420]: 已有 1 个提取元素 · 0 个分镜进入编排
|
||||||
|
- button "进入分镜编排" [disabled] [ref=e421]
|
||||||
|
- generic "拖动调整宽度" [ref=e423]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e424]
|
||||||
|
- group [ref=e425]:
|
||||||
|
- generic [ref=e426]:
|
||||||
|
- generic [ref=e428]:
|
||||||
|
- img [ref=e430]
|
||||||
|
- generic [ref=e434]: 产品文案 · Rewrite
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e437]:
|
||||||
|
- img [ref=e438]
|
||||||
|
- generic [ref=e441]:
|
||||||
|
- generic [ref=e442]: STEP 5 · 接 SKG 卖点 · 待运行
|
||||||
|
- textbox "粘贴 SKG 产品信息 / 关键卖点(可作为视频脚本和镜头动作参考)" [disabled] [ref=e443]
|
||||||
|
- generic [ref=e444]: 下一冲刺接入
|
||||||
|
- generic "拖动调整宽度" [ref=e446]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e447]
|
||||||
|
- group [ref=e448]:
|
||||||
|
- generic [ref=e450]:
|
||||||
|
- generic [ref=e452]:
|
||||||
|
- img [ref=e454]
|
||||||
|
- generic [ref=e456]: 生成视频 · Video Gen
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e459]:
|
||||||
|
- img [ref=e460]
|
||||||
|
- generic [ref=e463]:
|
||||||
|
- generic [ref=e464]: STEP 7 · 首帧 + 动作 prompt · 待运行
|
||||||
|
- generic [ref=e465]:
|
||||||
|
- generic [ref=e466]: Seedance
|
||||||
|
- generic [ref=e467]: Kling
|
||||||
|
- generic [ref=e468]: Veo 3
|
||||||
|
- generic "拖动调整宽度" [ref=e470]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e471]
|
||||||
|
- group [ref=e472]:
|
||||||
|
- generic [ref=e473]:
|
||||||
|
- generic [ref=e475]:
|
||||||
|
- img [ref=e477]
|
||||||
|
- generic [ref=e481]: 合成成品 · Compose
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e484]:
|
||||||
|
- img [ref=e485]
|
||||||
|
- generic [ref=e488]:
|
||||||
|
- generic [ref=e489]: STEP 8 · ffmpeg + 字幕 · 待运行
|
||||||
|
- generic [ref=e490]:
|
||||||
|
- text: 视频片段 + 字幕 / TTS
|
||||||
|
- text: → 最终 mp4 输出
|
||||||
|
- generic "拖动调整宽度" [ref=e491]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e492]
|
||||||
|
- img
|
||||||
|
- generic "Control Panel" [ref=e493]:
|
||||||
|
- button "Zoom In" [ref=e494] [cursor=pointer]:
|
||||||
|
- img [ref=e495]
|
||||||
|
- button "Zoom Out" [ref=e497] [cursor=pointer]:
|
||||||
|
- img [ref=e498]
|
||||||
|
- button "Fit View" [ref=e500] [cursor=pointer]:
|
||||||
|
- img [ref=e501]
|
||||||
|
- button "Toggle Interactivity" [ref=e503] [cursor=pointer]:
|
||||||
|
- img [ref=e504]
|
||||||
|
- img "Mini Map" [ref=e507]
|
||||||
|
- region "Notifications alt+T":
|
||||||
|
- list:
|
||||||
|
- listitem [ref=e517]:
|
||||||
|
- img [ref=e519]
|
||||||
|
- generic [ref=e522]: 📥 视频已就绪 — 请点 Input 节点里的「点这里开始解析」按钮
|
||||||
|
- alert [ref=e523]
|
||||||
@@ -1,9 +1,14 @@
|
|||||||
"use client"
|
"use client"
|
||||||
import { type ReactNode } from "react"
|
import { type ReactNode, useEffect, useRef } from "react"
|
||||||
import { Handle, Position } from "@xyflow/react"
|
import { Handle, Position } from "@xyflow/react"
|
||||||
import { CheckCircle2, Loader2, AlertCircle, Pin } from "lucide-react"
|
import { CheckCircle2, Loader2, AlertCircle, Pin } from "lucide-react"
|
||||||
import { ResizeRight, ResizeBR } from "./resize-handle"
|
import { ResizeRight, ResizeBR } from "./resize-handle"
|
||||||
|
|
||||||
|
// 节点正文 zoom 范围:基准 320px (= 1),到 640px 时放大到 ~1.6
|
||||||
|
const BASE_WIDTH = 320
|
||||||
|
const MIN_ZOOM = 1
|
||||||
|
const MAX_ZOOM = 1.6
|
||||||
|
|
||||||
export type NodeKind = "input" | "process" | "ai" | "output"
|
export type NodeKind = "input" | "process" | "ai" | "output"
|
||||||
export type NodeStatus = "pending" | "running" | "done" | "failed"
|
export type NodeStatus = "pending" | "running" | "done" | "failed"
|
||||||
|
|
||||||
@@ -50,8 +55,24 @@ export function NodeShell({
|
|||||||
onTogglePin,
|
onTogglePin,
|
||||||
children,
|
children,
|
||||||
}: Props) {
|
}: Props) {
|
||||||
|
const rootRef = useRef<HTMLDivElement>(null)
|
||||||
|
const bodyRef = useRef<HTMLDivElement>(null)
|
||||||
|
// 卡片宽度变化 → 给 body 设 zoom,让内部文字 / 按钮 / 间距按比例放大
|
||||||
|
useEffect(() => {
|
||||||
|
const root = rootRef.current
|
||||||
|
const body = bodyRef.current
|
||||||
|
if (!root || !body) return
|
||||||
|
const ro = new ResizeObserver(() => {
|
||||||
|
const w = root.clientWidth
|
||||||
|
const zoom = Math.min(MAX_ZOOM, Math.max(MIN_ZOOM, w / BASE_WIDTH))
|
||||||
|
body.style.zoom = String(zoom)
|
||||||
|
})
|
||||||
|
ro.observe(root)
|
||||||
|
return () => ro.disconnect()
|
||||||
|
}, [])
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
|
ref={rootRef}
|
||||||
className={`glass-node ${selected ? "glass-node--selected" : ""} ${status === "running" ? "glass-node--running" : ""} ${pinned ? "glass-node--pinned" : ""}`}
|
className={`glass-node ${selected ? "glass-node--selected" : ""} ${status === "running" ? "glass-node--running" : ""} ${pinned ? "glass-node--pinned" : ""}`}
|
||||||
data-type={type}
|
data-type={type}
|
||||||
style={{ width, height: "100%" }}
|
style={{ width, height: "100%" }}
|
||||||
@@ -84,7 +105,7 @@ export function NodeShell({
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="glass-node__body">
|
<div ref={bodyRef} className="glass-node__body">
|
||||||
{subtitle && (
|
{subtitle && (
|
||||||
<div className="text-[11px] mb-2 glass-node__kbd uppercase tracking-widest">
|
<div className="text-[11px] mb-2 glass-node__kbd uppercase tracking-widest">
|
||||||
{subtitle} · {STATUS_LABEL[status]}
|
{subtitle} · {STATUS_LABEL[status]}
|
||||||
|
|||||||
Reference in New Issue
Block a user