diff --git a/.gitignore b/.gitignore index ee7adc7..58429f1 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,7 @@ prompt_library/* !prompt_library/.gitkeep _trash/ output/ +.playwright-cli/ # web web/.next/ diff --git a/.playwright-cli/page-2026-05-27T06-52-23-524Z.yml b/.playwright-cli/page-2026-05-27T06-52-23-524Z.yml deleted file mode 100644 index b5f318d..0000000 --- a/.playwright-cli/page-2026-05-27T06-52-23-524Z.yml +++ /dev/null @@ -1,29 +0,0 @@ -- generic [active] [ref=e1]: - - main [ref=e2]: - - iframe [ref=e3]: - - generic [active] [ref=f1e1]: - - button "Settings": - - img - - generic [ref=e4]: - - generic: - - generic: - - generic: - - generic: - - generic: - - img - - generic [ref=e5]: - - generic [ref=e6]: - - generic [ref=e8]: - - img [ref=e9] - - textbox [ref=e12] - - generic [ref=e14]: - - img [ref=e15] - - textbox [ref=e19] - - button [ref=e20]: - - img [ref=e21] - - generic [ref=e24] [cursor=pointer]: - - checkbox "保持登录" [checked] [ref=e25] - - generic [ref=e26]: 保持登录 - - button [ref=e27]: - - img [ref=e28] - - alert [ref=e30] \ No newline at end of file diff --git a/.playwright-cli/page-2026-05-27T06-52-55-049Z.yml b/.playwright-cli/page-2026-05-27T06-52-55-049Z.yml deleted file mode 100644 index e69de29..0000000 diff --git a/.playwright-cli/page-2026-05-27T06-54-17-537Z.yml b/.playwright-cli/page-2026-05-27T06-54-17-537Z.yml deleted file mode 100644 index 71f5ecd..0000000 --- a/.playwright-cli/page-2026-05-27T06-54-17-537Z.yml +++ /dev/null @@ -1,220 +0,0 @@ -- generic [ref=e95]: - - banner [ref=e96]: - - generic [ref=e97]: - - button [ref=e98] [cursor=pointer]: - - img [ref=e99]: - - img [ref=e100] - - button "指南演示项目" [ref=e102] [cursor=pointer]: - - generic [ref=e103]: 指南演示项目 - - img [ref=e104]: - - img [ref=e105] - - generic [ref=e107]: - - button [ref=e108] [cursor=pointer]: - - img [ref=e109]: - - img [ref=e110] - - button "批量下载素材" [ref=e112] [cursor=pointer]: - - img [ref=e113]: - - img [ref=e114] - - button "API 设置" [ref=e117] [cursor=pointer]: - - img [ref=e118]: - - img [ref=e119] - - generic [ref=e121]: - - generic [ref=e122]: - - generic [ref=e124]: - - generic: - - img - - img: - - group "Edge from node_0 to node_1" [ref=e125] [cursor=pointer]: - - img - - img: - - group "Edge from node_2 to node_3" [ref=e128] [cursor=pointer]: - - img - - generic: - - button "1" [ref=e132] [cursor=pointer] - - button "首帧" [ref=e134] [cursor=pointer]: - - text: 首帧 - - img [ref=e135]: - - img [ref=e136] - - generic: - - group [ref=e138]: - - generic [ref=e140]: - - generic [ref=e141]: - - generic "双击编辑名称" [ref=e142]: 提示词 - - generic [ref=e143]: - - button "复制节点" [ref=e144] [cursor=pointer]: - - img [ref=e145]: - - img [ref=e146] - - button "删除节点" [ref=e149] [cursor=pointer]: - - img [ref=e150]: - - img [ref=e151] - - generic [ref=e156]: - - generic [ref=e158]: 一张白底电商主图,SKG 颈部按摩仪悬浮展示,柔和自然光,高级产品摄影。 - - button "✨ AI 润色" [ref=e159] [cursor=pointer]: - - generic [ref=e160]: ✨ - - text: AI 润色 - - img [ref=e163] [cursor=pointer]: - - img [ref=e164] - - group [ref=e166]: - - generic [ref=e168]: - - generic [ref=e169]: - - generic "双击编辑名称" [ref=e170]: 文生图 - - generic [ref=e171]: - - button "复制节点" [ref=e172] [cursor=pointer]: - - img [ref=e173]: - - img [ref=e174] - - button "删除节点" [ref=e177] [cursor=pointer]: - - img [ref=e178]: - - img [ref=e179] - - generic [ref=e184]: - - generic [ref=e185]: - - generic [ref=e186]: 模型 - - button "自动" [ref=e187] [cursor=pointer]: - - text: 自动 - - img [ref=e188]: - - img [ref=e189] - - generic [ref=e191]: - - generic [ref=e192]: 画质 - - button "标准" [ref=e193] [cursor=pointer]: - - text: 标准 - - img [ref=e194]: - - img [ref=e195] - - generic [ref=e197]: - - generic [ref=e198]: 尺寸 - - button "竖图 2:3" [ref=e200] [cursor=pointer]: - - text: 竖图 2:3 - - img [ref=e201]: - - img [ref=e202] - - generic [ref=e204]: - - generic [ref=e205]: 提示词 1个 - - generic [ref=e206]: 参考图 ○ - - button "◆ 立即生成" [ref=e207] [cursor=pointer]: - - generic [ref=e208]: ◆ - - text: 立即生成 - - group [ref=e211]: - - generic [ref=e213]: - - generic [ref=e215]: - - generic [ref=e216]: - - generic "双击编辑名称" [ref=e217]: 上传参考图 - - button "设置公开(可被 @ 引用)" [ref=e218] [cursor=pointer]: - - switch [checked] [ref=e219] - - generic [ref=e222]: - - button [ref=e223] [cursor=pointer]: - - img [ref=e224]: - - img [ref=e225] - - button [ref=e228] [cursor=pointer]: - - img [ref=e229]: - - img [ref=e230] - - button [ref=e233] [cursor=pointer]: - - img [ref=e234]: - - img [ref=e235] - - generic [ref=e241]: - - generic [ref=e242] [cursor=pointer]: - - img [ref=e243]: - - img [ref=e244] - - generic [ref=e249]: 拖放图片或点击上传 - - button "Choose File" [ref=e250] - - generic [ref=e253]: 或 - - generic [ref=e255]: - - textbox "输入图片地址..." [ref=e256] - - button "预览" [disabled] [ref=e257] - - img [ref=e260] [cursor=pointer]: - - img [ref=e261] - - group [ref=e263]: - - generic [ref=e265]: - - generic [ref=e266]: - - generic "双击编辑名称" [ref=e267]: 图生视频 - - generic [ref=e268]: - - button "复制节点" [ref=e269] [cursor=pointer]: - - img [ref=e270]: - - img [ref=e271] - - button "删除节点" [ref=e274] [cursor=pointer]: - - img [ref=e275]: - - img [ref=e276] - - generic [ref=e281]: - - generic [ref=e282]: - - generic [ref=e283]: 模型 - - button "Seedance 2.0 Fast" [ref=e284] [cursor=pointer]: - - text: Seedance 2.0 Fast - - img [ref=e285]: - - img [ref=e286] - - generic [ref=e288]: - - generic [ref=e289]: 比例 - - button "9:16" [ref=e290] [cursor=pointer]: - - text: 9:16 - - img [ref=e291]: - - img [ref=e292] - - generic [ref=e294]: - - generic [ref=e295]: 时长 - - button "5s" [ref=e296] [cursor=pointer]: - - text: 5s - - img [ref=e297]: - - img [ref=e298] - - generic [ref=e300]: - - generic [ref=e301]: 提示词 ○ - - generic [ref=e302]: 首帧 ○ - - generic [ref=e303]: 尾帧 ○ - - generic [ref=e304]: 参考图 ○ - - button "生成视频" [ref=e305] [cursor=pointer]: - - img [ref=e306]: - - img [ref=e307] - - text: 生成视频 - - img [ref=e312] - - img "Vue Flow mini map" [ref=e316] - - complementary [ref=e323]: - - button "添加节点" [ref=e324] [cursor=pointer]: - - img [ref=e325]: - - img [ref=e326] - - button "工作流模板" [ref=e327] [cursor=pointer]: - - img [ref=e328]: - - img [ref=e329] - - button "文本" [ref=e340] [cursor=pointer]: - - img [ref=e341]: - - img [ref=e342] - - button "图片" [ref=e346] [cursor=pointer]: - - img [ref=e347]: - - img [ref=e348] - - button "文生图" [ref=e353] [cursor=pointer]: - - img [ref=e354]: - - img [ref=e355] - - button "视频生成" [ref=e362] [cursor=pointer]: - - img [ref=e363]: - - img [ref=e364] - - button "撤销" [disabled] [ref=e367]: - - img [ref=e368]: - - img [ref=e369] - - button "重做" [disabled] [ref=e371]: - - img [ref=e372]: - - img [ref=e373] - - generic [ref=e375]: - - button "适应视图" [ref=e376] [cursor=pointer]: - - img [ref=e377]: - - img [ref=e378] - - generic [ref=e380]: - - button [ref=e381] [cursor=pointer]: - - img [ref=e382]: - - img [ref=e383] - - generic [ref=e384]: 82% - - button [ref=e385] [cursor=pointer]: - - img [ref=e386]: - - img [ref=e387] - - generic [ref=e388]: - - generic [ref=e389]: - - textbox "你可以试着说\"帮我生成一个二次元的卡通角色\"" [ref=e390] - - generic [ref=e391]: - - button "✨ AI 润色" [disabled] [ref=e393] - - generic [ref=e394]: - - generic [ref=e395]: - - switch [ref=e396] - - text: 自动执行 - - button [ref=e399] [cursor=pointer]: - - img [ref=e400]: - - img [ref=e401] - - generic [ref=e403]: - - generic [ref=e404]: 推荐: - - button "魔法森林" [ref=e405] [cursor=pointer] - - button "三只小猫" [ref=e406] [cursor=pointer] - - button "多角度分镜" [ref=e407] [cursor=pointer] - - button "夏日田野" [ref=e408] [cursor=pointer] - - button "换一组推荐" [ref=e409] [cursor=pointer]: - - img [ref=e410]: - - img [ref=e411] \ No newline at end of file diff --git a/.playwright-cli/page-2026-05-27T06-57-21-699Z.yml b/.playwright-cli/page-2026-05-27T06-57-21-699Z.yml deleted file mode 100644 index c0fa5d7..0000000 --- a/.playwright-cli/page-2026-05-27T06-57-21-699Z.yml +++ /dev/null @@ -1,77 +0,0 @@ -- generic [ref=e4]: - - banner [ref=e5]: - - generic [ref=e6]: - - button [ref=e7] [cursor=pointer]: - - img [ref=e8]: - - img [ref=e9] - - button "API 设置" [ref=e11] [cursor=pointer]: - - img [ref=e12]: - - img [ref=e13] - - main [ref=e15]: - - generic [ref=e16]: - - generic [ref=e17]: - - img "SKG" - - heading "SKG" [level=1] [ref=e18] - - generic [ref=e19]: - - generic [ref=e20]: - - textbox "输入你的创意,开始新项目" [ref=e21] - - button [ref=e24] [cursor=pointer]: - - img [ref=e25]: - - img [ref=e26] - - generic [ref=e28]: - - generic [ref=e29]: 推荐: - - button "魔法森林" [ref=e30] [cursor=pointer] - - button "三只小猫" [ref=e31] [cursor=pointer] - - button "多角度分镜" [ref=e32] [cursor=pointer] - - button "夏日田野" [ref=e33] [cursor=pointer] - - button "换一组推荐" [ref=e34] [cursor=pointer]: - - img [ref=e35]: - - img [ref=e36] - - generic [ref=e39]: - - generic [ref=e40]: - - heading "我的项目" [level=2] [ref=e41] - - button "新建项目" [ref=e42] [cursor=pointer]: - - img [ref=e43]: - - img [ref=e44] - - text: 新建项目 - - generic [ref=e45]: - - generic [ref=e46]: - - generic [ref=e47] [cursor=pointer]: - - generic [ref=e48]: - - img [ref=e50]: - - img [ref=e51] - - generic [ref=e55]: 打开项目 - - paragraph [ref=e56]: Video Sync Test - - paragraph [ref=e57]: 1分钟前 - - button [ref=e59] [cursor=pointer]: - - img [ref=e60]: - - img [ref=e61] - - generic [ref=e65]: - - generic [ref=e66] [cursor=pointer]: - - generic [ref=e67]: - - img [ref=e69]: - - img [ref=e70] - - generic [ref=e74]: 打开项目 - - paragraph [ref=e75]: 指南演示项目 - - paragraph [ref=e76]: 23小时前 - - button [ref=e78] [cursor=pointer]: - - img [ref=e79]: - - img [ref=e80] - - generic [ref=e84]: - - generic [ref=e85] [cursor=pointer]: - - generic [ref=e86]: - - img [ref=e88]: - - img [ref=e89] - - generic [ref=e93]: 打开项目 - - paragraph [ref=e94]: 未命名项目 - - paragraph [ref=e95]: 23小时前 - - button [ref=e97] [cursor=pointer]: - - img [ref=e98]: - - img [ref=e99] - - complementary [ref=e103]: - - button "新建项目" [ref=e104] [cursor=pointer]: - - img [ref=e105]: - - img [ref=e106] - - button "我的项目" [ref=e109] [cursor=pointer]: - - img [ref=e110]: - - img [ref=e111] \ No newline at end of file diff --git a/web/canvas-app/src/views/Canvas.vue b/web/canvas-app/src/views/Canvas.vue index 6115edf..cc1170f 100644 --- a/web/canvas-app/src/views/Canvas.vue +++ b/web/canvas-app/src/views/Canvas.vue @@ -640,6 +640,7 @@ const pendingVideoNodes = () => nodes.value.filter(node => ) const persistVideoSyncResult = () => { + // Terminal video status can arrive before loadProject enables autosave. window.setTimeout(() => { saveProject() }, 0)