From 0bdc820247a938c160366ea0ee8a6de59e5fe4dd Mon Sep 17 00:00:00 2001 From: HouYunFei <1844025705@qq.com> Date: Tue, 18 Aug 2026 15:35:28 +0800 Subject: [PATCH] feat(canvas): remove Volcengine Ark protocol support and streamline video generation references --- CHANGELOG.md | 7 +- assets/metaso.jpg | Bin 0 -> 309738 bytes .../docs/canvas/canvas-node-manual.mdx | 2 +- .../docs/canvas/canvas-node-manual.zh-CN.mdx | 5 +- docs/content/docs/overview/features.mdx | 2 +- docs/content/docs/overview/features.zh-CN.mdx | 11 +- docs/content/docs/progress/pending-test.mdx | 2 +- .../docs/progress/pending-test.zh-CN.mdx | 1 - .../canvas/canvas-node-generation.ts | 5 +- .../components/layout/app-config-modal.tsx | 5 +- .../layout/channel-editor-drawer.tsx | 1 - web/src/components/video-settings-panel.tsx | 92 -------- web/src/i18n/locales/en-US.ts | 4 +- web/src/i18n/locales/zh-CN.ts | 4 +- .../lib/canvas/canvas-resource-references.ts | 5 +- web/src/lib/seedance-video.ts | 157 -------------- .../pages/canvas/hooks/use-plugin-host.tsx | 2 +- web/src/pages/canvas/project.tsx | 4 +- web/src/pages/video/index.tsx | 201 +++--------------- web/src/services/api/image.ts | 31 --- web/src/services/api/video.ts | 159 +------------- web/src/stores/use-config-store.ts | 35 +-- 22 files changed, 68 insertions(+), 667 deletions(-) create mode 100644 assets/metaso.jpg delete mode 100644 web/src/lib/seedance-video.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index e2929c0..1e16916 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,12 +3,13 @@ ## Unreleased + [新增] 提示词来源新增 Freestylefly GPT Image 2 内置来源。 ++ [调整] 移除火山方舟协议及 Seedance 专用适配。 ++ [调整] 画布默认使用移动工具,可直接拖动元素或空白画布,按住 Control 可临时框选节点。 ++ [调整] 双击多图节点统一放大预览图片,仅通过右上角张数按钮展开或收起图片组。 + [修复] 文本节点和生成配置新增独立的文本生成次数,默认一次且不再误用生图数量。 ++ [修复] 节点缩放期间暂停渲染提示词面板,避免导入图片后立即缩放导致页面崩溃。 + [优化] 图片工具条默认仅显示图标并移除图片、文本编辑入口,单击图片、文本或视频节点直接打开下方提示词面板。 + [优化] 画布多图展开状态改为由用户主动控制,操作画布其他区域时不再自动收起。 -+ [调整] 画布默认使用移动工具,可直接拖动元素或空白画布,按住 Control 可临时框选节点。 -+ [修复] 节点缩放期间暂停渲染提示词面板,避免导入图片后立即缩放导致页面崩溃。 -+ [调整] 双击多图节点统一放大预览图片,仅通过右上角张数按钮展开或收起图片组。 + [优化] 展开的多图子图支持双击直接放大预览,无需先设为主图。 ## v0.15.1 - 2026-08-07 diff --git a/assets/metaso.jpg b/assets/metaso.jpg new file mode 100644 index 0000000000000000000000000000000000000000..321f67b3d5e4bc52d391f8917caff0915c3cc6ff GIT binary patch literal 309738 zcmeEu^lT1@A9se?D;E1H)cxU3;x-ueI(y1ie*$jsJk+0RRB_a&KO}1AvE^+q(?+ z?qV*CT2@_{%YFMd+8_YHCA$8?0uqzSF+aoty?ZSMlngxG#Jsp|{!-~B0F+1IUK!oN zye4px(Q;C=Gjnn^ax?{GEzE6WtATHItM>3Kx z{UulKJ^$)A*Zn-)iN|03`& z0{OH&B#i(f|{nL zrnRl@K&5#E`%go@N(Wt^xxbzQKx)GIl#``L1qqd5p{Pz}Rn3}x?^nir88iM^vF23O z(tk`iHn}eLeEW0C(ch%vDO#he9p35cs>-)FC6$x{iwaCwp=y z^53M8L9QcDgL5;#%#KM7>jdS~5yu1``3|W%kwxsn)O)Bk6izI^7ZnM#lZ5Td)0B9Q z@3n75G{fnuv9RwR^G^3$*bZbcO8y$|5W#l^hM?^SZ%ok3TQT9`;i;Qs92cWqx^}x1 zGkOEAE|Y=$If4zWlZlkoud~eLm{+w(S<1VJf-5xKvkN6+=#@(RV`3i0O)i=Aqm=TQ zC#5C>X!8&;9%=*ZO6^}Jwj%AGp)&_8s}m{X81GW`du6|PSNT82tKJxIuA601a`a|Y zFUx4Jtku@eK-djgr}Ns|TFg1(z6?2$v8j5OyM3^c7l%~CQ9z7ea3=ZOmwQa;_GI|f zL-bL0!|IVdLaennA@`w)Ygaydr`}~RiS#!UEyIB-0i6|Nf|Oai`3l>(XE@F)@v(7M zMd31^SXmt0-Kl$Z67RBscbl=vkeyf}rB=6Zi*h_or{bN)k~FO3j{npXJ@#GGvRX%U zT@$2>IwLE5O}sr@lTYTZNWac~vL;yYj<{7?HI!pJ5)0g5K3|4VXw>QXnOXGyr!Vnx zdc~XX;)|)hKN&g%D~hNRsSFcO)!E{*uocMt@nhqi})+aIrW$@2IcL@W-e>Q7a@7LE28t(AaE;WH7J& z;6CQVJgoaJ)b z7`m{|0D!U_W~%@TX2s^p7Y@ja<1AfU3)GL=*-qkmPh?l0(F9WLtlg>yg%T zNtLMiWr{;bm1TYTm_5guM-R&wR*aoPEp|CX2z2;t)t!ARQOB{$0IPll*15wlaReK6V+`Wqww}@8CJ_#B%=A0MyO+vd1Y~R zM!NU$hqn->M1g=uVsle4tF4&Sv@84mcN3JWdO3+(LhA!>BX%<$Ykq!f$m8+~o~Z9? zt*?h4Q(sL^^(CeUg0AYE@>CXd%c~{~BUi<(G?#c+dXM{`=F~>}?Q3Yjy;=B9oj%J8 zFDGHmpNtJ)&AO`ijdR}Ui`}^59r8F63M%8LBp~vda)*+IxT7+)$)EeRFc2DHJl3h8{ZFD>nX;)#EHnQcoV; z>nzQ|N!iYx@36P&A;l%RvsuIXPH~rpl(iSy9W0hA@ez@Z71L-*Gw{F<2j+%S)$NB_ zWgvE-ZRJH6GBmFW0pzUXNAU7y}BY3 zDfi_K@}(}?Nu1S(tYW+S-c9a%`5txMwkCf1_hjfhPLH+V{_3yh87fF z-o@lD>x6mx<^29aVLZDN*uX)=#(m}n_<%?uj`!Y=T{X?Kg>9=8PUuPMDOteN*V*K< zWHQ`dCXkV{BxG6vqyH^TNJcmGBvcqM$Er+u{F0sxwMVL9HlmJZwZj0o_C%M zFDo~AblnC1&p3F>b(<6bE=qYVMzV8D!Rr$lu*>$5`4GKXyUpP6IMKRn&sp-2av3o~ zLT>&u-l6t%@E&tlgvhcjo{U(>nBeSQ1@TA^88rQ*c3ca&>r0~xb6RllEF!`PQISg) zb$1-)o75XUPRlEW(NBn+ZVoK2*3Lt0J8AvPh1S2Bri{!Gy(Jc)+E%Z;vJpFxUyg|O zq`2B<&T%$fta!0n=GADUV+Zrt@P%nO)}fH4Fo#2*OBtiT^~YS35)R8S{s(Q7i(=qQ zb8e@`0mB1XUAOma!MnjR)y(iX7v(OR(6D;)cPm=E+T1gSZn;$A%eGnc+?~-Hoyl== z;0e>lUBQC}Et`7VuAy?U;C@|PDZY^l9bWo9phZ?Km)8dJNp*B#Kc!lqp!bY(YtgxK zPhX_@p1YH(|D#pU!mpX;-OJlCN6-`I9Fo<(qi40Y$kDGq`k^I+PfllB3GOKvLN7H^ zRuilL(YuAg)C;pU9b>EIDHl_L`r5Gv>ukrB^BXUfYYE5Si#HSR7$K~xi%tq3SxCU^IYP(=<`AT|}in`g< z$r}-g49RqBEvlzvh}lmv3Gv`=NY*%N#geg%Ra*b%k&~>S_D)aRz_7km1KW;Dxah>3 z(aSn;djS=kGSQd7lgIj9^B;}*@0*xn0qOg}Q4C6!s0F^-FyYN(oQ1mF;%#T#IF~(A zV~Y1H##((ZN6{c=fs1V^RTQ<>_(*c>Zkt+)Ue2k%p& zwuLQZV~W!TjBdW%t)=Np*2euuOHr%Plska0xVg@1xCn=(*p@CR)zE*y)q3hJ_~d6! z$}A}jVT26%!%U>_!bg)pFw46K`e8gf{F|=!pcWXi7^6!l4uc&6+^BZS{s4Sf4P^p>PJZK-WskKBbx2)wB zHoNW&XhPQb8mszK#TrHKasIO>xOL!VU#n=mHI_dP8icrX(HJ(auRgO9xSGw3(Z6ha z_?kq9>ZwV|?V5XGl{>lQll%hh^t0hM7bf&oSN0Os~!< z6JbtMVS{Nr;PF{%y_u7MJsocGcCIF-U`vh&P2msq^k3@798%nms}n(fvXj_fQy&eZLXu|-nTshz zEL-rIvnxv_%;O}Yt1UeL4?59LK4P3rH(quby%)&&bhOE(-BY8=nJQU&PIxjTgFAo! zvLRVoti3KbhkoE0clPE;e&asZa!B4Tw*Y42dIF?tCg_MA>Biwh4m%K~hQl?BUrTg+ zRKHlb4V}X{S7@EGElp427h_;+qQ5B7o=3QLPef`M?@8LN{CT^!C8sUEMi{eU%1*EEtj+UcAZDod6MyTzHlI?TJVp11QNA4yzjl^3>}{Jn_17vDpyFU0cVXe4Z+B{3PJfB?h?EF zwZ^+O1m_c|%YFMzIUHnf@I$kSTY$BJ#nt&CyPe3znWup}@@G~(y zD`-PLW{ls<{$!FJJ22T}*|fBdPxN@`;-6@5F&yH;_z6UlLcq3mLKS`0T5CI1wivHR z93?eS{PNi#`kORU52K8y8t9~CLSA^eYZ7u^Ax#iu)tj`11@IS>UvpWTD%59lu+-3T zDj>_f~u+seX<&2t$a7c>d0Jd}&a|`UNG@J1on;7}#jQkm=HAaFNuxZf=!8vJ6Ti2DO(Zz=qnTPO&k&!GHFT+Yw9~B~{uATg(MJI$+lQ z@A1d=jYmv(RMJ`e1$=jcUH53UWN&GFHIjzrqqB&L!Xs(+)vAKX5qfG-`=!lwZxqSd z0EUZLftJb-7ss0xLj9R#0Y{L%Zm*gKpjw& z8{(+(4%v0-^m`yvU)E!6W>r-2q(<%yhwRyT+OY*kka33w*MGn3cGodnKZbZMFj-k* zDV>?@De81eu+jDr@Qa$LHCwKq@hJ#71_vX44WH;79v$hMz6}lMKI)5B$*5*--%b;7 zI1b|BoZeS4T4)OYTOvl9%9CVF;0=~1!+pI8k?=w?Hf?x4`RIz{4_{y~GP(B|lw4rt zVQGX=%F&{V^;x6Jo=C^EGnSi9k4KKj62gkX=WMBwFpT?Ybckq4axUg?o~ns`ZlcXQ zPMPn39*p&>P&TpMb-Abmu5fl4JXW#t3wMHI1pG#UXJ5%vp*N`DceX(N*wL%Jqs5LrWKGO!A*J- zUQV}iyq>~k|Jo*|HUrN^-R~e zfclxSmrrmx#RneN;GqP^y6yHx0z{9wcsYDkP1c|9uaN%=^=($p!cd#_-7wh(-91CT z<2to<=urudh%#H;4uy&JyRUFPmb5s1nmm{b+2U9$ta9BsEtzy8cCeQg7_y7m$M0uE z*$)$7%Bml)O$Kl}9|p=A$%qCzE*lcC_DWBaDNog$C_u$cCIc~^fZ5sp9v4i0t{9Ms zdWAI4M2<=h;cF#gF9NRy9EZunoQ_F_0zD8<^;Lrolj#<52jwj{&J_~WMtD|B&p9T0*03Zn+ zy2pAk)2>h>vfFfLpG6Ak#~ff|g2yb$IeL$S1u9Ms619pT3vc?h6vZe;Y*O^U5?}3K zOS~0Uxv?P37%GlvbcMhJL}tRja4UY{*0^-7E=Mj?C9E!Y zOcYhb;QkGO9Ga*^T4jd z33QHdccJx52U7Pk4~P#Tv}~d z8B-7Z8dX@+2BA#bF?<={2>%gZ_IcDFvoj24wug`r3NMA$i21l)77#fOl)mAve)V2J zH=Q;RpL->Z`m%XfW!k%MN@A~CbK?uQWdZgEb`M3)#VTlB<-CJFWFgf=l((I$nN9PZ zFT0|4=~yr0o*(+E;+r}3X}BD0-lnrm5%LdhSZ`L*VqqATj-$(cr5x>ihJw~t?`|Zw zmM{y4aOl?1uIto~y6KvK2XDr^+PLs`7B@NEGej(2NlQZnxpD;s z1!cQP+14xggWTT-Zw8jmn66j^LYxELIlV0~LHFOG%Y-k7p(?!9b7eW@|5e~7>t5i{a#CQ5 zmNyX%J>9)S*X*$=ZTDUMXjsT!pOS_X>*9;-p?;9jhi~wtl4esxT|{zhvxfLSSbKui z=H*Sh;Wq+hpSg#~FujMDp!GGZw96l2oRGb>aq3>0eQIg)r`4#@*E!^YBtqboa}X7U zo|AfW45*pC14Dcp<2{qxPFslHPVd!<&->qV-9COX@_G~{F&LM zPt!puarxs}?!KtwahT`+GlAOxrtku-_L6a=oQJ{JAtLHOADKd4unAJVk-%gNJ@~&+ zv>hPB%OxW+ul347@E;vo|Kr!X0JaYn@M|-ORbz!FP26e#C2@)Di6Eml3DKBki) zs3t#3v&?Wja(JzHKK=TPvXKKADqKk}G}mi7zhfwFhYIY~-19RDmd3nWs8es{qK9~- z{&HVrrO0)!9zKUW4f&rkb*L9(9^jkD!C{cxne4XbZCAJD+AE>wFG$~>j!5%iUVlq0 zB>K?!M9uKLi%PC8|$97@44LHFM zQQIc_ZVM!@k+b})#-T#MK{B&pT+$$-dkG>AUbu?zr){FoDZ(gM+GXS&x>gmE~!w{>QO?k zR6*xxkIm{tMZlx~QUh2Tf$(td=sO+uV@;ux27xvTw=y8bU;w)2V2!wz% ziz!?>=jTmW^ox};2AkQOKdV10vveY_yUO7Vo5$Ly#k+MEqbK`7(q!|v=78RjZ9n>8 zg@rksDY!(%dvUCB>CWVu-Lon~Ok!S^z=zTEyn945#c>aNbejgM2$v954Q_9tZL8J0 zNXiK-l=>U|U;F2$gOhk-o5}TdMP&MyfvM${^(tYwieiTE-pJ^=A5eB0Q2ZP#l#bWN zm9&fTaeBW_1w$SFh203EBJz+uK7&l=WL||C_e^?SJ)70nGtejX_34%T008IP{QPLc zik0~|wAplq(8{jb$Q7YV?i?m%s24n~8%00ltQQ8u4Gk$Z@6urUIWhzFn^jK;o43Yr zsf5c@ms4X_;;BUwh~XwQfYLwu+F5Mv*%rIHLZ1hENq(t+d=c;A-d(NpU1M}9Gu2Ef zwdpuQChT+jGv>)Qq z`=palsdT-}oL+bWN2Q%e3TXKJ_d>S7NH6!uTav@<{n?eNeUv<2?chM^4qTrQ<6&BI z$69c7pK0J)I)Xa2#4+lL2Ip3qAnMq2$+g65W9JOwu)X?&#?jY&JepZ8QMu7=vrwh+ zqeT`1orAG;bDI3t*9FH-I||d_>l3B_8R=(ST$t0NR77zc{mbHKkox`RD-VoUD)LGJ zmen(zDi;HO^KqPgdDLY#deoSdKrxBG_-M-yWuAr>x7!1c2OG=NcgO>&HN+u*%6t){ z0c3JKww}4JNbEKg{*Rnr_4L;g`GX4`sa&qWF!Thgt=3_N-ffI5ymsQ(PR^^X5f@X` zv8mqf%?Hvr_pkuBj$9R$QrPZ63e*jSOe-dHC&awDFFW2-3gAeq=W>}8fqn&{K%wPS z*HinlzfTr+wuB10h=bPpGLwHZ{RZfIcayy5ATuBxE`mS_7`V3{5w1LB$R*}Qw^sh~ zendlGzk1N?DByE z4)yuF*-cEoV-k9||C%FONH^vR$wKv@xu&JG6M-x0-5G?zGGc3b-F6}``h<3Thbw!Q z6H;y%Y(ow2@m(Mt)+?2TaAI%{ylJXh!z+eOM(RbQFFuL0=j!nPLtlzcfnXr@0!{1!08~apeOU9-#GqpB? z`&e6OU8kUPxRrG^L+M(J^ugh|+nAjBz0V&8LMz$sQQ(uy@xV^p2qU8I)zj)+ z$mOc}K>S&EgwIl>43Bwu9i9L841!3H+=?mS^UZ7gn8EfpD|T*?V>}}?FnEl z{!@X<396^>d~}0fsu5ZxP(0g9RFYUjOw< z<{lpre-tr@#c}SW0LF>lINo14TS~GUP`a`7M$QKwOf7+d76kKl-#7y|uk~|}!AMM= zQu+3?wDW#ENgQz1w@3W+gIJcJAKv%$oj9;W;><6L}hu9r%IQ<^O<(A(Cy3!deJ*6XnmZsC5H)`nTAabOaB_mXkE~6G|GJ)k$h9qybJaXotuRc1 zt_t%sth+y~w=IYWCzM*Ex!M8IQI9Jd(9g(k z+a;z}c*U?VPS;j1L@2V@=DDE1vSj$~T6f5+P@`W*0VUpK|6wkA51mT}9}vaIac@#A^X@YD66TaZN{Y;@X`3{Nu&mAO`a>Uhay zG+(U$(#Y~&6e-(xUNfs|ogK{3_W98#gU#7^k-;rAkz{P{?Ibpasm2qH2eLxG1_lu0 ze9j~%aT}=z8gd>}X-=3dR_p!7y_Pvp^m|j`M0|*RxW!xdPHe}}e(tr2qfX7O zY8^TsUhxb2;EuQs-p;36s})aMm*H}~o}!DhXEn-csmsTksy9|+x&=2`_{ON?K#Tx2 zd_Bc{9&-BqVXMpa!m5}wvIQGoHQm__yt>Q-JHz_psC?!_pYUv9yb>`pseymFXL?3G zJ+Xl3AvRF}JW}Kzu-7v!IQGju)74=+==;_c!THgG7 zBr;|DE}4)(-q%8*cAC}KEaO_yolM40XW;O6w#*U_pG}?LtI{AQlnB3QjmWv0ym!A# z<{XNTTy+RzMDQIgYq&4%uIlH(<{NAqqd4$umC~q$f75E2+;!!X&KXh*tF;|_c2*?9 zw!%fvU_SDBfu&tbe|Q49^hCn&BI8U&i6P&mTb7EG(JkJi8=%P?@&?pP==}en&4D#c}M&9q?!GjPR)lhI7EbLPL%; z#V=0lIDljC7*{G}A;e6t^88nFh{IvG3gpi5W9~Jr6|TkDY0B{F{exMFXpn)HZH?4* z&oBKfBtj`KH?^MGYB?LjLkJ8FVa}>}P6%!4*5X6$>J*UsrnTV^IXQUG6?Z+Q1uwLFz&)m56 zV1(q&?e_3h#12G!=&TlA2FY6@>LpUWpGmBmdhqzR1%uP$p4_hu-MQ8<=Cf27dT!c3 zGa8tlpHA2}2f6M;cy!HpK&NwX5h!ePGlFMJ>eYyKa`5LLxB3G(MJMuLD(plHe7T$F z&Ah=M{B(70w_J91U_;t0*nJO%B~GKn-OGkPt^@}L*zI_k)JP{^ul4otrFngWwEA~FPLYoqF7{oTH}y#K7l$ej-V#g@dO0En z!HOH4>u$L+mcvv@NAKum8S8)7HNJjW!XN8pWZJP zDJT7x6M4T$$Ppn%)7qulXz^8d-fT@iTYn`lgtqh(x{5%KY5b7(Ql>RmTGo%aIUjPZ z64wgT^~E=Mbio#X|7y+KPOdN9VXNZS2X)n`3mY*+me1vS%>GqJ`!m@2aU;XoJwQEm zBY6;Ze8gG;vyXk=t^R-%E9+|m^I1tBxSP7}wAsE&`FcvAMQvJqk8d!@$sb7-6U!kW z60WcgM>N5GDr#zBbmrbR^S13a4r=`JKaK<$MN2gEMPPOYpOXY+sMvqWtf7CpxqN3L zEQwkp*~Sq!r{#I7=H{!)+T=Fs-+)9nTW{+Q3a?k-kg_LM=usu5-~d^=*DgJhLkP|B zOt%mHK0a!SCCj<4r{sp8=6uu{XUO1)vN3}HP6{_FO?+AWCv~c$$6zC?W^0ZdVhPWK zIvk#!GWME--Fl;;^W~;eiFd`na_+6Rbp&bqsm-=32v5-CXEp?S7@`9UNnazH#&tIz z>sa*_xp2LdD0q}M_W3d=usS#LL@sh6Jx5ZqV!4w-aiMl({kb3Fs+-8?gXu?`x@ey> z1FQEq=P`fR7F>A$@#AmG6v7vVdm^KZr!4Ey%^X}k`8xWp972xoU&EfTv$Ml2tgL!* zfl!~lleF{MjLG?`Jv@agb$pBum>Eay>(`$Y7E`0A5<*bRS2qPOAn88zqj)^#@r9|R zsS7kpaAH#~bK$Z~X)L4!3R%pHb5V?wDxXNEv}@*)9vgS7>^AmE6wbd-2IZmeM-lqC zul8IFG)qm4CAe9A{edu7?jLtoq8&d_@zVETK~gn9s_eeNcF*&F4n8K_OTyPc@wu}_ z8K$lMDLO75pmGj&%6-8@-Kg_Bm&Ginba?i)sp_|RM*Uz_9|!kPD<)e`p}=>5MZ89? zmTlf;X13XFInuKf(e?8VF6r}IK-QEDxSSh?p4Q*r*<_{4l>b4S{`gZva7OoHp+*%% zZfyXW!KVF=7&9#ZxQH=Epqn{jdvCe5$*=#3j$`D1%sPt|0&5bgcZ!KR< zBDpbFmY-|=BV#F*Dv4dzrr{6Ya;wvi&J$5PO&jv3x}P@f&sTo<@fQJ>@37_G+z!mv z{rm)pjT$$eI5zDq%ZpZAio`ldU7>- zR`|0FjO=$}^akW2H`Mp}JI784&cCj>)z+Z&?JJ|h$3sY zT#OKRg>?P(>Sq3!7JQ#i&N=?5u^k^qgqH;vvywUYk!hC~&!!7)^#$nmor;3^zSCDG zD|94AFcc7*CxWVJeH`mt=K9-AZJQf;SQzBOK0UV-#~jn4ikq;!5aYx1^DI_SaZB@m zI7NgLZGFj9k8J%=A0&J?l}lZ5RwVL%p@y8>0PcSc1jwas0;z>bAa5-`V$QQ9foelb zj_kWu&>NRO>^iM=V8~QVPbsxF7PG;Ga_p@T!rZ2u!B!H}o)SS+xNm=`cZkm{oaFdP z99B2(K|cIoxQYE}%n~MTzq+fg^MJ+MTXj=o-}zl+9dAB*8(L@cvmI;=EB>mWH?cI| z)Z51ul0qafT2!Z7=L#vdqxCIsHtsB`j z=)d}dCWN#dLp?2%oU_7f>rh?91WM2AyIRMxZ?M@~ z)6~n)d@1W)bM>$|dIc@~n!x{u{ZIh5;H%V+Uukv_GUVBtUaUVyPEG)C@SyO{T$pai>%fFADez?cI zc%2PqP4!(A7i##te4m%Vt^MG;69o!?B}$AF+1rr?JDD&NRN8Z0F4oRV zaZ-|2QmU%uq1G-J6fgg1Xs$swV3s(;%U!GrZw%S;AM`2dKRFH59k~n^A|cau%cHR6 z>(*la411m9JkZ`I5j&Pv!AQR^fyrq7B)F_HvzGGR#;wr-RE$6wJoP{TVw`Y~#OEeL zfHJG!^>fw)jUB`tU9uNm+2$1ne1Bm1j)*L3(q?-b>bf^qkFNK}cxQBd2+CLq*08ak zmssol{&P^dzLs*z79_a+;&RYg?zcM6ZfzCgS+Gtff~q8z!C;f?cQ4pjm)P1u zX&pEoD`0;3%Pt3bz{&nJJ(l5E#B(Q5F6zwLvu7cy@-%XUTMpT>+}DI#`h&Z_zekYK zH|1y;cXG@SY=!e_2@K6ou4Cfxp;&^x!}H=m)Zl8$4w5 zE%x1?PG<2J;f8z{WcwRsPxVbcR zrYfmj+AbV3@9*MU7*XX*VvnrT#psG?o?UqgHtB!S|D81b7lN$5WFk9JoAkUhrt%)V z$JlNj6f*#PZ$qk?%Wfc9$WXVz$>JrDj^}-v7m@@9oxlv&mCW-ak%a0QhYqj~LOF%r zyqsco&TBxq68n?Ly88tt<;%(WI+cd=d^|wM@H@JUj6q2p3zI@=FzFYZu+d-*<6$24?qNkR zgU@C7t{~Qj_-xKvu8Ga9QJp-XjA+UDB2PS@4{q|)5c!7Xo803D-s;yWF9edd zwVfS5RT|JPyzmPn^DQven4H#iTUJofIUk*cHeP!FY{$jS>pR@5k3#J?uZ(tIfR!Rw za#;A0jB!O|`}FUeEzJ`BpE1X)oh-@FJ$u^YOe&t8e`O&Bws2~zfzF~1%W>&v%Lj9a z-j?t-rKcdulb*_z04}LH^M5{M`u2ct%1>38>qd28YE_H<`V3T-qC)X>gKOcLXTV#Q z1SiQD3Oy2e1BYQ#)<++JYTaL6KUZx~(TBvHpkJFmevxpUx44+{xJ*{pM|6gsVeI^ZpX zlmvZabJ^1K{iu3l`ODkt-0%BsXJS3aAFXqUD6V*QEMG5Fs7@}Q`{9JS_NGJU!jocRW5>TCz+?^IxfidyKUp0Nm9p^p^`u&6T17Uj0{u_7lg%>yIGSDN5ACj2 zJMP~COqbvin@IUt8&X{%8ePd+yx6As7Y!nx9q#V04d|ztqiqvfOzCwV z{Vjv*@GTDG&i- z38So8QxUs>5Dq@Z)chFT$-S?#8{DFTbsyDW0IXyxaJb~+!Dl{v)jAt??h%rM>BH!*Vc&E`v0F_6?>#^ie_g$T zZ`#AzaY=gD%D~9%36`%B@k~m?Ug{F7`qfM0(0VL4mNltMu2C{jUVn;+z;6!>ZfnFp zRZ`80v&Q3XBykt3ck_*39&A&C)aI$Q>#^eN^`kG&>FJMzKi8Ckg6(6M`p1m z6Q@_X=nOL`Gc6dh1<1wsbmOcS_IseV;%wX&Z*`~vl~&!6WKITi)FNR>=M7q+v~US7 ziL;FR?*natFZ7?vn&y}Z>@ z>G&;5vBMM+r8ZeI>(!Jn{s6%98(R1{>3aM$w$0;f@GH!-Qt9_RR{W&83*L(rnhI7{ zve(mosM4zX&fDAdz43uMAAXo`0%ry!JKicPhl=);3?XOp+aeEegx_nl-!2=?WQtUb z?tU&VWVU(KU#g^;@dzN-QPu0CE?FWVsVu@AnzP^9(zK&+YnP+;wCBv2x?UgO;nt=) zb^|AGo%@m)F2SdJl7Ur*qsjC?!6)@Q_~teyC2BnOPbfq3LVC!teAk(xg4$$k=LSo( zF9Qe-4q6t?Nbdu9-;~Upt!mc@E1pk->@QdWQOeOF9mU5djF^v(j{RQ8$EwdYJh0zZ zk31SOPOdvcU(QEyH151uy4i@Y&BS|jQ){Icu^BWuTbGo=4T;ira->E$eAhXaUqm`< zueU>2A|;ANE?z?o#Z|TR$y$c&p$28{P>F@6ReR2NDi;#IDXaY*r|Xd>;KTLCj_YR) zKWUKlz(v0O`MOc!-G(p2^8JbyP9_te!|cM-}+x{xPBjvBA^I*C(^ zzmdoyNKFDcmzv_kdJ9n;8<&lmP$T~PAhIuw^lvWs{290SbX215>^Nro(lCFZ{GEU= z+4Cy8CB0~~WwQrC5^Je}n$XPoqL;vjNr%sW{)ucmmgFAXng>#O_$+kBQ$05)OZt_G z9*|tmM}CL*ap{&Z*4ue0>GU<%!JxNe*E`?Z-iw9I0|!1`$I{q1{eW_# zU3cs(DQ69o$|WAtut=4Ndo~L#6%={pMQ)gdzV*xfoil!fExFqvr>#znuAns$!`%Y=AgZH>cB@nwghRTsEGBkf^luv$BJ|2$S;n`$2 za!ta#2Wa7ty`BLG{r;J7`kWKIkE;E0cA2dva~p7Zl*gh<90cOvGs(ipc9X9*VkPyCKF=P=*VtOka*qi;Be^`k zQH$&DB1S(hV~m^dppo0FrS4ANd*ch)s=x=b-nuum0+@qWW_&?srBI{8hPWi{VxR?n z{Hers&TwyIVfGb8&M=ReC!yAOH8>qAZS(<_=A_n=(+XG>SS%&;Y^$o zlrh*l%dJE&?0Da1iSR|`7Y;mMvYrsTsj&o!4Rffr@a9GwU(rpNGpQ-WMhBP7 zd`QHWE|lcs84q3C*7mw)-AXNwRMbx%pMrO!^3gDmClkg z8t%Px5~x{h&0jgbSx|CApr#yp(2qVxjY^#?KU5lcdU)3h+1kF~H$_eh;N<4k21 zr*EOhn_r(dqkhC7IZ$sevyQcG4K;vl1&kr{hA!cVd?eH@K zjGiTMezZGMd9YxWt)1p2s_iq?trkm_t3#ZA>+Q920NqQnIT4?Mf)icXhXs|w6jAwC}OJNFEI_EQP( zY2SQQN;WXD^vbgT{$k{szH+-QbWUFuM$<|~Jf11Y68CrlnCDSBl;`#c}w-j}pTMjqmgWP0r>7ogO{RwhV zyzu-Ng16M!mC)n0_zb?kfo}PfzF_^AyF_pP$2@+s%sv;pcsInAfeO)Qqm!v zQqmpL4bmXpJW9BvbhAh|(jC%`(p}OixisJ1U47o)H-GG|?0RC(^qHB-6(MoVyK zxVxWyY-lg%6*3JV1$WEFQe!q< zz4}{W-qeC!I;*2uK!M}T<776s=1KkM&w6R;%mC=r`WiT`S_>vsSPZl@P)KSzhODyxy*02;qh{kUw>_oMGNqL?=Rz=YqYMCH^ws1e$>JktxK4&c~`xg znA~Aq9LWn(Uc*KfS`0f6eYdg(#S(UGu&hl{$l>&qA(==ZVF2QqHZD#Mh4wy93|vfF zfi?fiN9##Ea@w^9i@3CEOaQYCc%&mfHFwo|@F=)9&D4uLoIL8;L63p$8fsZ3b2T%^ ze;FWQcSltO*s*xg(=K}aBY}{U)gJE42-UJ4P3f}CCGKJPZmnf`mu0lD!e@tr$iIj+ z5-?sAL1#-B+QLs$mKqmypf%4p0nF0Z=X!HdNhuZ2l}28vUpwt`lQu5iG!BGV8UsV3 zjXfd1z4dU6oNR#lFMB#R2`#TqA1|R?Sn_*CBIvz#(a*e^oF(zLRTDAf5&4L4W#&!^Rj| z-(2-(txVyk2*!oa9sopv8NmQ^CS2)qYBw)$#1P&OdsjAsia@i-PhL5TcaBO#=EG~=$P2H@gC!kvHpqR>;5J!*J7uz2{(W-dZqr$z&du0vb2G2A|5cFG6BU$z z6u#lqe|>OIdXru73fb`(s?Y8z?$)<=ES1L&8;21eNY;PQOSKJ2vb&GYKA)c#6L z;)sn5i0Q^saCY_+vg%T-%h+;BR+1fx2@{zWZE#T3yeBl!ho`)WdvtD>bNWQ}`S0vn zX1>zzymWpWQhT4w`n3hUl&p!;X|E-#vg`9C>ky_891DMq)i1SM`A#Rd_ETFpBsvSX zw5oadVEjg23lNgRQDy6xB=wpP-xnyI+fg4;xx5P~6&1aZe%+C`o8W36{Th{7MQR|} zyqu6`@Nwu+3VATXmju!ZlP~6#gZFO_q4#bagEfhiMQ{lo-+uW4y&;@cm32;5eJ=AG zi!(u477Pw^6F#W6!N@^hIt{a%QKO^0*%r4Se=bbry!JDSv!DOHc6FxSEA(~jI3_8g z3CnCcCcJg@+8Q$6;_|AWU2Y5SqAQ0lLx+e>jXFb0#e%73l1$zp1QUFd`f(ZXHy|MB z@^U)y&bU=S@xE#{FPZA&mTu4@TFlGL8K`huN=aI{4#S%BE>B>#qY!AWsT68xmzhcTP3IQL8p4^?m$l4T@*>q!Z_)oyK15(AS5rGkGM;o+ zcI3+Gt$`4!NwUAIvg?I%S(L27sM9hzhpf+&O_I{$PTBE@@sK8QxEeWc7&WI zn`bl0QS?aF$VVT0K-ptzT+#%171S5rGo?^8+Ik=T^gm9bPvo02ep9FJZdR62*K!K| zPZqU&`-xj~GfN!E-~kGGy`RH4%dbDwB3q`=@Jh>2mXCQ%;dM%7E8jkM)lTfR z?@$)Jyks^-Flu7B0a1wUt=UE!|C_+EtAEZfsB4*Oup4S^_p6KNo@n@oF%US zvrqUSjgjPvHk6VPI%2rou-#WjqxZ|RiD~e7Q%D}WKJUCy_vJN|>*9S9pIaHjKVL}^ z`vEbm2ti7A)S?6vmnza)XQLZemWlpZCSbMIpL6VW+}@^ou2LnB?cu5X)#Cm{;#7)! z@|XK*w0Re^T#88+9Px=5fJjf$(Co}O@Aa>R#)9(Efk7CDU zEjNyuQk<^^YLOK7iO(C-QB7rb;kR#DSUAK|G@g6DiCpW{F3l;owaO-YUVl0HudR=j z_tJs3H}(abeBhAli1fx7VO^K_au=O0`}|YXH$t-I)+lK*xyts845(@Hyf}=F14#o7 zE@H6DeTyi0e`R9Sw0yBhnV|O5AhFE}fWVzGveD=V!iQ``zf>2xUe|J^D<7>u-s`qrQTzr zaMQ@MG=9H-+&I!uF|$gpN_^^t-p;1tb6)dc$KcnmooA|>9c|Pvl<5g%Hhk(ty*uy1 zCxk;TGI64XksZ7^+lg#05j5RhyDCi|Z)s%$dS&wf-;Kp|K6p$_?1O2-N4aII z{To1qZUEmZGH>uP!+lUfVPZKMMR_*VOKe}02mfI<>`wK|v5GF?eHMq;q4IY-^ zZ-ud(%dINvwO((%$((+{FH+sp+}Rg$V3xcp z!a4n}3gftJpBSk`VJ4F55FhP)`(hxG%`8f*P6dv)wB&dyd-<~(6Xxs018htt>4M8d z`QXz;F0+Jgx45vGgcEAR?N*2379W^ata6|jftjM&q)Cp*$M99zyHLY8^BsUK3ysghW1%v9p60__( zF0Mj;(1MZ9HnL;oWQ$Muf<+26UnJpLJ`Gb00-AiHmM8&9)A!0Z1UtH}FZX}`xa@El z&?OmzND|>P48n3^P|~fke~kVZov3zd>ExJL528J<5!uONin#(8Z1le)5UNE=b7x$a z+tw4NsfsMS2KP|6l$JB4{aM)eFk>^{aq__btgag@d|HO zeqCPnLoY(04ZK6`43O)ysns4t1o5I%mdo+pp#^+QnBLiBPil5u695B&nWa85e8Rv8kI=vx@=r}V1A&aWR4ce(BBtiCu4F~S>4^L(c~SJU7Il`qk~OQ5!L3_n6R_-?iQnTYhNci-i5%xRa}z5M#P)_4rH z<$+=jug=|n8sidVt@QM+;#5d5waZUl_3-S z67Z?Jm4pn>`)FR!p6w{s`w5fU`P4xt8$xoy=Tt#aV}v6ZgVk&>IkD2xp(rKAAEzTT zZ1fqB@vkyx{A6yRwYT8S$T5OoCgSox;a}VPZsn+Dpfr|lGZ^7j0_L~#aNX)%NV>ZReas3CJ zrwJ2d2Hm_>6b*Shqyiq13Nm2%wn_>0>8I8+cT29lDQ_D@4xFdA9ZF+or|9(b^0zod zFd7g_Kx$;&2e2s&TkZ`(MxBEI(W}?0*uQ{~$60H%bE$1gZcsYHZIbTxWS2A z(JR>G`1}DLTRpR9XakV@J{X^=&~3> z@jU;beltYAPI0Q6|6O1BHZ0^uX{u@$Yu2;I@92}qTHB(7x!{M$8k*VV%y`#owGQ{T z%^SO4hrbi-1DtCy1XH ziL4~=NchxaCrMC1d(#%4Yi(ILxS8LMg-58*i~+_l{fHl4vBozn;GEvS7k*3TCdi)m zE~EjLHItHL<*?v7Kr)9$Y$l+d=%>KqlPOA=M>IYr0)Lgcb?-1+K-b}OYrYMEQrq}DBtHk2@>HAt*yf#`D5^&Z5 zLp_h)!LV+h$cf^8t;%jaja4Ciez&plCRpI7zcI>H@dsrB> zY+xj4rSzs#kZQmAx`B|Ip~1E<+A8uiz>wW3ilS%NW^k4)ILcZ$&+d2~^e8rV zU3i51RO|+t>-|U?_n+6u&dCY%Mp$S74KGsQA02k_dUKqQEO?(igH9UAZK|W@l1N6% z$kg3yGB7nOuxJKy-&L|3CFeO9LV%WU%GQr3G(FZoa3eiWwb*!w&4FQ3+ncE99*ZM+ zxh?sTR;h<4c=OcZ3nq4H)Us7WraF;pA#UYOb{1j;_YW<4*0`Llmxn998ArjqvnU4F zh^uGn!lAql*Db!?lMj^&FT1v*yJtW;>Lo~q; zu7hxQ-Etg@XdW6YuTXlynlOO|@DAkBG2Hv@DLN=t8kOPV(>CzdudO*?0K->mdZS-$3M@V^m4U_l`^o)6RmzUxv8 zr?q{jV7WlS{1?|LE!Bs9C2&FE&c7MDpUDibbe&y?h=IBvUo5O_e^9oZTu8F66b0mAulH}FgAsqSVll@Fg z6jf7s&j{yMstB7WhS^O6x?@$bhf;Mecs}emM#>~oa2Sbi^1O=O-R{YLc+DUP&!yNw zH^(Yy9a&cO$_O^`{Hl-!UkL~_yh!)VVM*=8Wl!(;=ERi4epGe;o-egT+=<#4buq_D zvfog_HmQVwQww+V)m)kMn$;5km%67bs>8VX$13D5ApQ~ORlEbj_A#N7>-QKFUeONM zNH>Ug5)$K#mog)e-^Bb>QXpHXC0q45SS_hmH*U1#rg~_v`n>4v=LM?eu0BwYT`*&^ zz1%55zbwzHsIc1fO#IP2Lkh=!TmK2}5#!5R3dbYb`Uk#j!L*J2NcWPU2oa3&O>tiR zG=8=;G;5#C=@zPd5ebNM&Y`Kw^j}pBG7zszOZNq4!ZX%rA*NDu#4iu$Og7QPKJ0%+RFAqSii-U7B)=Wb`9^mK0s>$pwXNG1et_Q|+^wcH7&A z6>D`!1H7tRVX*1e--t)heO`~lbG>?-L9RjN5S8pMDq?j)wdCfYq6B#J*heZ2`)V`xVD}OujF~I02q~Wm z#JBntUlH%Ap*M%&gqkreC}N92XmswUyz=#c&-6Idf12lM;X-DOJlV zCtO{&TaoI@p#BUygm;G63Ye#VAfTuiC6#UNr>CR5bNEZx6N>a{zQ&C z7>pW60pIG)K07}I^w%i_5}r`^yq%tAN*I^i45|aUQDDo zrZCOM*O{tVy|X~JZJdJhwmV8iu_OduN5m_ziEn0c$Zl^ z6y*2>QSu93fgrs$*GP~3n1B+U+4B#!?$OFU4}e8(WnA`y`pcSIFW7=@D60OkVdH<^ z8(3pePAd^Ku_n5FFieY_;O|Hw2_`n$RR?0rSM@4Zg@6zmn_xvSZth0>3GuaA(>8Cg z9wRFgHjp8g8JUao2RYyfLb#Bu7xBsw;%15?v#F`HG|tFj#c>cPq<_D$pvdLQzgfd0 zA3~HbrT0|GbX7~YOD5BBmY^|JzpKl18*fCpR2Hv>)-NV_0+FB%$o5-T@9w7*pQwfi?U86 zF6SX~|9gV^H7mpCqMB2XgM4#9@Yn0~`2SBV`OemLL54`V#Qf5m#j^ zn09awI3Dnr|2aQD{|_LJ;S_67i3Pl*vHm#RaQhLlO7MkwHs2t!77}_O*NKIRsXzce z3Ic>^Tm@6sWof-VHB~JsPec8M|1EVze5If!!2^EC z{ZL&kIU>)v;3+)mm8A@-)_gxsK`SvJ87xxqu-@JC*gokS%$P)HmO7)@#E=!M|Lg{) z9>!*0%R}P__7{{!7|g*&HGd#L(ueQmdix`Z4*XuKeNx0S~cKTrdnovZj zKn+Msj5ejgyroBDE7EDQS^Oq{vzY1@9zXWL_rqFwLZ^VOce%<%FL-E?33PtjReLg2 zB7{iG50qPK(rvM&6;jS76P4A!0sQ&KO1JOJO)SV`RS;(dKltVwnO-F97ssE@_!IAA zl-A{ivFDMdsZrB7467Jt(56&`C;N4j*P=I0;iOJ{nq&45wui@TS zhHxMSEPS)f*bOjTQZngv1>@M{&&?si$7cFhJqwXo0_=ZKqQH5Jasf`FRFD5b~lz z+SOv|A`Ft6%Z!k(xx$uWTi(|`N#T#{iw1vE-&OFUC&nfG8o`p2$TH$JQ4LG>+O5=T z@?M7E)T0S$OmEZl5TD1{r&Q0+XjpLMQ`!M(+V9CYpapq(WXbTvI5-gKN{dMF_Z~ye zgt_u#q+&X6hbeyWfC&!&%0#m`lyd)krvhmcz`$WI7j2Zx{N%$z7Z+0|?)8kDl;;6Q zyeN9wZ02qx%>J2fPJ~L$k0)-blH_m45>r;&NQ)#=UUOn7ut=POc+6!rU)>tIo(P&# z-SJwo3ju}V;o92@E1&nDs0%e0TzWgI3+px32I}ST=q2t7O-Pl_9#U_1DGh|K-5?lCpeGWDW`lC)mWJHYaHT5V9YT~*=a%q3Gu zs*7Quq+5n=chMNP+jqe-@!bac3#+=!R#N@Ie8?@h8OCwuS;TJ96% z0kLB7SJZAsZgUQ(|HS9*;;91imCaw-68jKp%c6*r_5n^_e~LqhKdE# zUqq5V@Yo#x2TU=bPq9xg<|H)X=!v8R`4$NTrt{kLazRQzGe&6#3&FnOdemT*ch!)< z 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πs=_KF1G<&3&2M_o7^#~Lq)sM)^)NT!{fF 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 CJOzIM literal 0 HcmV?d00001 diff --git a/docs/content/docs/canvas/canvas-node-manual.mdx b/docs/content/docs/canvas/canvas-node-manual.mdx index c262a4f..91c7b3b 100644 --- a/docs/content/docs/canvas/canvas-node-manual.mdx +++ b/docs/content/docs/canvas/canvas-node-manual.mdx @@ -30,7 +30,7 @@ To generate an image from text, prepare the prompt and select **Generate Image** Create a video node from the toolbar or upload a local video. Video nodes use the native player. An empty video node can generate into itself, while generation started from text, images, or configuration nodes creates a connected video node. -The OpenAI-compatible flow uses `POST /v1/videos`, `GET /v1/videos/{id}`, and `GET /v1/videos/{id}/content`. For Volcengine Ark Agent Plan and Seedance 2.0, use `https://ark.cn-beijing.volces.com/api/plan/v3` and enter the model name manually because this endpoint does not expose OpenAI's `/models` API. +The OpenAI-compatible flow uses `POST /v1/videos`, `GET /v1/videos/{id}`, and `GET /v1/videos/{id}/content`. ## Recommended workflow diff --git a/docs/content/docs/canvas/canvas-node-manual.zh-CN.mdx b/docs/content/docs/canvas/canvas-node-manual.zh-CN.mdx index 6b93321..187dbb6 100644 --- a/docs/content/docs/canvas/canvas-node-manual.zh-CN.mdx +++ b/docs/content/docs/canvas/canvas-node-manual.zh-CN.mdx @@ -26,7 +26,7 @@ description: 当前画布节点的主要用途与操作流程 - 输入内容可以手写,也可以从提示词库选择。 - 输入框支持 `@` 引用已连接的图片、文本、视频、音频资源;`@` 引用图片时会在输入框内直接显示真实缩略图,发送时按当前连接自动编号交给模型。因此不需要再记忆「图片1 / 文本1」编号,画布节点右上角也不再显示资源角标。 - 对话框里的模型下拉来自全局配置里已拉取的模型列表;选择结果只作用于当前节点,不会修改其它节点或全局默认模型。 -- 如果下拉中没有模型,需要先打开配置弹窗拉取模型列表,并设置默认生图模型和默认文本模型。火山方舟 Agent Plan 若提示不支持 `/models`,请手动填写模型名。 +- 如果下拉中没有模型,需要先打开配置弹窗拉取模型列表,并设置默认生图模型和默认文本模型。 ### 用文本节点生成图片 @@ -53,9 +53,6 @@ description: 当前画布节点的主要用途与操作流程 - 从文本、图片或配置节点创建视频生成时,会在右侧生成新的视频节点并自动连接。 - 生成配置节点的视频模式会读取上游文本作为 prompt,读取上游图片作为参考图,读取上游视频作为参考视频,并在输入预览里显示参考视频。 - 视频生成接口支持 OpenAI 风格的 `POST /v1/videos`、`GET /v1/videos/{id}` 和 `GET /v1/videos/{id}/content`。 -- 使用火山方舟 Agent Plan / Seedance 2.0 时,Base URL 配置为 `https://ark.cn-beijing.volces.com/api/plan/v3`,模型名使用 Seedance 2.0 对应模型;系统会改用 `POST /contents/generations/tasks` 创建异步任务,并轮询 `GET /contents/generations/tasks/{id}`。 -- Agent Plan 专属 `/api/plan/v3` 当前未提供 OpenAI `/models` 模型列表接口,配置弹窗不会伪造模型列表;请手动填写 `doubao-seedance-2.0` 或文档列出的其他可用模型。 -- Seedance 参考视频更建议使用公网可访问 URL;本地素材由前端读取后传给兼容接口,是否可用取决于具体上游。 ### 推荐流程 diff --git a/docs/content/docs/overview/features.mdx b/docs/content/docs/overview/features.mdx index 1857ef3..8e0cce8 100644 --- a/docs/content/docs/overview/features.mdx +++ b/docs/content/docs/overview/features.mdx @@ -30,7 +30,7 @@ description: Major features available in the current project - Connect to user-provided OpenAI-compatible endpoints directly from the browser. - Configure multiple channels, fetch or enter model names, and choose default text, image, and video models. - Support image count, aspect ratio, quality, transparent backgrounds, reasoning effort, and custom invocation scripts. -- Support OpenAI-style video endpoints and Volcengine Ark generation tasks. +- Support OpenAI-style video endpoints. ## Canvas Agent diff --git a/docs/content/docs/overview/features.zh-CN.mdx b/docs/content/docs/overview/features.zh-CN.mdx index 1d56140..2bf88f6 100644 --- a/docs/content/docs/overview/features.zh-CN.mdx +++ b/docs/content/docs/overview/features.zh-CN.mdx @@ -64,16 +64,15 @@ OpenAI 兼容图像和文本能力继续复用现有接口: - `/v1/images/generations`:文生图。 - `/v1/images/edits`:图生图/参考图编辑。 - `/v1/responses`:文本问答、带图问答和在线 Agent 工具调用。 -- `/v1/models`:读取模型列表;火山方舟 Agent Plan 专属 `/api/plan/v3` 当前未提供 OpenAI `/models` 模型列表接口,需要手动填写模型名。 +- `/v1/models`:读取模型列表。 视频能力支持两类接口: - OpenAI 风格视频:`POST /v1/videos`、`GET /v1/videos/{id}`、`GET /v1/videos/{id}/content`。 -- 火山方舟 Agent Plan / Seedance 2.0:Base URL 使用 `https://ark.cn-beijing.volces.com/api/plan/v3`,创建任务为 `POST /contents/generations/tasks`,查询任务为 `GET /contents/generations/tasks/{id}`,成功结果读取 `content.video_url`。 -Base URL 如果已经以 `/v1`、`/api/v3` 或 `/api/plan/v3` 结尾,系统不会再追加 `/v1`。因此 cpa 反代或火山方舟 Agent Plan 可以继续通过现有 Base URL + API Key + Model 方式配置,不需要新增火山生图 Provider。 +Base URL 如果已经以 `/v1` 结尾,系统不会再追加 `/v1`。 -配置弹窗里的“拉取模型列表”会尝试真实请求 OpenAI `/models`,不会为 Agent Plan 伪造模型结果。如果火山方舟 Agent Plan 返回 404,请手动增加 `doubao-seedance-2.0` 或文档列出的其他模型名。 +配置弹窗里的“拉取模型列表”会真实请求 OpenAI `/models`。 可配置项: @@ -91,7 +90,7 @@ Base URL 如果已经以 `/v1`、`/api/v3` 或 `/api/plan/v3` 结尾,系统不 节点下方对话框和组装提示词输入框都支持 `@` 引用已连接的图片、文本、视频、音频等资源;`@` 引用图片时,输入框内会直接显示该图片的真实缩略图,而不再是「图片1」这类文字编号,发送时会按当前连接自动编号交给模型理解。由于引用改在对话框内直接 `@`,画布节点右上角不再显示「图片1 / 文本1」资源角标。 -视频生成可从文本节点读取 prompt,从图片节点读取参考图,从视频节点读取参考视频,从音频节点读取参考音频。Seedance 2.0 支持最多 9 张参考图、3 个参考视频、3 个参考音频;分辨率支持 `480p`、`720p`、`1080p`(fast 模型不支持 `1080p`),比例支持 `16:9`、`4:3`、`1:1`、`3:4`、`9:16`、`21:9`、`adaptive`,时长支持 4-15 秒或智能时长。生成成功后会把视频插入画布为视频节点并使用原生播放器预览。参考视频和参考音频优先使用公网可访问 URL;本地素材会以前端可读取的数据传给兼容接口,是否支持取决于具体上游。 +视频生成可从文本节点读取 prompt,从图片节点读取参考图。生成成功后会把视频插入画布为视频节点并使用原生播放器预览。 ## 画布助手 @@ -167,6 +166,4 @@ Codex App 插件的安装与使用见 [Codex App 插件](/zh-CN/docs/overview/co - 画布项目和“我的素材”目前只保存在浏览器本地,不会随账号同步。 - AI API Key 保存在浏览器本地,并由浏览器直接请求配置的 OpenAI 兼容接口;只适合个人或可信环境使用。 -- Seedance 本地参考视频/音频更建议使用公网可访问 URL;上游是否接受前端传入的本地数据取决于具体兼容接口。 -- Seedance 返回远程视频 URL 时,前端会尽量下载为本地 Blob 持久化;如果因 CORS 或网络限制无法下载,会保留远程 URL,后续是否可播放取决于上游 URL 的有效期。 - 画布更适合桌面端使用,移动端触控体验还未系统完善。 diff --git a/docs/content/docs/progress/pending-test.mdx b/docs/content/docs/progress/pending-test.mdx index ed00188..47a5973 100644 --- a/docs/content/docs/progress/pending-test.mdx +++ b/docs/content/docs/progress/pending-test.mdx @@ -26,7 +26,7 @@ The current release needs manual verification in these areas: - Agent message metadata: image attachments, Skills, canvas references, and local previews should survive page refreshes and Agent restarts through exact `clientMessageId`, `threadId`, and `turnId` ownership; protocol upgrades must not reset the independent storage format, unknown or damaged storage must refuse writes without overwriting files, no records may be silently pruned by count or size, and deleting a thread should remove its metadata and preview assets without relying on browser IndexedDB or text matching. - Prompt Center layout, source synchronization, search, asset insertion, prompt detail dialogs, and compact split-layout prompt pickers in the image and video workbenches. - Workbench history image cleanup: after generating content in the image or video workbench, deleting an asset, canvas image node, canvas content, or canvas project must not remove thumbnails, results, or references from generation history; deleting a generation record should still remove its dedicated local files. -- Settings import/export, Volcengine Ark protocol handling, and WebDAV-related configuration. +- Settings import/export and WebDAV-related configuration. - Local storage settings: the Settings page should provide a Local storage tab that reads only the `infinite-canvas` database and shows IndexedDB usage, total site usage, browser quota, quota percentage, and per-object-store record counts and content size; refreshing after local data changes should update the figures without blocking the rest of the page. The Chinese version contains the complete item-by-item acceptance checklist. diff --git a/docs/content/docs/progress/pending-test.zh-CN.mdx b/docs/content/docs/progress/pending-test.zh-CN.mdx index c18d4ab..3a9c601 100644 --- a/docs/content/docs/progress/pending-test.zh-CN.mdx +++ b/docs/content/docs/progress/pending-test.zh-CN.mdx @@ -59,7 +59,6 @@ description: 当前版本已实现但仍需人工验证的变更项 - 画布左侧元素列表:点击元素整行应平滑定位并选中对应节点,自动缩放不得超过 100%;有内容的图片元素应显示预览按钮,点击后打开大图弹窗且不触发画布定位。 - 配置与用户偏好:导出 JSON 后应包含渠道、默认模型、生成偏好、提示词来源和 WebDAV 配置;在修改当前配置后重新导入该文件,应恢复导出时的设置,错误 JSON 文件应提示格式不正确。配置文件包含 API Key 和 WebDAV 凭据,不应公开分享。 - 本地存储设置:配置页应显示「本地存储」Tab,进入后只读取 `infinite-canvas` 数据库,自动统计 IndexedDB 占用、站点总占用、浏览器配额与使用率,并按对象仓库显示记录数及内容体积;新增或删除图片、音视频、生成记录后点击刷新,数据应同步变化,统计期间页面保持可操作。 -- 模型渠道协议:渠道编辑可选择「火山方舟」并自动填入方舟接口地址;任意名称的生图模型应按方舟 JSON 格式提交参考图,任意名称的视频模型应按方舟任务格式提交和查询,不再依赖模型名包含 `doubao`、`seedream` 或 `seedance`;1080p 不应再因模型名包含 `fast` 被禁用,参考视频应允许最大 200MB、总像素 409600-8295044,并继续校验官方宽高、比例和时长限制。 - 图片编辑弹窗:遮罩、切图和裁剪连续滚轮缩放时,图片与遮罩应保持同步且不再闪烁、短暂消失或跳动;遮罩画笔圆心应始终固定在鼠标位置,仅直径随缩放变化,缩放后仍可准确涂抹、拖动切分线和调整裁剪框。 - 提示词中心布局:页面标题及提示词总数应居中;连续输入搜索文字时应在停止输入约 300ms 后再查询;桌面端分类与标签应在左侧独立滚动,右侧搜索框下直接展示提示词卡片;标签数量较多时不能继续向下挤压提示词,窄屏下应恢复上下排列且内容不溢出;不再显示「我的提示词」Tab,收藏提示词应直接加入我的资产。 - 提示词详情弹窗:封面和参考图应固定显示在上方,复制及加入资产操作栏固定在底部,只有中间的标签、描述及提示词内容区域可以滚动;弹窗宽高应受视口限制且不超出屏幕。 diff --git a/web/src/components/canvas/canvas-node-generation.ts b/web/src/components/canvas/canvas-node-generation.ts index 9d46e5b..6065de9 100644 --- a/web/src/components/canvas/canvas-node-generation.ts +++ b/web/src/components/canvas/canvas-node-generation.ts @@ -1,7 +1,6 @@ import type { AiTextMessage } from "@/services/api/image"; import i18n from "@/i18n"; import { imageReferenceLabel } from "@/lib/image-reference-prompt"; -import { seedanceReferenceLabel } from "@/lib/seedance-video"; import type { ReferenceImage } from "@/types/image"; import type { ReferenceAudio, ReferenceVideo } from "@/types/media"; import { CanvasNodeType, type CanvasConnection, type CanvasNodeData } from "@/types/canvas"; @@ -153,8 +152,8 @@ function readNodeTextInput(node: CanvasNodeData) { function generationLabel(type: NodeGenerationInput["type"], index: number) { if (type === "image") return imageReferenceLabel(index); - if (type === "video") return seedanceReferenceLabel("video", index); - if (type === "audio") return seedanceReferenceLabel("audio", index); + if (type === "video") return i18n.t("canvas.configNode.videoReferences") + ` ${index + 1}`; + if (type === "audio") return i18n.t("canvas.configNode.audioReferences") + ` ${index + 1}`; return i18n.t("canvas.composer.resources.text", { index: index + 1 }); } diff --git a/web/src/components/layout/app-config-modal.tsx b/web/src/components/layout/app-config-modal.tsx index 6779e2a..5ecbd21 100644 --- a/web/src/components/layout/app-config-modal.tsx +++ b/web/src/components/layout/app-config-modal.tsx @@ -196,7 +196,7 @@ export function AppConfigPanel({ showDoneButton = false, initialTab = "channels"

@@ -384,9 +384,8 @@ function normalizeImageCount(value: string) { return String(Math.max(1, Math.min(15, Math.floor(Math.abs(Number(value)) || 3)))); } -function apiFormatLabel(apiFormat: ApiCallFormat, t: TFunction) { +function apiFormatLabel(apiFormat: ApiCallFormat) { if (apiFormat === "gemini") return "Gemini"; - if (apiFormat === "ark") return t("config.protocols.ark"); return "OpenAI"; } diff --git a/web/src/components/layout/channel-editor-drawer.tsx b/web/src/components/layout/channel-editor-drawer.tsx index 9e2322c..919dfd4 100644 --- a/web/src/components/layout/channel-editor-drawer.tsx +++ b/web/src/components/layout/channel-editor-drawer.tsx @@ -17,7 +17,6 @@ export function ChannelEditorDrawer({ open, channel, onSave, onClose }: { open: const apiFormatOptions: Array<{ label: string; value: ApiCallFormat }> = [ { label: "OpenAI", value: "openai" }, { label: "Gemini", value: "gemini" }, - { label: t("config.protocols.ark"), value: "ark" }, ]; const capabilityOptions: Array<{ label: string; value: ModelCapability }> = ["image", "video", "text", "audio"].map((value) => ({ label: t(`config.channelEditor.capabilities.${value}`), value: value as ModelCapability })); diff --git a/web/src/components/video-settings-panel.tsx b/web/src/components/video-settings-panel.tsx index 5270738..d6d7e9e 100644 --- a/web/src/components/video-settings-panel.tsx +++ b/web/src/components/video-settings-panel.tsx @@ -1,10 +1,8 @@ import { type ReactNode } from "react"; -import { Switch } from "antd"; import { useTranslation } from "react-i18next"; import i18n from "@/i18n"; import { ImageSettingsTheme } from "@/components/image-settings-panel"; -import { boolConfig, isSeedanceVideoConfig, normalizeSeedanceDuration, normalizeSeedanceRatio, normalizeSeedanceResolution, seedanceDurationOptions, seedancePixelLabel, seedanceRatioOptions, seedanceResolutionOptions } from "@/lib/seedance-video"; import { type CanvasTheme } from "@/lib/canvas-theme"; import { type AiConfig } from "@/stores/use-config-store"; @@ -23,7 +21,6 @@ const sizeOptions = [ ]; const secondOptions = [6, 10, 12, 16, 20]; -const seedanceRatioLabelKeys: Record = { "16:9": "landscape", "9:16": "portrait", "1:1": "square", "4:3": "standardLandscape", "3:4": "standardPortrait", "21:9": "cinematic", adaptive: "adaptive" }; export const videoResolutionOptions = resolutionOptions.map((item) => ({ value: item.value, label: item.label })); export const videoSizeOptions = sizeOptions.map((item) => ({ value: item.value, get label() { return i18n.t(`settingsPanels.video.sizes.${item.labelKey}`); } })); @@ -39,10 +36,6 @@ type VideoSettingsPanelProps = { export function VideoSettingsPanel({ config, onConfigChange, theme, showTitle = true, className = "w-[320px] space-y-4 rounded-2xl px-1 py-0.5" }: VideoSettingsPanelProps) { const { t } = useTranslation(); - if (isSeedanceVideoConfig(config)) { - return ; - } - const seconds = config.videoSeconds || "6"; const size = normalizeVideoSizeValue(config.size); const dimensions = readSizeDimensions(size); @@ -108,74 +101,12 @@ export function VideoSettingsPanel({ config, onConfigChange, theme, showTitle = ); } -function SeedanceVideoSettingsPanel({ config, onConfigChange, theme, showTitle, className }: VideoSettingsPanelProps) { - const { t } = useTranslation(); - const resolution = normalizeSeedanceResolution(config.vquality); - const ratio = normalizeSeedanceRatio(config.size); - const duration = normalizeSeedanceDuration(config.videoSeconds); - const generateAudio = boolConfig(config.videoGenerateAudio, true); - const watermark = boolConfig(config.videoWatermark, false); - - return ( - -
event.stopPropagation()}> - {showTitle ?
{t("settingsPanels.video.title")}
: null} - -
- {seedanceResolutionOptions.map((item) => ( - onConfigChange("vquality", item.value)}> - {item.label} - - ))} -
-
- -
- {seedanceRatioOptions.map((item) => ( - - ))} -
-
- -
- {seedanceDurationOptions.map((value) => ( - onConfigChange("videoSeconds", String(value))}> - {value === -1 ? t("settingsPanels.video.smart") : `${value}s`} - - ))} -
- onConfigChange("videoSeconds", value)} /> -
- -
- onConfigChange("videoGenerateAudio", String(checked))} /> - onConfigChange("videoWatermark", String(checked))} /> -
-
-
-
- ); -} - export function videoResolutionLabel(value: string) { return `${normalizeVideoResolutionValue(value)}p`; } export function videoSizeLabel(value: string) { - const ratio = normalizeSeedanceRatio(value); if (value === "adaptive" || value === "auto") return i18n.t("settingsPanels.video.adaptive"); - if (ratio === value) return i18n.t(`settingsPanels.video.ratios.${seedanceRatioLabelKeys[ratio]}`); const size = normalizeVideoSizeValue(value); const option = sizeOptions.find((item) => item.value === size); return option ? i18n.t(`settingsPanels.video.sizes.${option.labelKey}`) : size; @@ -251,29 +182,6 @@ function SizePreview({ width, height, color }: { width: number; height: number; return ; } -function ratioPreview(ratio: string) { - if (ratio === "9:16") return { width: 9, height: 16 }; - if (ratio === "1:1") return { width: 1, height: 1 }; - if (ratio === "4:3") return { width: 4, height: 3 }; - if (ratio === "3:4") return { width: 3, height: 4 }; - if (ratio === "21:9") return { width: 21, height: 9 }; - if (ratio === "adaptive") return { width: 0, height: 0 }; - return { width: 16, height: 9 }; -} - -function SwitchRow({ label, checked, theme, onChange }: { label: string; checked: boolean; theme: CanvasTheme; onChange: (checked: boolean) => void }) { - return ( -
- - {label} - - event.stopPropagation()}> - - -
- ); -} - function readSizeDimensions(size: string) { if (size === "auto") return { width: 0, height: 0 }; const match = size.match(/^(\d+)x(\d+)$/); diff --git a/web/src/i18n/locales/en-US.ts b/web/src/i18n/locales/en-US.ts index 819e27c..765d584 100644 --- a/web/src/i18n/locales/en-US.ts +++ b/web/src/i18n/locales/en-US.ts @@ -38,14 +38,13 @@ export default { }, generation: { pending: ["Creating image", "Almost there", "Just a little longer", "Refining details"] }, imageReferences: { label: "Image {{index}}", separator: ", ", promptPrefix: "Reference image labels: {{labels}}. Use these labels to interpret image references in the prompt.\n\n{{prompt}}" }, - seedance: { autoMatch: "Automatic", separator: ", ", references: { image: "Image {{index}}", video: "Video {{index}}", audio: "Audio {{index}}" }, promptPrefix: "Reference asset labels: {{labels}}. Use these labels to interpret image, video, and audio references in the prompt.\n\n{{prompt}}", referenceHint: "Reference videos must be mp4/mov, H.264/H.265, and 24–60 FPS. Use authorized Volcengine asset:// assets when real faces are included.", errors: { format: "{{label}} supports mp4/mov only", size: "{{label}} exceeds 200 MB. Compress it before uploading.", duration: "{{label}} must be 2–15 seconds", dimensions: "{{label}} dimensions must be between 300 and 6000px", ratio: "{{label}} aspect ratio must be between 0.4 and 2.5", pixels: "{{label}} total pixel count must be between 409600 and 8295044", totalDuration: "Seedance reference videos cannot exceed 15 seconds in total" } }, modelPlugin: { pollTimeout: "Plugin polling timed out. Check the request script or try again later.", executionFailed: "Model request script failed: {{message}}", noImages: "The model request script did not return any images", variables: { prompt: "User prompt with the system prompt already included", images: "Reference images as a data URL array, available for image editing and image-to-video", messages: "Conversation message array including the system message", params: "Generation parameters: image {size,quality,count}, video {seconds,size,resolution,ratio,generateAudio,watermark}, audio {voice,format,speed,instructions}", model: "Model name without the provider prefix", baseUrl: "Provider endpoint as entered, without appending /v1", apiKey: "Provider API key; add it to request headers yourself", systemPrompt: "Original system prompt", reasoningEffort: "Text reasoning effort; auto lets the script decide whether to send it", http: "Convenience client: http.post(path, body, {headers,params,responseType}), http.get(path, opts), and http.url(path). Authorization: Bearer apiKey is included by default and can be overridden. Relative paths append /v1 to baseUrl.", request: "Raw request({ method, url, headers, params, data, responseType }) with no default headers. Add authentication yourself. Relative URLs are joined to baseUrl without /v1.", poll: "poll(request, extract, {intervalMs,timeoutMs}) continues until extract returns a truthy value", sleep: "Delay with sleep(ms)", signal: "Cancellation signal that can be passed to http/request", onDelta: "Push streaming text with onDelta(text) for text models" }, returns: { image: "Text-to-image and image editing use different APIs; distinguish them by whether images is empty. Return an image URL or data URL, an array of them, or [{ dataUrl }] / [{ url }] / [{ b64_json }].", video: "Poll inside the script and return { url }, { blob }, or a video URL string.", audio: "Return a Blob, base64/data URL string, or { b64_json } / { data } / { url }.", text: "Push streaming output with onDelta(text), then return the complete text string." }, templates: { openai: "OpenAI format", gemini: "Gemini format", imageOpenai: "Image generation and editing use different endpoints; distinguish them by whether images is empty.", availableImage: "Available: prompt, images(dataURL[]), params{size,quality,count}, model, baseUrl, apiKey", textToImage: "Text to image: /images/generations (JSON)", imageToImage: "Image editing: /images/edits (multipart/form-data with reference images uploaded as files)", formDataHeader: "Do not set Content-Type manually; let the browser add the boundary", imageGemini: "Gemini image generation and editing both use generateContent, with references in parts.inline_data.", availableImageGemini: "Available: prompt, images(dataURL[]), model, baseUrl, apiKey", videoOpenai: "Video with polling handled inside the script. Available: prompt, images(dataURL[]), params{seconds,size,resolution,ratio}", videoGemini: "Gemini (Veo) video: submit with predictLongRunning and poll the operation for the video URI.", availableVideoGemini: "Available: prompt, images(dataURL[]), params, model, baseUrl, apiKey", geminiNoVideoUri: "Gemini did not return a video URI", audioOpenai: "Audio TTS. Available: prompt, params{voice,format,speed,instructions}, model", audioGemini: "Gemini TTS: generateContent with AUDIO modality, returning base64 PCM in inlineData.data.", availableAudioGemini: "Available: prompt, params{voice}, model, baseUrl, apiKey", geminiNoAudio: "Gemini did not return audio", textOpenai: "Text chat using the OpenAI Responses API. Available: messages([{role,content}]), systemPrompt, model, reasoningEffort", textGemini: "Gemini text: generateContent with the system message in systemInstruction.", availableTextGemini: "Available: messages([{role,content}]), systemPrompt, model, baseUrl, apiKey" }, }, - apiErrors: { requestFailed: "Request failed", requestCanceled: "Request canceled", baseUrlRequired: "Configure the Base URL first", apiKeyRequired: "Configure the API key first", authenticationFailed: "Authentication failed. Check the API key, plan permissions, and model permissions.", rateLimited: "The request was rate-limited or the quota is insufficient. Try again later.", notFound: "The endpoint was not found (404). Check the Base URL and selected model.", badGateway: "Gateway error (502). The API service is temporarily unavailable.", serviceBusy: "Service unavailable (503). Try again later.", httpFailed: "Request failed (HTTP {{status}}). Check the Base URL and API key.", htmlError: "The service returned an HTML error page ({{preview}})", audioModelRequired: "Configure an audio model first", audioGenerationFailed: "Audio generation failed", scriptNoAudio: "The model request script did not return audio", geminiAudioUnsupported: "The Gemini API format does not support audio generation. Use an OpenAI-format provider.", invalidImageSizeFormat: "Unsupported image size. Use auto, 9:16, or 1024x1024.", positiveImageRatio: "The image ratio must use positive numbers, such as 9:16.", imageRatioLimit: "The image aspect ratio cannot exceed 3:1. Adjust the dimensions.", positiveImageDimensions: "Image dimensions must be positive integers, such as 1024x1024.", imageDimensionStep: "Image width and height must be multiples of 16.", imageEdgeLimit: "The longest image edge cannot exceed 3840px.", imagePixelLimit: "The total image pixel count must be between 655360 and 8294400.", unknownImageResponse: "The API returned data in an unknown format (fields: {{fields}}). Check model or API compatibility.", noImageReturned: "The API did not return an image. The prompt may have triggered safety review or the model may not support this operation.", geminiRejected: "Gemini rejected the request: {{reason}}", geminiNoImage: "The Gemini API did not return an image", geminiMaskUnsupported: "The Gemini API format does not support mask editing", maskModelUnsupported: "This model does not support mask editing. Use another provider.", noContent: "No content returned", modelReadFailed: "Failed to load models", videoTimeout: "{{provider}}video generation timed out. Try again later.", videoReferencesUnsupported: "This video API does not support reference video or audio. Switch to Seedance 2.0 / Volcengine Agent Plan, or remove the reference assets.", pluginVideoExpired: "The plugin video task has expired. Generate it again.", scriptNoVideo: "The model request script did not return a video", noPlayableVideo: "The video API did not return a playable video", noVideoTaskId: "The video API did not return a task ID", videoTaskCreateFailed: "Failed to create video task", videoGenerationFailed: "Video generation failed", videoTaskQueryFailed: "Failed to query video task", seedanceAudioRequiresVisual: "Seedance reference audio cannot be used alone. Add a reference image or video.", videoPromptRequired: "Enter a video prompt or connect a reference image, video, or audio asset", seedanceNoTaskId: "The Seedance API did not return a task ID", seedanceTaskCreateFailed: "Failed to create Seedance task", seedanceNoVideoUrl: "The Seedance task succeeded but did not return a video URL", seedanceVideoTimeout: "Seedance video generation timed out", seedanceVideoFailed: "Seedance video generation failed", seedanceTaskQueryFailed: "Failed to query Seedance task", seedanceVideoDuration: "Each Seedance reference video must be 2–15 seconds", seedanceVideoTotalDuration: "Seedance reference videos cannot exceed 15 seconds in total", seedanceAudioDuration: "Each Seedance reference audio file must be 2–15 seconds", seedanceAudioTotalDuration: "Seedance reference audio cannot exceed 15 seconds in total", referenceImageReadFailed: "Failed to read the reference image. Choose another image or upload it again.", invalidReferenceVideo: "A reference video must be a public URL, asset ID, or locally saved video", invalidReferenceAudio: "Reference audio must be a public URL, asset ID, or locally saved audio file", videoModelRequired: "Configure a video model first", geminiVideoUnsupported: "The Gemini API format does not support video generation. Use an OpenAI-format provider.", noVideoTask: "The API did not return a video task", seedanceNoTask: "The Seedance API did not return a task", videoDownloadFailed: "Failed to download video", localAssetReadFailed: "Failed to read local asset" }, + apiErrors: { requestFailed: "Request failed", requestCanceled: "Request canceled", baseUrlRequired: "Configure the Base URL first", apiKeyRequired: "Configure the API key first", authenticationFailed: "Authentication failed. Check the API key, plan permissions, and model permissions.", rateLimited: "The request was rate-limited or the quota is insufficient. Try again later.", notFound: "The endpoint was not found (404). Check the Base URL and selected model.", badGateway: "Gateway error (502). The API service is temporarily unavailable.", serviceBusy: "Service unavailable (503). Try again later.", httpFailed: "Request failed (HTTP {{status}}). Check the Base URL and API key.", htmlError: "The service returned an HTML error page ({{preview}})", audioModelRequired: "Configure an audio model first", audioGenerationFailed: "Audio generation failed", scriptNoAudio: "The model request script did not return audio", geminiAudioUnsupported: "The Gemini API format does not support audio generation. Use an OpenAI-format provider.", invalidImageSizeFormat: "Unsupported image size. Use auto, 9:16, or 1024x1024.", positiveImageRatio: "The image ratio must use positive numbers, such as 9:16.", imageRatioLimit: "The image aspect ratio cannot exceed 3:1. Adjust the dimensions.", positiveImageDimensions: "Image dimensions must be positive integers, such as 1024x1024.", imageDimensionStep: "Image width and height must be multiples of 16.", imageEdgeLimit: "The longest image edge cannot exceed 3840px.", imagePixelLimit: "The total image pixel count must be between 655360 and 8294400.", unknownImageResponse: "The API returned data in an unknown format (fields: {{fields}}). Check model or API compatibility.", noImageReturned: "The API did not return an image. The prompt may have triggered safety review or the model may not support this operation.", geminiRejected: "Gemini rejected the request: {{reason}}", geminiNoImage: "The Gemini API did not return an image", geminiMaskUnsupported: "The Gemini API format does not support mask editing", maskModelUnsupported: "This model does not support mask editing. Use another provider.", noContent: "No content returned", modelReadFailed: "Failed to load models", videoTimeout: "{{provider}}video generation timed out. Try again later.", pluginVideoExpired: "The plugin video task has expired. Generate it again.", scriptNoVideo: "The model request script did not return a video", noPlayableVideo: "The video API did not return a playable video", noVideoTaskId: "The video API did not return a task ID", videoTaskCreateFailed: "Failed to create video task", videoGenerationFailed: "Video generation failed", videoTaskQueryFailed: "Failed to query video task", videoPromptRequired: "Enter a video prompt or connect a reference image, video, or audio asset", referenceImageReadFailed: "Failed to read the reference image. Choose another image or upload it again.", invalidReferenceVideo: "A reference video must be a public URL, asset ID, or locally saved video", invalidReferenceAudio: "Reference audio must be a public URL, asset ID, or locally saved audio file", videoModelRequired: "Configure a video model first", geminiVideoUnsupported: "The Gemini API format does not support video generation. Use an OpenAI-format provider.", noVideoTask: "The API did not return a video task", videoDownloadFailed: "Failed to download video", localAssetReadFailed: "Failed to read local asset" }, prompts: { title: "Prompt Center", library: "Prompt Library", @@ -571,7 +570,6 @@ export default { errors: { testFailed: "WebDAV connection test failed", downloadFailed: "Failed to read the WebDAV sync file", downloadTimeout: "Timed out while reading the WebDAV sync file", emptyUpload: "The upload file is empty; upload canceled", uploadFailed: "Failed to upload the WebDAV sync file", directoryFailed: "Failed to create the remote WebDAV directory", requestTimeout: "The WebDAV request timed out. Check the network or remote service.", connectionFailed: "Could not connect to WebDAV. Check the address, HTTPS certificate, CORS, and network.", urlRequired: "Enter a WebDAV URL first", authenticationFailed: "WebDAV authentication failed. Check the username, password, or app password.", pathMissing: "The WebDAV path does not exist. Check the address and remote directory.", responseFailed: "{{fallback}}: {{status}}{{detail}}", syncFailed: "Sync failed", invalidManifest: "The {{domain}} sync manifest does not belong to this app" }, }, protocols: { - ark: "Volcengine Ark", }, }, agent: { diff --git a/web/src/i18n/locales/zh-CN.ts b/web/src/i18n/locales/zh-CN.ts index 4789175..328fd87 100644 --- a/web/src/i18n/locales/zh-CN.ts +++ b/web/src/i18n/locales/zh-CN.ts @@ -38,14 +38,13 @@ export default { }, generation: { pending: ["正在创建图片", "马上就好了", "再等等", "正在整理细节"] }, imageReferences: { label: "图片{{index}}", separator: "、", promptPrefix: "参考图片编号:{{labels}}。请按这些编号理解提示词中的图片引用。\n\n{{prompt}}" }, - seedance: { autoMatch: "自动匹配", separator: "、", references: { image: "图片{{index}}", video: "视频{{index}}", audio: "音频{{index}}" }, promptPrefix: "参考资产编号:{{labels}}。请按这些编号理解提示词中的图片、视频和音频引用。\n\n{{prompt}}", referenceHint: "参考视频需为 mp4/mov,H.264/H.265,FPS 24-60;含真人人脸资产请使用火山授权 asset:// 资产。", errors: { format: "{{label}} 仅支持 mp4/mov 格式", size: "{{label}} 超过 200MB,请压缩后再上传", duration: "{{label}} 时长需要在 2-15 秒之间", dimensions: "{{label}} 宽高需要在 300-6000px 之间", ratio: "{{label}} 宽高比需要在 0.4-2.5 之间", pixels: "{{label}} 总像素需要在 409600-8295044 之间", totalDuration: "Seedance 参考视频总时长不能超过 15 秒" } }, modelPlugin: { pollTimeout: "插件轮询超时,请检查调用脚本或稍后重试", executionFailed: "模型调用脚本执行失败:{{message}}", noImages: "模型调用脚本没有返回图片", variables: { prompt: "用户输入的提示词(已拼接系统提示词)", images: "参考图,dataURL 数组(改图 / 图生视频时有值)", messages: "对话消息数组,含系统消息", params: "生成参数:生图 {size,quality,count}、视频 {seconds,size,resolution,ratio,generateAudio,watermark}、音频 {voice,format,speed,instructions}", model: "模型名称(不含渠道前缀)", baseUrl: "渠道接口地址(原样,未拼 /v1)", apiKey: "渠道 API Key,请求头里自己带上", systemPrompt: "系统提示词原文", reasoningEffort: "文本推理强度;auto 表示由脚本决定是否传递", http: "便捷请求:http.post(path, body, {headers,params,responseType})、http.get(path, opts)、http.url(path);默认带 Authorization: Bearer apiKey,可用 headers 覆盖;path 相对时按 baseUrl 拼 /v1", request: "原始请求 request({ method, url, headers, params, data, responseType }),不加任何默认头,鉴权头自己写;url 相对时按 baseUrl 拼接(不加 /v1)", poll: "轮询 poll(request, extract, {intervalMs,timeoutMs}),extract 返回真值即结束", sleep: "sleep(ms) 延时", signal: "取消信号,可透传给 http/request", onDelta: "onDelta(text) 推送流式文本(文本模型)" }, returns: { image: "文生图(images 为空)和图生图(images 有参考图)接口不同,脚本需自行区分;返回图片 URL 或 dataURL 字符串,也可返回它们的数组,或 [{ dataUrl }] / [{ url }] / [{ b64_json }]", video: "脚本内部完成轮询,返回 { url } 或 { blob } 或视频 URL 字符串", audio: "返回 Blob,或 base64 / dataURL 字符串,或 { b64_json } / { data } / { url }", text: "用 onDelta(text) 推送流式,最终 return 完整文本字符串" }, templates: { openai: "OpenAI 规范", gemini: "Gemini 规范", imageOpenai: "生图 / 改图:两者接口不同,用 images 是否为空来区分。", availableImage: "可用:prompt、images(dataURL[])、params{size,quality,count}、model、baseUrl、apiKey", textToImage: "文生图:/images/generations(JSON)", imageToImage: "图生图:/images/edits(multipart/form-data,参考图作为文件上传)", formDataHeader: "不要手动设 Content-Type,交给浏览器带 boundary", imageGemini: "Gemini 文生图 / 图生图:都走 generateContent,参考图放进 parts 的 inline_data。", availableImageGemini: "可用:prompt、images(dataURL[])、model、baseUrl、apiKey", videoOpenai: "视频(脚本内部自行轮询)。可用:prompt、images(dataURL[])、params{seconds,size,resolution,ratio}", videoGemini: "Gemini(Veo) 视频:predictLongRunning 提交,轮询 operation 拿视频 URI。", availableVideoGemini: "可用:prompt、images(dataURL[])、params、model、baseUrl、apiKey", geminiNoVideoUri: "Gemini 未返回视频 URI", audioOpenai: "音频 TTS。可用:prompt、params{voice,format,speed,instructions}、model", audioGemini: "Gemini TTS:generateContent + AUDIO 模态,返回 base64 PCM(音频数据在 inlineData.data)。", availableAudioGemini: "可用:prompt、params{voice}、model、baseUrl、apiKey", geminiNoAudio: "Gemini 未返回音频", textOpenai: "文本对话(OpenAI Responses 接口)。可用:messages([{role,content}])、systemPrompt、model、reasoningEffort", textGemini: "Gemini 文本:generateContent,system 消息放 systemInstruction。", availableTextGemini: "可用:messages([{role,content}])、systemPrompt、model、baseUrl、apiKey" }, }, - apiErrors: { requestFailed: "请求失败", requestCanceled: "请求已取消", baseUrlRequired: "请先配置 Base URL", apiKeyRequired: "请先配置 API Key", authenticationFailed: "鉴权失败,请检查 API Key、套餐权限或模型权限", rateLimited: "请求被限流或额度不足,请稍后重试", notFound: "接口地址不存在(404),请检查 Base URL 和模型选择", badGateway: "网关错误(502),接口服务暂时不可用,请稍后重试", serviceBusy: "服务繁忙(503),请稍后重试", httpFailed: "请求失败(HTTP {{status}}),请检查 Base URL 和 API Key 是否正确", htmlError: "服务返回了 HTML 错误页面({{preview}})", audioModelRequired: "请先配置音频模型", audioGenerationFailed: "音频生成失败", scriptNoAudio: "模型调用脚本没有返回音频", geminiAudioUnsupported: "Gemini 调用格式暂不支持音频生成,请使用 OpenAI 格式渠道", invalidImageSizeFormat: "图像尺寸格式不支持,请使用 auto、9:16 或 1024x1024", positiveImageRatio: "图像比例必须是正数,例如 9:16", imageRatioLimit: "图像宽高比不能超过 3:1,请调整尺寸", positiveImageDimensions: "图像尺寸必须是正整数,例如 1024x1024", imageDimensionStep: "图像尺寸的宽高必须是 16 的倍数,请调整尺寸", imageEdgeLimit: "图像尺寸最长边不能超过 3840px,请调整尺寸", imagePixelLimit: "图像总像素需在 655360 到 8294400 之间,请调整尺寸", unknownImageResponse: "接口返回了未知格式的数据(字段:{{fields}}),请检查模型或接口兼容性", noImageReturned: "接口没有返回图片,请检查提示词是否触发安全审核或模型是否支持该操作", geminiRejected: "Gemini 拒绝了本次请求:{{reason}}", geminiNoImage: "Gemini 接口没有返回图片", geminiMaskUnsupported: "Gemini 调用格式暂不支持蒙版编辑", maskModelUnsupported: "蒙版编辑暂不支持该模型,请使用其他渠道", noContent: "没有返回内容", modelReadFailed: "读取模型失败", videoTimeout: "{{provider}}视频生成超时,请稍后重试", videoReferencesUnsupported: "当前视频接口不支持参考视频或参考音频,请切换到 Seedance 2.0 / 火山 Agent Plan 模型,或移除参考资产", pluginVideoExpired: "插件视频任务已失效,请重新生成", scriptNoVideo: "模型调用脚本没有返回视频", noPlayableVideo: "视频接口没有返回可播放的视频", noVideoTaskId: "视频接口没有返回任务 ID", videoTaskCreateFailed: "视频任务创建失败", videoGenerationFailed: "视频生成失败", videoTaskQueryFailed: "视频任务查询失败", seedanceAudioRequiresVisual: "Seedance 参考音频不能单独使用,请同时添加参考图或参考视频", videoPromptRequired: "请输入视频提示词,或连接参考图片/视频/音频", seedanceNoTaskId: "Seedance 接口没有返回任务 ID", seedanceTaskCreateFailed: "Seedance 任务创建失败", seedanceNoVideoUrl: "Seedance 任务成功但没有返回视频 URL", seedanceVideoTimeout: "Seedance 视频生成超时", seedanceVideoFailed: "Seedance 视频生成失败", seedanceTaskQueryFailed: "Seedance 任务查询失败", seedanceVideoDuration: "Seedance 参考视频单个时长需要在 2-15 秒之间", seedanceVideoTotalDuration: "Seedance 参考视频总时长不能超过 15 秒", seedanceAudioDuration: "Seedance 参考音频单个时长需要在 2-15 秒之间", seedanceAudioTotalDuration: "Seedance 参考音频总时长不能超过 15 秒", referenceImageReadFailed: "参考图读取失败,请换一张图片或重新上传", invalidReferenceVideo: "参考视频必须是公网 URL、资产 ID,或本地已保存的视频", invalidReferenceAudio: "参考音频必须是公网 URL、资产 ID,或本地已保存的音频", videoModelRequired: "请先配置视频模型", geminiVideoUnsupported: "Gemini 调用格式暂不支持视频生成,请使用 OpenAI 格式渠道", noVideoTask: "接口没有返回视频任务", seedanceNoTask: "Seedance 接口没有返回任务", videoDownloadFailed: "视频下载失败", localAssetReadFailed: "读取本地资产失败" }, + apiErrors: { requestFailed: "请求失败", requestCanceled: "请求已取消", baseUrlRequired: "请先配置 Base URL", apiKeyRequired: "请先配置 API Key", authenticationFailed: "鉴权失败,请检查 API Key、套餐权限或模型权限", rateLimited: "请求被限流或额度不足,请稍后重试", notFound: "接口地址不存在(404),请检查 Base URL 和模型选择", badGateway: "网关错误(502),接口服务暂时不可用,请稍后重试", serviceBusy: "服务繁忙(503),请稍后重试", httpFailed: "请求失败(HTTP {{status}}),请检查 Base URL 和 API Key 是否正确", htmlError: "服务返回了 HTML 错误页面({{preview}})", audioModelRequired: "请先配置音频模型", audioGenerationFailed: "音频生成失败", scriptNoAudio: "模型调用脚本没有返回音频", geminiAudioUnsupported: "Gemini 调用格式暂不支持音频生成,请使用 OpenAI 格式渠道", invalidImageSizeFormat: "图像尺寸格式不支持,请使用 auto、9:16 或 1024x1024", positiveImageRatio: "图像比例必须是正数,例如 9:16", imageRatioLimit: "图像宽高比不能超过 3:1,请调整尺寸", positiveImageDimensions: "图像尺寸必须是正整数,例如 1024x1024", imageDimensionStep: "图像尺寸的宽高必须是 16 的倍数,请调整尺寸", imageEdgeLimit: "图像尺寸最长边不能超过 3840px,请调整尺寸", imagePixelLimit: "图像总像素需在 655360 到 8294400 之间,请调整尺寸", unknownImageResponse: "接口返回了未知格式的数据(字段:{{fields}}),请检查模型或接口兼容性", noImageReturned: "接口没有返回图片,请检查提示词是否触发安全审核或模型是否支持该操作", geminiRejected: "Gemini 拒绝了本次请求:{{reason}}", geminiNoImage: "Gemini 接口没有返回图片", geminiMaskUnsupported: "Gemini 调用格式暂不支持蒙版编辑", maskModelUnsupported: "蒙版编辑暂不支持该模型,请使用其他渠道", noContent: "没有返回内容", modelReadFailed: "读取模型失败", videoTimeout: "{{provider}}视频生成超时,请稍后重试", pluginVideoExpired: "插件视频任务已失效,请重新生成", scriptNoVideo: "模型调用脚本没有返回视频", noPlayableVideo: "视频接口没有返回可播放的视频", noVideoTaskId: "视频接口没有返回任务 ID", videoTaskCreateFailed: "视频任务创建失败", videoGenerationFailed: "视频生成失败", videoTaskQueryFailed: "视频任务查询失败", videoPromptRequired: "请输入视频提示词,或连接参考图片/视频/音频", referenceImageReadFailed: "参考图读取失败,请换一张图片或重新上传", invalidReferenceVideo: "参考视频必须是公网 URL、资产 ID,或本地已保存的视频", invalidReferenceAudio: "参考音频必须是公网 URL、资产 ID,或本地已保存的音频", videoModelRequired: "请先配置视频模型", geminiVideoUnsupported: "Gemini 调用格式暂不支持视频生成,请使用 OpenAI 格式渠道", noVideoTask: "接口没有返回视频任务", videoDownloadFailed: "视频下载失败", localAssetReadFailed: "读取本地资产失败" }, prompts: { title: "提示词中心", library: "提示词库", @@ -571,7 +570,6 @@ export default { errors: { testFailed: "WebDAV 连接测试失败", downloadFailed: "读取 WebDAV 同步文件失败", downloadTimeout: "读取 WebDAV 同步文件超时", emptyUpload: "上传文件为空,已取消上传", uploadFailed: "上传 WebDAV 同步文件失败", directoryFailed: "创建 WebDAV 远程目录失败", requestTimeout: "WebDAV 请求超时,请检查网络或远端服务状态", connectionFailed: "无法连接 WebDAV,请检查地址、HTTPS 证书、CORS 或网络状态", urlRequired: "请先填写 WebDAV 地址", authenticationFailed: "WebDAV 认证失败,请检查用户名、密码或应用密码", pathMissing: "WebDAV 路径不存在,请检查地址和远程目录", responseFailed: "{{fallback}}:{{status}}{{detail}}", syncFailed: "同步失败", invalidManifest: "{{domain}} 同步清单不是当前应用的数据" }, }, protocols: { - ark: "火山方舟", }, }, agent: { diff --git a/web/src/lib/canvas/canvas-resource-references.ts b/web/src/lib/canvas/canvas-resource-references.ts index c68524c..c26d2b6 100644 --- a/web/src/lib/canvas/canvas-resource-references.ts +++ b/web/src/lib/canvas/canvas-resource-references.ts @@ -1,6 +1,5 @@ import { imageReferenceLabel } from "@/lib/image-reference-prompt"; import i18n from "@/i18n"; -import { seedanceReferenceLabel } from "@/lib/seedance-video"; import { getNodeDefinition } from "@/lib/canvas/node-registry"; import { getDataUrlByteSize, readImageMeta } from "@/lib/image-utils"; import { imageToDataUrl } from "@/services/image-storage"; @@ -106,8 +105,8 @@ function labelResourceNodes(nodes: CanvasNodeData[], active: boolean) { function labelForKind(kind: CanvasResourceKind, index: number) { if (kind === "image") return imageReferenceLabel(index); - if (kind === "video") return seedanceReferenceLabel("video", index); - if (kind === "audio") return seedanceReferenceLabel("audio", index); + if (kind === "video") return i18n.t("canvas.configNode.videoReferences") + ` ${index + 1}`; + if (kind === "audio") return i18n.t("canvas.configNode.audioReferences") + ` ${index + 1}`; return i18n.t("canvas.composer.resources.text", { index: index + 1 }); } diff --git a/web/src/lib/seedance-video.ts b/web/src/lib/seedance-video.ts deleted file mode 100644 index ca15bf7..0000000 --- a/web/src/lib/seedance-video.ts +++ /dev/null @@ -1,157 +0,0 @@ -import i18n from "@/i18n"; -import { resolveModelRequestConfig, type AiConfig } from "@/stores/use-config-store"; -import type { ReferenceImage } from "@/types/image"; -import type { ReferenceAudio, ReferenceVideo } from "@/types/media"; - -export const SEEDANCE_REFERENCE_LIMITS = { - images: 9, - videos: 3, - audios: 3, - imageMaxBytes: 30 * 1024 * 1024, - videoMaxBytes: 200 * 1024 * 1024, - audioMaxBytes: 15 * 1024 * 1024, -}; -export const SEEDANCE_VIDEO_MIME_TYPES = ["video/mp4", "video/quicktime"]; - -export const seedanceResolutionOptions = [ - { value: "480p", label: "480p" }, - { value: "720p", label: "720p" }, - { value: "1080p", label: "1080p" }, -] as const; - -export const seedanceRatioOptions = [ - { value: "16:9" }, - { value: "9:16" }, - { value: "1:1" }, - { value: "4:3" }, - { value: "3:4" }, - { value: "21:9" }, - { value: "adaptive" }, -] as const; - -export const seedanceDurationOptions = [-1, 4, 5, 6, 8, 10, 12, 15] as const; - -const seedancePixels = { - "480p": { - "16:9": "864x496", - "4:3": "752x560", - "1:1": "640x640", - "3:4": "560x752", - "9:16": "496x864", - "21:9": "992x432", - }, - "720p": { - "16:9": "1280x720", - "4:3": "1112x834", - "1:1": "960x960", - "3:4": "834x1112", - "9:16": "720x1280", - "21:9": "1470x630", - }, - "1080p": { - "16:9": "1920x1080", - "4:3": "1664x1248", - "1:1": "1440x1440", - "3:4": "1248x1664", - "9:16": "1080x1920", - "21:9": "2206x946", - }, -} as const; - -export function isSeedanceVideoConfig(config: AiConfig | Pick) { - const requestConfig = "channels" in config ? resolveModelRequestConfig(config, config.model || config.videoModel) : config; - return requestConfig.apiFormat === "ark"; -} - -export function normalizeSeedanceResolution(value: string) { - const normalized = normalizeResolutionToken(value); - return seedanceResolutionOptions.some((item) => item.value === normalized) ? normalized : "720p"; -} - -export function normalizeResolutionToken(value: string) { - if (value === "low") return "480p"; - if (value === "auto" || value === "high" || value === "medium") return "720p"; - const resolution = String(value || "").replace(/p$/i, "") || "720"; - return `${resolution}p`; -} - -export function normalizeSeedanceDuration(value: string) { - if (String(value).trim() === "-1") return -1; - const seconds = Math.floor(Number(value) || 5); - return Math.max(4, Math.min(15, seconds)); -} - -export function normalizeSeedanceRatio(value: string) { - if (!value || value === "auto" || value === "adaptive") return "adaptive"; - if (seedanceRatioOptions.some((item) => item.value === value)) return value; - const match = value.match(/^(\d+)x(\d+)$/); - if (!match) return "adaptive"; - const width = Number(match[1]); - const height = Number(match[2]); - if (!width || !height) return "adaptive"; - const ratio = width / height; - const options = [ - ["16:9", 16 / 9], - ["4:3", 4 / 3], - ["1:1", 1], - ["3:4", 3 / 4], - ["9:16", 9 / 16], - ["21:9", 21 / 9], - ] as const; - return options.reduce((best, item) => (Math.abs(item[1] - ratio) < Math.abs(best[1] - ratio) ? item : best), options[0])[0]; -} - -export function seedancePixelLabel(resolution: string, ratio: string) { - const normalizedResolution = normalizeSeedanceResolution(resolution) as keyof typeof seedancePixels; - const normalizedRatio = normalizeSeedanceRatio(ratio) as keyof (typeof seedancePixels)[typeof normalizedResolution] | "adaptive"; - if (normalizedRatio === "adaptive") return i18n.t("seedance.autoMatch"); - return seedancePixels[normalizedResolution][normalizedRatio] || ""; -} - -export function boolConfig(value: string | undefined, fallback: boolean) { - if (value === "true") return true; - if (value === "false") return false; - return fallback; -} - -export function seedanceReferenceLabel(kind: "image" | "video" | "audio", index: number) { - return i18n.t(`seedance.references.${kind}`, { index: index + 1 }); -} - -export function buildSeedancePromptText(prompt: string, images: ReferenceImage[], videos: ReferenceVideo[], audios: ReferenceAudio[]) { - const labels = [ - ...images.map((_, index) => seedanceReferenceLabel("image", index)), - ...videos.map((_, index) => seedanceReferenceLabel("video", index)), - ...audios.map((_, index) => seedanceReferenceLabel("audio", index)), - ]; - const text = prompt.trim(); - if (!labels.length) return text; - return i18n.t("seedance.promptPrefix", { labels: labels.join(i18n.t("seedance.separator")), prompt: text }); -} - -export function seedanceVideoReferenceError(videos: ReferenceVideo[]) { - let totalDurationMs = 0; - for (let index = 0; index < videos.length; index += 1) { - const video = videos[index]; - const label = seedanceReferenceLabel("video", index); - if (!SEEDANCE_VIDEO_MIME_TYPES.includes(video.type)) return i18n.t("seedance.errors.format", { label }); - if (video.bytes && video.bytes > SEEDANCE_REFERENCE_LIMITS.videoMaxBytes) return i18n.t("seedance.errors.size", { label }); - if (video.durationMs) { - if (video.durationMs < 2000 || video.durationMs > 15000) return i18n.t("seedance.errors.duration", { label }); - totalDurationMs += video.durationMs; - } - if (video.width && video.height) { - if (video.width < 300 || video.width > 6000 || video.height < 300 || video.height > 6000) return i18n.t("seedance.errors.dimensions", { label }); - const ratio = video.width / video.height; - if (ratio < 0.4 || ratio > 2.5) return i18n.t("seedance.errors.ratio", { label }); - const pixels = video.width * video.height; - if (pixels < 640 * 640 || pixels > 3326 * 2494) return i18n.t("seedance.errors.pixels", { label }); - } - } - if (totalDurationMs > 15000) return i18n.t("seedance.errors.totalDuration"); - return ""; -} - -export function seedanceVideoReferenceHint() { - return i18n.t("seedance.referenceHint"); -} diff --git a/web/src/pages/canvas/hooks/use-plugin-host.tsx b/web/src/pages/canvas/hooks/use-plugin-host.tsx index ae12570..b29b665 100644 --- a/web/src/pages/canvas/hooks/use-plugin-host.tsx +++ b/web/src/pages/canvas/hooks/use-plugin-host.tsx @@ -64,7 +64,7 @@ export function usePluginHost(params: PluginHostParams) { ...(options?.seconds ? { videoSeconds: options.seconds } : {}), }; ensureReady(config); - const file = await storeGeneratedVideo(await requestVideoGeneration(config, prompt, toReferences(options?.references), [], [], { signal: options?.signal })); + const file = await storeGeneratedVideo(await requestVideoGeneration(config, prompt, toReferences(options?.references), { signal: options?.signal })); return { url: file.url, mimeType: file.mimeType, width: file.width, height: file.height, durationMs: file.durationMs }; }, generateText: async (prompt, options) => { diff --git a/web/src/pages/canvas/project.tsx b/web/src/pages/canvas/project.tsx index fc20a2b..8c3fef9 100644 --- a/web/src/pages/canvas/project.tsx +++ b/web/src/pages/canvas/project.tsx @@ -2248,7 +2248,7 @@ function InfiniteCanvasPage() { const controller = startGenerationRequest(videoId, nodeId, nodeId, runController); try { const video = await storeGeneratedVideo( - await requestVideoGeneration(generationConfig, effectivePrompt, generationContext.referenceImages, generationContext.referenceVideos, generationContext.referenceAudios, { signal: controller.signal }), + await requestVideoGeneration(generationConfig, effectivePrompt, generationContext.referenceImages, { signal: controller.signal }), ); const videoSize = fitNodeSize(video.width || spec.width, video.height || spec.height, VIDEO_NODE_MAX_WIDTH, VIDEO_NODE_MAX_HEIGHT); setNodes((prev) => @@ -2453,7 +2453,7 @@ function InfiniteCanvasPage() { return; } if (node.type === CanvasNodeType.Video) { - const video = await storeGeneratedVideo(await requestVideoGeneration(generationConfig, prompt, retryImages, context?.referenceVideos || [], context?.referenceAudios || [], { signal: controller.signal })); + const video = await storeGeneratedVideo(await requestVideoGeneration(generationConfig, prompt, retryImages, { signal: controller.signal })); const videoSize = fitNodeSize(video.width || node.width, video.height || node.height, VIDEO_NODE_MAX_WIDTH, VIDEO_NODE_MAX_HEIGHT); setNodes((prev) => prev.map((item) => diff --git a/web/src/pages/video/index.tsx b/web/src/pages/video/index.tsx index 0bd8f94..fc415b7 100644 --- a/web/src/pages/video/index.tsx +++ b/web/src/pages/video/index.tsx @@ -1,4 +1,4 @@ -import { ArrowLeft, ArrowRight, BookOpen, CheckSquare, ClipboardPaste, Download, FolderPlus, History, LoaderCircle, Music2, Plus, SlidersHorizontal, Sparkles, Trash2, Upload, VideoIcon } from "lucide-react"; +import { ArrowLeft, ArrowRight, BookOpen, CheckSquare, ClipboardPaste, Download, FolderPlus, History, LoaderCircle, Plus, SlidersHorizontal, Sparkles, Trash2, Upload, VideoIcon } from "lucide-react"; import { useEffect, useRef, useState, type DragEvent } from "react"; import { App, Button, Checkbox, Drawer, Empty, Input, Modal, Tag, Typography } from "antd"; import localforage from "localforage"; @@ -12,16 +12,14 @@ import { PromptSelectDialog } from "@/components/prompts/prompt-select-dialog"; import { VideoSettingsPanel, normalizeVideoResolutionValue, normalizeVideoSizeValue, videoSizeLabel } from "@/components/video-settings-panel"; import { canvasThemes } from "@/lib/canvas-theme"; import { formatBytes, formatDuration } from "@/lib/image-utils"; -import { boolConfig, isSeedanceVideoConfig, normalizeSeedanceRatio, seedanceReferenceLabel, seedanceVideoReferenceError, seedanceVideoReferenceHint, SEEDANCE_REFERENCE_LIMITS, SEEDANCE_VIDEO_MIME_TYPES } from "@/lib/seedance-video"; -import { deleteStoredMedia, resolveMediaUrl, uploadMediaFile } from "@/services/file-storage"; +import { deleteStoredMedia, resolveMediaUrl } from "@/services/file-storage"; import { resolveImageUrl, uploadImage } from "@/services/image-storage"; import { createVideoGenerationTask, pollVideoGenerationTask, storeGeneratedVideo, type VideoGenerationTask } from "@/services/api/video"; import { useAssetStore } from "@/stores/use-asset-store"; import { useWorkbenchAgentStore } from "@/stores/use-workbench-agent-store"; -import { modelOptionLabel, useConfigStore, useEffectiveConfig, type AiConfig } from "@/stores/use-config-store"; +import { boolConfig, modelOptionLabel, useConfigStore, useEffectiveConfig, type AiConfig } from "@/stores/use-config-store"; import { useThemeStore } from "@/stores/use-theme-store"; import type { ReferenceImage } from "@/types/image"; -import type { ReferenceAudio, ReferenceVideo } from "@/types/media"; import i18n from "@/i18n"; type GeneratedVideo = { @@ -51,8 +49,6 @@ type GenerationLog = { model: string; config: GenerationLogConfig; references: ReferenceImage[]; - videoReferences: ReferenceVideo[]; - audioReferences: ReferenceAudio[]; durationMs: number; size: string; resolution: string; @@ -84,8 +80,6 @@ export default function VideoPage() { const addAsset = useAssetStore((state) => state.addAsset); const [prompt, setPrompt] = useState(""); const [references, setReferences] = useState([]); - const [videoReferences, setVideoReferences] = useState([]); - const [audioReferences, setAudioReferences] = useState([]); const [results, setResults] = useState([]); const [logs, setLogs] = useState([]); const [running, setRunning] = useState(false); @@ -98,7 +92,7 @@ export default function VideoPage() { const [selectedLogIds, setSelectedLogIds] = useState([]); const [previewLog, setPreviewLog] = useState(null); const [deleteConfirmOpen, setDeleteConfirmOpen] = useState(false); - const [referenceDragTarget, setReferenceDragTarget] = useState<"image" | "video" | "audio" | null>(null); + const [referenceDragTarget, setReferenceDragTarget] = useState(false); const [autoRunToken, setAutoRunToken] = useState(0); const videoCommand = useWorkbenchAgentStore((state) => state.videoCommand); const clearVideoCommand = useWorkbenchAgentStore((state) => state.clearVideoCommand); @@ -121,57 +115,34 @@ export default function VideoPage() { const addReferences = async (files?: FileList | null) => { const selectedFiles = Array.from(files || []); - const unsupported = selectedFiles.filter((file) => !file.type.startsWith("image/") && !SEEDANCE_VIDEO_MIME_TYPES.includes(file.type) && !isSupportedAudioFile(file)); + const unsupported = selectedFiles.filter((file) => !file.type.startsWith("image/")); if (unsupported.length) message.warning(t("videoWorkbench.unsupportedFiles")); - const imageFiles = selectedFiles.filter((file) => file.type.startsWith("image/") && file.size <= SEEDANCE_REFERENCE_LIMITS.imageMaxBytes).slice(0, SEEDANCE_REFERENCE_LIMITS.images - references.length); - const videoFiles = selectedFiles.filter((file) => SEEDANCE_VIDEO_MIME_TYPES.includes(file.type) && file.size <= SEEDANCE_REFERENCE_LIMITS.videoMaxBytes).slice(0, SEEDANCE_REFERENCE_LIMITS.videos - videoReferences.length); - const audioFiles = selectedFiles.filter((file) => isSupportedAudioFile(file) && file.size <= SEEDANCE_REFERENCE_LIMITS.audioMaxBytes).slice(0, SEEDANCE_REFERENCE_LIMITS.audios - audioReferences.length); - if (selectedFiles.some((file) => file.type.startsWith("image/") && file.size > SEEDANCE_REFERENCE_LIMITS.imageMaxBytes)) message.warning(t("videoWorkbench.imageTooLarge")); - if (selectedFiles.some((file) => SEEDANCE_VIDEO_MIME_TYPES.includes(file.type) && file.size > SEEDANCE_REFERENCE_LIMITS.videoMaxBytes)) message.warning(t("videoWorkbench.videoTooLarge")); - if (selectedFiles.some((file) => isSupportedAudioFile(file) && file.size > SEEDANCE_REFERENCE_LIMITS.audioMaxBytes)) message.warning(t("videoWorkbench.audioTooLarge")); + const imageFiles = selectedFiles.filter((file) => file.type.startsWith("image/")).slice(0, 7 - references.length); const nextReferences = await Promise.all( imageFiles.map(async (file) => { const image = await uploadImage(file); return { id: nanoid(), name: file.name, type: image.mimeType, dataUrl: image.url, storageKey: image.storageKey }; }), ); - const nextVideoReferences = await Promise.all( - videoFiles.map(async (file) => { - const video = await uploadMediaFile(file, "video-reference"); - return { id: nanoid(), name: file.name, type: video.mimeType, url: video.url, storageKey: video.storageKey, bytes: video.bytes, width: video.width, height: video.height, durationMs: video.durationMs }; - }), - ); - const nextAudioReferences = filterAudioReferencesByDuration( - audioReferences, - await Promise.all( - audioFiles.map(async (file) => { - const audio = await uploadMediaFile(file, "audio-reference"); - return { id: nanoid(), name: file.name, type: audio.mimeType, url: audio.url, storageKey: audio.storageKey, durationMs: audio.durationMs }; - }), - ), - message.warning, - ); - setReferences((value) => [...value, ...nextReferences].slice(0, SEEDANCE_REFERENCE_LIMITS.images)); - setVideoReferences((value) => [...value, ...nextVideoReferences].slice(0, SEEDANCE_REFERENCE_LIMITS.videos)); - setAudioReferences((value) => [...value, ...nextAudioReferences].slice(0, SEEDANCE_REFERENCE_LIMITS.audios)); + setReferences((value) => [...value, ...nextReferences].slice(0, 7)); }; - const handleReferenceDragEnter = (event: DragEvent, target: "image" | "video" | "audio") => { + const handleReferenceDragEnter = (event: DragEvent) => { event.preventDefault(); dragDepthRef.current += 1; - if (event.dataTransfer.types.includes("Files")) setReferenceDragTarget(target); + if (event.dataTransfer.types.includes("Files")) setReferenceDragTarget(true); }; const handleReferenceDragLeave = (event: DragEvent) => { event.preventDefault(); dragDepthRef.current = Math.max(0, dragDepthRef.current - 1); - if (!dragDepthRef.current) setReferenceDragTarget(null); + if (!dragDepthRef.current) setReferenceDragTarget(false); }; const handleReferenceDrop = (event: DragEvent) => { event.preventDefault(); dragDepthRef.current = 0; - setReferenceDragTarget(null); + setReferenceDragTarget(false); void addReferences(event.dataTransfer.files); }; @@ -184,12 +155,12 @@ export default function VideoPage() { return; } const nextReferences = await Promise.all( - blobs.slice(0, SEEDANCE_REFERENCE_LIMITS.images - references.length).map(async (blob, index) => { + blobs.slice(0, 7 - references.length).map(async (blob, index) => { const image = await uploadImage(blob); return { id: nanoid(), name: `clipboard-${index + 1}.png`, type: image.mimeType, dataUrl: image.url, storageKey: image.storageKey }; }), ); - setReferences((value) => [...value, ...nextReferences].slice(0, SEEDANCE_REFERENCE_LIMITS.images)); + setReferences((value) => [...value, ...nextReferences].slice(0, 7)); message.success(t("videoWorkbench.clipboardAdded", { count: nextReferences.length })); } catch { message.error(t("videoWorkbench.clipboardEmpty")); @@ -211,15 +182,15 @@ export default function VideoPage() { const batchStartedAt = performance.now(); setStartedAt(batchStartedAt); try { - const task = await createVideoGenerationTask(snapshot.config, snapshot.text, snapshot.references, snapshot.videoReferences, snapshot.audioReferences); - const log = buildLog({ prompt: snapshot.text, model, config: snapshot.config, references: snapshot.references, videoReferences: snapshot.videoReferences, audioReferences: snapshot.audioReferences, durationMs: 0, status: "pending", task }); + const task = await createVideoGenerationTask(snapshot.config, snapshot.text, snapshot.references); + const log = buildLog({ prompt: snapshot.text, model, config: snapshot.config, references: snapshot.references, durationMs: 0, status: "pending", task }); await saveLog(log, false); void pollGenerationLog(log, snapshot.config, agentTaskId); } catch (error) { const errorMessage = error instanceof Error ? error.message : t("workbench.generationFailed"); setResults([{ id: nanoid(), status: "failed", error: errorMessage }]); if (agentTaskId) updateAgentTask(agentTaskId, { status: "failed", successCount: 0, failCount: 1, error: errorMessage }); - await saveLog(buildLog({ prompt: snapshot.text, model, config: snapshot.config, references: snapshot.references, videoReferences: snapshot.videoReferences, audioReferences: snapshot.audioReferences, durationMs: performance.now() - batchStartedAt, status: "failed", error: errorMessage })); + await saveLog(buildLog({ prompt: snapshot.text, model, config: snapshot.config, references: snapshot.references, durationMs: performance.now() - batchStartedAt, status: "failed", error: errorMessage })); message.error(errorMessage); setRunning(false); } @@ -258,12 +229,7 @@ export default function VideoPage() { openConfigDialog(true); return null; } - const videoReferenceError = seedanceVideoReferenceError(videoReferences); - if (videoReferenceError) { - message.error(t("videoWorkbench.referenceError", { error: videoReferenceError, hint: seedanceVideoReferenceHint() })); - return null; - } - return { text, config: buildVideoConfig(effectiveConfig, model), references: [...references], videoReferences: [...videoReferences], audioReferences: [...audioReferences] }; + return { text, config: buildVideoConfig(effectiveConfig, model), references: [...references] }; }; const retryResult = () => { @@ -292,9 +258,7 @@ export default function VideoPage() { setPrompt(payload.content); } else if (payload.kind === "image") { const stored = await uploadImage(payload.dataUrl); - setReferences((value) => [...value, { id: nanoid(), name: payload.title, type: stored.mimeType, dataUrl: stored.url, storageKey: stored.storageKey }].slice(0, SEEDANCE_REFERENCE_LIMITS.images)); - } else if (payload.kind === "video") { - setVideoReferences((value) => [...value, { id: nanoid(), name: payload.title, type: "video/mp4", url: payload.url, storageKey: payload.storageKey, width: payload.width, height: payload.height }].slice(0, SEEDANCE_REFERENCE_LIMITS.videos)); + setReferences((value) => [...value, { id: nanoid(), name: payload.title, type: stored.mimeType, dataUrl: stored.url, storageKey: stored.storageKey }].slice(0, 7)); } setAssetPickerOpen(false); }; @@ -302,8 +266,6 @@ export default function VideoPage() { const createSession = () => { setPrompt(""); setReferences([]); - setVideoReferences([]); - setAudioReferences([]); setResults([]); setElapsedMs(0); setStartedAt(0); @@ -373,7 +335,7 @@ export default function VideoPage() { } if (state.status === "failed") throw new Error(state.error); if (attempt === 119) throw new Error(t("videoWorkbench.timeout")); - await delay(log.task.provider === "seedance" ? 5000 : 2500); + await delay(2500); } } catch (error) { const errorMessage = error instanceof Error ? error.message : t("workbench.generationFailed"); @@ -395,8 +357,6 @@ export default function VideoPage() { setLogsOpen(false); setPrompt(log.prompt); setReferences(log.references || []); - setVideoReferences(log.videoReferences || []); - setAudioReferences(log.audioReferences || []); if (log.config.videoModel || log.model) updateConfig("videoModel", log.config.videoModel || log.model); if (log.config.size) updateConfig("size", log.config.size); if (log.config.vquality) updateConfig("vquality", log.config.vquality); @@ -456,8 +416,8 @@ export default function VideoPage() {
handleReferenceDragEnter(event, "image")} + className={`hover-scrollbar hover-scrollbar-hint flex min-h-24 w-full min-w-0 max-w-full gap-2 overflow-x-scroll overflow-y-hidden rounded-lg border border-dashed p-2 pb-3 overscroll-x-contain transition-colors ${referenceDragTarget ? "border-stone-900 bg-stone-100/80 dark:border-stone-100 dark:bg-stone-900/80" : "border-stone-300 dark:border-stone-700"}`} + onDragEnter={handleReferenceDragEnter} onDragOver={(event) => { event.preventDefault(); event.dataTransfer.dropEffect = "copy"; @@ -468,80 +428,14 @@ export default function VideoPage() { {references.map((item, index) => (
{item.name} - {seedanceReferenceLabel("image", index)} + {index + 1} setReferences((value) => moveListItem(value, index, offset))} />
))} - {!references.length ?
{referenceDragTarget === "image" ? t("videoWorkbench.dropReferences") : t("videoWorkbench.noImages")}
: null} -
- - -
-
- {t("videoWorkbench.videoReferences")} - -
-
handleReferenceDragEnter(event, "video")} - onDragOver={(event) => { - event.preventDefault(); - event.dataTransfer.dropEffect = "copy"; - }} - onDragLeave={handleReferenceDragLeave} - onDrop={handleReferenceDrop} - > - {videoReferences.map((item, index) => ( -
-
- ))} - {!videoReferences.length ?
{referenceDragTarget === "video" ? t("videoWorkbench.dropReferences") : t("videoWorkbench.noVideos")}
: null} -
-
- -
-
- {t("videoWorkbench.audioReferences")} - -
-
handleReferenceDragEnter(event, "audio")} - onDragOver={(event) => { - event.preventDefault(); - event.dataTransfer.dropEffect = "copy"; - }} - onDragLeave={handleReferenceDragLeave} - onDrop={handleReferenceDrop} - > - {audioReferences.map((item, index) => ( -
-
- - {seedanceReferenceLabel("audio", index)} - {item.name} -
-
- ))} - {!audioReferences.length ?
{referenceDragTarget === "audio" ? t("videoWorkbench.dropReferences") : t("videoWorkbench.noAudio")}
: null} + {!references.length ?
{referenceDragTarget ? t("videoWorkbench.dropReferences") : t("videoWorkbench.noImages")}
: null}
@@ -587,7 +481,7 @@ export default function VideoPage() { { @@ -776,18 +670,6 @@ async function readStoredLogs() { async function normalizeLog(log: Partial): Promise { const video = log.video?.storageKey ? { ...log.video, url: await resolveMediaUrl(log.video.storageKey, log.video.url) } : log.video; - const videoReferences = await Promise.all( - (log.videoReferences || []).map(async (item) => ({ - ...item, - url: item.storageKey ? await resolveMediaUrl(item.storageKey, item.url) : item.url, - })), - ); - const audioReferences = await Promise.all( - (log.audioReferences || []).map(async (item) => ({ - ...item, - url: item.storageKey ? await resolveMediaUrl(item.storageKey, item.url) : item.url, - })), - ); const references = await Promise.all( (log.references || []).map(async (item) => ({ ...item, @@ -804,8 +686,6 @@ async function normalizeLog(log: Partial): Promise model: log.model || config.videoModel || "", config, references, - videoReferences, - audioReferences, durationMs: log.durationMs || 0, size: log.size || config.size || "", resolution: normalizeResolution(log.resolution || config.vquality || ""), @@ -821,36 +701,10 @@ function serializeLog(log: GenerationLog): GenerationLog { return { ...log, references: log.references.map((item) => ({ ...item, dataUrl: item.storageKey ? "" : item.dataUrl })), - videoReferences: log.videoReferences.map((item) => (item.storageKey ? { ...item, url: "" } : item)), - audioReferences: log.audioReferences.map((item) => (item.storageKey ? { ...item, url: "" } : item)), video: log.video?.storageKey ? { ...log.video, url: "" } : log.video, }; } -function isSupportedAudioFile(file: File) { - return file.type === "audio/mpeg" || file.type === "audio/mp3" || file.type === "audio/wav" || file.type === "audio/x-wav" || /\.(mp3|wav)$/i.test(file.name); -} - -function filterAudioReferencesByDuration(existing: ReferenceAudio[], next: ReferenceAudio[], warn: (content: string) => void) { - let total = existing.reduce((sum, item) => sum + (item.durationMs || 0), 0); - const accepted: ReferenceAudio[] = []; - let skipped = false; - for (const item of next) { - if (item.durationMs && (item.durationMs < 2000 || item.durationMs > 15000)) { - skipped = true; - continue; - } - if (item.durationMs && total + item.durationMs > 15000) { - skipped = true; - continue; - } - total += item.durationMs || 0; - accepted.push(item); - } - if (skipped) warn(i18n.t("videoWorkbench.audioDurationInvalid")); - return accepted; -} - function moveListItem(items: T[], index: number, offset: number) { const targetIndex = index + offset; if (targetIndex < 0 || targetIndex >= items.length) return items; @@ -881,7 +735,7 @@ function normalizeLogConfig(log: Partial): GenerationLogConfig { }; } -function buildLog({ prompt, model, config, references, videoReferences, audioReferences, durationMs, status, task, video, error }: { prompt: string; model: string; config: AiConfig; references: ReferenceImage[]; videoReferences: ReferenceVideo[]; audioReferences: ReferenceAudio[]; durationMs: number; status: GenerationLog["status"]; task?: VideoGenerationTask; video?: GeneratedVideo; error?: string }): GenerationLog { +function buildLog({ prompt, model, config, references, durationMs, status, task, video, error }: { prompt: string; model: string; config: AiConfig; references: ReferenceImage[]; durationMs: number; status: GenerationLog["status"]; task?: VideoGenerationTask; video?: GeneratedVideo; error?: string }): GenerationLog { const logConfig = { model: config.model, videoModel: config.videoModel, @@ -900,8 +754,6 @@ function buildLog({ prompt, model, config, references, videoReferences, audioRef model, config: logConfig, references, - videoReferences, - audioReferences, durationMs, size: logConfig.size, resolution: logConfig.vquality, @@ -914,12 +766,11 @@ function buildLog({ prompt, model, config, references, videoReferences, audioRef } function buildVideoConfig(config: AiConfig, model: string): AiConfig { - const seedance = isSeedanceVideoConfig({ ...config, model }); return { ...config, model, videoModel: model, - size: seedance ? normalizeSeedanceRatio(config.size) : normalizeVideoSize(config.size), + size: normalizeVideoSize(config.size), videoSeconds: normalizeVideoSeconds(config.videoSeconds), vquality: normalizeResolution(config.vquality), videoGenerateAudio: String(boolConfig(config.videoGenerateAudio, true)), diff --git a/web/src/services/api/image.ts b/web/src/services/api/image.ts index e062a09..f3c829b 100644 --- a/web/src/services/api/image.ts +++ b/web/src/services/api/image.ts @@ -805,37 +805,6 @@ export async function requestEdit(config: AiConfig, prompt: string, references: } } - if (requestConfig.apiFormat === "ark") { - if (mask) throw new Error(apiText("maskModelUnsupported")); - const quality = normalizeQuality(config.quality); - const requestSize = resolveRequestSize(quality, config.size); - const background = normalizeBackground(config.background); - const refs = await Promise.all(references.map((image) => imageToDataUrl(image))); - try { - const response = await axios.post( - aiApiUrl(requestConfig, "/images/generations"), - { - model: requestConfig.model, - prompt: withSystemPrompt(requestConfig, requestPrompt), - n, - response_format: "b64_json", - output_format: IMAGE_OUTPUT_FORMAT, - image: refs, - ...(quality ? { quality } : {}), - ...(requestSize ? { size: requestSize } : {}), - ...(background ? { background } : {}), - }, - { - headers: aiHeaders(requestConfig, "application/json"), - signal: options?.signal, - }, - ); - return parseImagePayload(response.data); - } catch (error) { - throw new Error(readAxiosError(error, apiText("requestFailed"))); - } - } - const quality = normalizeQuality(config.quality); const requestSize = resolveRequestSize(quality, config.size); const background = normalizeBackground(config.background); diff --git a/web/src/services/api/video.ts b/web/src/services/api/video.ts index d81d1f7..cd99d48 100644 --- a/web/src/services/api/video.ts +++ b/web/src/services/api/video.ts @@ -3,31 +3,20 @@ import { nanoid } from "nanoid"; import i18n from "@/i18n"; import { dataUrlToFile } from "@/lib/image-utils"; -import { getMediaBlob, uploadMediaFile, type UploadedFile } from "@/services/file-storage"; +import { uploadMediaFile, type UploadedFile } from "@/services/file-storage"; import { imageToDataUrl } from "@/services/image-storage"; -import { boolConfig, buildSeedancePromptText, isSeedanceVideoConfig, normalizeSeedanceDuration, normalizeSeedanceRatio, normalizeSeedanceResolution, seedanceVideoReferenceError, SEEDANCE_REFERENCE_LIMITS } from "@/lib/seedance-video"; -import { buildApiUrl, modelOptionName, resolveModelRequestConfig, resolveModelScript, type AiConfig } from "@/stores/use-config-store"; +import { boolConfig, buildApiUrl, modelOptionName, resolveModelRequestConfig, resolveModelScript, type AiConfig } from "@/stores/use-config-store"; import { runModelPlugin } from "./model-plugin"; import type { ReferenceImage } from "@/types/image"; -import type { ReferenceAudio, ReferenceVideo } from "@/types/media"; type VideoResponse = { id: string; status?: string; error?: { message?: string }; url?: string; result_url?: string; video_url?: string; content?: { video_url?: string; url?: string } | null }; type ApiVideoResponse = VideoResponse | { code?: number | string; data?: VideoResponse | null; msg?: string; message?: string; error?: { message?: string } }; -type SeedanceTask = { - id: string; - status?: "queued" | "running" | "succeeded" | "completed" | "failed" | "cancelled" | "expired"; - error?: { code?: string; message?: string } | null; - content?: { video_url?: string; url?: string; last_frame_url?: string } | null; - url?: string; - result_url?: string; - video_url?: string; -}; type ApiEnvelope = T | { code?: number | string; data?: T | null; msg?: string; message?: string; error?: { message?: string } }; type RequestOptions = { signal?: AbortSignal }; const apiText = (key: string, options?: Record) => i18n.t(`apiErrors.${key}`, options); export type VideoGenerationResult = { blob?: Blob; url?: string; mimeType?: string }; -export type VideoGenerationTask = { id: string; provider: "openai" | "seedance" | "plugin"; model: string }; +export type VideoGenerationTask = { id: string; provider: "openai" | "plugin"; model: string }; export type VideoGenerationTaskState = { status: "pending" } | { status: "completed"; result: VideoGenerationResult } | { status: "failed"; error: string }; /** Results for scripted (plugin) video models, which run their own create+poll in one shot at task creation. */ @@ -44,32 +33,25 @@ function aiHeaders(config: AiConfig, contentType?: string) { }; } -export async function requestVideoGeneration(config: AiConfig, prompt: string, references: ReferenceImage[] = [], videoReferences: ReferenceVideo[] = [], audioReferences: ReferenceAudio[] = [], options?: RequestOptions): Promise { - const task = await createVideoGenerationTask(config, prompt, references, videoReferences, audioReferences, options); - const delayMs = task.provider === "seedance" ? 5000 : 2500; +export async function requestVideoGeneration(config: AiConfig, prompt: string, references: ReferenceImage[] = [], options?: RequestOptions): Promise { + const task = await createVideoGenerationTask(config, prompt, references, options); for (let attempt = 0; attempt < 120; attempt += 1) { if (options?.signal?.aborted) throw new DOMException("Aborted", "AbortError"); const state = await pollVideoGenerationTask(config, task, options); if (state.status === "completed") return state.result; if (state.status === "failed") throw new Error(state.error); - if (attempt === 119) throw new Error(apiText("videoTimeout", { provider: task.provider === "seedance" ? "Seedance " : "" })); - await delay(delayMs, options?.signal); + if (attempt === 119) throw new Error(apiText("videoTimeout", { provider: "" })); + await delay(2500, options?.signal); } throw new Error(apiText("videoTimeout", { provider: "" })); } -export async function createVideoGenerationTask(config: AiConfig, prompt: string, references: ReferenceImage[] = [], videoReferences: ReferenceVideo[] = [], audioReferences: ReferenceAudio[] = [], options?: RequestOptions): Promise { +export async function createVideoGenerationTask(config: AiConfig, prompt: string, references: ReferenceImage[] = [], options?: RequestOptions): Promise { const selectedModel = (config.model || config.videoModel).trim(); const requestConfig = resolveModelRequestConfig(config, selectedModel); const script = resolveModelScript(config, selectedModel); if (script) return createPluginVideoTask(requestConfig, selectedModel, script, prompt, references, options); assertVideoConfig(requestConfig, requestConfig.model); - if (isSeedanceVideoConfig(requestConfig)) { - return createSeedanceTask(requestConfig, selectedModel, prompt, references, videoReferences, audioReferences, options); - } - if (videoReferences.length || audioReferences.length) { - throw new Error(apiText("videoReferencesUnsupported")); - } return createOpenAIVideoTask(requestConfig, selectedModel, prompt, references, options); } @@ -80,7 +62,7 @@ export async function pollVideoGenerationTask(config: AiConfig, task: VideoGener } const requestConfig = resolveModelRequestConfig(config, task.model); assertVideoConfig(requestConfig, requestConfig.model); - return task.provider === "seedance" ? pollSeedanceTask(requestConfig, task, options) : pollOpenAIVideoTask(requestConfig, task, options); + return pollOpenAIVideoTask(requestConfig, task, options); } async function createPluginVideoTask(config: AiConfig, model: string, script: string, prompt: string, references: ReferenceImage[], options?: RequestOptions): Promise { @@ -170,114 +152,6 @@ async function pollOpenAIVideoTask(config: AiConfig, task: VideoGenerationTask, } } -async function createSeedanceTask(config: AiConfig, model: string, prompt: string, references: ReferenceImage[], videoReferences: ReferenceVideo[], audioReferences: ReferenceAudio[], options?: RequestOptions): Promise { - if (audioReferences.length && !references.length && !videoReferences.length) { - throw new Error(apiText("seedanceAudioRequiresVisual")); - } - assertSeedanceVideoReferences(videoReferences); - assertSeedanceAudioReferences(audioReferences); - const content = await buildSeedanceContent(config, prompt, references, videoReferences, audioReferences); - if (!content.length) throw new Error(apiText("videoPromptRequired")); - const payload = { - model: modelOptionName(model), - content, - ratio: normalizeSeedanceRatio(config.size), - resolution: normalizeSeedanceResolution(config.vquality), - duration: normalizeSeedanceDuration(config.videoSeconds), - generate_audio: boolConfig(config.videoGenerateAudio, true), - watermark: boolConfig(config.videoWatermark, false), - }; - - try { - const created = unwrapSeedanceTask((await axios.post>(seedanceApiUrl(config), payload, { headers: aiHeaders(config, "application/json"), signal: options?.signal })).data); - if (!created.id) throw new Error(apiText("seedanceNoTaskId")); - return { id: created.id, provider: "seedance", model }; - } catch (error) { - throw new Error(readAxiosError(error, apiText("seedanceTaskCreateFailed"))); - } -} - -async function pollSeedanceTask(config: AiConfig, task: VideoGenerationTask, options?: RequestOptions): Promise { - try { - const state = unwrapSeedanceTask((await axios.get>(seedanceApiUrl(config, task.id), { headers: aiHeaders(config), signal: options?.signal })).data); - const url = videoResultUrl(state); - if (url) return { status: "completed", result: await videoResultFromUrl(url, options) }; - if (state.status === "succeeded" || state.status === "completed") return { status: "failed", error: apiText("seedanceNoVideoUrl") }; - if (state.status === "failed" || state.status === "cancelled" || state.status === "expired") return { status: "failed", error: readApiErrorMessage(state.error?.message) || apiText(state.status === "expired" ? "seedanceVideoTimeout" : "seedanceVideoFailed") }; - return { status: "pending" }; - } catch (error) { - throw new Error(readAxiosError(error, apiText("seedanceTaskQueryFailed"))); - } -} - -function assertSeedanceVideoReferences(videoReferences: ReferenceVideo[]) { - const error = seedanceVideoReferenceError(videoReferences); - if (error) throw new Error(error); - let total = 0; - for (const video of videoReferences) { - if (!video.durationMs) continue; - if (video.durationMs < 2000 || video.durationMs > 15000) throw new Error(apiText("seedanceVideoDuration")); - total += video.durationMs; - } - if (total > 15000) throw new Error(apiText("seedanceVideoTotalDuration")); -} - -function assertSeedanceAudioReferences(audioReferences: ReferenceAudio[]) { - let total = 0; - for (const audio of audioReferences) { - if (!audio.durationMs) continue; - if (audio.durationMs < 2000 || audio.durationMs > 15000) throw new Error(apiText("seedanceAudioDuration")); - total += audio.durationMs; - } - if (total > 15000) throw new Error(apiText("seedanceAudioTotalDuration")); -} - -function seedanceApiUrl(config: AiConfig, taskId?: string) { - return buildApiUrl(config.baseUrl, `/contents/generations/tasks${taskId ? `/${encodeURIComponent(taskId)}` : ""}`); -} - -async function buildSeedanceContent(config: AiConfig, prompt: string, references: ReferenceImage[], videoReferences: ReferenceVideo[], audioReferences: ReferenceAudio[]) { - const content: Array> = []; - const text = buildSeedancePromptText(prompt, references, videoReferences, audioReferences); - if (text) content.push({ type: "text", text }); - for (const image of references.slice(0, SEEDANCE_REFERENCE_LIMITS.images)) { - content.push({ type: "image_url", image_url: { url: await resolveSeedanceImageUrl(config, image) }, role: "reference_image" }); - } - for (const video of videoReferences.slice(0, SEEDANCE_REFERENCE_LIMITS.videos)) { - content.push({ type: "video_url", video_url: { url: await resolveSeedanceVideoUrl(video) }, role: "reference_video" }); - } - for (const audio of audioReferences.slice(0, SEEDANCE_REFERENCE_LIMITS.audios)) { - content.push({ type: "audio_url", audio_url: { url: await resolveSeedanceAudioUrl(audio) }, role: "reference_audio" }); - } - return content; -} - -async function resolveSeedanceImageUrl(config: AiConfig, image: ReferenceImage) { - const directUrl = image.url || image.dataUrl; - if (isPublicMediaUrl(directUrl) || directUrl.startsWith("asset://")) return directUrl; - const dataUrl = await imageToDataUrl(image); - if (!dataUrl) throw new Error(apiText("referenceImageReadFailed")); - return dataUrl; -} - -async function resolveSeedanceVideoUrl(video: ReferenceVideo) { - if (isPublicMediaUrl(video.url) || video.url.startsWith("asset://")) return video.url; - let blob: Blob | null = null; - if (video.storageKey) blob = await getMediaBlob(video.storageKey); - if (!blob && video.url?.startsWith("blob:")) blob = await (await fetch(video.url)).blob(); - if (!blob) throw new Error(apiText("invalidReferenceVideo")); - return blobToDataUrl(blob); -} - -async function resolveSeedanceAudioUrl(audio: ReferenceAudio) { - if (isPublicMediaUrl(audio.url) || audio.url.startsWith("asset://")) return audio.url; - let blob: Blob | null = null; - if (audio.storageKey) blob = await getMediaBlob(audio.storageKey); - if (!blob && audio.url?.startsWith("blob:")) blob = await (await fetch(audio.url)).blob(); - if (!blob) throw new Error(apiText("invalidReferenceAudio")); - return blobToDataUrl(blob); -} - async function videoResultFromUrl(url: string, options?: RequestOptions): Promise { try { const response = await axios.get(url, { responseType: "blob", signal: options?.signal }); @@ -319,10 +193,6 @@ function unwrapVideoResponse(payload: ApiVideoResponse) { return unwrapEnvelope(payload, apiText("noVideoTask")); } -function unwrapSeedanceTask(payload: ApiEnvelope) { - return unwrapEnvelope(payload, apiText("seedanceNoTask")); -} - function unwrapEnvelope(payload: ApiEnvelope, emptyMessage: string): T { if (!payload) throw new Error(emptyMessage); if (typeof payload === "object" && "code" in payload && payload.code !== undefined) { @@ -333,7 +203,7 @@ function unwrapEnvelope(payload: ApiEnvelope, emptyMessage: string): T { return payload as T; } -function videoResultUrl(payload: VideoResponse | SeedanceTask) { +function videoResultUrl(payload: VideoResponse) { return [payload.video_url, payload.result_url, payload.url, payload.content?.video_url, payload.content?.url].find((url) => typeof url === "string" && (isPublicMediaUrl(url) || /\.mp4(\?|#|$)/i.test(url))); } @@ -415,12 +285,3 @@ function delay(ms: number, signal?: AbortSignal) { ); }); } - -function blobToDataUrl(blob: Blob) { - return new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.onload = () => resolve(String(reader.result || "")); - reader.onerror = () => reject(new Error(apiText("localAssetReadFailed"))); - reader.readAsDataURL(blob); - }); -} diff --git a/web/src/stores/use-config-store.ts b/web/src/stores/use-config-store.ts index d00e32e..8565daf 100644 --- a/web/src/stores/use-config-store.ts +++ b/web/src/stores/use-config-store.ts @@ -5,7 +5,7 @@ import { nanoid } from "nanoid"; import i18n from "@/i18n"; -export type ApiCallFormat = "openai" | "gemini" | "ark"; +export type ApiCallFormat = "openai" | "gemini"; export type ModelCapability = "image" | "video" | "text" | "audio"; export type ReasoningEffort = "auto" | "low" | "medium" | "high" | "xhigh"; @@ -66,7 +66,6 @@ export const CONFIG_STORE_KEY = "infinite-canvas:ai_config_store"; const CHANNEL_MODEL_SEPARATOR = "::"; const OPENAI_BASE_URL = "https://api.openai.com"; const GEMINI_BASE_URL = "https://generativelanguage.googleapis.com"; -const ARK_BASE_URL = "https://ark.cn-beijing.volces.com/api/v3"; export const defaultConfig: AiConfig = { channelMode: "local", @@ -133,7 +132,11 @@ type ConfigStore = { clearPromptContinue: () => void; }; -const VIDEO_KEYWORDS = ["seedance", "video", "sora", "veo", "kling", "wan", "hailuo"]; +const VIDEO_KEYWORDS = ["video", "sora", "veo", "kling", "wan", "hailuo"]; + +export function boolConfig(value: string, fallback: boolean) { + return value ? value === "true" : fallback; +} const AUDIO_KEYWORDS = ["audio", "tts", "speech", "voice", "music", "sound"]; const IMAGE_KEYWORDS = ["seedream", "gpt-image", "image", "dall-e", "dalle", "imagen", "flux", "sdxl", "stable-diffusion", "midjourney"]; @@ -372,12 +375,11 @@ function normalizeChannels(config: AiConfig) { export function defaultBaseUrlForApiFormat(apiFormat: ApiCallFormat) { if (apiFormat === "gemini") return GEMINI_BASE_URL; - if (apiFormat === "ark") return ARK_BASE_URL; return OPENAI_BASE_URL; } function normalizeApiFormat(apiFormat: unknown): ApiCallFormat { - return apiFormat === "gemini" || apiFormat === "ark" ? apiFormat : "openai"; + return apiFormat === "gemini" ? apiFormat : "openai"; } function uniqueModelOptions(models: string[]) { @@ -385,27 +387,8 @@ function uniqueModelOptions(models: string[]) { } export function buildApiUrl(baseUrl: string, path: string) { - let normalizedBaseUrl = baseUrl.trim().replace(/\/+$/, ""); - normalizedBaseUrl = normalizeArkPlanBaseUrl(normalizedBaseUrl); + const normalizedBaseUrl = baseUrl.trim().replace(/\/+$/, ""); const lowerBaseUrl = normalizedBaseUrl.toLowerCase(); - const apiBaseUrl = lowerBaseUrl.endsWith("/v1") || lowerBaseUrl.endsWith("/api/v3") || lowerBaseUrl.endsWith("/api/plan/v3") ? normalizedBaseUrl : `${normalizedBaseUrl}/v1`; + const apiBaseUrl = lowerBaseUrl.endsWith("/v1") ? normalizedBaseUrl : `${normalizedBaseUrl}/v1`; return `${apiBaseUrl}${path}`; } - -function normalizeArkPlanBaseUrl(baseUrl: string) { - try { - const url = new URL(baseUrl); - const path = url.pathname.replace(/\/+$/, ""); - const lowerPath = path.toLowerCase(); - const arkPlanIndex = lowerPath.indexOf("/api/plan/v3"); - if (arkPlanIndex < 0) return baseUrl; - const end = arkPlanIndex + "/api/plan/v3".length; - if (lowerPath.length !== end && lowerPath[end] !== "/") return baseUrl; - url.pathname = path.slice(0, end); - url.search = ""; - url.hash = ""; - return url.toString().replace(/\/+$/, ""); - } catch { - return baseUrl; - } -}