auto-save 2026-05-14 02:14 (+4, ~3)

This commit is contained in:
2026-05-14 02:14:27 +08:00
parent af846745f0
commit b98b4869bf
7 changed files with 641 additions and 48 deletions

View File

@@ -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
} }
] ]
} }

View 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]

View 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]

View 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"

View 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]

View File

@@ -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}

View File

@@ -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>
) )
} }