auto-save 2026-05-14 02:14 (+4, ~3)
This commit is contained in:
@@ -2862,6 +2862,19 @@
|
|||||||
"type": "session-heartbeat",
|
"type": "session-heartbeat",
|
||||||
"message": "Codex 会话活跃 · 最近命令:codex · 1 项未提交变更 · 最近提交:auto-save 2026-05-14 02:02 (+3, ~5)",
|
"message": "Codex 会话活跃 · 最近命令:codex · 1 项未提交变更 · 最近提交:auto-save 2026-05-14 02:02 (+3, ~5)",
|
||||||
"files_changed": 1
|
"files_changed": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ts": "2026-05-14T02:08:55+08:00",
|
||||||
|
"type": "commit",
|
||||||
|
"message": "auto-save 2026-05-14 02:08 (~1)",
|
||||||
|
"hash": "af84674",
|
||||||
|
"files_changed": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ts": "2026-05-13T18:13:11Z",
|
||||||
|
"type": "session-heartbeat",
|
||||||
|
"message": "Claude 会话活跃 · 最近命令:claude · 2 项未提交变更 · 最近提交:auto-save 2026-05-14 02:08 (~1)",
|
||||||
|
"files_changed": 2
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
19
.playwright-mcp/page-2026-05-13T18-11-26-671Z.yml
Normal file
19
.playwright-mcp/page-2026-05-13T18-11-26-671Z.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]
|
||||||
290
.playwright-mcp/page-2026-05-13T18-11-29-801Z.yml
Normal file
290
.playwright-mcp/page-2026-05-13T18-11-29-801Z.yml
Normal file
@@ -0,0 +1,290 @@
|
|||||||
|
- 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]
|
||||||
|
- application [ref=e71]:
|
||||||
|
- generic [ref=e73]:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- img:
|
||||||
|
- group "Edge from input to keyframe" [ref=e74] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from input to audio" [ref=e77] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from keyframe to storyboard" [ref=e80] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from storyboard to videogen" [ref=e83] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from videogen to compose" [ref=e86] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from audio to compose" [ref=e89] [cursor=pointer]
|
||||||
|
- generic:
|
||||||
|
- group [ref=e92]:
|
||||||
|
- generic [ref=e93]:
|
||||||
|
- generic [ref=e94]:
|
||||||
|
- button "再上传一个视频" [ref=e95]:
|
||||||
|
- img [ref=e96]
|
||||||
|
- button "64.5s" [ref=e98]:
|
||||||
|
- generic [ref=e100]: 64.5s
|
||||||
|
- button "72.4s" [ref=e102]:
|
||||||
|
- generic [ref=e104]: 72.4s
|
||||||
|
- button "64.5s" [ref=e106]:
|
||||||
|
- generic [ref=e108]: 64.5s
|
||||||
|
- button "71.4s" [ref=e110]:
|
||||||
|
- generic [ref=e112]: 71.4s
|
||||||
|
- button "72.4s" [ref=e114]:
|
||||||
|
- generic [ref=e116]: 72.4s
|
||||||
|
- button "71.4s" [ref=e118]:
|
||||||
|
- generic [ref=e120]: 71.4s
|
||||||
|
- button "71.4s" [ref=e122]:
|
||||||
|
- generic [ref=e124]: 71.4s
|
||||||
|
- button "71.4s" [ref=e126]:
|
||||||
|
- generic [ref=e128]: 71.4s
|
||||||
|
- button "71.4s" [ref=e130]:
|
||||||
|
- generic [ref=e132]: 71.4s
|
||||||
|
- button "71.4s" [ref=e134]:
|
||||||
|
- generic [ref=e136]: 71.4s
|
||||||
|
- button "8.0s" [ref=e138]:
|
||||||
|
- generic [ref=e140]: 8.0s
|
||||||
|
- button "8.0s" [ref=e142]:
|
||||||
|
- generic [ref=e144]: 8.0s
|
||||||
|
- button "8.0s" [ref=e146]:
|
||||||
|
- generic [ref=e148]: 8.0s
|
||||||
|
- button "8.0s" [ref=e150]:
|
||||||
|
- generic [ref=e152]: 8.0s
|
||||||
|
- button "…" [ref=e154]:
|
||||||
|
- img [ref=e156]
|
||||||
|
- generic [ref=e158]: …
|
||||||
|
- button "…" [ref=e160]:
|
||||||
|
- img [ref=e162]
|
||||||
|
- generic [ref=e164]: …
|
||||||
|
- button "…" [ref=e166]:
|
||||||
|
- img [ref=e168]
|
||||||
|
- generic [ref=e170]: …
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 1080×1920
|
||||||
|
- generic: 64.5s
|
||||||
|
- generic [ref=e171]:
|
||||||
|
- generic [ref=e172]:
|
||||||
|
- img [ref=e174]
|
||||||
|
- generic [ref=e177]: 输入 · Input
|
||||||
|
- generic [ref=e178]:
|
||||||
|
- img [ref=e179]
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e183]:
|
||||||
|
- img [ref=e184]
|
||||||
|
- generic [ref=e187]:
|
||||||
|
- generic [ref=e188]: STEP 1 · 视频就绪 · 完成
|
||||||
|
- textbox "再加一个 TK 链接" [ref=e189]
|
||||||
|
- generic [ref=e190]:
|
||||||
|
- button "+ 加链接" [disabled] [ref=e191]
|
||||||
|
- button "再传一个" [ref=e192]:
|
||||||
|
- img [ref=e193]
|
||||||
|
- text: 再传一个
|
||||||
|
- generic [ref=e196]:
|
||||||
|
- generic [ref=e197]: 1080×1920 · 64.5s
|
||||||
|
- generic [ref=e198]: 🔗 链接
|
||||||
|
- button "重新解析" [ref=e199]
|
||||||
|
- generic "拖动调整宽度" [ref=e201]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e202]
|
||||||
|
- group [ref=e203]:
|
||||||
|
- generic [ref=e204]:
|
||||||
|
- generic [ref=e205]:
|
||||||
|
- generic [ref=e206]:
|
||||||
|
- button "frame 9 1.7s" [ref=e207]:
|
||||||
|
- img "frame 9" [ref=e208]
|
||||||
|
- generic [ref=e209]: 1.7s
|
||||||
|
- button "📋" [ref=e210]
|
||||||
|
- button "删除该关键帧" [ref=e211]:
|
||||||
|
- img [ref=e212]
|
||||||
|
- generic [ref=e215]:
|
||||||
|
- button "frame 0 ✨ 24.7s" [ref=e216]:
|
||||||
|
- img "frame 0" [ref=e217]
|
||||||
|
- generic "已清洗" [ref=e219]: ✨
|
||||||
|
- generic [ref=e220]: 24.7s
|
||||||
|
- button "📋" [ref=e221]
|
||||||
|
- button "删除该关键帧" [ref=e222]:
|
||||||
|
- img [ref=e223]
|
||||||
|
- generic [ref=e226]:
|
||||||
|
- button "frame 1 33.6s" [ref=e227]:
|
||||||
|
- img "frame 1" [ref=e228]
|
||||||
|
- generic [ref=e229]: 33.6s
|
||||||
|
- button "📋" [ref=e230]
|
||||||
|
- button "删除该关键帧" [ref=e231]:
|
||||||
|
- img [ref=e232]
|
||||||
|
- generic [ref=e235]:
|
||||||
|
- button "frame 2 37.7s" [ref=e236]:
|
||||||
|
- img "frame 2" [ref=e237]
|
||||||
|
- generic [ref=e238]: 37.7s
|
||||||
|
- button "📋" [ref=e239]
|
||||||
|
- button "删除该关键帧" [ref=e240]:
|
||||||
|
- img [ref=e241]
|
||||||
|
- generic [ref=e244]:
|
||||||
|
- button "frame 3 39.4s" [ref=e245]:
|
||||||
|
- img "frame 3" [ref=e246]
|
||||||
|
- generic [ref=e247]: 39.4s
|
||||||
|
- button "📋" [ref=e248]
|
||||||
|
- button "删除该关键帧" [ref=e249]:
|
||||||
|
- img [ref=e250]
|
||||||
|
- generic [ref=e253]:
|
||||||
|
- button "frame 4 1 43.1s" [ref=e254]:
|
||||||
|
- img "frame 4" [ref=e255]
|
||||||
|
- generic "1 个元素已抠图" [ref=e257]: "1"
|
||||||
|
- generic [ref=e258]: 43.1s
|
||||||
|
- button "📋" [ref=e259]
|
||||||
|
- button "删除该关键帧" [ref=e260]:
|
||||||
|
- img [ref=e261]
|
||||||
|
- generic [ref=e264]:
|
||||||
|
- button "frame 5 45.0s" [ref=e265]:
|
||||||
|
- img "frame 5" [ref=e266]
|
||||||
|
- generic [ref=e267]: 45.0s
|
||||||
|
- button "📋" [ref=e268]
|
||||||
|
- button "删除该关键帧" [ref=e269]:
|
||||||
|
- img [ref=e270]
|
||||||
|
- generic [ref=e273]:
|
||||||
|
- button "frame 6 53.6s" [ref=e274]:
|
||||||
|
- img "frame 6" [ref=e275]
|
||||||
|
- generic [ref=e276]: 53.6s
|
||||||
|
- button "📋" [ref=e277]
|
||||||
|
- button "删除该关键帧" [ref=e278]:
|
||||||
|
- img [ref=e279]
|
||||||
|
- generic [ref=e282]:
|
||||||
|
- button "frame 7 56.0s" [ref=e283]:
|
||||||
|
- img "frame 7" [ref=e284]
|
||||||
|
- generic [ref=e285]: 56.0s
|
||||||
|
- button "📋" [ref=e286]
|
||||||
|
- button "删除该关键帧" [ref=e287]:
|
||||||
|
- img [ref=e288]
|
||||||
|
- generic [ref=e291]:
|
||||||
|
- button "frame 8 58.4s" [ref=e292]:
|
||||||
|
- img "frame 8" [ref=e293]
|
||||||
|
- generic [ref=e294]: 58.4s
|
||||||
|
- button "📋" [ref=e295]
|
||||||
|
- button "删除该关键帧" [ref=e296]:
|
||||||
|
- img [ref=e297]
|
||||||
|
- generic [ref=e300]:
|
||||||
|
- generic [ref=e302]:
|
||||||
|
- img [ref=e304]
|
||||||
|
- generic [ref=e308]: 镜头拆解 · 元素提取
|
||||||
|
- generic [ref=e309]:
|
||||||
|
- img [ref=e310]
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e314]:
|
||||||
|
- img [ref=e315]
|
||||||
|
- generic [ref=e318]:
|
||||||
|
- generic [ref=e319]: STEP 2 · 0/10 入编排 · 完成
|
||||||
|
- generic [ref=e320]:
|
||||||
|
- text: 自动 10 张 ·
|
||||||
|
- generic [ref=e321]: 1 已清洗
|
||||||
|
- text: ·
|
||||||
|
- generic [ref=e322]: 1/2 已抠图
|
||||||
|
- text: 点缩略图 → 清洗水印 / 提取可借鉴元素 → 改造成 SKG 画面素材
|
||||||
|
- generic "拖动调整宽度" [ref=e324]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e325]
|
||||||
|
- group [ref=e326]:
|
||||||
|
- generic [ref=e327]:
|
||||||
|
- generic [ref=e329]:
|
||||||
|
- img [ref=e331]
|
||||||
|
- generic [ref=e334]: 音频处理 · Audio
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e337]:
|
||||||
|
- img [ref=e338]
|
||||||
|
- generic [ref=e341]:
|
||||||
|
- generic [ref=e342]: STEP 3 · ASR + 翻译 + 改写 · 待运行
|
||||||
|
- generic [ref=e343]:
|
||||||
|
- generic [ref=e344]:
|
||||||
|
- generic [ref=e345]: ASR · 英文转录
|
||||||
|
- generic [ref=e346]: Gemini 2.5 · 带时间戳分段
|
||||||
|
- generic [ref=e347]:
|
||||||
|
- generic [ref=e348]: 翻译 · EN → ZH
|
||||||
|
- generic [ref=e349]: 中文翻译 · 段落级 · 实时输出
|
||||||
|
- generic [ref=e350]:
|
||||||
|
- generic [ref=e351]: 产品文案 · Rewrite
|
||||||
|
- textbox "粘贴 SKG 产品信息 / 关键卖点(可作为视频脚本和镜头动作参考)" [disabled] [ref=e352]
|
||||||
|
- generic "拖动调整宽度" [ref=e354]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e355]
|
||||||
|
- group [ref=e356]:
|
||||||
|
- generic [ref=e357]:
|
||||||
|
- generic [ref=e359]:
|
||||||
|
- button "透明骷髅" [ref=e360]:
|
||||||
|
- img "透明骷髅" [ref=e361]
|
||||||
|
- button "📋" [ref=e362]
|
||||||
|
- button "删除该提取图" [ref=e363]:
|
||||||
|
- img [ref=e364]
|
||||||
|
- generic [ref=e367]:
|
||||||
|
- generic [ref=e369]:
|
||||||
|
- img [ref=e371]
|
||||||
|
- generic [ref=e376]: 元素改造 · Storyboard
|
||||||
|
- generic [ref=e377]:
|
||||||
|
- img [ref=e378]
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e382]:
|
||||||
|
- img [ref=e383]
|
||||||
|
- generic [ref=e386]:
|
||||||
|
- generic [ref=e387]: STEP 6 · 参考元素 → SKG 画面 · 完成
|
||||||
|
- generic [ref=e388]:
|
||||||
|
- text: 不是复刻原视频:先把参考图里的主体 / 场景 / 动作 / 道具拆出来,再替换成 SKG 产品画面。
|
||||||
|
- generic [ref=e389]: 已有 1 个提取元素 · 0 个分镜进入编排
|
||||||
|
- button "进入分镜编排" [disabled] [ref=e390]
|
||||||
|
- generic "拖动调整宽度" [ref=e392]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e393]
|
||||||
|
- group [ref=e394]:
|
||||||
|
- generic [ref=e396]:
|
||||||
|
- generic [ref=e398]:
|
||||||
|
- img [ref=e400]
|
||||||
|
- generic [ref=e402]: 生成视频 · Video Gen
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e405]:
|
||||||
|
- img [ref=e406]
|
||||||
|
- generic [ref=e409]:
|
||||||
|
- generic [ref=e410]: STEP 7 · 首帧 + 动作 prompt · 待运行
|
||||||
|
- generic [ref=e411]:
|
||||||
|
- generic [ref=e412]: Seedance
|
||||||
|
- generic [ref=e413]: Kling
|
||||||
|
- generic [ref=e414]: Veo 3
|
||||||
|
- generic "拖动调整宽度" [ref=e416]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e417]
|
||||||
|
- group [ref=e418]:
|
||||||
|
- generic [ref=e419]:
|
||||||
|
- generic [ref=e421]:
|
||||||
|
- img [ref=e423]
|
||||||
|
- generic [ref=e427]: 合成成品 · Compose
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e430]:
|
||||||
|
- img [ref=e431]
|
||||||
|
- generic [ref=e434]:
|
||||||
|
- generic [ref=e435]: STEP 8 · ffmpeg + 字幕 · 待运行
|
||||||
|
- generic [ref=e436]:
|
||||||
|
- text: 视频片段 + 字幕 / TTS
|
||||||
|
- text: → 最终 mp4 输出
|
||||||
|
- generic "拖动调整宽度" [ref=e437]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e438]
|
||||||
|
- img
|
||||||
|
- generic "Control Panel" [ref=e439]:
|
||||||
|
- button "Zoom In" [ref=e440] [cursor=pointer]:
|
||||||
|
- img [ref=e441]
|
||||||
|
- button "Zoom Out" [ref=e443] [cursor=pointer]:
|
||||||
|
- img [ref=e444]
|
||||||
|
- button "Fit View" [ref=e446] [cursor=pointer]:
|
||||||
|
- img [ref=e447]
|
||||||
|
- button "Toggle Interactivity" [ref=e449] [cursor=pointer]:
|
||||||
|
- img [ref=e450]
|
||||||
|
- img "Mini Map" [ref=e453]
|
||||||
|
- region "Notifications alt+T":
|
||||||
|
- list:
|
||||||
|
- listitem [ref=e461]:
|
||||||
|
- img [ref=e463]
|
||||||
|
- generic [ref=e466]: 已自动排版 · 保留每个节点的尺寸
|
||||||
|
- listitem [ref=e467]:
|
||||||
|
- img [ref=e469]
|
||||||
|
- generic [ref=e472]: 📥 视频已就绪 — 请点 Input 节点里的「点这里开始解析」按钮
|
||||||
|
- alert [ref=e473]
|
||||||
36
.playwright-mcp/page-2026-05-13T18-13-32-163Z.yml
Normal file
36
.playwright-mcp/page-2026-05-13T18-13-32-163Z.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"
|
||||||
279
.playwright-mcp/page-2026-05-13T18-13-35-284Z.yml
Normal file
279
.playwright-mcp/page-2026-05-13T18-13-35-284Z.yml
Normal file
@@ -0,0 +1,279 @@
|
|||||||
|
- 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]
|
||||||
|
- application [ref=e24]:
|
||||||
|
- generic [ref=e26]:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- img:
|
||||||
|
- group "Edge from input to keyframe" [ref=e88] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from input to audio" [ref=e91] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from keyframe to storyboard" [ref=e94] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from storyboard to videogen" [ref=e97] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from videogen to compose" [ref=e100] [cursor=pointer]
|
||||||
|
- img:
|
||||||
|
- group "Edge from audio to compose" [ref=e103] [cursor=pointer]
|
||||||
|
- generic:
|
||||||
|
- group [ref=e27]:
|
||||||
|
- generic [ref=e28]:
|
||||||
|
- generic [ref=e106]:
|
||||||
|
- button "再上传一个视频" [ref=e107]:
|
||||||
|
- img [ref=e108]
|
||||||
|
- button "64.5s" [ref=e110]:
|
||||||
|
- generic [ref=e112]: 64.5s
|
||||||
|
- button "72.4s" [ref=e114]:
|
||||||
|
- generic [ref=e116]: 72.4s
|
||||||
|
- button "64.5s" [ref=e118]:
|
||||||
|
- generic [ref=e120]: 64.5s
|
||||||
|
- button "71.4s" [ref=e122]:
|
||||||
|
- generic [ref=e124]: 71.4s
|
||||||
|
- button "72.4s" [ref=e126]:
|
||||||
|
- generic [ref=e128]: 72.4s
|
||||||
|
- button "71.4s" [ref=e130]:
|
||||||
|
- generic [ref=e132]: 71.4s
|
||||||
|
- button "71.4s" [ref=e134]:
|
||||||
|
- generic [ref=e136]: 71.4s
|
||||||
|
- button "71.4s" [ref=e138]:
|
||||||
|
- generic [ref=e140]: 71.4s
|
||||||
|
- button "71.4s" [ref=e142]:
|
||||||
|
- generic [ref=e144]: 71.4s
|
||||||
|
- button "71.4s" [ref=e146]:
|
||||||
|
- generic [ref=e148]: 71.4s
|
||||||
|
- button "8.0s" [ref=e150]:
|
||||||
|
- generic [ref=e152]: 8.0s
|
||||||
|
- button "8.0s" [ref=e154]:
|
||||||
|
- generic [ref=e156]: 8.0s
|
||||||
|
- button "8.0s" [ref=e158]:
|
||||||
|
- generic [ref=e160]: 8.0s
|
||||||
|
- button "8.0s" [ref=e162]:
|
||||||
|
- generic [ref=e164]: 8.0s
|
||||||
|
- button "…" [ref=e166]:
|
||||||
|
- img [ref=e168]
|
||||||
|
- generic [ref=e170]: …
|
||||||
|
- button "…" [ref=e172]:
|
||||||
|
- img [ref=e174]
|
||||||
|
- generic [ref=e176]: …
|
||||||
|
- button "…" [ref=e178]:
|
||||||
|
- img [ref=e180]
|
||||||
|
- generic [ref=e182]: …
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic:
|
||||||
|
- generic: 1080×1920
|
||||||
|
- generic: 64.5s
|
||||||
|
- generic [ref=e29]:
|
||||||
|
- generic [ref=e30]:
|
||||||
|
- img [ref=e32]
|
||||||
|
- generic [ref=e35]: 输入 · Input
|
||||||
|
- generic [ref=e36]:
|
||||||
|
- img [ref=e183]
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e38]:
|
||||||
|
- img [ref=e39]
|
||||||
|
- generic [ref=e42]:
|
||||||
|
- generic [ref=e43]: STEP 1 · 视频就绪 · 完成
|
||||||
|
- textbox "再加一个 TK 链接" [ref=e186]
|
||||||
|
- generic [ref=e45]:
|
||||||
|
- button "+ 加链接" [disabled] [ref=e187]
|
||||||
|
- button "再传一个" [ref=e188]:
|
||||||
|
- img [ref=e48]
|
||||||
|
- text: 再传一个
|
||||||
|
- generic [ref=e189]:
|
||||||
|
- generic [ref=e190]: 1080×1920 · 64.5s
|
||||||
|
- generic [ref=e191]: 🔗 链接
|
||||||
|
- button "重新解析" [ref=e192]
|
||||||
|
- generic "拖动调整宽度" [ref=e52]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e53]
|
||||||
|
- group [ref=e193]:
|
||||||
|
- generic [ref=e194]:
|
||||||
|
- generic [ref=e195]:
|
||||||
|
- generic [ref=e196]:
|
||||||
|
- button "frame 9 1.7s" [ref=e197]:
|
||||||
|
- img "frame 9" [ref=e198]
|
||||||
|
- generic [ref=e199]: 1.7s
|
||||||
|
- button "📋" [ref=e200]
|
||||||
|
- button "删除该关键帧" [ref=e201]:
|
||||||
|
- img [ref=e202]
|
||||||
|
- generic [ref=e205]:
|
||||||
|
- button "frame 0 ✨ 24.7s" [ref=e206]:
|
||||||
|
- img "frame 0" [ref=e207]
|
||||||
|
- generic "已清洗" [ref=e209]: ✨
|
||||||
|
- generic [ref=e210]: 24.7s
|
||||||
|
- button "📋" [ref=e211]
|
||||||
|
- button "删除该关键帧" [ref=e212]:
|
||||||
|
- img [ref=e213]
|
||||||
|
- generic [ref=e216]:
|
||||||
|
- button "frame 1 33.6s" [ref=e217]:
|
||||||
|
- img "frame 1" [ref=e218]
|
||||||
|
- generic [ref=e219]: 33.6s
|
||||||
|
- button "📋" [ref=e220]
|
||||||
|
- button "删除该关键帧" [ref=e221]:
|
||||||
|
- img [ref=e222]
|
||||||
|
- generic [ref=e225]:
|
||||||
|
- button "frame 2 37.7s" [ref=e226]:
|
||||||
|
- img "frame 2" [ref=e227]
|
||||||
|
- generic [ref=e228]: 37.7s
|
||||||
|
- button "📋" [ref=e229]
|
||||||
|
- button "删除该关键帧" [ref=e230]:
|
||||||
|
- img [ref=e231]
|
||||||
|
- generic [ref=e234]:
|
||||||
|
- button "frame 3 39.4s" [ref=e235]:
|
||||||
|
- img "frame 3" [ref=e236]
|
||||||
|
- generic [ref=e237]: 39.4s
|
||||||
|
- button "📋" [ref=e238]
|
||||||
|
- button "删除该关键帧" [ref=e239]:
|
||||||
|
- img [ref=e240]
|
||||||
|
- generic [ref=e243]:
|
||||||
|
- button "frame 4 1 43.1s" [ref=e244]:
|
||||||
|
- img "frame 4" [ref=e245]
|
||||||
|
- generic "1 个元素已抠图" [ref=e247]: "1"
|
||||||
|
- generic [ref=e248]: 43.1s
|
||||||
|
- button "📋" [ref=e249]
|
||||||
|
- button "删除该关键帧" [ref=e250]:
|
||||||
|
- img [ref=e251]
|
||||||
|
- generic [ref=e254]:
|
||||||
|
- button "frame 5 45.0s" [ref=e255]:
|
||||||
|
- img "frame 5" [ref=e256]
|
||||||
|
- generic [ref=e257]: 45.0s
|
||||||
|
- button "📋" [ref=e258]
|
||||||
|
- button "删除该关键帧" [ref=e259]:
|
||||||
|
- img [ref=e260]
|
||||||
|
- generic [ref=e263]:
|
||||||
|
- button "frame 6 53.6s" [ref=e264]:
|
||||||
|
- img "frame 6" [ref=e265]
|
||||||
|
- generic [ref=e266]: 53.6s
|
||||||
|
- button "📋" [ref=e267]
|
||||||
|
- button "删除该关键帧" [ref=e268]:
|
||||||
|
- img [ref=e269]
|
||||||
|
- generic [ref=e272]:
|
||||||
|
- button "frame 7 56.0s" [ref=e273]:
|
||||||
|
- img "frame 7" [ref=e274]
|
||||||
|
- generic [ref=e275]: 56.0s
|
||||||
|
- button "📋" [ref=e276]
|
||||||
|
- button "删除该关键帧" [ref=e277]:
|
||||||
|
- img [ref=e278]
|
||||||
|
- generic [ref=e281]:
|
||||||
|
- button "frame 8 58.4s" [ref=e282]:
|
||||||
|
- img "frame 8" [ref=e283]
|
||||||
|
- generic [ref=e284]: 58.4s
|
||||||
|
- button "📋" [ref=e285]
|
||||||
|
- button "删除该关键帧" [ref=e286]:
|
||||||
|
- img [ref=e287]
|
||||||
|
- generic [ref=e290]:
|
||||||
|
- generic [ref=e292]:
|
||||||
|
- img [ref=e294]
|
||||||
|
- generic [ref=e298]: 镜头拆解 · 元素提取
|
||||||
|
- generic [ref=e299]:
|
||||||
|
- img [ref=e300]
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e304]:
|
||||||
|
- img [ref=e305]
|
||||||
|
- generic [ref=e308]:
|
||||||
|
- generic [ref=e309]: STEP 2 · 0/10 入编排 · 完成
|
||||||
|
- generic [ref=e310]:
|
||||||
|
- text: 自动 10 张 ·
|
||||||
|
- generic [ref=e311]: 1 已清洗
|
||||||
|
- text: ·
|
||||||
|
- generic [ref=e312]: 1/2 已抠图
|
||||||
|
- text: 点缩略图 → 清洗水印 / 提取可借鉴元素 → 改造成 SKG 画面素材
|
||||||
|
- generic "拖动调整宽度" [ref=e314]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e315]
|
||||||
|
- group [ref=e316]:
|
||||||
|
- generic [ref=e317]:
|
||||||
|
- generic [ref=e319]:
|
||||||
|
- img [ref=e321]
|
||||||
|
- generic [ref=e324]: 音频处理 · Audio
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e327]:
|
||||||
|
- img [ref=e328]
|
||||||
|
- generic [ref=e332]: STEP 3 · 待运行
|
||||||
|
- generic "拖动调整宽度" [ref=e334]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e335]
|
||||||
|
- group [ref=e336]:
|
||||||
|
- generic [ref=e337]:
|
||||||
|
- generic [ref=e339]:
|
||||||
|
- button "透明骷髅" [ref=e340]:
|
||||||
|
- img "透明骷髅" [ref=e341]
|
||||||
|
- button "📋" [ref=e342]
|
||||||
|
- button "删除该提取图" [ref=e343]:
|
||||||
|
- img [ref=e344]
|
||||||
|
- generic [ref=e347]:
|
||||||
|
- generic [ref=e349]:
|
||||||
|
- img [ref=e351]
|
||||||
|
- generic [ref=e356]: 元素改造 · Storyboard
|
||||||
|
- generic [ref=e357]:
|
||||||
|
- img [ref=e358]
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e362]:
|
||||||
|
- img [ref=e363]
|
||||||
|
- generic [ref=e366]:
|
||||||
|
- generic [ref=e367]: STEP 6 · 参考元素 → SKG 画面 · 完成
|
||||||
|
- generic [ref=e368]:
|
||||||
|
- text: 不是复刻原视频:先把参考图里的主体 / 场景 / 动作 / 道具拆出来,再替换成 SKG 产品画面。
|
||||||
|
- generic [ref=e369]: 已有 1 个提取元素 · 0 个分镜进入编排
|
||||||
|
- button "进入分镜编排" [disabled] [ref=e370]
|
||||||
|
- generic "拖动调整宽度" [ref=e372]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e373]
|
||||||
|
- group [ref=e374]:
|
||||||
|
- generic [ref=e376]:
|
||||||
|
- generic [ref=e378]:
|
||||||
|
- img [ref=e380]
|
||||||
|
- generic [ref=e382]: 生成视频 · Video Gen
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e385]:
|
||||||
|
- img [ref=e386]
|
||||||
|
- generic [ref=e389]:
|
||||||
|
- generic [ref=e390]: STEP 7 · 首帧 + 动作 prompt · 待运行
|
||||||
|
- generic [ref=e391]:
|
||||||
|
- generic [ref=e392]: Seedance
|
||||||
|
- generic [ref=e393]: Kling
|
||||||
|
- generic [ref=e394]: Veo 3
|
||||||
|
- generic "拖动调整宽度" [ref=e396]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e397]
|
||||||
|
- group [ref=e398]:
|
||||||
|
- generic [ref=e399]:
|
||||||
|
- generic [ref=e401]:
|
||||||
|
- img [ref=e403]
|
||||||
|
- generic [ref=e407]: 合成成品 · Compose
|
||||||
|
- button "钉住 · 锁定位置与尺寸" [ref=e410]:
|
||||||
|
- img [ref=e411]
|
||||||
|
- generic [ref=e414]:
|
||||||
|
- generic [ref=e415]: STEP 8 · ffmpeg + 字幕 · 待运行
|
||||||
|
- generic [ref=e416]:
|
||||||
|
- text: 视频片段 + 字幕 / TTS
|
||||||
|
- text: → 最终 mp4 输出
|
||||||
|
- generic "拖动调整宽度" [ref=e417]
|
||||||
|
- generic "拖动调整大小(宽 × 高)" [ref=e418]
|
||||||
|
- 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=e424]:
|
||||||
|
- img [ref=e426]
|
||||||
|
- generic [ref=e429]: 已自动排版 · 保留每个节点的尺寸
|
||||||
|
- listitem [ref=e430]:
|
||||||
|
- img [ref=e432]
|
||||||
|
- generic [ref=e435]: 📥 视频已就绪 — 请点 Input 节点里的「点这里开始解析」按钮
|
||||||
|
- alert [ref=e436]
|
||||||
@@ -679,32 +679,8 @@ export default function Home() {
|
|||||||
<ThemeToggle />
|
<ThemeToggle />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* 右区:顶部 storyboard bar + DAG 节点流图 */}
|
{/* 右区:DAG 节点流图(原顶部 storyboard dock 已删除) */}
|
||||||
<section className="relative flex-1 min-h-0 flex flex-col">
|
<section className="relative flex-1 min-h-0 flex flex-col">
|
||||||
<div data-storyboard-dock="true" className="relative z-20 flex-shrink-0">
|
|
||||||
<StoryboardBar
|
|
||||||
job={job}
|
|
||||||
selectedFrames={selectedFrames}
|
|
||||||
focusedFrame={storyboardFrame}
|
|
||||||
onFocusFrame={setStoryboardFrame}
|
|
||||||
workbenchOpen={workbenchOpen}
|
|
||||||
onOpenWorkbench={(idx?: number) => {
|
|
||||||
if (typeof idx === "number") setStoryboardFrame(idx)
|
|
||||||
setWorkbenchOpen(true)
|
|
||||||
}}
|
|
||||||
onCloseWorkbench={() => setWorkbenchOpen(false)}
|
|
||||||
/>
|
|
||||||
<StoryboardWorkbench
|
|
||||||
job={job}
|
|
||||||
selectedFrames={selectedFrames}
|
|
||||||
open={workbenchOpen}
|
|
||||||
onClose={() => setWorkbenchOpen(false)}
|
|
||||||
onJobUpdate={setJob as any}
|
|
||||||
clipboard={clipboard}
|
|
||||||
focusedFrame={storyboardFrame}
|
|
||||||
onGenerateVideo={handleQuickGenerateVideo}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div className="relative flex-1 min-h-0">
|
<div className="relative flex-1 min-h-0">
|
||||||
<ReactFlow
|
<ReactFlow
|
||||||
nodes={nodes}
|
nodes={nodes}
|
||||||
|
|||||||
@@ -891,7 +891,7 @@ export function RewriteNode({ data, selected }: any) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
5b. AudioNode — 合并 ASR + 翻译 + 改写为一个"音频处理"节点
|
5b. AudioNode — 合并 ASR + 翻译 + 改写为一个"音频处理"节点(占位卡片,无填充)
|
||||||
============================================================ */
|
============================================================ */
|
||||||
export function AudioNode({ data, selected }: any) {
|
export function AudioNode({ data, selected }: any) {
|
||||||
const d: NodeData = data
|
const d: NodeData = data
|
||||||
@@ -910,31 +910,11 @@ export function AudioNode({ data, selected }: any) {
|
|||||||
type="ai" status={status}
|
type="ai" status={status}
|
||||||
icon={<Mic className="h-4 w-4" />}
|
icon={<Mic className="h-4 w-4" />}
|
||||||
title="音频处理 · Audio"
|
title="音频处理 · Audio"
|
||||||
subtitle={`STEP 3 · ASR + 翻译 + 改写${hasASR ? ` · ${transcript.length} 段` : ""}`}
|
subtitle={hasASR ? `STEP 3 · ${transcript.length} 段` : "STEP 3"}
|
||||||
selected={selected}
|
selected={selected}
|
||||||
pinned={d.pinnedNodes?.has("audio")}
|
pinned={d.pinnedNodes?.has("audio")}
|
||||||
onTogglePin={() => d.onToggleNodePin?.("audio")}
|
onTogglePin={() => d.onToggleNodePin?.("audio")}
|
||||||
>
|
/>
|
||||||
<div className="space-y-2 text-[11.5px]">
|
|
||||||
<div className="rounded-md bg-white/40 dark:bg-white/[0.04] border border-black/5 dark:border-white/5 px-2 py-1.5">
|
|
||||||
<div className="text-[10px] uppercase tracking-widest text-[var(--text-faint)]">ASR · 英文转录</div>
|
|
||||||
<div className="text-[var(--text-strong)] mt-0.5">Gemini 2.5 · 带时间戳分段</div>
|
|
||||||
</div>
|
|
||||||
<div className="rounded-md bg-white/40 dark:bg-white/[0.04] border border-black/5 dark:border-white/5 px-2 py-1.5">
|
|
||||||
<div className="text-[10px] uppercase tracking-widest text-[var(--text-faint)]">翻译 · EN → ZH</div>
|
|
||||||
<div className="text-[var(--text-strong)] mt-0.5">中文翻译 · 段落级 · 实时输出</div>
|
|
||||||
</div>
|
|
||||||
<div className="rounded-md bg-white/40 dark:bg-white/[0.04] border border-black/5 dark:border-white/5 px-2 py-1.5">
|
|
||||||
<div className="text-[10px] uppercase tracking-widest text-[var(--text-faint)]">产品文案 · Rewrite</div>
|
|
||||||
<textarea
|
|
||||||
placeholder="粘贴 SKG 产品信息 / 关键卖点(可作为视频脚本和镜头动作参考)"
|
|
||||||
rows={2}
|
|
||||||
disabled
|
|
||||||
className="w-full text-[11.5px] mt-1 px-2 py-1 rounded-md bg-white/30 dark:bg-white/[0.03] border border-dashed border-black/15 dark:border-white/10 placeholder:text-[var(--text-faint)] text-[var(--text-strong)] resize-none opacity-70"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</NodeShell>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user