diff --git a/.memory/worklog.json b/.memory/worklog.json index 0406ddc..e9aa41e 100644 --- a/.memory/worklog.json +++ b/.memory/worklog.json @@ -2718,6 +2718,19 @@ "message": "auto-save 2026-05-14 00:54 (+4, ~2)", "hash": "7804fd1", "files_changed": 6 + }, + { + "ts": "2026-05-14T01:00:24+08:00", + "type": "commit", + "message": "auto-save 2026-05-14 01:00 (+2, ~2)", + "hash": "3026319", + "files_changed": 4 + }, + { + "ts": "2026-05-13T17:03:10Z", + "type": "session-heartbeat", + "message": "Claude 会话活跃 · 最近命令:claude · 2 项未提交变更 · 最近提交:auto-save 2026-05-14 01:00 (+2, ~2)", + "files_changed": 2 } ] } diff --git a/.playwright-mcp/page-2026-05-13T17-04-53-872Z.yml b/.playwright-mcp/page-2026-05-13T17-04-53-872Z.yml new file mode 100644 index 0000000..151684a --- /dev/null +++ b/.playwright-mcp/page-2026-05-13T17-04-53-872Z.yml @@ -0,0 +1,36 @@ +- generic [active] [ref=e1]: + - button "Open Next.js Dev Tools" [ref=e7] [cursor=pointer]: + - img [ref=e8] + - main [ref=e14]: + - button "自动排版 · 保留每个节点的尺寸,重新排好间距和列布局" [ref=e16]: + - img [ref=e17] + - application [ref=e24]: + - group [ref=e27]: + - generic [ref=e29]: + - generic [ref=e30]: + - img [ref=e32] + - generic [ref=e35]: 输入 · Input + - button "钉住 · 锁定位置与尺寸" [ref=e38]: + - img [ref=e39] + - generic [ref=e42]: + - generic [ref=e43]: STEP 1 · 待运行 + - textbox "粘贴 TikTok 链接" [ref=e44] + - generic [ref=e45]: + - button "提交链接" [disabled] [ref=e46] + - button "上传" [ref=e47]: + - img [ref=e48] + - text: 上传 + - generic "拖动调整宽度" [ref=e52] + - generic "拖动调整大小(宽 × 高)" [ref=e53] + - img + - generic "Control Panel" [ref=e54]: + - button "Zoom In" [ref=e55] [cursor=pointer]: + - img [ref=e56] + - button "Zoom Out" [ref=e58] [cursor=pointer]: + - img [ref=e59] + - button "Fit View" [ref=e61] [cursor=pointer]: + - img [ref=e62] + - button "Toggle Interactivity" [ref=e64] [cursor=pointer]: + - img [ref=e65] + - img "Mini Map" [ref=e68] + - region "Notifications alt+T" \ No newline at end of file diff --git a/.playwright-mcp/page-2026-05-13T17-04-55-970Z.yml b/.playwright-mcp/page-2026-05-13T17-04-55-970Z.yml new file mode 100644 index 0000000..5d856be --- /dev/null +++ b/.playwright-mcp/page-2026-05-13T17-04-55-970Z.yml @@ -0,0 +1,451 @@ +- generic [active] [ref=e1]: + - generic [ref=e6] [cursor=pointer]: + - button "Open Next.js Dev Tools" [ref=e7]: + - img [ref=e8] + - generic [ref=e71]: + - button "Open issues overlay" [ref=e72]: + - generic [ref=e73]: + - generic [ref=e74]: "0" + - generic [ref=e75]: "1" + - generic [ref=e76]: Issue + - button "Collapse issues badge" [ref=e77]: + - img [ref=e78] + - main [ref=e14]: + - button "自动排版 · 保留每个节点的尺寸,重新排好间距和列布局" [ref=e16]: + - img [ref=e17] + - button "切到明亮主题" [ref=e81]: + - img [ref=e82] + - generic [ref=e22]: + - generic [ref=e90]: + - generic [ref=e91]: + - img [ref=e92] + - generic [ref=e97]: 分镜头编排 + - generic [ref=e98]: 0 分镜 · 0 元素 + - generic [ref=e99]: · 组织分镜画面 → 为生成视频做准备 + - button "展开编排" [disabled] [ref=e101]: + - img [ref=e102] + - text: 展开编排 + - application [ref=e24]: + - generic [ref=e26]: + - generic: + - generic: + - img: + - group "Edge from input to keyframe" [ref=e104] [cursor=pointer] + - img: + - group "Edge from input to asr" [ref=e107] [cursor=pointer] + - img: + - group "Edge from asr to translate" + - img: + - group "Edge from translate to rewrite" [ref=e110] [cursor=pointer] + - img: + - group "Edge from keyframe to storyboard" [ref=e113] [cursor=pointer] + - img: + - group "Edge from rewrite to storyboard" [ref=e116] [cursor=pointer] + - img: + - group "Edge from storyboard to videogen" [ref=e119] [cursor=pointer] + - img: + - group "Edge from videogen to compose" [ref=e122] [cursor=pointer] + - img: + - group "Edge from rewrite to compose" [ref=e125] [cursor=pointer] + - generic: + - group [ref=e27]: + - generic [ref=e28]: + - generic [ref=e128]: + - button "再上传一个视频" [ref=e129]: + - img [ref=e130] + - generic [ref=e131]: + - button "64.5s" [ref=e132]: + - generic [ref=e134]: 64.5s + - generic: + - generic: + - generic: + - generic: 1080×1920 + - generic: 64.5s + - 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 "64.5s" [ref=e140]: + - generic [ref=e142]: 64.5s + - generic: + - generic: + - generic: + - generic: 1080×1920 + - generic: 64.5s + - 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 "72.4s" [ref=e148]: + - generic [ref=e150]: 72.4s + - generic: + - generic: + - generic: + - generic: 576×1024 + - generic: 72.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 "71.4s" [ref=e160]: + - generic [ref=e162]: 71.4s + - generic: + - generic: + - generic: + - generic: 1080×1920 + - generic: 71.4s + - generic [ref=e163]: + - button "71.4s" [ref=e164]: + - generic [ref=e166]: 71.4s + - generic: + - generic: + - generic: + - generic: 1080×1920 + - generic: 71.4s + - generic [ref=e167]: + - button "71.4s" [ref=e168]: + - generic [ref=e170]: 71.4s + - generic: + - generic: + - generic: + - generic: 1080×1920 + - generic: 71.4s + - generic [ref=e171]: + - button "8.0s" [ref=e172]: + - generic [ref=e174]: 8.0s + - generic: + - generic: + - generic: + - generic: 640×360 + - generic: 8.0s + - generic [ref=e175]: + - button "8.0s" [ref=e176]: + - generic [ref=e178]: 8.0s + - generic: + - generic: + - generic: + - generic: 640×360 + - generic: 8.0s + - generic [ref=e179]: + - button "8.0s" [ref=e180]: + - generic [ref=e182]: 8.0s + - generic: + - generic: + - generic: + - generic: 640×360 + - generic: 8.0s + - generic [ref=e183]: + - button "8.0s" [ref=e184]: + - generic [ref=e186]: 8.0s + - generic: + - generic: + - generic: + - generic: 640×360 + - generic: 8.0s + - button "…" [ref=e188]: + - img [ref=e190] + - generic [ref=e192]: … + - button "…" [ref=e194]: + - img [ref=e196] + - generic [ref=e198]: … + - button "…" [ref=e200]: + - img [ref=e202] + - generic [ref=e204]: … + - generic [ref=e29]: + - generic [ref=e30]: + - img [ref=e32] + - generic [ref=e35]: 输入 · Input + - generic [ref=e36]: + - img [ref=e205] + - button "钉住 · 锁定位置与尺寸" [ref=e38]: + - img [ref=e39] + - generic [ref=e42]: + - generic [ref=e43]: STEP 1 · 视频就绪 · 完成 + - textbox "再加一个 TK 链接" [ref=e208] + - generic [ref=e45]: + - button "+ 加链接" [disabled] [ref=e209] + - button "再传一个" [ref=e210]: + - img [ref=e48] + - text: 再传一个 + - generic [ref=e211]: + - generic [ref=e212]: 1080×1920 · 64.5s + - generic [ref=e213]: 🔗 链接 + - button "重新解析" [ref=e214] + - generic "拖动调整宽度" [ref=e52] + - generic "拖动调整大小(宽 × 高)" [ref=e53] + - group [ref=e215]: + - generic [ref=e216]: + - generic [ref=e217]: + - generic [ref=e218]: + - button "frame 9 1.7s" [ref=e219]: + - img "frame 9" [ref=e220] + - generic [ref=e221]: 1.7s + - button "📋" [ref=e222] + - button "删除该关键帧" [ref=e223]: + - img [ref=e224] + - generic: + - generic: + - generic: + - generic: 分镜 10 + - generic: 1.66s + - generic [ref=e227]: + - button "frame 0 ✨ 24.7s" [ref=e228]: + - img "frame 0" [ref=e229] + - generic "已清洗" [ref=e231]: ✨ + - generic [ref=e232]: 24.7s + - button "📋" [ref=e233] + - button "删除该关键帧" [ref=e234]: + - img [ref=e235] + - generic: + - generic: + - generic: + - generic: 分镜 1 + - generic: 24.73s + - generic [ref=e238]: + - button "frame 1 33.6s" [ref=e239]: + - img "frame 1" [ref=e240] + - generic [ref=e241]: 33.6s + - button "📋" [ref=e242] + - button "删除该关键帧" [ref=e243]: + - img [ref=e244] + - generic: + - generic: + - generic: + - generic: 分镜 2 + - generic: 33.61s + - generic [ref=e247]: + - button "frame 2 37.7s" [ref=e248]: + - img "frame 2" [ref=e249] + - generic [ref=e250]: 37.7s + - button "📋" [ref=e251] + - button "删除该关键帧" [ref=e252]: + - img [ref=e253] + - generic: + - generic: + - generic: + - generic: 分镜 3 + - generic: 37.70s + - generic [ref=e256]: + - button "frame 3 39.4s" [ref=e257]: + - img "frame 3" [ref=e258] + - generic [ref=e259]: 39.4s + - button "📋" [ref=e260] + - button "删除该关键帧" [ref=e261]: + - img [ref=e262] + - generic: + - generic: + - generic: + - generic: 分镜 4 + - generic: 39.42s + - generic [ref=e265]: + - button "frame 4 1 43.1s" [ref=e266]: + - img "frame 4" [ref=e267] + - generic "1 个元素已抠图" [ref=e269]: "1" + - generic [ref=e270]: 43.1s + - button "📋" [ref=e271] + - button "删除该关键帧" [ref=e272]: + - img [ref=e273] + - generic: + - generic: + - generic: + - generic: 分镜 5 + - generic: 43.13s + - generic [ref=e276]: + - button "frame 5 45.0s" [ref=e277]: + - img "frame 5" [ref=e278] + - generic [ref=e279]: 45.0s + - button "📋" [ref=e280] + - button "删除该关键帧" [ref=e281]: + - img [ref=e282] + - generic: + - generic: + - generic: + - generic: 分镜 6 + - generic: 45.05s + - generic [ref=e285]: + - button "frame 6 53.6s" [ref=e286]: + - img "frame 6" [ref=e287] + - generic [ref=e288]: 53.6s + - button "📋" [ref=e289] + - button "删除该关键帧" [ref=e290]: + - img [ref=e291] + - generic: + - generic: + - generic: + - generic: 分镜 7 + - generic: 53.60s + - generic [ref=e294]: + - button "frame 7 56.0s" [ref=e295]: + - img "frame 7" [ref=e296] + - generic [ref=e297]: 56.0s + - button "📋" [ref=e298] + - button "删除该关键帧" [ref=e299]: + - img [ref=e300] + - generic: + - generic: + - generic: + - generic: 分镜 8 + - generic: 55.96s + - generic [ref=e303]: + - button "frame 8 58.4s" [ref=e304]: + - img "frame 8" [ref=e305] + - generic [ref=e306]: 58.4s + - button "📋" [ref=e307] + - button "删除该关键帧" [ref=e308]: + - img [ref=e309] + - generic: + - generic: + - generic: + - generic: 分镜 9 + - generic: 58.39s + - generic [ref=e312]: + - generic [ref=e314]: + - img [ref=e316] + - generic [ref=e320]: 镜头拆解 · 元素提取 + - generic [ref=e321]: + - img [ref=e322] + - button "钉住 · 锁定位置与尺寸" [ref=e326]: + - img [ref=e327] + - generic [ref=e330]: + - generic [ref=e331]: STEP 2 · 0/10 入编排 · 完成 + - generic [ref=e332]: + - text: 自动 10 张 · + - generic [ref=e333]: 1 已清洗 + - text: · + - generic [ref=e334]: 1/2 已抠图 + - text: 点缩略图 → 清洗水印 / 提取可借鉴元素 → 改造成 SKG 画面素材 + - generic "拖动调整宽度" [ref=e336] + - generic "拖动调整大小(宽 × 高)" [ref=e337] + - group [ref=e338]: + - generic [ref=e339]: + - generic [ref=e341]: + - img [ref=e343] + - generic [ref=e346]: 声音文案 · ASR + - button "钉住 · 锁定位置与尺寸" [ref=e349]: + - img [ref=e350] + - generic [ref=e353]: + - generic [ref=e354]: STEP 3 · 可选文案轨 · 待运行 + - generic [ref=e355]: Gemini 2.5 · 英文带时间戳分段 + - generic "拖动调整宽度" [ref=e357] + - generic "拖动调整大小(宽 × 高)" [ref=e358] + - group [ref=e359]: + - generic [ref=e360]: + - generic [ref=e362]: + - img [ref=e364] + - generic [ref=e368]: 翻译理解 · Translate + - button "钉住 · 锁定位置与尺寸" [ref=e371]: + - img [ref=e372] + - generic [ref=e375]: + - generic [ref=e376]: STEP 4 · EN → ZH · 待运行 + - generic [ref=e377]: 中文翻译 · 段落级 · 实时输出 + - generic "拖动调整宽度" [ref=e379] + - generic "拖动调整大小(宽 × 高)" [ref=e380] + - group [ref=e381]: + - generic [ref=e382]: + - generic [ref=e384]: + - button "透明骷髅" [ref=e385]: + - img "透明骷髅" [ref=e386] + - button "📋" [ref=e387] + - generic: + - generic: + - generic: + - generic: 分镜 5 + - generic: 43.13s + - generic [ref=e388]: + - generic [ref=e390]: + - img [ref=e392] + - generic [ref=e397]: 元素改造 · Storyboard + - generic [ref=e398]: + - img [ref=e399] + - button "钉住 · 锁定位置与尺寸" [ref=e403]: + - img [ref=e404] + - generic [ref=e407]: + - generic [ref=e408]: STEP 6 · 参考元素 → SKG 画面 · 完成 + - generic [ref=e409]: + - text: 不是复刻原视频:先把参考图里的主体 / 场景 / 动作 / 道具拆出来,再替换成 SKG 产品画面。 + - generic [ref=e410]: 已有 1 个提取元素 · 0 个分镜进入编排 + - button "进入分镜编排" [disabled] [ref=e411] + - generic "拖动调整宽度" [ref=e413] + - generic "拖动调整大小(宽 × 高)" [ref=e414] + - group [ref=e415]: + - generic [ref=e416]: + - generic [ref=e418]: + - img [ref=e420] + - generic [ref=e424]: 产品文案 · Rewrite + - button "钉住 · 锁定位置与尺寸" [ref=e427]: + - img [ref=e428] + - generic [ref=e431]: + - generic [ref=e432]: STEP 5 · 接 SKG 卖点 · 待运行 + - textbox "粘贴 SKG 产品信息 / 关键卖点(可作为视频脚本和镜头动作参考)" [disabled] [ref=e433] + - generic [ref=e434]: 下一冲刺接入 + - generic "拖动调整宽度" [ref=e436] + - generic "拖动调整大小(宽 × 高)" [ref=e437] + - group [ref=e438]: + - generic [ref=e440]: + - generic [ref=e442]: + - img [ref=e444] + - generic [ref=e446]: 生成视频 · Video Gen + - button "钉住 · 锁定位置与尺寸" [ref=e449]: + - img [ref=e450] + - generic [ref=e453]: + - generic [ref=e454]: STEP 7 · 首帧 + 动作 prompt · 待运行 + - generic [ref=e455]: + - generic [ref=e456]: Seedance + - generic [ref=e457]: Kling + - generic [ref=e458]: Veo 3 + - generic "拖动调整宽度" [ref=e460] + - generic "拖动调整大小(宽 × 高)" [ref=e461] + - group [ref=e462]: + - generic [ref=e463]: + - generic [ref=e465]: + - img [ref=e467] + - generic [ref=e471]: 合成成品 · Compose + - button "钉住 · 锁定位置与尺寸" [ref=e474]: + - img [ref=e475] + - generic [ref=e478]: + - generic [ref=e479]: STEP 8 · ffmpeg + 字幕 · 待运行 + - generic [ref=e480]: + - text: 视频片段 + 字幕 / TTS + - text: → 最终 mp4 输出 + - generic "拖动调整宽度" [ref=e481] + - generic "拖动调整大小(宽 × 高)" [ref=e482] + - img + - generic "Control Panel" [ref=e54]: + - button "Zoom In" [ref=e55] [cursor=pointer]: + - img [ref=e56] + - button "Zoom Out" [ref=e58] [cursor=pointer]: + - img [ref=e59] + - button "Fit View" [ref=e61] [cursor=pointer]: + - img [ref=e62] + - button "Toggle Interactivity" [ref=e64] [cursor=pointer]: + - img [ref=e65] + - img "Mini Map" [ref=e68] + - region "Notifications alt+T": + - list: + - listitem [ref=e490]: + - img [ref=e492] + - generic [ref=e495]: 📥 视频已就绪 — 请点 Input 节点里的「点这里开始解析」按钮 + - alert [ref=e496] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-05-13T17-05-36-597Z.yml b/.playwright-mcp/page-2026-05-13T17-05-36-597Z.yml new file mode 100644 index 0000000..c746b75 --- /dev/null +++ b/.playwright-mcp/page-2026-05-13T17-05-36-597Z.yml @@ -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] \ No newline at end of file diff --git a/.playwright-mcp/page-2026-05-13T17-05-39-068Z.yml b/.playwright-mcp/page-2026-05-13T17-05-39-068Z.yml new file mode 100644 index 0000000..4e74e1a --- /dev/null +++ b/.playwright-mcp/page-2026-05-13T17-05-39-068Z.yml @@ -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] \ No newline at end of file diff --git a/web/components/nodes/hover-preview.tsx b/web/components/nodes/hover-preview.tsx index 852b618..7ab6ed9 100644 --- a/web/components/nodes/hover-preview.tsx +++ b/web/components/nodes/hover-preview.tsx @@ -1,12 +1,13 @@ "use client" +import { X } from "lucide-react" /** - * 视觉类节点统一 hover 大预览: - * - 浮在缩略图正上方(bottom: calc(100% + 10px),居中),跟随 ReactFlow viewport 缩放 - * - 固定 280px 宽,原比例高 - * - 视频自动播放(muted loop),图片静态 - * - pointer-events-none,不阻挡同行/邻近交互 - * - 用法: