From c27b0c7e556b917186651c168b5d4a7bf95a33f2 Mon Sep 17 00:00:00 2001 From: "Salvador E. Tropea" Date: Sat, 19 Jul 2025 19:40:00 -0300 Subject: [PATCH] [Examples][Added] Two for `Audio Download and Load` Applied to other examples. --- README.md | 6 ++++++ .../audio_batch_select_example_extra.jpg | Bin 0 -> 14319 bytes .../audio_batch_select_example_extra.json | 1 + .../resample_force_stereo_extra.jpg | Bin 0 -> 10964 bytes .../resample_force_stereo_extra.json | 1 + 5 files changed, 8 insertions(+) create mode 100644 example_workflows/audio_batch_select_example_extra.jpg create mode 100644 example_workflows/audio_batch_select_example_extra.json create mode 100644 example_workflows/resample_force_stereo_extra.jpg create mode 100644 example_workflows/resample_force_stereo_extra.json diff --git a/README.md b/README.md index 472446c..4a6321b 100644 --- a/README.md +++ b/README.md @@ -300,6 +300,7 @@ workflows, especially when dealing with multiple audio inputs or outputs. - **Behavior Details:** - **Caching:** The node checks the `ComfyUI/input/` folder first. If the file with the specified `filename` already exists, the download is skipped. - **Resampling:** `torchaudio` is used to load the audio, and it will resample to `target_sample_rate` during loading if a non-zero value is provided. + - **Player**: This node uses an `AUDIO_UI` widget to allow playing the downloaded song. ## 🚀 Installation @@ -329,8 +330,13 @@ Once installed the examples are available in the ComfyUI workflow templates, in - [audio_batch_select_example.json](example_workflows/audio_batch_select_example.json): Shows how to create a batch and how to extract a single element from the batch. +- [audio_batch_select_example_extra.json](example_workflows/audio_batch_select_example_extra.json): This is like + **audio_batch_select_example.json**, but shows how to use `Audio Download and Load`, so you have three aeasy to use + audio files that are automatically downloaded. - [resample_force_stereo.json](example_workflows/resample_force_stereo.json): Shows how to change the number of channels and the sample rate. +- [resample_force_stereo_extra.json](example_workflows/resample_force_stereo_extra.json): This is like + **resample_force_stereo.json** but with more information (needs Easy-Use nodes) and shows how to use `Audio Download and Load` - [generate_and_blend.json](example_workflows/generate_and_blend.json): Shows how to generate four musical notes and blend them together to create a chord. - [cut_and_concat.json](example_workflows/cut_and_concat.json): Shows how to cut and concatenate audio. diff --git a/example_workflows/audio_batch_select_example_extra.jpg b/example_workflows/audio_batch_select_example_extra.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c6076ff32de3b398eb93601ad4c36c9e046ff02f GIT binary patch literal 14319 zcmb8V1ymhNvnV{cySuvtf`mYDcPBW(9fDhc;BFfY?u1}L5+t}g!5sogaDuzN**WKa z_x@}B_pSA6YPxH>tE;Q4YkGIr?5BmN9{{$3jJym00|Gk?I{-XA0(g?HmZt8O7Svw0 z?l#o2^2%yYo3NkdB_&PNG*o5em83y#0D#SRFn4r=7XtuCCwEs3SqW-gJ$-7VT>uHd z0|)_R0L|3g?X9?)niBB8!sQ$QN&i@6%^Uz=sKIJ6^S7?t@CC{BIEqx�qtUW!QF#rHkG5|azK0VzPJUu-W0s!0!0CYP2cYEi201&tU z%M<^*j6M$lutEXgYwv%TnWY0jV*~&YFTOQ(HT~NU9GJpdSpmRl8317D0RY~206;bP z$8KO9v>qs$2LLV5R!U<4@F5cb7_C9shX2dBk--N4vD^QZ=U@9hEd!DOB0K^j0z4uj z0wNL;A~GsADk=&JDn2F_IyMnLF)Sllq?Gj}a%1 z)<^WE3AR#F1~ZsKohb1_9k9*}CekLgP_1rILMKWL0N@D<)e!wCef@^%X_G(XxOgQY z0EpD$V&Y;jg=$be(AYyi+N6L4OeA1kF&3d@&I((5w$28vgvW=+2S`EJ0ikYC0owK7 zo^)Xrwm;edfW*tJINVyGmsbG;nsH;muwhR!>semUMkA}~I1bs1fiFUhK&V4=B20@i zldz96O1;oJvkY}}wTm3&HWBeEKVE(sGs#hvYo;gU0JAw?V8 zy0Syj?zcOQqc;{Ws>Fa8r4Qb^;qOzy@v_%{Kby^Qp&`g98S zb%d8@DK(6KY0-bPzt}f955)d{cQrC64TJEvQ*1S$ZbE!QV?P=>c8r5_RaRI^K}-^E zVpTggAn)BzW{FQ6v@R#jq$l6l0c6FYH3R@la-ihL7o2!mV;>Kw2=@Ap3GIu%H)5Yy z+hba6NV%}XoG9N_42T+4ewc}7m5vbH4$5&?ac$TevO8r(rG<&Se0625l+VM2N7~i; zo+i>voxS=A5SFcG!^TO^$x$zai8P~^k#cuJ09G=`UHY@WXF2TbKaYHkCpf|jz@qJ* zsbp*=5lF@#J3;#g&6b;INX?TnB3b#(!$O8861}zQb+*?<%zJo^51Cur2AHwii@VJE zKhNfIzETs%_rD+m;3%v6aGpqD03*5TfDJ-*TJU3rJzee~)Ek^C&^Xk0iC|@tW?h^Vk9it!DiWr`|}3 zaX(`;Yjr#S)}1D8VH2s>H6RZ9ny>wURRvpeNN(FIbUvjm6fLcM*hUwd^`)_4dM5mv zcGGLPfO`H$|E2WEN&vpq%6>rfbt{XWZqx_OiR~h(D%?XETeCxbvESClA>Nu=bhNs1 zXbuBRPFhlxO(g;tCKI1(BT-~1GyVB7Nnr^JbYAudoZt3jTADMysgKEt`u2p6^5Dn3X*jO)S@&pA9FKxjYjj zznO7_G++8F+%ta^Am>g%m)T^Ups<{UH^~nu9PX|Xf(h?}Xw~vXk`@{)-H+xOOhQ(i zDw%s{zLz7dz1grmd`a$B0Z-C(Z;9#4?@PWwf<*J}q$A1F*=%OsH3O|#f~;9;*_m;8 zu1u%?k`cWtg9p)XA}}n^dmZwo6H}t0!O!3}?rb+(mhZby!mEK?gAphGfd^Hv^Im%G zl|=o6t$V9$6nlfqw$D11f^$SmeyX;Iv%%-}53(AnavINDcO8(YQx69U$2?u_c$fRT ziqtYgXBZ2fb)P)2=w?=AR)p8)xFrfMp6hUWq@M12D29y{ImNovbHbC$e# zOv8rK{5L)LspSwfmtM~-bhowU&BvWJJpu3=mnOgfg~_b`WoFw&czF4sjKWP``c9?s zQVzxYLYqv+_B2;f5v8FIJd75jACeK3M6o!w)6PbGezz8{+S&e6ahj1=&OA`?UHZg5 zYfk?w)?kmn%6dd@+|SE)v3B&nL)r|&dN5rtF&1Bg4LQ0a#zW&`gzwD2gMFhYI-}n^ zZwS5SGIn30M9-2GZ0gqsMLS_~e|5avGF#VcFU?~9=SpuMxMjof(>~oE&f|Pno_b_` zU_PA?v)0+ju^PAiwI_`}x8Gu{wAuggXCv)gto-@$qV&G}^LCyJKShPQyf%;csy>J7 zgjcc=vEANVYMJA`*{#pjo*M`E^m%(9Foy7wNbJ+UX{ODS4orFiEVK^`NxAt@J}OJt z;gmlCS)wy;U}?8lSgO_1MvsaZTmQw$?YdqKoFQ-Jq=|Nk?|!I~ME-aTf`UwHcC@B8 zxo;OA0&y5jX73zhEyv~8iJqOBQ|fe%89kubgagB-HxrVZ6T5!r{Emy^bI|+qUpfb6D>;`)Qhw;;WKe z{eGvzJ@tjX%-DIpF*n0`SXp8&m#AE_35@N?(-gk>1{KqTx|ZCY)ABU^%Xc;^JIurB zCFBM&oDF!RPe5R2d&}dQNMm)Oex{^dwY#nu($X90D)e8o#?>?QU$+C5%N||*$tSMv z(e`VO!gKW9Z70iga`ZiHgAu@&DV=8x{g;)&Wg{h3#b9Oi9^;-Bcr(#7v3 z{oWOPd)spV;grs<+xGjauij%(IZyE}=~o`@L^>6dACG<43DSW9{a&^UaaxXkFqx>y8A;e~ve1yGhoZY;*;>P2&>AWoAt@c>x2;#sbeJ|*Pl3qOL)fQi zuw&HiD7Y_5X!jJ8T%Sn~7X1Rng7|t|p`0EfKO|C{`8H-`WMnAy;?uKdr9&Z==?15F9==P>T#r)FLCG`H?ujdNiQC%R!j`po)yac$ zz+x3;h`fu7%iCzMw-nbg89N^J%-9*LB0l0;Q6<$hMc3^v%?NnN3lhd{7J7)AY9(*N6UjNG)zk){MAZ1Jky{XgJZ@n z9qG=@{3B(2x&c%!j88IIoiuVrrjQTkW1N&7Z5gMlMii)#@R5PtusYOW5VdC3Qn`xr z=#KwN+#3%R2yeAAtv;06{!QX!H00@j)2?eWK){)1y(2bElz^HexZPE`^;dSXmvfDy zi8&fXofi@%HKj~H#Tff{NbkyqmOOLHY*rp(MFYrHT%`)tnIX~>CtS@mgoQH__cQ@u zM*q)@JOMGFl{CN3=z}f+&Q(Gi=#)%Qr-Xw={2%8F92i(!Zft5eJkTk{#MMmIpa0{P zuu!i&*X;)l_F@0xToVt8GdW#;r1n>wPbb)^$78$rKs9&6T2qWq4Q!$OWKTqx}z+z1XyRQ;~w8agC;-s z(St7i*7XTcG1(n?pv|(o_&9o4frQj!?4C0n7kK3G1a#=fjxT+FTf0#sg3@0A2IBw9|4ai_Ogj&LU)bEt=tZwKu@JaW9D{$jj3>y>L3mMy#q+h2oSZ0q=-oejfJ53D{M7W|oKHbF3l)2@=a!W5!2CfMpv`{`PZ!0n{kq3iKBdZ18vqi+}GOzO}DPef46psqOezF z23EfxS&azdcB}oGs+gt*aMbNt%%1?#xv5*6>5_WX$Ye!%as;W{0i4rQ zitL14F7>cy<$f=Oi+tOES9 ztn|6$VBtIlZl+uvYqBo{lBA*WS}Ucl5wF&+7j-7A0!@pcvH~Nzhrp!Q@`$^U=51Jf zpJ5R>!LX=;Ag||R3M~-cch|NQjlntDWtSZvbzafYXY|O7Cs1}YWXU95c%3tBXJ_YG z&`4g0t0P-DP&m2wSvm4Hxqx{g=y?*QLitAX%P;S_`|S0`{)5_;C{+~(nfXx<*-jNxpDcnpm z#MthQ`XI&0_%;l*8e0;sR$4B{@z-UL^mJSfC4meuB_8L8q6ywxLWs z>U`7VR1KB<>xAO+Jb9&Tx;m7*nSbGQ=##RBU9z^-)^!b9W*CDU#Rr&-Br=H@_m6{< zZ1N?BY|>>-Q)tAp9wW1PP}CKcuVu7L4)n5j zfDX-z!DA(LnqqhlGHEN6mVtho9dR3e{KcMRNP?AGD!Q2k++UKh1f(?q<3Rm$g83V1Z9-{M4>W;C-f(3^_)<-pV+uANfj(?aS;HzNgANA|*Ssfk!yiej6 z{8uTG#Df8bnJ|GZPrznFTo%_byGw}lGy-YETK=aFVT!$#bFYHTXK{?i47$%iGKH1-#P!^T}Vk8isgEVl_s(x>)p6XTB2IjdV!8^m%!1k4VzdbB%vs zc&y#km^770nw4+ET_;?xR&UwH4~1I7Ugyt$(2iOR2FvHVK4}BN(z^IsNnL;b|?9QU$`9haAKExmN& zb)Jf<@)w_T_Nur1`s`Jn=dCvN72RA|b|G4y^=!srEX&y;g(MAFksms)QLb(#neP#N&m)zqc&1%ktH)g`0x8O1J%D zT2uuV3aFvQbKxt|W#G*tcS_2hhaEPghM_`iR_Pc6*D%0& z$^ST8jt-ul8Ws<#!OxzQ_L2H|>WE(@y!-(x;&fnroFUR1x8H?%k`>Z4kB)P{+M_)tkiXzgzdB zs^1_dHt*=`dAY)@|9Pduh0m18aP%20r* ziJUDL0Ni(GMolWMQiRmvv{vD(twj$P@B{FjqgxgEXP=5ieLpS8a0qHOv?2=-hzw9I z+}y~1KE-|LIyoNxq2AetlFAKC{t`GGW)Nfxv6g=O8g3l*$7*p%bRLr{JqIct!vU+% z2ba5{SA{u6$bJ($(QHB6NVSFpo%O*@Y#}iEia#9QD9(*Cm`dpEN)A9A6N8tRWFl{J zdYZgY>x6={=$d$FUJT{z9ct^_Ur?e zKUB121-~Hb1mN40LzHZd&*iB0$QeFUdQz|YLhg5OUh`ayNLXq$eCO*4_`BlAD-L6< zmDuw3*4V+_QnoZ!H&-H*@9uO36v#WW5`x&@;42f`ak>0bL=ydhT5?vZ23*dj1vgAz zxf|);VeAycLwciQ$Lnadh;H%?+0S3X&sUuSRd1-HEwK44P?uN;r~>?NF1OdCeU}O~ z#Nl+r;ZgLdgP0?I8lHe3Gs|*~WZCaRrPoZ29LM5aZB)B%BrR)HA#@GO+~~$nz&Vk6 ziCB?C7cCAhJE5u#<15J9%xUXkM2g#mT70n$0TVFp*5-%yK zYz*-V4WbK);4x0+Xm^CXcJ2X4>Y$9q3k5@CWL(Ja8VLnU0c=`{w`;eG%rPb7qu87s zKcu#|(Cw6jeBp<5>Ln|XviDvto%{J3OX)GlQ~psO_LcaYw34RjLuO!Dw1cO|sb`1$ zvY2>Tjh9f|$J*;xuJ>5_qgt493I9VM$yCbZJuZnaN>FIM$l~u;WhuJ$dD;O$#&I7y zWE4HBcRT`y>T|?`avJUjN&{p!O9gBJl}UmX{M6VJRHjD`|+$X~68rCCrav?F98$VrmM^anM-DUz^cTypm`1)3E<0i9*xk80m)7!yBq zKT<7BcKq;pr5i|}f-qQg9Q1QM;&+Pveg6pLC!^Ug%MVNQ)!)z6hK5j2MDWC1G?gO0 zV|^Csq7uWwmAYXwEJZ#ZJnoG#qou|8k$|3n-bAQ)4r{x_w5ga!!@;WbYoh6QL>Y>_ z#Y+tA^#+V@;k8A}GD4v*P>79S?vcC}zgdo?5Dx6nt|pkjy`ej&C4e31jg*YGXez>d z0s;`m23;YZBERmEz7hPv{Lr%^K?E05yF$?gMHI4j1$~APM?#%%SV7!e2aJr2cv0bH z&p${OHKZ&rp_8;HFrOhhvTdd{CO3r@@efYH&y)B)V~-tksT8dZJ2KPov%BqZkAkN?go7csj1Rn1N>Cs`?t1AmXF{)U~O8uzz z!HyS~QbF39jnsOvX4rG#5D?5d{}!c$A{ z4()!edG@{TOJ`;mt>?$wsGZC%WEF&4(er2Cng}@)o!Xkt<`;$Q5pqIE;XPOrw>c7? z;Z8Hd8I(B8U+t2`ryj+2@1qQ}8+SB5>at{L4$*lR%I`pY$#!z1%B0R!CB1@unF{5} zzRL4~M8UT%VZ2FUltp3OH;$!>MzNblj6$&UB|ZnpG+(2KxgxIG`*pX~yF5&VWYE`! zY7h~eL(RVkS($avKU@?oPn|FBo&D7qy5Jx#S$tW`i~z^%*Qub6*77+~KW)-4~U5v;7PbF|;R`+Db4zi!u~ zNT05xBwU=>I>a!wPd}%~UKfU#CeMyd>8O zYu`AqL&nEa(1^Zn$Z}5ZbKTM)JjMAo6s)=Yhc*hm7%o@Iz4eVud^;jv}f>ekXp=V9OzaL<^L2lDJEzaccR zsNCY9v1MSk4YQx;*(iyU=WK!xBFu72os-u}^tbn{R*-)KF*ucjZPnoQ+YT*a3<+$f zq0j5Z6{bBJ6jii*jiAjKlk7CdxE#=Ws>+b2|8C;sCuY|jRbV?fqOw}klDwmi$+#+r zmKbgE$$NReG-bF5MM-!F+myU-Qy0>57fiUKMIBOg8m=5*USS90K6Q6ErC6E1?_RCT z!Tc=osOg z2FDbehFhK51q>_&sTKSu*ol41J-OqH;>%4O%8|F-N%t~)+?oevIq>_l1ksxd9Sa^3 z^nS^=?I%2Jb$9G_{k+$50P*Cm2*nPcZ~3Q-;xPsW6MX~^lASUK4hv|6kUmjVBcZLB zxo`x}`qh`Zk)8IKo%V>1+m&~QveZ+Cb(hb~E}xk@jeWyaJ{ULMf28WU4&?Rr4T#ow z2uX;E^vsCp$l~3bwP-$u1k zM=H|tZ=?>!*q?wri+Gj*_FJD@R=(%^H;H1>0{8KWWmp=WstQj6pn0{?1Tx zfP2|;`w2K~N8?h$LppwZ$2JvXeK#rXDH>epTu`bk{{$!uGZ#h=_m4U*ToTbqY-7nio{0*G`_vs7j-QeL%Oq{DgEvWXde?!Bj*ynyZ<3Ig} zSE~A(+V{@&d?!2Kk|V)%9U&XX^n@~9qxfn{$l?kl^~Te?&@cp0?vc{+GnvU#n?Rz$ zSz&{Tqe^_iUXshH!fsoHGDh_&^0b%e+9l4e!P?~P7zSy9k>4RQ5_F|gbJTY4SqsA7 zdqsDzJe1iA`pzp{tA-m{SHP@~GT~GvnhpV(Dp9BgqM z9Aus;l(x^}lrVdNs_`Gc3Xr&v%i{F9m@>XP!H!&ri(G(slBo_U^`@#i6Q4h4W$jK! zB&7vyAKEjc%DIDOGxvk-n+$tQVsrWn zwhKr=K$a1P-%!`-Gazu#{+#rVV`6;AQ-~sZx;wgaZZi^A9A+15bb|Rr>?M_D5b}74wX(m+@{HNMX5$uM|mm`Ez6=)qa;zl&NoeuLAK7F|3z(BzW$rMy;2??ghvawUuEDlvNx;ekdWCw;cH% z$Ed(wSRVO1AK}xB5yO;d-#GA+S_RMVCil^{7obnV2V4T^X=skFMuQD*v z`*ve?eG@FBNlVC!TDZARklfyUV|sQ%88OkjDJXO=TX1$FL?w!ch?#xiD}|W-qNcaO z0iIV~G%s&rVtf1SIM5mSx-_`F8EpFjU6AarP_DPT6Hdvs|Fq~eFSCIt@pX(e@hl&Vezw^I@>_qQSPmL(FDX-1V-^vETtpCyoH@#p! zqsJ-CnQ!WKP0(coagU(L0iiCSkHC%RTus_VWuK~ z|FnUABIPf}>TVcJ7!_oZ0#1mkytKQKNgsMXhn46rz5DG3t*?>AG?%yb{`}@7dsL;5 zk57P+@!28&t?#BYO2rz%UTy1S74fL;i#|RBL$}Cg!hHF`Orjl;u()P$GI~W+*3NfFPiu~{ zXIB4V{Celi{P|DH4tHq&T*n0oI|5Nby>rHfevsVp2(ch;wtUVHdyN`D9XKkddbNH7 z<{ZIfLiRq#q5)m36ShUWSj%`A$$B+?^hWS%>fz|&60mHtY%;eItXtt>!Ytb|2q#BZ z+?X>6e>0hb$e&zJ#%tMRWp~#~^Fb=Jo=d~&N zh+X$*i@WY2n^@n_bqIqP3a~i$L%08ZUE1Eo26_ZUi6r{QA*Zck5MT&?=-uJXMLW7EL3)V%GZ##xhk(f*lQYG z+30GfO$&~eATmM~i=PWn1qMsc3Dm2E@5J4!pN0XdQsbsS{$w}~E%`3--#S63-afT&o=<9FeLRmRJj{IS=NPnOmIX%R`O28>4TNjCS zLy=RnaYiAS=B*$Uf;<7mcq@vJ(A=_vC2&d?K7&M`|HVQ|uN68b{6a5l6FTo6N+V_) z1NLu1if1aT8dIRx+PWma8p+TvTrt7Y3!I{TFdPvrcfV46OiI~%5##LMv5WK0d9-TW zpmnIq7RTF;NTx;XV`->|ka+`(I*WbOPr3I^b#m(CkZ>bYICEiI8oJsw!T`Mo;`>;e zz{&s_PlWZ>02xj3eIkUa?LQ->L#k4IuUj9p)&d=muxqaTMiUNnyZmaYnhe~m545?5IXTki$@YP zQ4-N`)eT5Cwaz5A&hh1fRaWYLOMBRdRpD2HXC|5#I!YX3g2z?UA%TV z)hm>%B~X@+kTGzgjlXT86qKGa`IPzUp!uZn0jOOqFNzKcH_;>vqMYdTS@k-yQWIJq z>DB^qj&L<4i=a7M`}>&uawmqSsDRU{+2Tf=_7ehMaTna{H8O%{%2m9Jn3Npa4!f5Z zkq5ZvbB6;C5|1VAzc_b<)uwCj4dWiVmZMjmecyjBnfOnzuyBe(%Du`sle0}YJwc!%OtDsEz|xqd|S&rKCAKHwZE%K?7JNi zAs|MVhv;MCXacl`W}=H}9@q@^$$`J7epW}^uq(@{QG{ptZy4a%e3`8FS<+DE_T29s z@)0T>_C3gJgI*B@(di3$&C8F0jzg@HtQRqu-LrO^GW+;wp|uf6-Ze|)VkRkH}V&(k4t>}63tc}NYP zH9#_+S_w2N#3ri@h_q2^p3_xDjOHg@SxQ}OH|r$ju>Uiqtxvlr=$wW>Xm?)mrhAd| zcwgJEDCJ18C%%y!b{u24lwcQ`_UlPKA%mir#XV%4kS<^2nz+fgVaj&QWDB@mxq5}i z%ijvjsBD%H32Qp#&^iKYze>D%W%70y@S?>iL?FoFWvX+wJe;uO#V?5Yl{vzmfXqNw z1FNf#iLV400&xY4`)8?gnXV$G6!6wq(dt=wwX~{Ki1%cMEl!UJ(bHzXeVTJ|I`;`r zO8NE6%-3~lvVIzmjEP{U+wOpdbwLsQSbCsv?Nn-eoU`nw)cUfuHkEk{O(Aa}e$d4} z_>(Zf#1d_}8R@6hs7+d6l?)>S8`fynhYIhWF3Od?Dtxzjfj zHq!`_{;cfWvFjNwN|h90MAFxhi{gE(9Y4p9BkdnBB}VS7Utqr0Wn8Tj_lpqPQYeJ!!sI=I)|1dI_7ym#-0Fdt@{cy}h7m6&blf5o zKF*+4S5()(x*eU)(_I$;pq8tG;N}|(k#Tg<$ z{)Vwi;G(gq{)d`xti}5%th}=P@1#15`I0f_o(as6&@>RNtkkSApCglEO z*Dcw>tH}~ZS7;lp*X*|RI}CVF=spHy-QA6C{hB{I=gn3%R320|KD}R?`gw-?yKmsz zbu^+P(1Z5k93?-|{RyCdFcsBRtS79p6`fcU z^$9?WY(uT|?VjR$Sfe0~t?>U@g3rITuFPPXH8-)Tg@Yc`So|2X#HZE>#~sHVL)}wH zc1KfSpMi$Fwt6ubhHMW&AUHcS%&nF8bn2sc|IzX?Z>28CeZveTNqrw{-skk z_K$G7_K#S)?ykb}?H>18pbzi(_U9|XA^0dx?jONk+uuRQuUNUU1 zIS7Popr!MbjPww)8(SH!uiTHMXPg~z8Z!)R(Qcv79zCNx+B7t_b=|zlpp!GI*z(BZ zsl3T7I1`-6I8=#$VA6w9GY9u|--8#(KHP^sN+31~sQ#jLezQTul_W-_@pEV)t*hsI rI;W`kqhd4>C;RV_9!^8BuhwsQAKtoAWg50BCX7mtHrK2LJ}v$qTBx^T literal 0 HcmV?d00001 diff --git a/example_workflows/audio_batch_select_example_extra.json b/example_workflows/audio_batch_select_example_extra.json new file mode 100644 index 0000000..4f4c9de --- /dev/null +++ b/example_workflows/audio_batch_select_example_extra.json @@ -0,0 +1 @@ +{"id":"c006d818-3f65-40be-857c-e20ee6fe6016","revision":0,"last_node_id":16,"last_link_id":12,"nodes":[{"id":3,"type":"SET_AudioBatch","pos":[2459.5302734375,757.4900512695312],"size":[146.42578125,46],"flags":{},"order":11,"mode":0,"inputs":[{"localized_name":"audio1","name":"audio1","type":"AUDIO","link":8},{"localized_name":"audio2","name":"audio2","type":"AUDIO","link":10}],"outputs":[{"localized_name":"audio_batch","name":"audio_batch","type":"AUDIO","links":[3]}],"properties":{"cnr_id":"audio-batch","ver":"65e3da3da285b8593e74f138d114ec0b576a22bd","Node name for S&R":"SET_AudioBatch","aux_id":"set-soft/ComfyUI-AudioBatch","widget_ue_connectable":{}},"widgets_values":[],"color":"#2a363b","bgcolor":"#3f5159"},{"id":5,"type":"SET_AudioBatch","pos":[2650,860],"size":[146.42578125,46],"flags":{},"order":12,"mode":0,"inputs":[{"localized_name":"audio1","name":"audio1","type":"AUDIO","link":3},{"localized_name":"audio2","name":"audio2","type":"AUDIO","link":12}],"outputs":[{"localized_name":"audio_batch","name":"audio_batch","type":"AUDIO","links":[5]}],"properties":{"cnr_id":"audio-batch","ver":"65e3da3da285b8593e74f138d114ec0b576a22bd","Node name for S&R":"SET_AudioBatch","aux_id":"set-soft/ComfyUI-AudioBatch","widget_ue_connectable":{}},"widgets_values":[],"color":"#2a363b","bgcolor":"#3f5159"},{"id":11,"type":"MarkdownNote","pos":[2600,960],"size":[210,110],"flags":{},"order":0,"mode":0,"inputs":[],"outputs":[],"properties":{"widget_ue_connectable":{}},"widgets_values":["## You can easily extend the batch"],"color":"#432","bgcolor":"#653"},{"id":12,"type":"MarkdownNote","pos":[2880,680],"size":[210,110],"flags":{},"order":1,"mode":0,"inputs":[],"outputs":[],"properties":{"widget_ue_connectable":{}},"widgets_values":["## Select which audio you need here"],"color":"#432","bgcolor":"#653"},{"id":13,"type":"SET_AudioDownload","pos":[2070,580],"size":[270,160],"flags":{},"order":10,"mode":0,"inputs":[{"localized_name":"audio_bypass","name":"audio_bypass","shape":7,"type":"AUDIO","link":7},{"localized_name":"base_url","name":"base_url","type":"STRING","widget":{"name":"base_url"},"link":null},{"localized_name":"filename","name":"filename","type":"STRING","widget":{"name":"filename"},"link":null},{"localized_name":"target_sample_rate","name":"target_sample_rate","type":"INT","widget":{"name":"target_sample_rate"},"link":null},{"localized_name":"audioUI","name":"audioUI","type":"AUDIO_UI","widget":{"name":"audioUI"},"link":null}],"outputs":[{"localized_name":"audio","name":"audio","type":"AUDIO","links":[8]}],"properties":{"cnr_id":"audio-batch","ver":"164515b9f5b2ba470e59061ad80845681788a92b","widget_ue_connectable":{},"Node name for S&R":"SET_AudioDownload"},"widgets_values":["https://huggingface.co/set-soft/audio_separation/resolve/main/Audio_Examples/","01-The_Symphony_of_Automation.mp3",0],"color":"#2a363b","bgcolor":"#3f5159"},{"id":2,"type":"LoadAudio","pos":[1650,800],"size":[350,150],"flags":{},"order":2,"mode":4,"inputs":[{"localized_name":"audio","name":"audio","type":"COMBO","widget":{"name":"audio"},"link":null},{"localized_name":"audioUI","name":"audioUI","type":"AUDIO_UI","widget":{"name":"audioUI"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"AUDIOUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"AUDIO","name":"AUDIO","type":"AUDIO","links":[9]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.34","Node name for S&R":"LoadAudio","widget_ue_connectable":{}},"widgets_values":["Palpatine_2.wav",null,null],"color":"#233","bgcolor":"#355"},{"id":14,"type":"SET_AudioDownload","pos":[2070,800],"size":[270,160],"flags":{},"order":8,"mode":0,"inputs":[{"localized_name":"audio_bypass","name":"audio_bypass","shape":7,"type":"AUDIO","link":9},{"localized_name":"base_url","name":"base_url","type":"STRING","widget":{"name":"base_url"},"link":null},{"localized_name":"filename","name":"filename","type":"STRING","widget":{"name":"filename"},"link":null},{"localized_name":"target_sample_rate","name":"target_sample_rate","type":"INT","widget":{"name":"target_sample_rate"},"link":null},{"localized_name":"audioUI","name":"audioUI","type":"AUDIO_UI","widget":{"name":"audioUI"},"link":null}],"outputs":[{"localized_name":"audio","name":"audio","type":"AUDIO","links":[10]}],"properties":{"cnr_id":"audio-batch","ver":"164515b9f5b2ba470e59061ad80845681788a92b","widget_ue_connectable":{},"Node name for S&R":"SET_AudioDownload"},"widgets_values":["https://huggingface.co/set-soft/audio_separation/resolve/main/Audio_Examples/","04-The_Symphony_of_Automation.mp3",0],"color":"#2a363b","bgcolor":"#3f5159"},{"id":4,"type":"LoadAudio","pos":[1650,1020],"size":[350,150],"flags":{},"order":3,"mode":4,"inputs":[{"localized_name":"audio","name":"audio","type":"COMBO","widget":{"name":"audio"},"link":null},{"localized_name":"audioUI","name":"audioUI","type":"AUDIO_UI","widget":{"name":"audioUI"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"AUDIOUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"AUDIO","name":"AUDIO","type":"AUDIO","links":[11]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.34","Node name for S&R":"LoadAudio","widget_ue_connectable":{}},"widgets_values":["aud-sample-vs-1.wav",null,null],"color":"#233","bgcolor":"#355"},{"id":15,"type":"SET_AudioDownload","pos":[2070,1020],"size":[270,160],"flags":{},"order":9,"mode":0,"inputs":[{"localized_name":"audio_bypass","name":"audio_bypass","shape":7,"type":"AUDIO","link":11},{"localized_name":"base_url","name":"base_url","type":"STRING","widget":{"name":"base_url"},"link":null},{"localized_name":"filename","name":"filename","type":"STRING","widget":{"name":"filename"},"link":null},{"localized_name":"target_sample_rate","name":"target_sample_rate","type":"INT","widget":{"name":"target_sample_rate"},"link":null},{"localized_name":"audioUI","name":"audioUI","type":"AUDIO_UI","widget":{"name":"audioUI"},"link":null}],"outputs":[{"localized_name":"audio","name":"audio","type":"AUDIO","links":[12]}],"properties":{"cnr_id":"audio-batch","ver":"164515b9f5b2ba470e59061ad80845681788a92b","widget_ue_connectable":{},"Node name for S&R":"SET_AudioDownload"},"widgets_values":["https://huggingface.co/set-soft/audio_separation/resolve/main/Audio_Examples/","05-The_Symphony_of_Automation.mp3",0],"color":"#2a363b","bgcolor":"#3f5159"},{"id":1,"type":"LoadAudio","pos":[1650,580],"size":[350,150],"flags":{},"order":4,"mode":4,"inputs":[{"localized_name":"audio","name":"audio","type":"COMBO","widget":{"name":"audio"},"link":null},{"localized_name":"audioUI","name":"audioUI","type":"AUDIO_UI","widget":{"name":"audioUI"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"AUDIOUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"AUDIO","name":"AUDIO","type":"AUDIO","links":[7]}],"properties":{"cnr_id":"comfy-core","ver":"0.3.34","Node name for S&R":"LoadAudio","widget_ue_connectable":{}},"widgets_values":["Palpatine_1.wav",null,null],"color":"#233","bgcolor":"#355"},{"id":9,"type":"MarkdownNote","pos":[1390,580],"size":[240,370],"flags":{},"order":5,"mode":0,"inputs":[],"outputs":[],"properties":{"widget_ue_connectable":{}},"widgets_values":["# Load 3 audio files\n\nAudios in the batch will have the same number of channels, the same sample rate and the same duration.\n\nThis is all adapted by the `Batch Audio` nodes.\n\nIn this example we download 3 audio examples.\n\nTo use your own audio files select the `Load Audio` nodes and `Unbypass` them (the arrow around the circle in the menu). \n\nThen just select the audio files you want.\n\nThe `Audio Download and Load` nodes will use the `audio_bypass` input if the input is valid."],"color":"#432","bgcolor":"#653"},{"id":6,"type":"SET_SelectAudioFromBatch","pos":[2840,860],"size":[350,106],"flags":{},"order":13,"mode":0,"inputs":[{"localized_name":"audio_batch","name":"audio_batch","type":"AUDIO","link":5},{"localized_name":"index","name":"index","type":"INT","widget":{"name":"index"},"link":null},{"localized_name":"behavior_out_of_range","name":"behavior_out_of_range","type":"COMBO","widget":{"name":"behavior_out_of_range"},"link":null},{"localized_name":"silence_duration_seconds","name":"silence_duration_seconds","type":"FLOAT","widget":{"name":"silence_duration_seconds"},"link":null}],"outputs":[{"localized_name":"selected_audio","name":"selected_audio","type":"AUDIO","links":[6]}],"properties":{"cnr_id":"audio-batch","ver":"65e3da3da285b8593e74f138d114ec0b576a22bd","Node name for S&R":"SET_SelectAudioFromBatch","aux_id":"set-soft/ComfyUI-AudioBatch","widget_ue_connectable":{}},"widgets_values":[1,"silence_original_length",1],"color":"#2a363b","bgcolor":"#3f5159"},{"id":7,"type":"PreviewAudio","pos":[3220,860],"size":[270,88],"flags":{},"order":14,"mode":0,"inputs":[{"localized_name":"audio","name":"audio","type":"AUDIO","link":6},{"localized_name":"audioUI","name":"audioUI","type":"AUDIO_UI","widget":{"name":"audioUI"},"link":null}],"outputs":[],"properties":{"cnr_id":"comfy-core","ver":"0.3.39","Node name for S&R":"PreviewAudio","widget_ue_connectable":{}},"widgets_values":[],"color":"#233","bgcolor":"#355"},{"id":10,"type":"MarkdownNote","pos":[2450,570],"size":[210,110],"flags":{},"order":6,"mode":0,"inputs":[],"outputs":[],"properties":{"widget_ue_connectable":{}},"widgets_values":["## This node will create a batch from the first 2"],"color":"#432","bgcolor":"#653"},{"id":16,"type":"MarkdownNote","pos":[2070,400],"size":[270,110],"flags":{},"order":7,"mode":0,"inputs":[],"outputs":[],"properties":{"widget_ue_connectable":{}},"widgets_values":["## The *Audio Download and Load* nodes here are just to allow a quick start."],"color":"#432","bgcolor":"#653"}],"links":[[3,3,0,5,0,"AUDIO"],[5,5,0,6,0,"AUDIO"],[6,6,0,7,0,"AUDIO"],[7,1,0,13,0,"AUDIO"],[8,13,0,3,0,"AUDIO"],[9,2,0,14,0,"AUDIO"],[10,14,0,3,1,"AUDIO"],[11,4,0,15,0,"AUDIO"],[12,15,0,5,1,"AUDIO"]],"groups":[],"config":{},"extra":{"ue_links":[],"links_added_by_ue":[],"ds":{"scale":0.8523410531439285,"offset":[-1285.6347724719983,-245.36952561545007]}},"version":0.4} diff --git a/example_workflows/resample_force_stereo_extra.jpg b/example_workflows/resample_force_stereo_extra.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cc1529b37d481b2607e744386bb54dd96e172087 GIT binary patch literal 10964 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