auto-save 2026-05-14 01:28 (+5, ~3)
This commit is contained in:
@@ -2764,6 +2764,13 @@
|
||||
"type": "session-heartbeat",
|
||||
"message": "Claude 会话活跃 · 最近命令:claude · 2 项未提交变更 · 最近提交:auto-save 2026-05-14 01:17 (+6, ~3)",
|
||||
"files_changed": 2
|
||||
},
|
||||
{
|
||||
"ts": "2026-05-14T01:23:21+08:00",
|
||||
"type": "commit",
|
||||
"message": "auto-save 2026-05-14 01:22 (+3, ~2)",
|
||||
"hash": "9fc2442",
|
||||
"files_changed": 5
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
322
.playwright-mcp/page-2026-05-13T17-23-23-962Z.yml
Normal file
322
.playwright-mcp/page-2026-05-13T17-23-23-962Z.yml
Normal file
@@ -0,0 +1,322 @@
|
||||
- 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" [ref=e96] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from translate to rewrite" [ref=e99] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from keyframe to storyboard" [ref=e102] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from rewrite to storyboard" [ref=e105] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from storyboard to videogen" [ref=e108] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from videogen to compose" [ref=e111] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from rewrite to compose" [ref=e114] [cursor=pointer]
|
||||
- generic:
|
||||
- group [ref=e117]:
|
||||
- generic [ref=e118]:
|
||||
- generic [ref=e119]:
|
||||
- button "再上传一个视频" [ref=e120]:
|
||||
- img [ref=e121]
|
||||
- button "64.5s" [ref=e123]:
|
||||
- generic [ref=e125]: 64.5s
|
||||
- button "72.4s" [ref=e127]:
|
||||
- generic [ref=e129]: 72.4s
|
||||
- button "64.5s" [ref=e131]:
|
||||
- generic [ref=e133]: 64.5s
|
||||
- button "71.4s" [ref=e135]:
|
||||
- generic [ref=e137]: 71.4s
|
||||
- button "72.4s" [ref=e139]:
|
||||
- generic [ref=e141]: 72.4s
|
||||
- button "71.4s" [ref=e143]:
|
||||
- generic [ref=e145]: 71.4s
|
||||
- button "71.4s" [ref=e147]:
|
||||
- generic [ref=e149]: 71.4s
|
||||
- button "71.4s" [ref=e151]:
|
||||
- generic [ref=e153]: 71.4s
|
||||
- button "71.4s" [ref=e155]:
|
||||
- generic [ref=e157]: 71.4s
|
||||
- button "71.4s" [ref=e159]:
|
||||
- generic [ref=e161]: 71.4s
|
||||
- button "8.0s" [ref=e163]:
|
||||
- generic [ref=e165]: 8.0s
|
||||
- button "8.0s" [ref=e167]:
|
||||
- generic [ref=e169]: 8.0s
|
||||
- button "8.0s" [ref=e171]:
|
||||
- generic [ref=e173]: 8.0s
|
||||
- button "8.0s" [ref=e175]:
|
||||
- generic [ref=e177]: 8.0s
|
||||
- button "…" [ref=e179]:
|
||||
- img [ref=e181]
|
||||
- generic [ref=e183]: …
|
||||
- button "…" [ref=e185]:
|
||||
- img [ref=e187]
|
||||
- generic [ref=e189]: …
|
||||
- button "…" [ref=e191]:
|
||||
- img [ref=e193]
|
||||
- generic [ref=e195]: …
|
||||
- generic [ref=e196]:
|
||||
- generic [ref=e197]:
|
||||
- img [ref=e199]
|
||||
- generic [ref=e202]: 输入 · Input
|
||||
- generic [ref=e203]:
|
||||
- img [ref=e204]
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e208]:
|
||||
- img [ref=e209]
|
||||
- generic [ref=e212]:
|
||||
- generic [ref=e213]: STEP 1 · 视频就绪 · 完成
|
||||
- textbox "再加一个 TK 链接" [ref=e214]
|
||||
- generic [ref=e215]:
|
||||
- button "+ 加链接" [disabled] [ref=e216]
|
||||
- button "再传一个" [ref=e217]:
|
||||
- img [ref=e218]
|
||||
- text: 再传一个
|
||||
- generic [ref=e221]:
|
||||
- generic [ref=e222]: 1080×1920 · 64.5s
|
||||
- generic [ref=e223]: 🔗 链接
|
||||
- button "重新解析" [ref=e224]
|
||||
- generic "拖动调整宽度" [ref=e226]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e227]
|
||||
- group [ref=e228]:
|
||||
- generic [ref=e229]:
|
||||
- generic [ref=e230]:
|
||||
- generic [ref=e231]:
|
||||
- button "frame 9 1.7s" [ref=e232]:
|
||||
- img "frame 9" [ref=e233]
|
||||
- generic [ref=e234]: 1.7s
|
||||
- button "📋" [ref=e235]
|
||||
- button "删除该关键帧" [ref=e236]:
|
||||
- img [ref=e237]
|
||||
- generic [ref=e240]:
|
||||
- button "frame 0 ✨ 24.7s" [ref=e241]:
|
||||
- img "frame 0" [ref=e242]
|
||||
- generic "已清洗" [ref=e244]: ✨
|
||||
- generic [ref=e245]: 24.7s
|
||||
- button "📋" [ref=e246]
|
||||
- button "删除该关键帧" [ref=e247]:
|
||||
- img [ref=e248]
|
||||
- generic [ref=e251]:
|
||||
- button "frame 1 33.6s" [ref=e252]:
|
||||
- img "frame 1" [ref=e253]
|
||||
- generic [ref=e254]: 33.6s
|
||||
- button "📋" [ref=e255]
|
||||
- button "删除该关键帧" [ref=e256]:
|
||||
- img [ref=e257]
|
||||
- generic [ref=e260]:
|
||||
- button "frame 2 37.7s" [ref=e261]:
|
||||
- img "frame 2" [ref=e262]
|
||||
- generic [ref=e263]: 37.7s
|
||||
- button "📋" [ref=e264]
|
||||
- button "删除该关键帧" [ref=e265]:
|
||||
- img [ref=e266]
|
||||
- generic [ref=e269]:
|
||||
- button "frame 3 39.4s" [ref=e270]:
|
||||
- img "frame 3" [ref=e271]
|
||||
- generic [ref=e272]: 39.4s
|
||||
- button "📋" [ref=e273]
|
||||
- button "删除该关键帧" [ref=e274]:
|
||||
- img [ref=e275]
|
||||
- generic [ref=e278]:
|
||||
- button "frame 4 1 43.1s" [ref=e279]:
|
||||
- img "frame 4" [ref=e280]
|
||||
- generic "1 个元素已抠图" [ref=e282]: "1"
|
||||
- generic [ref=e283]: 43.1s
|
||||
- button "📋" [ref=e284]
|
||||
- button "删除该关键帧" [ref=e285]:
|
||||
- img [ref=e286]
|
||||
- generic [ref=e289]:
|
||||
- button "frame 5 45.0s" [ref=e290]:
|
||||
- img "frame 5" [ref=e291]
|
||||
- generic [ref=e292]: 45.0s
|
||||
- button "📋" [ref=e293]
|
||||
- button "删除该关键帧" [ref=e294]:
|
||||
- img [ref=e295]
|
||||
- generic [ref=e298]:
|
||||
- button "frame 6 53.6s" [ref=e299]:
|
||||
- img "frame 6" [ref=e300]
|
||||
- generic [ref=e301]: 53.6s
|
||||
- button "📋" [ref=e302]
|
||||
- button "删除该关键帧" [ref=e303]:
|
||||
- img [ref=e304]
|
||||
- generic [ref=e307]:
|
||||
- button "frame 7 56.0s" [ref=e308]:
|
||||
- img "frame 7" [ref=e309]
|
||||
- generic [ref=e310]: 56.0s
|
||||
- button "📋" [ref=e311]
|
||||
- button "删除该关键帧" [ref=e312]:
|
||||
- img [ref=e313]
|
||||
- generic [ref=e316]:
|
||||
- button "frame 8 58.4s" [ref=e317]:
|
||||
- img "frame 8" [ref=e318]
|
||||
- generic [ref=e319]: 58.4s
|
||||
- button "📋" [ref=e320]
|
||||
- button "删除该关键帧" [ref=e321]:
|
||||
- img [ref=e322]
|
||||
- generic [ref=e325]:
|
||||
- generic [ref=e327]:
|
||||
- img [ref=e329]
|
||||
- generic [ref=e333]: 镜头拆解 · 元素提取
|
||||
- generic [ref=e334]:
|
||||
- img [ref=e335]
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e339]:
|
||||
- img [ref=e340]
|
||||
- generic [ref=e343]:
|
||||
- generic [ref=e344]: STEP 2 · 0/10 入编排 · 完成
|
||||
- generic [ref=e345]:
|
||||
- text: 自动 10 张 ·
|
||||
- generic [ref=e346]: 1 已清洗
|
||||
- text: ·
|
||||
- generic [ref=e347]: 1/2 已抠图
|
||||
- text: 点缩略图 → 清洗水印 / 提取可借鉴元素 → 改造成 SKG 画面素材
|
||||
- generic "拖动调整宽度" [ref=e349]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e350]
|
||||
- group [ref=e351]:
|
||||
- generic [ref=e352]:
|
||||
- generic [ref=e354]:
|
||||
- img [ref=e356]
|
||||
- generic [ref=e359]: 声音文案 · ASR
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e362]:
|
||||
- img [ref=e363]
|
||||
- generic [ref=e366]:
|
||||
- generic [ref=e367]: STEP 3 · 可选文案轨 · 待运行
|
||||
- generic [ref=e368]: Gemini 2.5 · 英文带时间戳分段
|
||||
- generic "拖动调整宽度" [ref=e370]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e371]
|
||||
- group [ref=e372]:
|
||||
- generic [ref=e373]:
|
||||
- generic [ref=e375]:
|
||||
- img [ref=e377]
|
||||
- generic [ref=e381]: 翻译理解 · Translate
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e384]:
|
||||
- img [ref=e385]
|
||||
- generic [ref=e388]:
|
||||
- generic [ref=e389]: STEP 4 · EN → ZH · 待运行
|
||||
- generic [ref=e390]: 中文翻译 · 段落级 · 实时输出
|
||||
- generic "拖动调整宽度" [ref=e392]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e393]
|
||||
- group [ref=e394]:
|
||||
- generic [ref=e395]:
|
||||
- generic [ref=e397]:
|
||||
- button "透明骷髅" [ref=e398]:
|
||||
- img "透明骷髅" [ref=e399]
|
||||
- button "📋" [ref=e400]
|
||||
- button "删除该提取图" [ref=e401]:
|
||||
- img [ref=e402]
|
||||
- generic [ref=e405]:
|
||||
- generic [ref=e407]:
|
||||
- img [ref=e409]
|
||||
- generic [ref=e414]: 元素改造 · Storyboard
|
||||
- generic [ref=e415]:
|
||||
- img [ref=e416]
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e420]:
|
||||
- img [ref=e421]
|
||||
- generic [ref=e424]:
|
||||
- generic [ref=e425]: STEP 6 · 参考元素 → SKG 画面 · 完成
|
||||
- generic [ref=e426]:
|
||||
- text: 不是复刻原视频:先把参考图里的主体 / 场景 / 动作 / 道具拆出来,再替换成 SKG 产品画面。
|
||||
- generic [ref=e427]: 已有 1 个提取元素 · 0 个分镜进入编排
|
||||
- button "进入分镜编排" [disabled] [ref=e428]
|
||||
- generic "拖动调整宽度" [ref=e430]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e431]
|
||||
- group [ref=e432]:
|
||||
- generic [ref=e433]:
|
||||
- generic [ref=e435]:
|
||||
- img [ref=e437]
|
||||
- generic [ref=e441]: 产品文案 · Rewrite
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e444]:
|
||||
- img [ref=e445]
|
||||
- generic [ref=e448]:
|
||||
- generic [ref=e449]: STEP 5 · 接 SKG 卖点 · 待运行
|
||||
- textbox "粘贴 SKG 产品信息 / 关键卖点(可作为视频脚本和镜头动作参考)" [disabled] [ref=e450]
|
||||
- generic [ref=e451]: 下一冲刺接入
|
||||
- generic "拖动调整宽度" [ref=e453]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e454]
|
||||
- group [ref=e455]:
|
||||
- generic [ref=e457]:
|
||||
- generic [ref=e459]:
|
||||
- img [ref=e461]
|
||||
- generic [ref=e463]: 生成视频 · Video Gen
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e466]:
|
||||
- img [ref=e467]
|
||||
- generic [ref=e470]:
|
||||
- generic [ref=e471]: STEP 7 · 首帧 + 动作 prompt · 待运行
|
||||
- generic [ref=e472]:
|
||||
- generic [ref=e473]: Seedance
|
||||
- generic [ref=e474]: Kling
|
||||
- generic [ref=e475]: Veo 3
|
||||
- generic "拖动调整宽度" [ref=e477]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e478]
|
||||
- group [ref=e479]:
|
||||
- generic [ref=e480]:
|
||||
- generic [ref=e482]:
|
||||
- img [ref=e484]
|
||||
- generic [ref=e488]: 合成成品 · Compose
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e491]:
|
||||
- img [ref=e492]
|
||||
- generic [ref=e495]:
|
||||
- generic [ref=e496]: STEP 8 · ffmpeg + 字幕 · 待运行
|
||||
- generic [ref=e497]:
|
||||
- text: 视频片段 + 字幕 / TTS
|
||||
- text: → 最终 mp4 输出
|
||||
- generic "拖动调整宽度" [ref=e498]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e499]
|
||||
- img
|
||||
- generic "Control Panel" [ref=e500]:
|
||||
- button "Zoom In" [ref=e501] [cursor=pointer]:
|
||||
- img [ref=e502]
|
||||
- button "Zoom Out" [ref=e504] [cursor=pointer]:
|
||||
- img [ref=e505]
|
||||
- button "Fit View" [ref=e507] [cursor=pointer]:
|
||||
- img [ref=e508]
|
||||
- button "Toggle Interactivity" [ref=e510] [cursor=pointer]:
|
||||
- img [ref=e511]
|
||||
- img "Mini Map" [ref=e514]
|
||||
- region "Notifications alt+T":
|
||||
- list:
|
||||
- listitem [ref=e524]:
|
||||
- img [ref=e526]
|
||||
- generic [ref=e529]: 已自动排版 · 保留每个节点的尺寸
|
||||
- listitem [ref=e530]:
|
||||
- img [ref=e532]
|
||||
- generic [ref=e535]: 📥 视频已就绪 — 请点 Input 节点里的「点这里开始解析」按钮
|
||||
- alert [ref=e536]
|
||||
- generic:
|
||||
- generic:
|
||||
- generic:
|
||||
- generic: 1080×1920
|
||||
- generic: 64.5s
|
||||
19
.playwright-mcp/page-2026-05-13T17-24-01-702Z.yml
Normal file
19
.playwright-mcp/page-2026-05-13T17-24-01-702Z.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]
|
||||
322
.playwright-mcp/page-2026-05-13T17-24-05-120Z.yml
Normal file
322
.playwright-mcp/page-2026-05-13T17-24-05-120Z.yml
Normal file
@@ -0,0 +1,322 @@
|
||||
- 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" [ref=e96] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from translate to rewrite" [ref=e99] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from keyframe to storyboard" [ref=e102] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from rewrite to storyboard" [ref=e105] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from storyboard to videogen" [ref=e108] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from videogen to compose" [ref=e111] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from rewrite to compose" [ref=e114] [cursor=pointer]
|
||||
- generic:
|
||||
- group [ref=e117]:
|
||||
- generic [ref=e118]:
|
||||
- generic [ref=e119]:
|
||||
- button "再上传一个视频" [ref=e120]:
|
||||
- img [ref=e121]
|
||||
- button "64.5s" [ref=e123]:
|
||||
- generic [ref=e125]: 64.5s
|
||||
- button "72.4s" [ref=e127]:
|
||||
- generic [ref=e129]: 72.4s
|
||||
- button "64.5s" [ref=e131]:
|
||||
- generic [ref=e133]: 64.5s
|
||||
- button "71.4s" [ref=e135]:
|
||||
- generic [ref=e137]: 71.4s
|
||||
- button "72.4s" [ref=e139]:
|
||||
- generic [ref=e141]: 72.4s
|
||||
- button "71.4s" [ref=e143]:
|
||||
- generic [ref=e145]: 71.4s
|
||||
- button "71.4s" [ref=e147]:
|
||||
- generic [ref=e149]: 71.4s
|
||||
- button "71.4s" [ref=e151]:
|
||||
- generic [ref=e153]: 71.4s
|
||||
- button "71.4s" [ref=e155]:
|
||||
- generic [ref=e157]: 71.4s
|
||||
- button "71.4s" [ref=e159]:
|
||||
- generic [ref=e161]: 71.4s
|
||||
- button "8.0s" [ref=e163]:
|
||||
- generic [ref=e165]: 8.0s
|
||||
- button "8.0s" [ref=e167]:
|
||||
- generic [ref=e169]: 8.0s
|
||||
- button "8.0s" [ref=e171]:
|
||||
- generic [ref=e173]: 8.0s
|
||||
- button "8.0s" [ref=e175]:
|
||||
- generic [ref=e177]: 8.0s
|
||||
- button "…" [ref=e179]:
|
||||
- img [ref=e181]
|
||||
- generic [ref=e183]: …
|
||||
- button "…" [ref=e185]:
|
||||
- img [ref=e187]
|
||||
- generic [ref=e189]: …
|
||||
- button "…" [ref=e191]:
|
||||
- img [ref=e193]
|
||||
- generic [ref=e195]: …
|
||||
- generic [ref=e196]:
|
||||
- generic [ref=e197]:
|
||||
- img [ref=e199]
|
||||
- generic [ref=e202]: 输入 · Input
|
||||
- generic [ref=e203]:
|
||||
- img [ref=e204]
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e208]:
|
||||
- img [ref=e209]
|
||||
- generic [ref=e212]:
|
||||
- generic [ref=e213]: STEP 1 · 视频就绪 · 完成
|
||||
- textbox "再加一个 TK 链接" [ref=e214]
|
||||
- generic [ref=e215]:
|
||||
- button "+ 加链接" [disabled] [ref=e216]
|
||||
- button "再传一个" [ref=e217]:
|
||||
- img [ref=e218]
|
||||
- text: 再传一个
|
||||
- generic [ref=e221]:
|
||||
- generic [ref=e222]: 1080×1920 · 64.5s
|
||||
- generic [ref=e223]: 🔗 链接
|
||||
- button "重新解析" [ref=e224]
|
||||
- generic "拖动调整宽度" [ref=e226]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e227]
|
||||
- group [ref=e228]:
|
||||
- generic [ref=e229]:
|
||||
- generic [ref=e230]:
|
||||
- generic [ref=e231]:
|
||||
- button "frame 9 1.7s" [ref=e232]:
|
||||
- img "frame 9" [ref=e233]
|
||||
- generic [ref=e234]: 1.7s
|
||||
- button "📋" [ref=e235]
|
||||
- button "删除该关键帧" [ref=e236]:
|
||||
- img [ref=e237]
|
||||
- generic [ref=e240]:
|
||||
- button "frame 0 ✨ 24.7s" [ref=e241]:
|
||||
- img "frame 0" [ref=e242]
|
||||
- generic "已清洗" [ref=e244]: ✨
|
||||
- generic [ref=e245]: 24.7s
|
||||
- button "📋" [ref=e246]
|
||||
- button "删除该关键帧" [ref=e247]:
|
||||
- img [ref=e248]
|
||||
- generic [ref=e251]:
|
||||
- button "frame 1 33.6s" [ref=e252]:
|
||||
- img "frame 1" [ref=e253]
|
||||
- generic [ref=e254]: 33.6s
|
||||
- button "📋" [ref=e255]
|
||||
- button "删除该关键帧" [ref=e256]:
|
||||
- img [ref=e257]
|
||||
- generic [ref=e260]:
|
||||
- button "frame 2 37.7s" [ref=e261]:
|
||||
- img "frame 2" [ref=e262]
|
||||
- generic [ref=e263]: 37.7s
|
||||
- button "📋" [ref=e264]
|
||||
- button "删除该关键帧" [ref=e265]:
|
||||
- img [ref=e266]
|
||||
- generic [ref=e269]:
|
||||
- button "frame 3 39.4s" [ref=e270]:
|
||||
- img "frame 3" [ref=e271]
|
||||
- generic [ref=e272]: 39.4s
|
||||
- button "📋" [ref=e273]
|
||||
- button "删除该关键帧" [ref=e274]:
|
||||
- img [ref=e275]
|
||||
- generic [ref=e278]:
|
||||
- button "frame 4 1 43.1s" [ref=e279]:
|
||||
- img "frame 4" [ref=e280]
|
||||
- generic "1 个元素已抠图" [ref=e282]: "1"
|
||||
- generic [ref=e283]: 43.1s
|
||||
- button "📋" [ref=e284]
|
||||
- button "删除该关键帧" [ref=e285]:
|
||||
- img [ref=e286]
|
||||
- generic [ref=e289]:
|
||||
- button "frame 5 45.0s" [ref=e290]:
|
||||
- img "frame 5" [ref=e291]
|
||||
- generic [ref=e292]: 45.0s
|
||||
- button "📋" [ref=e293]
|
||||
- button "删除该关键帧" [ref=e294]:
|
||||
- img [ref=e295]
|
||||
- generic [ref=e298]:
|
||||
- button "frame 6 53.6s" [ref=e299]:
|
||||
- img "frame 6" [ref=e300]
|
||||
- generic [ref=e301]: 53.6s
|
||||
- button "📋" [ref=e302]
|
||||
- button "删除该关键帧" [ref=e303]:
|
||||
- img [ref=e304]
|
||||
- generic [ref=e307]:
|
||||
- button "frame 7 56.0s" [ref=e308]:
|
||||
- img "frame 7" [ref=e309]
|
||||
- generic [ref=e310]: 56.0s
|
||||
- button "📋" [ref=e311]
|
||||
- button "删除该关键帧" [ref=e312]:
|
||||
- img [ref=e313]
|
||||
- generic [ref=e316]:
|
||||
- button "frame 8 58.4s" [ref=e317]:
|
||||
- img "frame 8" [ref=e318]
|
||||
- generic [ref=e319]: 58.4s
|
||||
- button "📋" [ref=e320]
|
||||
- button "删除该关键帧" [ref=e321]:
|
||||
- img [ref=e322]
|
||||
- generic [ref=e325]:
|
||||
- generic [ref=e327]:
|
||||
- img [ref=e329]
|
||||
- generic [ref=e333]: 镜头拆解 · 元素提取
|
||||
- generic [ref=e334]:
|
||||
- img [ref=e335]
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e339]:
|
||||
- img [ref=e340]
|
||||
- generic [ref=e343]:
|
||||
- generic [ref=e344]: STEP 2 · 0/10 入编排 · 完成
|
||||
- generic [ref=e345]:
|
||||
- text: 自动 10 张 ·
|
||||
- generic [ref=e346]: 1 已清洗
|
||||
- text: ·
|
||||
- generic [ref=e347]: 1/2 已抠图
|
||||
- text: 点缩略图 → 清洗水印 / 提取可借鉴元素 → 改造成 SKG 画面素材
|
||||
- generic "拖动调整宽度" [ref=e349]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e350]
|
||||
- group [ref=e351]:
|
||||
- generic [ref=e352]:
|
||||
- generic [ref=e354]:
|
||||
- img [ref=e356]
|
||||
- generic [ref=e359]: 声音文案 · ASR
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e362]:
|
||||
- img [ref=e363]
|
||||
- generic [ref=e366]:
|
||||
- generic [ref=e367]: STEP 3 · 可选文案轨 · 待运行
|
||||
- generic [ref=e368]: Gemini 2.5 · 英文带时间戳分段
|
||||
- generic "拖动调整宽度" [ref=e370]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e371]
|
||||
- group [ref=e372]:
|
||||
- generic [ref=e373]:
|
||||
- generic [ref=e375]:
|
||||
- img [ref=e377]
|
||||
- generic [ref=e381]: 翻译理解 · Translate
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e384]:
|
||||
- img [ref=e385]
|
||||
- generic [ref=e388]:
|
||||
- generic [ref=e389]: STEP 4 · EN → ZH · 待运行
|
||||
- generic [ref=e390]: 中文翻译 · 段落级 · 实时输出
|
||||
- generic "拖动调整宽度" [ref=e392]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e393]
|
||||
- group [ref=e394]:
|
||||
- generic [ref=e395]:
|
||||
- generic [ref=e397]:
|
||||
- button "透明骷髅" [ref=e398]:
|
||||
- img "透明骷髅" [ref=e399]
|
||||
- button "📋" [ref=e400]
|
||||
- button "删除该提取图" [ref=e401]:
|
||||
- img [ref=e402]
|
||||
- generic [ref=e405]:
|
||||
- generic [ref=e407]:
|
||||
- img [ref=e409]
|
||||
- generic [ref=e414]: 元素改造 · Storyboard
|
||||
- generic [ref=e415]:
|
||||
- img [ref=e416]
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e420]:
|
||||
- img [ref=e421]
|
||||
- generic [ref=e424]:
|
||||
- generic [ref=e425]: STEP 6 · 参考元素 → SKG 画面 · 完成
|
||||
- generic [ref=e426]:
|
||||
- text: 不是复刻原视频:先把参考图里的主体 / 场景 / 动作 / 道具拆出来,再替换成 SKG 产品画面。
|
||||
- generic [ref=e427]: 已有 1 个提取元素 · 0 个分镜进入编排
|
||||
- button "进入分镜编排" [disabled] [ref=e428]
|
||||
- generic "拖动调整宽度" [ref=e430]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e431]
|
||||
- group [ref=e432]:
|
||||
- generic [ref=e433]:
|
||||
- generic [ref=e435]:
|
||||
- img [ref=e437]
|
||||
- generic [ref=e441]: 产品文案 · Rewrite
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e444]:
|
||||
- img [ref=e445]
|
||||
- generic [ref=e448]:
|
||||
- generic [ref=e449]: STEP 5 · 接 SKG 卖点 · 待运行
|
||||
- textbox "粘贴 SKG 产品信息 / 关键卖点(可作为视频脚本和镜头动作参考)" [disabled] [ref=e450]
|
||||
- generic [ref=e451]: 下一冲刺接入
|
||||
- generic "拖动调整宽度" [ref=e453]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e454]
|
||||
- group [ref=e455]:
|
||||
- generic [ref=e457]:
|
||||
- generic [ref=e459]:
|
||||
- img [ref=e461]
|
||||
- generic [ref=e463]: 生成视频 · Video Gen
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e466]:
|
||||
- img [ref=e467]
|
||||
- generic [ref=e470]:
|
||||
- generic [ref=e471]: STEP 7 · 首帧 + 动作 prompt · 待运行
|
||||
- generic [ref=e472]:
|
||||
- generic [ref=e473]: Seedance
|
||||
- generic [ref=e474]: Kling
|
||||
- generic [ref=e475]: Veo 3
|
||||
- generic "拖动调整宽度" [ref=e477]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e478]
|
||||
- group [ref=e479]:
|
||||
- generic [ref=e480]:
|
||||
- generic [ref=e482]:
|
||||
- img [ref=e484]
|
||||
- generic [ref=e488]: 合成成品 · Compose
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e491]:
|
||||
- img [ref=e492]
|
||||
- generic [ref=e495]:
|
||||
- generic [ref=e496]: STEP 8 · ffmpeg + 字幕 · 待运行
|
||||
- generic [ref=e497]:
|
||||
- text: 视频片段 + 字幕 / TTS
|
||||
- text: → 最终 mp4 输出
|
||||
- generic "拖动调整宽度" [ref=e498]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e499]
|
||||
- img
|
||||
- generic "Control Panel" [ref=e500]:
|
||||
- button "Zoom In" [ref=e501] [cursor=pointer]:
|
||||
- img [ref=e502]
|
||||
- button "Zoom Out" [ref=e504] [cursor=pointer]:
|
||||
- img [ref=e505]
|
||||
- button "Fit View" [ref=e507] [cursor=pointer]:
|
||||
- img [ref=e508]
|
||||
- button "Toggle Interactivity" [ref=e510] [cursor=pointer]:
|
||||
- img [ref=e511]
|
||||
- img "Mini Map" [ref=e514]
|
||||
- region "Notifications alt+T":
|
||||
- list:
|
||||
- listitem [ref=e524]:
|
||||
- img [ref=e526]
|
||||
- generic [ref=e529]: 已自动排版 · 保留每个节点的尺寸
|
||||
- listitem [ref=e530]:
|
||||
- img [ref=e532]
|
||||
- generic [ref=e535]: 📥 视频已就绪 — 请点 Input 节点里的「点这里开始解析」按钮
|
||||
- alert [ref=e536]
|
||||
- generic:
|
||||
- generic:
|
||||
- generic:
|
||||
- generic: 1080×1920
|
||||
- generic: 64.5s
|
||||
36
.playwright-mcp/page-2026-05-13T17-25-23-889Z.yml
Normal file
36
.playwright-mcp/page-2026-05-13T17-25-23-889Z.yml
Normal file
@@ -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"
|
||||
322
.playwright-mcp/page-2026-05-13T17-25-27-458Z.yml
Normal file
322
.playwright-mcp/page-2026-05-13T17-25-27-458Z.yml
Normal file
@@ -0,0 +1,322 @@
|
||||
- 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" [ref=e110] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from translate to rewrite" [ref=e113] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from keyframe to storyboard" [ref=e116] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from rewrite to storyboard" [ref=e119] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from storyboard to videogen" [ref=e122] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from videogen to compose" [ref=e125] [cursor=pointer]
|
||||
- img:
|
||||
- group "Edge from rewrite to compose" [ref=e128] [cursor=pointer]
|
||||
- generic:
|
||||
- group [ref=e27]:
|
||||
- generic [ref=e28]:
|
||||
- generic [ref=e131]:
|
||||
- button "再上传一个视频" [ref=e132]:
|
||||
- img [ref=e133]
|
||||
- button "64.5s" [ref=e135]:
|
||||
- generic [ref=e137]: 64.5s
|
||||
- button "72.4s" [ref=e139]:
|
||||
- generic [ref=e141]: 72.4s
|
||||
- button "64.5s" [ref=e143]:
|
||||
- generic [ref=e145]: 64.5s
|
||||
- button "71.4s" [ref=e147]:
|
||||
- generic [ref=e149]: 71.4s
|
||||
- button "72.4s" [ref=e151]:
|
||||
- generic [ref=e153]: 72.4s
|
||||
- button "71.4s" [ref=e155]:
|
||||
- generic [ref=e157]: 71.4s
|
||||
- button "71.4s" [ref=e159]:
|
||||
- generic [ref=e161]: 71.4s
|
||||
- button "71.4s" [ref=e163]:
|
||||
- generic [ref=e165]: 71.4s
|
||||
- button "71.4s" [ref=e167]:
|
||||
- generic [ref=e169]: 71.4s
|
||||
- button "71.4s" [ref=e171]:
|
||||
- generic [ref=e173]: 71.4s
|
||||
- button "8.0s" [ref=e175]:
|
||||
- generic [ref=e177]: 8.0s
|
||||
- button "8.0s" [ref=e179]:
|
||||
- generic [ref=e181]: 8.0s
|
||||
- button "8.0s" [ref=e183]:
|
||||
- generic [ref=e185]: 8.0s
|
||||
- button "8.0s" [ref=e187]:
|
||||
- generic [ref=e189]: 8.0s
|
||||
- button "…" [ref=e191]:
|
||||
- img [ref=e193]
|
||||
- generic [ref=e195]: …
|
||||
- button "…" [ref=e197]:
|
||||
- img [ref=e199]
|
||||
- generic [ref=e201]: …
|
||||
- button "…" [ref=e203]:
|
||||
- img [ref=e205]
|
||||
- generic [ref=e207]: …
|
||||
- generic [ref=e29]:
|
||||
- generic [ref=e30]:
|
||||
- img [ref=e32]
|
||||
- generic [ref=e35]: 输入 · Input
|
||||
- generic [ref=e36]:
|
||||
- img [ref=e208]
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e38]:
|
||||
- img [ref=e39]
|
||||
- generic [ref=e42]:
|
||||
- generic [ref=e43]: STEP 1 · 视频就绪 · 完成
|
||||
- textbox "再加一个 TK 链接" [ref=e211]
|
||||
- generic [ref=e45]:
|
||||
- button "+ 加链接" [disabled] [ref=e212]
|
||||
- button "再传一个" [ref=e213]:
|
||||
- img [ref=e48]
|
||||
- text: 再传一个
|
||||
- generic [ref=e214]:
|
||||
- generic [ref=e215]: 1080×1920 · 64.5s
|
||||
- generic [ref=e216]: 🔗 链接
|
||||
- button "重新解析" [ref=e217]
|
||||
- generic "拖动调整宽度" [ref=e52]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e53]
|
||||
- group [ref=e218]:
|
||||
- generic [ref=e219]:
|
||||
- generic [ref=e220]:
|
||||
- generic [ref=e221]:
|
||||
- button "frame 9 1.7s" [ref=e222]:
|
||||
- img "frame 9" [ref=e223]
|
||||
- generic [ref=e224]: 1.7s
|
||||
- button "📋" [ref=e225]
|
||||
- button "删除该关键帧" [ref=e226]:
|
||||
- img [ref=e227]
|
||||
- generic [ref=e230]:
|
||||
- button "frame 0 ✨ 24.7s" [ref=e231]:
|
||||
- img "frame 0" [ref=e232]
|
||||
- generic "已清洗" [ref=e234]: ✨
|
||||
- generic [ref=e235]: 24.7s
|
||||
- button "📋" [ref=e236]
|
||||
- button "删除该关键帧" [ref=e237]:
|
||||
- img [ref=e238]
|
||||
- generic [ref=e241]:
|
||||
- button "frame 1 33.6s" [ref=e242]:
|
||||
- img "frame 1" [ref=e243]
|
||||
- generic [ref=e244]: 33.6s
|
||||
- button "📋" [ref=e245]
|
||||
- button "删除该关键帧" [ref=e246]:
|
||||
- img [ref=e247]
|
||||
- generic [ref=e250]:
|
||||
- button "frame 2 37.7s" [ref=e251]:
|
||||
- img "frame 2" [ref=e252]
|
||||
- generic [ref=e253]: 37.7s
|
||||
- button "📋" [ref=e254]
|
||||
- button "删除该关键帧" [ref=e255]:
|
||||
- img [ref=e256]
|
||||
- generic [ref=e259]:
|
||||
- button "frame 3 39.4s" [ref=e260]:
|
||||
- img "frame 3" [ref=e261]
|
||||
- generic [ref=e262]: 39.4s
|
||||
- button "📋" [ref=e263]
|
||||
- button "删除该关键帧" [ref=e264]:
|
||||
- img [ref=e265]
|
||||
- generic [ref=e268]:
|
||||
- button "frame 4 1 43.1s" [ref=e269]:
|
||||
- img "frame 4" [ref=e270]
|
||||
- generic "1 个元素已抠图" [ref=e272]: "1"
|
||||
- generic [ref=e273]: 43.1s
|
||||
- button "📋" [ref=e274]
|
||||
- button "删除该关键帧" [ref=e275]:
|
||||
- img [ref=e276]
|
||||
- generic [ref=e279]:
|
||||
- button "frame 5 45.0s" [ref=e280]:
|
||||
- img "frame 5" [ref=e281]
|
||||
- generic [ref=e282]: 45.0s
|
||||
- button "📋" [ref=e283]
|
||||
- button "删除该关键帧" [ref=e284]:
|
||||
- img [ref=e285]
|
||||
- generic [ref=e288]:
|
||||
- button "frame 6 53.6s" [ref=e289]:
|
||||
- img "frame 6" [ref=e290]
|
||||
- generic [ref=e291]: 53.6s
|
||||
- button "📋" [ref=e292]
|
||||
- button "删除该关键帧" [ref=e293]:
|
||||
- img [ref=e294]
|
||||
- generic [ref=e297]:
|
||||
- button "frame 7 56.0s" [ref=e298]:
|
||||
- img "frame 7" [ref=e299]
|
||||
- generic [ref=e300]: 56.0s
|
||||
- button "📋" [ref=e301]
|
||||
- button "删除该关键帧" [ref=e302]:
|
||||
- img [ref=e303]
|
||||
- generic [ref=e306]:
|
||||
- button "frame 8 58.4s" [ref=e307]:
|
||||
- img "frame 8" [ref=e308]
|
||||
- generic [ref=e309]: 58.4s
|
||||
- button "📋" [ref=e310]
|
||||
- button "删除该关键帧" [ref=e311]:
|
||||
- img [ref=e312]
|
||||
- generic [ref=e315]:
|
||||
- generic [ref=e317]:
|
||||
- img [ref=e319]
|
||||
- generic [ref=e323]: 镜头拆解 · 元素提取
|
||||
- generic [ref=e324]:
|
||||
- img [ref=e325]
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e329]:
|
||||
- img [ref=e330]
|
||||
- generic [ref=e333]:
|
||||
- generic [ref=e334]: STEP 2 · 0/10 入编排 · 完成
|
||||
- generic [ref=e335]:
|
||||
- text: 自动 10 张 ·
|
||||
- generic [ref=e336]: 1 已清洗
|
||||
- text: ·
|
||||
- generic [ref=e337]: 1/2 已抠图
|
||||
- text: 点缩略图 → 清洗水印 / 提取可借鉴元素 → 改造成 SKG 画面素材
|
||||
- generic "拖动调整宽度" [ref=e339]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e340]
|
||||
- group [ref=e341]:
|
||||
- generic [ref=e342]:
|
||||
- generic [ref=e344]:
|
||||
- img [ref=e346]
|
||||
- generic [ref=e349]: 声音文案 · ASR
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e352]:
|
||||
- img [ref=e353]
|
||||
- generic [ref=e356]:
|
||||
- generic [ref=e357]: STEP 3 · 可选文案轨 · 待运行
|
||||
- generic [ref=e358]: Gemini 2.5 · 英文带时间戳分段
|
||||
- generic "拖动调整宽度" [ref=e360]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e361]
|
||||
- group [ref=e362]:
|
||||
- generic [ref=e363]:
|
||||
- generic [ref=e365]:
|
||||
- img [ref=e367]
|
||||
- generic [ref=e371]: 翻译理解 · Translate
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e374]:
|
||||
- img [ref=e375]
|
||||
- generic [ref=e378]:
|
||||
- generic [ref=e379]: STEP 4 · EN → ZH · 待运行
|
||||
- generic [ref=e380]: 中文翻译 · 段落级 · 实时输出
|
||||
- generic "拖动调整宽度" [ref=e382]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e383]
|
||||
- group [ref=e384]:
|
||||
- generic [ref=e385]:
|
||||
- generic [ref=e387]:
|
||||
- button "透明骷髅" [ref=e388]:
|
||||
- img "透明骷髅" [ref=e389]
|
||||
- button "📋" [ref=e390]
|
||||
- button "删除该提取图" [ref=e391]:
|
||||
- img [ref=e392]
|
||||
- generic [ref=e395]:
|
||||
- generic [ref=e397]:
|
||||
- img [ref=e399]
|
||||
- generic [ref=e404]: 元素改造 · Storyboard
|
||||
- generic [ref=e405]:
|
||||
- img [ref=e406]
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e410]:
|
||||
- img [ref=e411]
|
||||
- generic [ref=e414]:
|
||||
- generic [ref=e415]: STEP 6 · 参考元素 → SKG 画面 · 完成
|
||||
- generic [ref=e416]:
|
||||
- text: 不是复刻原视频:先把参考图里的主体 / 场景 / 动作 / 道具拆出来,再替换成 SKG 产品画面。
|
||||
- generic [ref=e417]: 已有 1 个提取元素 · 0 个分镜进入编排
|
||||
- button "进入分镜编排" [disabled] [ref=e418]
|
||||
- generic "拖动调整宽度" [ref=e420]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e421]
|
||||
- group [ref=e422]:
|
||||
- generic [ref=e423]:
|
||||
- generic [ref=e425]:
|
||||
- img [ref=e427]
|
||||
- generic [ref=e431]: 产品文案 · Rewrite
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e434]:
|
||||
- img [ref=e435]
|
||||
- generic [ref=e438]:
|
||||
- generic [ref=e439]: STEP 5 · 接 SKG 卖点 · 待运行
|
||||
- textbox "粘贴 SKG 产品信息 / 关键卖点(可作为视频脚本和镜头动作参考)" [disabled] [ref=e440]
|
||||
- generic [ref=e441]: 下一冲刺接入
|
||||
- generic "拖动调整宽度" [ref=e443]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e444]
|
||||
- group [ref=e445]:
|
||||
- generic [ref=e447]:
|
||||
- generic [ref=e449]:
|
||||
- img [ref=e451]
|
||||
- generic [ref=e453]: 生成视频 · Video Gen
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e456]:
|
||||
- img [ref=e457]
|
||||
- generic [ref=e460]:
|
||||
- generic [ref=e461]: STEP 7 · 首帧 + 动作 prompt · 待运行
|
||||
- generic [ref=e462]:
|
||||
- generic [ref=e463]: Seedance
|
||||
- generic [ref=e464]: Kling
|
||||
- generic [ref=e465]: Veo 3
|
||||
- generic "拖动调整宽度" [ref=e467]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e468]
|
||||
- group [ref=e469]:
|
||||
- generic [ref=e470]:
|
||||
- generic [ref=e472]:
|
||||
- img [ref=e474]
|
||||
- generic [ref=e478]: 合成成品 · Compose
|
||||
- button "钉住 · 锁定位置与尺寸" [ref=e481]:
|
||||
- img [ref=e482]
|
||||
- generic [ref=e485]:
|
||||
- generic [ref=e486]: STEP 8 · ffmpeg + 字幕 · 待运行
|
||||
- generic [ref=e487]:
|
||||
- text: 视频片段 + 字幕 / TTS
|
||||
- text: → 最终 mp4 输出
|
||||
- generic "拖动调整宽度" [ref=e488]
|
||||
- generic "拖动调整大小(宽 × 高)" [ref=e489]
|
||||
- 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=e497]:
|
||||
- img [ref=e499]
|
||||
- generic [ref=e502]: 已自动排版 · 保留每个节点的尺寸
|
||||
- listitem [ref=e503]:
|
||||
- img [ref=e505]
|
||||
- generic [ref=e508]: 📥 视频已就绪 — 请点 Input 节点里的「点这里开始解析」按钮
|
||||
- alert [ref=e509]
|
||||
- generic:
|
||||
- generic:
|
||||
- generic:
|
||||
- generic: 1080×1920
|
||||
- generic: 64.5s
|
||||
@@ -1,5 +1,5 @@
|
||||
"use client"
|
||||
import { useEffect, useRef, useState } from "react"
|
||||
import { useEffect, useLayoutEffect, useRef, useState } from "react"
|
||||
import { createPortal } from "react-dom"
|
||||
import { X } from "lucide-react"
|
||||
|
||||
@@ -34,9 +34,11 @@ export function HoverPreview({
|
||||
onClose,
|
||||
}: Props) {
|
||||
const anchorFinderRef = useRef<HTMLSpanElement>(null)
|
||||
const portalRef = useRef<HTMLDivElement>(null)
|
||||
const [hovered, setHovered] = useState(false)
|
||||
const [anchorRect, setAnchorRect] = useState<DOMRect | null>(null)
|
||||
const [mounted, setMounted] = useState(false)
|
||||
const [pos, setPos] = useState<{ top: number; left: number; placement: "above" | "below" } | null>(null)
|
||||
|
||||
useEffect(() => { setMounted(true) }, [])
|
||||
|
||||
@@ -64,30 +66,69 @@ export function HoverPreview({
|
||||
|
||||
const visible = pinned || hovered
|
||||
|
||||
// 测量 portal 实际尺寸 → 智能选 thumb 上方 / 下方,越界时 clamp 到 viewport 内
|
||||
useLayoutEffect(() => {
|
||||
if (!visible || !anchorRect || !portalRef.current) return
|
||||
const el = portalRef.current
|
||||
const measure = () => {
|
||||
const previewRect = el.getBoundingClientRect()
|
||||
const ph = previewRect.height
|
||||
const pw = previewRect.width
|
||||
const vw = window.innerWidth
|
||||
const vh = window.innerHeight
|
||||
const spaceAbove = anchorRect.top
|
||||
const spaceBelow = vh - anchorRect.bottom
|
||||
const placement: "above" | "below" = spaceAbove >= ph + 20 ? "above" : (spaceBelow >= spaceAbove ? "below" : "above")
|
||||
let top = placement === "above"
|
||||
? Math.max(10, anchorRect.top - 10 - ph)
|
||||
: Math.min(vh - ph - 10, anchorRect.bottom + 10)
|
||||
let left = anchorRect.left + anchorRect.width / 2 - pw / 2
|
||||
left = Math.max(10, Math.min(vw - pw - 10, left))
|
||||
setPos((prev) => {
|
||||
if (prev && prev.top === top && prev.left === left && prev.placement === placement) return prev
|
||||
return { top, left, placement }
|
||||
})
|
||||
}
|
||||
measure()
|
||||
// 视频 / 图片 loaded 后实际尺寸可能变化,再测一次
|
||||
const media = el.querySelector("video, img") as HTMLVideoElement | HTMLImageElement | null
|
||||
if (media) {
|
||||
const reMeasure = () => measure()
|
||||
media.addEventListener("loadedmetadata", reMeasure)
|
||||
media.addEventListener("load", reMeasure)
|
||||
return () => {
|
||||
media.removeEventListener("loadedmetadata", reMeasure)
|
||||
media.removeEventListener("load", reMeasure)
|
||||
}
|
||||
}
|
||||
}, [visible, anchorRect, imgSrc, videoSrc])
|
||||
|
||||
return (
|
||||
<>
|
||||
<span ref={anchorFinderRef} className="hidden" />
|
||||
{mounted && visible && anchorRect && createPortal(
|
||||
<div
|
||||
ref={portalRef}
|
||||
className="fixed z-[9999]"
|
||||
style={{
|
||||
top: anchorRect.top - 10,
|
||||
left: anchorRect.left + anchorRect.width / 2,
|
||||
transform: "translate(-50%, -100%)",
|
||||
top: pos?.top ?? -9999,
|
||||
left: pos?.left ?? -9999,
|
||||
pointerEvents: pinned ? "auto" : "none",
|
||||
opacity: pos ? 1 : 0,
|
||||
transition: "opacity 150ms",
|
||||
}}
|
||||
>
|
||||
<div className={`relative rounded-lg overflow-hidden border-2 bg-black shadow-2xl ${pinned ? "ring-2 ring-violet-400/70" : ""} ${borderClass}`}>
|
||||
<div style={{ display: "inline-block", maxWidth: maxW, maxHeight: maxH }}>
|
||||
{videoSrc ? (
|
||||
<video src={videoSrc} poster={poster} muted loop playsInline autoPlay
|
||||
className="block max-w-full max-h-full object-contain" />
|
||||
className="block object-contain"
|
||||
style={{ maxWidth: maxW, maxHeight: maxH }} />
|
||||
) : imgSrc ? (
|
||||
<img src={imgSrc} alt="" className="block max-w-full max-h-full object-contain" />
|
||||
<img src={imgSrc} alt="" className="block object-contain"
|
||||
style={{ maxWidth: maxW, maxHeight: maxH }} />
|
||||
) : (
|
||||
<div className="w-40 h-40 bg-black/40" />
|
||||
)}
|
||||
</div>
|
||||
{(label || caption) && (
|
||||
<div className="px-2 py-1 bg-black/80 text-white text-[11px] flex items-center justify-between">
|
||||
{label && <span>{label}</span>}
|
||||
|
||||
@@ -134,7 +134,7 @@ export function InputNode({ data, selected }: NodeProps<{ data: NodeData }> | an
|
||||
onClick={(e) => { e.stopPropagation(); fileRef.current?.click() }}
|
||||
title="再上传一个视频"
|
||||
className="shrink-0 rounded-md border border-dashed border-white/30 hover:border-white/50 bg-white/[0.04] hover:bg-white/[0.08] inline-flex items-center justify-center text-white/60 hover:text-white transition"
|
||||
style={{ width: 44, height: 80 }}
|
||||
style={{ width: 88, height: 160 }}
|
||||
>
|
||||
<Plus className="h-4 w-4" />
|
||||
</button>
|
||||
@@ -148,7 +148,7 @@ export function InputNode({ data, selected }: NodeProps<{ data: NodeData }> | an
|
||||
className={`group relative shrink-0 rounded-md overflow-visible border shadow-lg transition hover:-translate-y-0.5 ${
|
||||
isActive ? "border-violet-400 ring-2 ring-violet-400/60" : "border-white/25"
|
||||
}`}
|
||||
style={{ height: 80, aspectRatio: aspectStr }}
|
||||
style={{ height: 160, aspectRatio: aspectStr }}
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
@@ -432,7 +432,7 @@ export function KeyframeNode({ data, selected }: any) {
|
||||
: "border-white/30 dark:border-white/20"
|
||||
}`}
|
||||
style={{
|
||||
height: 80,
|
||||
height: 160,
|
||||
aspectRatio: d.job && d.job.height > 0
|
||||
? `${d.job.width}/${d.job.height}`
|
||||
: "16/9",
|
||||
@@ -909,7 +909,7 @@ export function StoryboardNode({ data, selected }: any) {
|
||||
<div
|
||||
key={key}
|
||||
className="group relative shrink-0 rounded-md border border-violet-300/50 overflow-visible transition shadow-lg hover:-translate-y-0.5 bg-white"
|
||||
style={{ height: 80, aspectRatio: aspect }}
|
||||
style={{ height: 160, aspectRatio: aspect }}
|
||||
>
|
||||
<button
|
||||
onClick={(e) => {
|
||||
@@ -1053,7 +1053,7 @@ export function VideoGenNode({ data, selected }: any) {
|
||||
className={`group relative shrink-0 rounded-md border overflow-visible transition shadow-lg hover:-translate-y-0.5 bg-black ${
|
||||
ready ? "border-emerald-300/60" : v.status === "failed" ? "border-rose-300/70" : "border-violet-300/55"
|
||||
}`}
|
||||
style={{ height: 80, aspectRatio: aspect }}
|
||||
style={{ height: 160, aspectRatio: aspect }}
|
||||
>
|
||||
<button
|
||||
type="button"
|
||||
|
||||
Reference in New Issue
Block a user