From 07e6b93b0de9ccc1def137fa827c2ea0be546eb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Eduardo=20Chavez=20Ayub?= Date: Thu, 11 Dec 2025 02:52:20 -0600 Subject: [PATCH] feat(v5.1): Asynchronous architecture, Preferences redesign, and RIFE padding fix. --- ...Instructions_for_downloading_AI_models.txt | 1 - Assets/Warlock-Studio_Manual.pdf | Bin 607505 -> 504213 bytes CHANGELOG.md | 396 +++-- Manual/Warlock-Studio_Manual.tex | 741 ++++----- README.md | 164 +- SECURITY.md | 1 + Setup.iss | 5 +- Warlock-Studio.py | 558 +++---- Warlock-Studio.spec | 2 +- console.py | 1 + file_queue_manager.py | 401 +++++ rsc/Capture.png | Bin 49816 -> 0 bytes rsc/Capture_Pipeline.png | Bin 7187 -> 0 bytes rsc/WSNodes.png | Bin 39000 -> 0 bytes warlock_preferences.py | 1340 +++++++++-------- 15 files changed, 1941 insertions(+), 1669 deletions(-) create mode 100644 file_queue_manager.py delete mode 100644 rsc/Capture.png delete mode 100644 rsc/Capture_Pipeline.png delete mode 100644 rsc/WSNodes.png diff --git a/AI-onnx/Instructions_for_downloading_AI_models.txt b/AI-onnx/Instructions_for_downloading_AI_models.txt index 0dffba0..11c9442 100644 --- a/AI-onnx/Instructions_for_downloading_AI_models.txt +++ b/AI-onnx/Instructions_for_downloading_AI_models.txt @@ -1,2 +1 @@ Download the AI-onnx.zip file from the releases section, prioritizing the latest available version. -https://github.com/Ivan-Ayub97/Warlock-Studio/releases/download/v5.0/AI-onnx.zip diff --git a/Assets/Warlock-Studio_Manual.pdf b/Assets/Warlock-Studio_Manual.pdf index dd6eeca39b471eb8fbe6fcc062bfad9739838367..554002d4fd0ac10bf99beca583b71f673abba1b4 100644 GIT binary patch delta 248191 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%0AYMH?gR=ufsApd}2n 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ȗ70t% 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 V??eUwGlCJxmtjN+aF_f<2^H}<5Lo~K delta 350106 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 z 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%0D{G~dzd(3F< z13yi!Ixe!;(ZRrH(h{>j&bVnMX8HhPA_?92V%k#V!1i1Z7}FRGP$5H+=s5xSucMIbwh>!0`=3}nl0eho7C(pR5xFw|2d6Gtt=b+m`oV|)m+OI|tnD2Dj zN9{YIITC{r6H5(b&H}eGpw! zQ`Dq-U<&);i9H}tw{CKrqC?$rS89I1soeGZcN~zC@m9G$ zcRX|b);RoPx$^Oi7~j?KLr|Y9$1;!gb!`x5P^u;q1~k-l)`fBm6RLtL2!}ZV8z-pu z3Ywha?)$$%Yd8dsWs3oQ^Yuo*zv9M)^1TB9eR@Q zeN1iMncnVFO16DS~pDzSVv<|U)M;hrB$p-em`C?_c7pqPCbZIpE_nY{r4SA zfXhPMwqtYU3oEaIIe_y*-3bnK&(KKSY6+IJ9Qrdf`_AM9aNt`BwE2A9(V_j}RIb+a zL%ph=h{6HiwxZgAx7^>ts#%|0ievaf$q~zF+2RmWW~9|dElTaNCL1QeFf@!u(7soV9CxyBu)`=X?u8&rwr$~?lBo_P zt<_mW@T;{pz2x3DQMgV-hLehZ9uuvI-^MWXoNdy_ zBMHdkQri6F$U_Pg?%y^J8Lfmw;2_k2#(!`3_Z_d`RF+os)>s9pb7Y~MdD4Z^ioEMdw=t|wKx}4ecOu@Bl)FkBl z#3i~^btNozY!$mkaDqdtiIDXW#K=oD1I>qv*i;MQSUJ>G;L=(=32rHq0$7VzMNJ&5 ze;@b|e_~L7hDT90l$CW%I?@*^;DI$;xf+C==)sXXfCF{M4KtdZ%e=J~b_*}Z#74S~ z^sJ5dA@jdQJ{gG~=R}PB3XNa?D*t zD81G#7%jPk-Y0K#ujO^BNG|prjV<;2C#J9y@=j`h^+V3Ga|!@&tOVb(cOrzn~m(}PIH)KZW?APl^!#+M; z_uFPb;Q=l>`(vbLFa8;Exe$AaK2y8Z?{g=Es8Hfjd$0lfZ3nM6Mn@><=^q?Gi!#%` zzzW=dlI57k|aQ+k;AZ(f$x&l+b7q#t1F< z$>i}F*a*Vz^zvk=AkcG@0kdb0;3u{YLubDZUWPiLB5d;WzrbmHZz(=fX6LKnV(dsah#p9t?`j%hV$VgEj=T>vj1lu9Y=9hmV1{on z=rng|Y9w1K=a*v<)6jtB`2J}ehuSY>&swG??Sv6~IY>5hlhJ2y^ET)Ji*pv}Ply(O zAn+MSiIMEvnyb`l#sG*elqXh+?@XAK3VFKEm8%A{ zZT)vp&ll0Mh3=mfVDm}!Q1|Fn9dn!g;ejew1ZhkR+MdSU$-&@!^{#&>pSnbac%VbQZQkEddj=p#kpi>i7p%Zy|TpAQ{ASqPsnAlAHPx( zG5K&5c!wO_feXWF`1cYC%W|)s2m4^+rv2aSWPYpax|F{v1Z||udrQ0P`mE{@rh8h2 z1xFu+FW3Usm*BMfuV?m|Gm6kz(qj7%*z1~}*hCgOFL~(u52iEX@6fO^1^Ur{adX-x zm=m=ckJ=vtXdOdv6uz0BYb;KRcXO(h_24taV_z@g!?5Jf5@hQLQqU5}YetrJhDE9% zhFah~xV@Xk-Nz^~j3Fm_+Hb!hsWx`eyf;u|%m8{G*dWl?k*}eMkZ9aTIo88li8bIh z@RRH+D*woZeyP!Cg#Pkj9;efPr)18nxhKAx+-Uv+=uN13ir%0>n}Kw@%Y;qY!!@|> zIG`(Ffk6ib@+rK6spMhi4KQnX4Y=TUIYB=1=b!t`#kqONc!R6KPP4}HBh34OdkLZ{ z4n!FS^JXU^lvSv>j6NH2b%oVr?J7^PS(o;>#KK-?VbUsjm>ZQq4RtVo-itftfayn0 z^KYjHn8x1Iw6qAGM8!xPZGOMChDrZ!BE4W3zb*_cmg30xOJl_{&h&5&>T&usCXU@t zJZ|YK^<&eXTDAWBb}S`hPTCi%*2Gsx$w-Gcm^g5S=5rfZl^?;3R7R>f!Hj@3%5n}2 z@x8e76WG@fJ6weETN{jj(+firSeEJ`z2Cpa>e(Ihc>`}hf%LdowlT(DazN-e?S^QB za;gv^n*62|Mc&`m1B@SBQPCyH?G+V#ZKIq_FVA6tH@p?RI`*+>W@>ZKL7)Efl4c;U z!1;gHRP#ekcJ+Zho{@)igpYz=CT}Rb5f=dY6`J1~yGx=lIK&lXLGuz~H$T*?#9>)p@Nt zMK@Hp5}wb%1_LNpF~ez*mI-m_XnFwLmYm{p*q85HAmOu^d~b?;XE$SDGbiXI_qw?! zSvi4#a@&7@ru|qGfPTFJ8+Z$6On9~`E#>-U*@v=_R?l>;-Ob4l4fsGK+RK~CQF$ja-2?n z56o_VR3JT6C8gX*6m4w2r@QX6vn4D_c&sz?@$1$Pd2=!?hbpW^6LzUJgTL?PsEsX) z@2_R8hbrxZhQ#u>HV5!tY}*314s{o6)q&T-as(SM7(;q&Z)Ho*j0jYYo3}JT<-|i3 zrYCQt?WxcW;0}*B4fE=uiy|h#jfw^^z za=zL+tB}WK_11T5oSCsW@GZq0qQIAEw)2HocPGa(BT`cWLN4Nz!m`a)*=K*t1=>@8 z*}(+E-0wl;`~w9{siRjDj1<2rN4z1PDGy^(~^ZNGisr!Z%PZ2@Ew1+8NXug3pM!P zeP0wpQ8AkQSh?3j`?Uyo$vhGh1>x*}a0_muJu>0@HXDJ|e?4c>OWN{CPgb>GdM5mZ z3+T6p{_C;f8H>A#_2UH!@ZdbY?@%Tr#L&vo=hQt#=HV|63;4P4B75i467!RdA`rj| zOKLa682Nr@wI>G7MQOVOPW0SS*Q2Q@}GDiVf3|?m6kkZ#w_L|BR!5FE#9h zKioWTo#KqHb7(nsis;(CWeDf#j1pA@ufD{C58$@_PkHY-!o1+YtKiqu8!PfD93&eb z8&*0Z)^T$KkkILm&7;6uCb2R0H00j*htu$hZc&~BYg4y;>PBr^kBBM*+C*q32GRTg7OS==%Wo zdj3%u)s>{Ho8W?f|G(e2!?we#f51s6IT4M~!=jO$$1Jm0F z*(Z8syoPM^-q2!!2Y8(}pOv_5uP@pAs1g_}YX=>adQX543Mb#yA7v8A)#{bbw?5xA(p&j^~;1zsCl=n?+TR(K+6wFt+TBR#Tr{ZE@ zpt2HuoDZfIfe9P#T?Ti}hu-E8K=CI@2L(0mWn;TjMIe|VI(K7A?@P^qAVN{nEg$RB-BlQ=9agO@@XZs>P)JU$4^4=GW(7 zoRhgt!52|ij{kV00Oa_E3JUkx`xQ%x+I(MNp|U#q4eV6v?V8(FTX+t?7eQ-W_j3s+ zj2C{coIzCX4>X)?hpOJ5CByF|kS&7(%gKu6ySBdLW#TVMx?mD zGr|~uQS`LadyeO zpnr3YPb~x;GY=$v3AI6+$o<9C&l|0tF%@u@QCT+ zjIGXo8jG%mk=#r-mj$ba$txW(8eMiUV67-9M+KLW`~7XeN9lHlZ)sb9)&_Xq>&%Ff zdJ$sJ%~%GWvkQa`*!30yiDMCn(@Om-|FSHu?kSmgwUZz9p2-GGd2-(dI;(Iu&<#O< z2iK)7p;O1gY~%5Rs($XT`PKXX8dIytmT@xso{r>sbBC$X&{a-f66NXfE`X+_nd9Ks zZu*VzKQx(p@*O<(Tm7eGST0!^Rm-&O#oh7W>CHCUq%M{KU~1G>ez!dRC6ZPXBO@9a z!a^(4BI7nq>4>ZuI=}~^{1oavxs7(R;n2Hn;9AL5}?eS1L9^e>!av0cQj9uYFc8!#3 z$rqCJhGu@ziWtiUSZ7$yxIb- z|4Qfv!9jemrM-cl)Or$U&(_HWRmjSx1r8$3Jpw`K>C_s6PCg`aRNqy$Z?A5PexD;~ zR5Ab)W)8w1+yrbnV|0Je@;!=wND(Wh6j&XkYNG<;As{jjI#yT6w+G^0M{NAq^W?T$ z*rCawO_=|9pHioe@fyPkY2K_1yJ93A@mtm2wTl0NABW8lG!=NQlDB6A#FjEkD-{h4 zPPk8E>T%fabO`j>1yBT0ws79jB%=QTN~ywLL!v=9p8azXf(YCO9=nHswkE0P=<&Rq zAOT3umjVB%i>sRNuzTsw$PiB1W*rLC4YO2I*^EZDQ{f})Bfjx)q)srJMKlHcKb$LJ z^oyMI;6aOXmwpbZpb@mTFfCDosXH0Agsq?6e0ADvy;G28O|&gqwr#u1UAAr8wq5m= zZQIpl+qP}nHv0BG=f5{%N9>n1URI2?A~iF|j2siAq#i<8DHJy^pIy@y}J zJm!9c`(3nu$>cj!D%t@Mfkt9zYypjy`?uz=6fQ(IU4*iLK&n}CUPmypjI9mTf{cov zpc&W!LE86B`8JaI{X?4c_gUe@8HHM45!?`qL5U!j$~NY})iWpq8T-Ge{L(f38Z8n< zc0R6d+8bz_BEqakMGTIFQEx;qQ0H!YW{HKyC zI727!wHhQhhZqXJ5sqmCZlDW;Ru}3;-yLr}mjausfXKm|=CgY;Ng$NF`~|cZmaF!! zdmIA3RlmLpe^jp`JCHl3fy>;fW(H(Oy&A}Q-T9Rl!eR)2h2BwIIjWX>a8Pk_HVSk6 zO)`zy_w~w;SyDQHsX}RU$H*;$L#UGqf`-}yc-q=oG>PKviQ77mauIV~mhDO-#!*Na za=4#4BM^d!`I6}RoM!d1GLsP0-PA&_Z?>h0j$(>Xz34bLcV{mBSkOrP;!>LB#?prm z-BBwLYP)xo+=8PnCMR&*8Pf$Uo)*d85ssXsBFupLb{QG~_cI!S*BA?tQ+~0Vab7HB zm(?y;*DaIjH%J3>q_9yD3>cHPzF^i*?Wz8s>Gj1{^X>MYzoykyc!!txc{(cGw* z=7MK1ruc~^MctQDeZ6{95GwY-#}VgXRCGFH_8p4C?yQ>E3Cq#TKL-yX`%*nU{SIEYHFtc6}KJd)dxG=;ID^MG)wP~htQ zHsfsou)MSpb6`UzwZ?XX+uDiSRf3M{!%$04SqA~6$WV3j?oy^xL|5x7s}a7LHcmZv+GUjG{~^L7O*idL zsMo*Ev-#b#D0CFn zyp;k_8sIN0dEXyaw$^`GuxR>(tHA~uQj-YqRD&P4_(c?(E< zG=7g?{!oJnh-kT)98vJ|7og!l4guRXJa7(R`0ePe*+AkA0mbhE+|P843A-z*h@snP z-8shld&u%%PBCT1LqSW7?D7wsoiFP+M_lWpUsy+_W}r$kXeZh))D-d1HOWb(jd$-q zT@rzJq+h;9t!l!OF%}KA8lL`x7wO0*t5Z#hv?=g}cyZd?5jRPS1iDAMI1md(EMdn0 z6((3XuB|CfP`R;r*;9-JZEY4B@IN=4Jxj7E* zi~f$;@`LjyZr7=jKMeBU?+14zJV&8+gc!57@Zn?((BkJDQqXA!j!jymcI5VUJ24Kz z$Ri}2%YUjUoAbZmpc1wanRK4R525J+Mu#G?#SFu8cdT5|GV@H9!XN=?tj2x!$Exf` zS=bU|LMByGS^3g)vB|TbL&VJjOUK%u#TIWa>Idnoj=$;#^P)<-`o;OtjHrxSvg9k= zeUmRaV0anfJ0H++Ux0J{@rr^GAkDB-AATU7#+z9j+=trWo;mcA)^{< z9q3BzUwH0ezi%mGG#y!#v&?mPCOZrQca5DRrA{^V2C>;d8q>sd)`GTq}_$^WU z1vG)`G(aak0;J{}I_O5vzccmPLB2_~v-k?47DW{>J4 z9Jdi>S29-yGArv#hZ$t8;^1G7B3EfL`16em5i15^S@NWzO<0S@fB%CGfB}}_b)&%K z*gu-g4rmQk0EE>m1QdgReGFDGGe*msJCi~VHV=o+3M=#SyW_PlGgy^Evu~ALD4(mf zLg{o)<7>C zjDclRCBMd*$(5OBp;!e0CW4}h56&^;i!M?xK-dmbe)-oq03n2pZc>rjqH;|MQ|qm!^*=pj5}*PPrFXKC~G0p&EhH6-{c+pm9AYFbX(pR*13BYLo8w8QQSxs)cIL=1UY*tRNNqCsBqh6r+#x__PU z4aD9~W9oDHA&HO`|J((8FiOEX3sd-)|L3dzuD?4}1-@cQ?Z z66I^v+jigt*^_D5NSi=t2LvoYT0+*t`liN+L{$07!+mIH z6SI8+XpLtWZw)TR=Z$Fw6`N@++^i^(1OH9jiFAZ(8iL_GUAE}7|?$9orsy}!u!RzEh1X*M2H-{A^E8)@yv zog0xn>j?h|@r(BgkDhXexO5@PXUn-Typ`<~@G6|S$`=89!vX7B4C`HZbRYt;{74?r zvZq#&v*OS`lkSueIVe77iuQ1Kea9%qs?Z5|`eU02sj@Y7woUQIPLqvVM5Odtn`qY3 z!@Z+mLqLHA;BNUH2eXj5OW8h>OeEM{QSDB!70m=j(maBKB+Hajm-T6%pcv}=NOmL( zuquYF+Nl~o-YcMvb!WLkDD}(5Z9UD0Lb~jjzu;ZH##k7GyRnu`&}wSeI)&IeUE~h! z!Ggu*l)@cB=$ErSvm`rnb%`#2cQ!O4Hr{pBYxLzyLd-AFNNJ~2LnA^JLH@l6?>8@m zPSXPLF{3rMI#5X=fClnP_&X9U9C?Ti@P!58*w7M!_1h%H#*IBK$S@0@NValiMB+1h z_*z7H{WAUBe^^#2<^l&1uCOjr-;)Rs8n^|SHA-dOx!d$>kb%Ui5;dwfC+ipjDyyYW zTCL>)y3uAVgNvQLMT62%ljVGc8fh=iz2Daph)?@i?)uxxMAm{=HE*ofxGR?RtY-9?(m^+Ibx{zR~m_w@6&!=3E`s>8m%YrPl#;KxJ zr_Nh715x&M=bO3JiJ+~+1q1)#qc9)$7$QS=@FP=FBJcW6aiyr|6=42|&1=!$-r39l zL*m{uSlGNwaEld=p?w|VCy{swc(h>{obqtYkm7VCEsY{bAyjeM)_g6+Qc2J4#}S*Q ze8`u0Ima)4C2m(x7DL#vOmz{^NTVyvJHH;_KMNpIdZ6|vC0u&Jak<&UZ;8QPF~xSy zYW*#qru$pO;LC%Xc(6QQ!~S15jmyCCAnas^BcU|hX0fYo2D zckA7s(4T7GzSiCy5EHOp17s`-flxv4ft7U%bx${~Q_$6g+)$cH}H3i#GrXOCs zIAsj|j?xl|(U{Y9n>zXc^c}Taa zgvS+ooMGiWfv%_=Pbi+CEA3%EQ)MGLe3BJcK-ga=iJROdgi&vjg-C&71p-QiMsT*` z-ek+?gFE*if=u?%^mdWdoSrR=Iy?C`=@1!6ajfoDsGkL1x`078S4lKkn5*%4R1(sU%IB?s3vP?AuAkR`dddZh)mtWx)ZKf%uE_Cb%}N8 zjOo7Q3TaW}OLeV~q)GUt0N_kKY=C#A$4Jq%(;QL|;B7qoO?!Y{OSX`k#dl~pi*oMx_-8LLM*poP?!FFU&&UM`7Yw@~aQ$XnTZ1k8V^#Z079_@4l* z{&9>&8Yi`!U!GY3A7r*;;+_pTTq2^zr~oD$^=ZSj=a=&~aEeL#YMx{6ll$Q^q51|I+Bw=9rL1)i13yJ08heCp_tO#V+ zkP-6%fKF_*67u*+R z*AcV%0b_EHW1&ilN6)%iF|b1VWf72Y6l9Vjc8RS_eba^b6s?M0{JS`P2Q%_PfmTz={p+ zgVoBM?QR0kJh)o9|GdWpygnJdb_C4GX^|?uU>|Dk=@z!6mnsTSyKtOcS9J9#;Nx%z z5B=oW`%HW5hJ(wflZIzXO^PH81x?7j6n;GDBgeg(lQZ8HOq`O?19;$rQH#a~`Rj`5 z+~?pEWQxwpIa#tm(%<8x^n3F@&CaiO7>8f3>9@r)E?gRW+1ikWxy|8dCrFF`Ji}fg z%ep6^?^p~IRwmeLMtdbSRLrIT02G0$gbvH}iApEQAV74{cDfZMGmg!Z-kt~Ad1+0* z{y-pWpTfy7nhi|W$VLCRD#yzm6{#&cmP2~1m3$OptHpgh{6_haBH{`{~d z&2VfgDflfd)N5sz7^Y~JljM#${7{u0kGD%Uv4yx;Bk!A|YDi-+-SiJC;JrVTC1S*~ z^ZdM{hk_vva%JfD#36v=2oBC$t49%e(A6Xx898Jx?y<0eUjI&P@}eJDYQ@-oK&jsT ztiLUb@l9rj1-MNb8iA>n?JH6#>PSL|BD_^W2E{{{0zTo_+Ft28Gi2q=vR_MX?^xcFNobD41o7;J`36bq* zA1kpnh21C0HV^~L;Z#Ln9EF<$Y{@X#Le|%zRwnDw8-%}Iox7t80B;Q$(d70ij&VDK zNQaDueei|*)1<3$*=Pcs8zUWR>I1gBUiX<6zg7I}y7|4o@o^3&yYRv@pCX*VXqRg8 znEC`{ULMJYIE*Xcm_aIFnd(K{Y!D2WGK5Aum9SP)8IM?v<#$$)1^c%C^` zsNJ<#2P)V@U9j~vi6CK|2b21+dO}#~1MsLJA>)(iVxMPRC{NX(ETb7}xlku?+)A!u zB)#enO>e6<`h=y9}8 zqrSUz&qZr9U3eQfYaOaThyuqCTwKgBYlu^4=?}KvSos3!f~qdt zZl>diLPAGB$v~Y#w@B*e8}8q9R&jOjeNniB)PIKvcGK^MH`eO%r>%*`(cAg63LPCiv`D#)r?g)3ZB@uqf|QOM-P=h$fuAvB*M*(18n7-wcCy7>e`# zcfh$CfJ4)Zj0Q6&bk8ksG}?slR(}wbZOvzc;Qn(7E-94*!O5#~#=9lJ z5R7cGcEIJ3sNt9!W{bb4Xw8ydY!5)%>{VLU*b!Lm-@J-^yJ6!{S%j*Q6j557Gws#6 zaG;JSn^%ifxb_vHBvF~jcjEP6KiwlgKFH6|_VT`v#cv^hSax<#)SO*;-AgTd@=<-d z&xt92MD4%lNhnp$bG6uN!4zDD%KMAE2LN(NJHz~6swOifF~(4*{Vjq-PMZk>M+YEo zs>wEQSi{J%D}f@DExhd3?oQ3!)Km}%%pS5IvLhPn`*^QS*=+K6YPwV}7vX+B&b4X2 z`+CFC(^vd6A=Gj2aISH^X5ro`3oEc^yD6rh+`MSn%&XyfZ?V>!t2Tc>*>@jd6lHPcEjkb{;->q$a(I_Cdnt7f!1CVHMS*Y00Td!)dzuN z5_VWHb<_s&b3>l`{x1#9{C^s{I}Dtm6-^965fp^&cN%{bI1v~tCkIDTLNX>mj);?; zh(XNK$=QX7gO%}rl&ikh(RAMAXz}aq1&RB;Y?`0}y_0!?vl+3t&XvItk#sW=MEg6I ztKlg1i1z#Pl$HoO9*vGtm(}&ujXY2gX|ms)t;$92XaK#CD)@20dS8k-1x1vej6%9V zg&Kxj#ZaUmgbi?K5=_584wI#=$YE$Jhc5AU7}6LYZko?0vpOJMhW$gePmIf=q$R;r zNSkw~Hnt^HG3dq=7LNmR8`6Z48;~o+tq3A$N-s*iZx5{sB)Q-PtXP81gIi!zlW$dk zr+}dP%RXO+*rle5s(X$m%%@}yhdbj`NZXc(1f0wu5(TiqEi*qL;V*n5hDFY*L=_D| zV|o)@uOM_1!Z>4K#vmi9)5d`)k0lF*z z2gQgGB2M}jNvT}=h-|=sXq)RSW(YyMl(AJvP+0@CNs%go$pTcOA7xH#pLdz2cvT}W zfYQDkV{9L`n4tWQ94ftuiZXITM6w=6JMd|Nv>Sj?Ouo972<|yvU|0-qM3o?bJeDk0 z?7s{%gm4B#lPqMI;2)%f^LgPE&Kd7`F2S$hfj3q(Q~i+#_!2f*O}qW;>BCVELKuq( zKIHe6kYv6X&y)3M+$nMO94iEq|0g`fF+8JYHSP33J%KmRu65aqy1{$7^u5aKeovyS zvJtQy1V`l7?m^tZZVy0~lVypAxRXb7vG;7$Xv#nY#+dfZlV4qSf~7eceC+rDlPBlz z&bG%yH(`6?*hyw`3sjo7pK#jAt7On_B6jSA(%-6)-*oMEi_+^1c|wJ(Shi(0 zkcQMUp?rKciwcce$dlOzrd5^BRwo@orva2q-wI|WSp|A6msUqJ-AgvIifqMCJo4f+ zbfjZ3mT!lu&>#LB2f;hO>TFbO6saB_f!VtBs`4(x%i~^5s`VD2h*VxhrA`>nKNuG- zgEv!ZO1*ZPKS}~eF4(tVS&mmWm59j2{>i#90XJ=EtVlHrfeqiNX03bqb?a7-3$Pl=WXuJal(L_0)~=$nAQlAkSE^5P zs^|o4Lc7dcQykd%)qmF!qw+``EiQ(=>UC3)^mClHB4r>VX}Uy!jj{?ACy|O&=t}JH z`?^JoQi{1L#u3Ol+q z1&WZ@JFXIAj2j5HM_l?{4^j5S&St{S{oGuhKGMX2ZYI+h=jz=tmD66y1Y)K9H)M>hW#`d~M5eevBH`$G{> zEkh%CyxsopG=ADZ+Tk0W5p(a|NF0S%s&QZS6*YQ`o7cvVnR|Ow6aXCO@O7K<6iHJo ze(tU6wes}j&CzSv6bnA}TM*@17wL+Zh77^eKSdtA;7bn{qTrJ9ufQ;o9ya)~v=9zB zG_>^9kDAI(TPbJ48)o7rg`1BsW7XUTK6)a?b??3|uF9MRT_R*smV;zAWPS)S;m!r8q@1$U~JD+ouZ6r}qY9As(-<7$D zEy?$e&L1)DV*wm~A3`UsOq);QC+}2^qhwB_`LENPl=8Q|z+Sn0GSCg6G)5gXM&hAGxOCFoQ`5L^Ix&$ zH+dMZ`qKPct&p*8Fv`r%ri1nM!Nx{&L!?*Pkxus6#G=A~hFXSUjeZ{&KSko^{hGUC zM|%>=I|*Y6$RV^!0mGiDRwtVKwhqFd)1?TKU~+~E4+n-h`wlHRwW--pt(E6K^}64; z4IMhQfAsBVCIJU|Y3Xbk)ipnI4em`^`YP5I{H1`o8zx?V;l8jufdP>hkdkZl0vJ|D z#sdW{S*bbZm`?B!Ihz7T`=E)W_XlI)8K?G*A8Z8c(hJG0rM93jsq6)S9Dhe|Z|m@(b*K`U@6pnUYr55qFXkBR#-?)-i*o(yupz z9*mJ83vj>;3`HeHMwGe@+0z$XkUB1&&q-vJf5=z><_y+_wB9SACP}Op2oiq9N<~OS z+t5nIz5ed|TO z5+X?R)3uaD68wjjvSh9yJ00m&OWp*9p(<~$#|Zen`4yE=XhvC}qjFcs5C7on#apN* zOxW(91ynj5bj39V8+`NV7twSJEm4>&`P|TLWY@JMm3}6)-Ls^}B`j$70Z&MafM8kF zA;2IO#;_W^ID3|wHZxP&IA28wG8$MV7zs>X2~gWa8rzuYe_DRMQ7>ld;AiGed0>xHKf^ z{I)J2w+~;5Vz(Jk(d?-W@7=)MX#P=0mldqc-ZF2;*`P#&73Q?_|4EGL+BQnPMAAB@)FO- z^h*R`7-E8D?GpCDT%n<&2@BTD1vt~; zxyidm+os`Z$d~d~Rb6Dtt&V14JpKfc_1R;j{*N?Bf%pIC^Z5Xo@3Q*jTczSjTW$ zM7^upyT7Jyb_OF7-bkm6B~>k5i;UX3fMe{PSn6=DYG&2X$V_di1fP*QSJ_ z;u(I4G`%RP#SE#Vpf?m^$nO=-nQsKXz4vUJM_0~4($sY~uUPZ=KA*v(X9Ff(eYLJ2 zm&WoH$i{cCmNiaWKv4n`edH2bjh!fe}$i z4Q3V~e3Cz9mku6Pi5fx3Ri#Ib6#=laBM9Wt`PcIs3h6``0O#T#SF0Utmp!SA9`sYR z!cdE=!}!E~zlY@~C%z)th{_AA=AXzgg@(#^o9;~CbbVOppzN!UlQ@2i<^JccOx3Pl zID39IZdqj!5;q}CHjF16^RIwk*A3JV33{d3SSveC1SWQado4cllnR*J)wGhX274va z%dG{a7#l5tfLN0l=GMQ=Ozh8>EYg()MHM*<36bV`fhXVb!&0Kn@F*c?#JiM$MXsr+kEtl^up3pT@X>E+1Z3m51fXCy{Wj;AOiBLD@YR{}YsaNvG z*_KdUF3UfohiX@$*%vi^E1prje$~LWp4xw{#?OvrhOPSGS4*@XlEgkhR+xN2Z_i?d zjQT>6`gJTsAcFnEXVz#|_!(4HnrI#^i9Puy%&hY|hf&_;!x)I@BzC%8gf&mS=)3nGi& z*%8WT(u=`{szVnPdJ|srr7j%pC&M&4idLolE>QQtz z^+G1k$nI9uPOQ3s;z}Jx$?js|$90>InifbNfVisCLGp8A;B=e0)DkNb@8Myc$ypMD z19wMiN7oQ}n+R_w=#xs&VQcyK%|>ag*$X6fxo_VDgjmXU|NNZ2gHIw3HXesNl#3x+ z4WyL}GIm~k><3XpvT(^qP{@A&jz4s)`1wDF|DeG-@m1UXCAiQ5k1C-gWosf+Oj zXA2c1iBgj13s6~et(K6>b87h*Z-K5b9XLvyjq-$ZB0IzhRZ49PQn*hn0A@5s&u*c* ziOHw|Q*j({S^eGd?Q2#-uj)8ll44Fg4mI>A5yGb=&hn!}Bx~o{VS?U61#}MdXO<07 zVQ}-L<&xO{@9yXS+g}J*+|as4`7jcKE@fiCT2Ne(W8<(eWuwkcNPR&-UzaQbODJie zk!H(F()MM<DUSoTgvfEhBwAf;gVMj$}KwUZ0@(MFfBerNN8 zrkd`2c*Opa-RTxgR8nk*#Sz_e6eX0gC7#HhL3S9Y;t%skg%ri`wk@_?s1B6#KvRm| zpH0sFny&Sb!nITpEmQYZ|JTbJ3k%|ST2V!8c#r;zcjUu>L1xHmjX5S>Nk~@S`)DUG zX4y=R7!9Jsv$fLW5M)#8h%YdF0F{LY+CeO&HyN7JB3Be#j5KuwAOHm>g$yCHj}ZMJ zd!`#ogA+$uN^JSAK{gx|q~@dr=6s^D3ezyxOjyctgU8Vi;a-KP4Yl%2pwxQ7v)G}n zz z!E^KyUBCn0X@^>Q0|BWPrd|vT!{9O2*7ryiB(PuX}$2Q?9$or zI*viEiQLQXI~zt*D9jMg?57AiaFFc4$i9b^g1(oe@a`7E_Q@;T@|4^^*V~^kUM~eQ zJIn#Y)lQI)hup3T&(O*Ck(+Ul_fC6}n&)RMt&j3Wkk<7kWfkLXUlOY@zaMsad=* zSqKXH?ejeMT%f073aC5Bo@%rK+{`Uk#6@E9oKvyDIiLQsNmrIH&M&kEE~(wX*_nVW z<#o@#t8Y95<8ka^*jqVd3zz5c{LijZxnpJt^cu?j(+?Eq`N10ZO~*MSpC}n}nv~Kq zeAYHzqH(XKy;q)3Ov5)61s`~h9$5#QT2WTaX&`OBGAN|Ql)63jOw=ea9z|sOe$(5= z*Ec{c=59QB@d}pic9nAdPqiWX4krNAFF|y-|920gI&Sc8)}_m}Z2cJszB6WR^FDlQ z=&TDc!tFo;(>q-3f%S{{YS~fiBLV+|#>Z0O8~v?!Udh{{2fv-Xg7ppPst)lxLR%E~*Um{dO?1=#BO^xswzsmgv$hjETy>j3&z3HN()m)8~)m{L-l-d(LdQ^yP~=xyb&ol@%`9@jBt zn{M2J7vS}9Eocq!Ii;nbB(*I_({H&%z0Ezf!p{aD_N=NV@uqv+CWzkJEQB;$fWhLo z!2x^Gb{3t>eCl9h$c#vU8I+~|@=VXcn>q%OCPeRGHkZ?8*4ays0pNZ5XVi_dgZY_X z>4vR|R=28=R(<;TU2EX3kWXqYoVbL^(TYYgUL#n-V?+C`SvJ~G)rzu;GZIOT!__c& zmAa~N3 zFz@p7?+xa!UPAsK5Wz_M9)BgLqBqamJLu#9`CNwrW}jAYex)71{E~Myx-@UMMqMB` zm8V@lQ#+^sMd4@pzj{6sCmYj$dOpYhujjL~{r(?%{;=kz9WFbP@2&b>y)V`9Wjrki zX!}x400{gQngs5XVCwOZEeUoc9vNWwHyX8~mTgs3)tuOTe4L0C@0{EWOW)B9Rdx(wHW?sISZc zAe(YmSX#gA!*El4qtITo0 z++gn!4-10efh`VfKgT?mil^R*0y-QR5O8*XrHv&SKS3&{(2_c>2%JR3GB!8}K}G#g z=m09JHvj=lZeY_Eka#K%4dy*Ujl9M^Vu=(Edl(J15`Zlf6k-fNg^720!{NXF5G!&w z2i*hG4-7vVY~kqzf_&CVDL=Fq^7eD+!P1)}SNtOgM?bu0^I=6JCpWRk9=Lc25Q5YD zdtXXKN@sW-UmONb@p`)()ysT4{dOWoot9i!uLL{}oJBK$#dPi19OWow`p;fNGkTlW zf>7X+*6ZdJ z$0E;-(BSN>FJ$sIdUA^*&0F0r-~c|{rd<)ZY4{++ybCBLK+oR8s!550zm~wT(tskHTVq6^qRx&E%YHxq0rIW6Ul(qZ}}^ zk@=uDjZDCod~K^73~Tboz%6c1n42dBrg(75i%s#4$0!Hqle(0>(;%6tHg7Zss2qZ3d+}!2wbkL`RXCI zLB$uO|Lh}thhfiq2r)dp0Z%l}t*MBytwP~^Dzr6f%~=HqKr%`$y}7eD)10VxNA5>6 zFjMBwW68kc>*D(HwgZcpb!*+!Y~HDP+T%VRsfrD2&QzmYX`LSJXst5KRz33@mC-tj zoMev+w6~GG)499ByX!a3LBRLs@@~~H z2HzjSBKPV-fLsT{bXLkt7J81D+C9d-=llA%Zj$h-fa>q`UC(Yo&&bnln+wPto z`4%N*_3pePzQ74GkSB|k#jLA>5-vP|(lU_`Dc%=MU`29}SVpk073Ijm{;S9T!@K=k zA%qCJG6{kC{#Q(Roso)~G~!?UfD5csRh5Z}eAZq`K;joowBm+Ca&_#zf#5Nz+=vA4 zOa3BL(b8DQpwI+9p;B(VOX}`>fvAd(u*Ac!(xB<4^;JAGinwU$Q2laAvTRBXXx1mj zU+>~|iGmD$#JO!CKzYOEbOgu;S=GaaY70_ge#+Af#3)5BD1W#hmPyHSr4_B{4`B|v z(De*=0nK4tak1{Xuv&>H>NVjcHm&qpk}hXGCxd0AxOlr}<^ciy*d0PW4#K_E|?-Y;yZFnjypkOHACru2VB z-LwO$3%$?8$Yoj<|s8ds|haFI9XC*IwAh z%^QcZF8AhiWbKL&SV`jOk?B9^q{GGjTeJQplD8w4_e?NWdMBP93q>H319CjjSr)T0 z&F~LhrafzxNP`9JDSS2^?!1GAUk^jYHw(66yJDS`>rfeHd}i#U8tL)^=CCUqs^YX; zt(vy9&PUxI{wg1^?Pl;F{i|do(1y-#OYs*LC3M^Qe+l}m|0n2!vavG%7xS5!{=XbP z6FbZQi1{(9veugdNZqgMSM!`?D_5ge^uYp_RLP+z8#_V>k(CgFc#zuk-|sn^k}p?M zZq86yzK=Uu>_N1a>g7_FkT9(HS^>~5nftReps{kLGGJVa>%rc~@t%UjL^+C{_$eb& z?*IumC>pJW1WEzZbHXBjO`K{F>+}P(dUn^hNN-r**wXM_Eqcz{(=9}FtF0SWZ&dv(Pe^wqZK5ZYvDpYUKrE1q! z`E6gwdRVO9+qZ8znz~imDi^0s>F#Z$#{gPhR9ap+p6gSWj5B2|C0z0cC(FVpN#5@Z zzp_;~W$-J6@QJkX@zhTnm)~g}I66Cg-V7#Ej~f_IjmKX#MSP>NL`C!?f`7gaRal}$ z2h%lGMK|Ijic$|c-L~DhpYt(VvzCwJYIfW(t?o;#SJZEWcoR*#?It=x{fK!Hp#Y3j zK-2!1{)R+QeauMU0^Lp5&iryk#fzsksgALb+zeuJR#Yj`W)fb(Xr#;VoF;%E!z(kK~OwLIjLyQi$3zwf=1U7*PNYu}|%N0KYEwSq3e` zoVRWw+>VH*|Ht?H|M0;PG5`LL z@HcZ>Z$3ByC^Hjdnqmn!Jv!(A{UU>ssk6PSld-AuzjuG9#gBvIrtuYkQvsNMvvB^8 z33jb1X@AIu*7K>3M5QnWNxem_8!7i&GG4IJ!ze$D401Wu*0qTvam(`K@>4?UfjPEF zCeh3?VXass(r5Cu=atqdjzk9#X}P(aH!IHD<@}UpXn#BRirlZ~4;mPXN>)BfCd&81 zO91xIwD)G<*dwmw=tw=Y*q{AeZ!ygj%xjHEC9hO~9?{>c6|9f|x zpBtYb8-d{|d#At7eUTJukWkZZly?FQr=)w*I(mfh1v=OyAg(7fgZco*Tj=Z*#bq9M zt7v`XLy9qOLZB899=@Gy z>wYHa(>iZ%q8Hf}iEB;J+AI&7X@jrt3fB3H*oH-4y)42RMn)uL*@u6&f~r!gGN?58 zDTU1w$Y!xc?B`lI9~LXU76nI)9+pQkd^_L?udOrB1g#&+SD;%WpT0JC${V`uGSRMp;2SKa1#U}5T@ABT!Kg7*#GsZLH8G*JK3OEn z6Wbv%O8y#*kZ86q4t35JrKy>so5*@XU&$yrP*O5zW5Z3k(sL+kk5;6qBU)qy zP;^-UyPER38T5-2objR|%Txd{kd$y~YT-rt123oGKxd62Q|uf?1N@ANHWYB0 zLcseCvqf53#q1~sYU}#AN(7|2K!STc{ktGq?bTrIgg+{w(>BRom@0(s40BrfObng0 zM@qUUC|h`EC=`)Ri!6BCMI}eu!e~RuZQi;xquDj5(zN@0-S``dhDbd5|A8F(cds~<7OCil$ zoa1E=tE}roLGPm(YdLkA73mOltU^AS*{ITwcxnaAWD-COyc zhWz<*2@HPng-<-g?99O{BMyNTtj7)Orw9zwSi&%2_M{)%rRHrQt1KiT@8@=Mewr$(CZ95a&I`f}>wd>URtGX|`s;^h~`}Wgo?I^YLbv+i* z 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 RitZ5)vUt69Z=pJ6mA` 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 diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d9aad8..6910c87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,80 @@ -# Warlock-Studio - Comprehensive Changelog History +_Warlock-Studio | Changelog History_ + +# Version 5.1 + +**Release date:** December 11, 2025 +**Kernel Version:** 5.1.0 (Codename: Asynchronous-Warlock) +**Architecture:** Distributed / Multi-Threaded UI + +### Asynchronous I/O Architecture & File Queue System + +The application's file ingestion and management layer has been architecturally decoupled from the main GUI thread. The legacy synchronous file loader has been deprecated in favor of a reactive, non-blocking subsystem driven by the new **`file_queue_manager.py`** module. + +#### Multi-Threaded Ingestion Pipeline (`FileQueueManager`) + +- **Parallelized Metadata Extraction:** Implemented a `ThreadPoolExecutor` worker pool strategy. Heavy I/O operations—including `cv2.VideoCapture` metadata reading, frame extraction, and resolution calculation—are now offloaded to background threads, eliminating UI freezes ("Application Not Responding") during batch imports. +- **Thread-Safe Message Bus:** A `queue.Queue` messaging pattern was established to marshal data between worker threads and the main Tkinter loop. The `_check_queue` polling mechanism ensures atomic widget updates, preventing race conditions and segmentation faults common in multi-threaded GUI applications. +- **Object-Oriented State Encapsulation:** Introduced the `QueueItem` class to encapsulate file-specific state (loading status, error flags, thumbnail blobs, and resolution metrics). This allows for granular error handling where a single corrupt file no longer halts the entire batch loading process. +- **Lazy Thumbnail Generation:** Video and image thumbnails are now generated and cached asynchronously using a secure `PIL` <-> `OpenCV` bridge, reducing initial memory footprint during large batch operations. + +#### Viewport State Management (Main Orchestrator) + +- **Dynamic View Switching:** The main application logic now implements explicit view controllers (`show_drop_zone` and `show_file_manager`) to seamlessly toggle between the "Drag & Drop" landing state and the active "Queue Management" interface. +- **Drop Zone Expansion:** The drag-and-drop event listeners have been registered across the entire container hierarchy (`drop_zone_frame`, buttons, labels), eliminating "dead zones" where file drops were previously ignored. + +### Preferences System Re-engineering + +The configuration subsystem (`warlock_preferences.py`) has been rewritten from the ground up, abandoning the linear vertical scrolling design for a categorized **Sidebar Navigation Architecture**. + +#### Diagnostic & Maintenance Suite + +- **Integrated Log Viewer:** Embedded a read-only `CTkTextbox` that dynamically streams the content of the active `warlock_studio.log` file. Users can now audit FFmpeg stderr output and internal errors directly within the GUI without navigating the host file system. +- **Debug Package Export:** Introduced the `export_debug_info` routine. This function aggregates the current JSON configuration, recent log files, and system hardware telemetry into a timestamped `.zip` archive, streamlining the bug reporting process for developers. +- **Binary Path Overrides:** Added manual path selectors for `ffmpeg.exe` and `exiftool.exe`. This resolves path resolution conflicts on systems with non-standard environment variables or portable deployments. + +#### Hardware & Execution Configuration + +- **Strict ONNX Provider Enforcement:** Implemented a user-accessible selector for the AI Execution Backend (`Auto`, `CUDA`, `DirectML`, `CPU`). This allows users to forcefully bypass the internal driver heuristic engine if automatic detection fails on hybrid GPU setups. +- **Refined "NEO Engine":** The hardware scanning logic was optimized to prioritize `GPUtil` direct querying for NVIDIA GPUs while maintaining a robust WMI/WQL fallback chain for AMD and Intel architectures, ensuring accurate VRAM reporting. + +### AI Algorithm Precision & Mathematical Corrections + +#### RIFE Dynamic Padding (Artifact Elimination) + +Resolved a critical mathematical deficiency in the RIFE (Real-Time Intermediate Flow Estimation) interpolation pipeline where input resolutions not divisible by 32 generated black banding or green-screen artifacts. + +- **Reflective Padding Logic:** Implemented `pad_image_to_divisor` within the `AI_interpolation` class. This routine calculates the modulo-32 remainder and dynamically applies reflective border padding (`cv2.copyMakeBorder`) to the input tensor before inference. +- **Surgical Post-Inference Cropping:** A corresponding `crop_padding` routine removes the synthetic borders from the output tensor with pixel-perfect precision, ensuring the generated frames match the original resolution exactly without visual distortion. + +#### Face Restoration Stabilization + +- **Float32 Precision Enforcement:** The `AI_face_restoration` class now strictly enforces `float32` precision. The experimental `fp16` auto-detection was removed to prevent `NaN` (Not a Number) tensor propagation observed on specific CUDA driver versions and older Pascal/Maxwell architectures. +- **Alpha Channel Integrity Protocol:** Refined the RGBA handling pipeline ("Split-Merge Strategy"). The Alpha channel is now strictly processed via Bicubic interpolation, while only the RGB channels undergo GAN-based restoration. This prevents the generation of noise artifacts in transparency masks. + +### Operational Safety & Visual Identity + +#### Process Execution Guards + +- **Confirmation Interceptor:** Injected a `messagebox.askyesno` guard clause into the `upscale_button_command`. This prevents accidental initiation of resource-intensive workloads. +- **Shutdown Race Condition Fix:** The `on_app_close` handler now captures window attributes (`is_topmost`) _before_ the destruction sequence begins, resolving `TclError: application has been destroyed` exceptions that previously corrupted preference saving on exit. + +#### "Warlock Identity" Thematic Unification + +- **High-Contrast Palette:** The interface theme has been standardized to a "Dark & Gold" palette. Backgrounds have been deepened to `#0A0A0A` (Near Black) to maximize contrast for image previewing, with semantic color coding (Success Green, Error Red, Warlock Gold) applied consistently across the new Preferences and Queue modules. --- -## Version 5.0 +# Version 5.0 **Release date:** November 22, 2025 **Kernel Version:** 5.0.0 (Codename: NEO-Refactor) **Architecture:** Modular / Component-Based -### 1. Architectural Re-engineering & System Decoupling +### Architectural Re-engineering & System Decoupling The application core has undergone a foundational transformation, migrating from a legacy monolithic script architecture (v4.3) to a distributed, component-oriented modular system. This refactoring significantly reduces cyclomatic complexity, enforces Separation of Concerns (SoC), and isolates failure domains for improved fault tolerance. -#### 1.1. Component Atomization & Isolation +#### Component Atomization & Isolation The legacy `Warlock-Studio (1).py` codebase has been segmented into specialized operational subsystems: @@ -36,54 +98,54 @@ The legacy `Warlock-Studio (1).py` codebase has been segmented into specialized - Provides an abstraction layer over `tkinterdnd2`. - Implements the `DnDCTk` class, which inherits from `CTk` and `TkinterDnD.DnDWrapper`, injecting native OS file drag-and-drop event listeners into the custom UI toolkit. -### 2. "NEO Engine": Telemetry, Heuristics & Persistence +### "NEO Engine": Telemetry, Heuristics & Persistence -#### 2.1. Advanced Hardware Introspection (`HardwareScanner` Class) +#### Advanced Hardware Introspection (`HardwareScanner` Class) Implemented a robust Hardware Abstraction Layer (HAL) within `warlock_preferences.py`, utilizing `wmi`, `psutil`, and `GPUtil` libraries for deep system profiling: - **CPU Topology Analysis:** Differentiates between physical and logical cores to optimize `cpu_count` allocation for FFmpeg encoding and frame extraction threads. - **Memory Mapping:** Performs real-time analysis of total vs. available RAM to preemptively throttle batch sizes and prevent page file thrashing (swapping). - **GPU Heuristic Detection:** Implements a deterministic priority chain for VRAM detection: - 1. **Priority A:** `GPUtil` (Direct NVIDIA API access). - 2. **Priority B:** `WMI` (Win32_VideoController query for AMD/Intel). - 3. **Fallback:** Synthetic estimation based on system heuristics. + 1. **Priority A:** `GPUtil` (Direct NVIDIA API access). + 2. **Priority B:** `WMI` (Win32_VideoController query for AMD/Intel). + 3. **Fallback:** Synthetic estimation based on system heuristics. - **Algorithmic Optimization (`get_smart_recommendations`):** A logic engine that accepts hardware telemetry and computes the **"Safe VRAM Limit"** via the formula `max(0.5, vram_gb - 1.5)`. It dynamically prescribes Tile Resolutions and Thread Concurrency based on hardware tiers (Low-End vs. High-End). -#### 2.2. Serialized Configuration Management (`ConfigManager`) +#### Serialized Configuration Management (`ConfigManager`) - **JSON State Persistence:** Deprecated hardcoded global variables in favor of a structured `warlock_config.json` file. - **Robust Serialization:** The `ConfigManager` handles the marshaling and unmarshaling of user preferences (UI scaling factors, window opacity, process priority). - **Integrity Validation:** The `load_config` method implements schema validation, automatically injecting default key-value pairs if the configuration file is corrupted or missing fields during boot. -### 3. AI Inference Engine Stabilization (ONNX Runtime Backend) +### AI Inference Engine Stabilization (ONNX Runtime Backend) -#### 3.1. Deterministic Session Initialization +#### Deterministic Session Initialization - **Strict Type Enforcement:** The `create_onnx_session` factory was hardened to enforce strict integer typing (`int`) for the `device_id` parameter. - _Correction:_ In v4.3, passing device IDs as string literals (e.g., `"0"`) caused silent initialization failures on strict `DirectML` backends. The new logic creates an explicit mapping table (`'GPU 1' -> 0`). - **Hierarchical Execution Priority:** Implemented a failover chain for `ExecutionProviders` to maximize hardware acceleration compatibility: - 1. **Primary:** `CUDAExecutionProvider` (NVIDIA Optimized via cuDNN). - 2. **Secondary:** `DmlExecutionProvider` (DirectX 12 Abstraction Layer). - 3. **Failover:** `CPUExecutionProvider` (Universal x64 instruction set). + 1. **Primary:** `CUDAExecutionProvider` (NVIDIA Optimized via cuDNN). + 2. **Secondary:** `DmlExecutionProvider` (DirectX 12 Abstraction Layer). + 3. **Failover:** `CPUExecutionProvider` (Universal x64 instruction set). -#### 3.2. Precision Standardization in Face Restoration (`AI_face_restoration`) +#### Precision Standardization in Face Restoration (`AI_face_restoration`) - **Mandatory Float32 Inference:** The experimental `fp16` (half-precision) auto-detection logic used in v4.3 was deprecated. - _Rationale:_ It caused `NaN` (Not a Number) tensor propagation on older GPUs lacking dedicated Tensor Cores. The engine now defaults to **`float32`** unless the ONNX model metadata explicitly mandates a lower precision dtype. - **"Split-Merge" Channel Strategy:** A sophisticated pipeline was developed to handle RGBA (Transparency) artifacts: - 1. **Channel Splitting:** The Alpha channel is isolated from the RGB tensor. - 2. **Hybrid Scaling:** RGB channels are processed via the Neural Network; the Alpha channel is scaled using **Bicubic Interpolation** (`INTER_CUBIC`) to preserve edge fidelity without introducing GAN-generated noise into the transparency mask. - 3. **Tensor Reconstruction:** Post-inference concatenation (`numpy.concatenate`) reassembles the final image tensor. + 1. **Channel Splitting:** The Alpha channel is isolated from the RGB tensor. + 2. **Hybrid Scaling:** RGB channels are processed via the Neural Network; the Alpha channel is scaled using **Bicubic Interpolation** (`INTER_CUBIC`) to preserve edge fidelity without introducing GAN-generated noise into the transparency mask. + 3. **Tensor Reconstruction:** Post-inference concatenation (`numpy.concatenate`) reassembles the final image tensor. -#### 3.3. Heuristic OOM (Out-Of-Memory) Recovery +#### Heuristic OOM (Out-Of-Memory) Recovery - **Recursive Dynamic Tiling:** The `upscale_video_frames_async` pipeline now wraps inference calls within a specialized `try...except` block listening for specific `cuda`, `memory`, or `allocation` exceptions. - **Recovery Algorithm:** Upon trapping a VRAM overflow event, the orchestrator intercepts the crash, dynamically downscales the `max_resolution` (Tile Size) by a factor of 2 (e.g., `100% -> 50%`), and triggers a recursive retry of the failed frame. This ensures batch job completion even during transient memory spikes. -### 4. Video Processing Pipeline & FFmpeg Orchestration +### Video Processing Pipeline & FFmpeg Orchestration -#### 4.1. Redundant Encoding Pipeline (Codec Fallback Loop) +#### Redundant Encoding Pipeline (Codec Fallback Loop) The `video_encoding` function has been refactored into a transactional state machine with automatic rollback and retry capabilities: @@ -91,18 +153,18 @@ The `video_encoding` function has been refactored into a transactional state mac - **Failure Handling:** Captures `subprocess.CalledProcessError` or non-zero exit codes (indicative of driver timeouts or resource locking). - **Attempt 1 (Software Failover):** Automatically switches context to the CPU-based `libx264` encoder. This guarantees output file delivery even in catastrophic GPU driver failure scenarios. -#### 4.2. Lossless Intermediate Serialization +#### Lossless Intermediate Serialization - **PNG Standardization:** The `extract_video_frames` function has strictly deprecated the use of `.jpg` (v4.3) for temporary frame storage. The pipeline now mandates **`.png`** containers, eliminating compression artifacts (generation loss) before the pixel data enters the neural network input layer. -#### 4.3. Temporal Frame Synchronization +#### Temporal Frame Synchronization - **FPS Multiplier Logic:** An explicit `fps_multiplier` argument was injected into the `video_encoding` signature. - _Functionality:_ This allows the orchestrator to mathematically calculate the target framerate (`source_fps * multiplier`) specifically for **RIFE Interpolation** tasks (x2, x4, x8), ensuring frame-perfect Audio/Video synchronization in the final container muxing. -### 5. UI/UX & Advanced Diagnostic Tools +### UI/UX & Advanced Diagnostic Tools -#### 5.1. Integrated Debugging Console (`IntegratedConsole`) +#### Integrated Debugging Console (`IntegratedConsole`) - **Stream Interception:** The `StreamRedirector` class hooks into the Python interpreter's I/O layer to capture `sys.stdout` and `sys.stderr`. - **Real-Time Visualization:** A dedicated `CTkTextbox` widget renders logs with Regex-based syntax highlighting (INFO=Blue, ERROR=Red, WARNING=Yellow, SUCCESS=Green), empowering end-users to diagnose underlying FFmpeg or ONNX runtime issues without external CLI tools. @@ -112,13 +174,13 @@ The `video_encoding` function has been refactored into a transactional state mac - **Contextual Widget Injection:** Implemented the `clear_dynamic_menus` routine to manipulate the widget tree (DOM) at runtime. - _Behavior:_ Upon selecting a **RIFE** model, "Blending" controls are destroyed and "Frame Generation" selectors (Slowmotion factors) are dynamically injected into the layout. This prevents invalid configuration states at the UI level. -#### 5.3. Window Management & Responsive Layout +#### Window Management & Responsive Layout - **Reactive Geometry Engine:** The `window.resizable(True, True)` flag was enabled, and the initial viewport geometry was increased to **85%** of screen height. The `grid` and `place` geometry managers were recalibrated to respond dynamically to window resizing events, accommodating the new bottom-docked console. -### 6. Deployment & System Integration Strategy +### Deployment & System Integration Strategy -#### 6.1. Relocation of Default Installation Directory +#### Relocation of Default Installation Directory - **Privilege Escalation Mitigation:** The default installation target within the Inno Setup script (`.iss`) has been migrated from `%ProgramFiles%` to **`%userprofile%\Documents\Warlock-Studio`**. - **Write-Access Assurance:** This critical deployment change addresses `PermissionDenied` (WinError 5) exceptions encountered in v4.3 on systems with strict UAC (User Account Control) policies. By deploying to the user space, the application guarantees atomic read/write access for: @@ -129,51 +191,51 @@ The `video_encoding` function has been refactored into a transactional state mac --- -## Version 4.3 +# Version 4.3 **Release date:** November 15, 2025 -### 1. Critical Stability & Process Synchronization +### Critical Stability & Process Synchronization -#### 1.1. Forced Writer Thread Synchronization (Critical Stability Fix) +#### Forced Writer Thread Synchronization (Critical Stability Fix) - Implemented explicit and mandatory synchronization using the `t.join()` function for **all frame writing threads** (`writer_threads`) within the main video orchestrator (`upscale_orchestrator`). - This change is **critical for workflow integrity**, ensuring that all AI-upscaled frames are completely written and closed on disk before initiating the FFmpeg video encoding process. - **Technical Impact:** Resolves intermittent encoding failures (`File Not Found` or `Input/Output error`) that could occur when FFmpeg attempted to read files still being written by concurrent threads. -#### 1.2. Graceful Termination for Process Monitoring Thread +#### Graceful Termination for Process Monitoring Thread - The status monitoring thread (`upscale_monitor_thread`) has been enhanced to handle unexpected failures or abrupt terminations of the main upscaling process. - An explicit `break` statement was added to the `except Exception` block that manages errors reading from the status queue (`process_status_q`). - **Technical Impact:** If the main upscaling process (`Process`) fails or hangs, the monitoring thread now **terminates its execution gracefully and immediately** instead of becoming a "zombie thread," allowing the user interface to correctly reset global status controls. -#### 1.3. Reinforced Frame Sequence Integrity Validation +#### Reinforced Frame Sequence Integrity Validation - A robust verification function was introduced to validate the integrity of the frame sequence on disk before starting the AI upscaling. - This measure is vital for `Resume` operations and now explicitly validates: - The **physical existence** of every frame path (`os_path_exists`). - The **readability** of the image file (`image_read`), preventing segmentation faults or memory errors if the file is corrupted or incomplete. -### 2. Performance Improvements and Technical Refinements +### Performance Improvements and Technical Refinements -#### 2.1. Aggressive Post-Process Memory Optimization +#### Aggressive Post-Process Memory Optimization - A memory optimization step (`optimize_memory_usage`) with calls to `gc.collect()` was implemented after the last upscaled frames are saved to disk and before video encoding starts. - **Purpose:** To reduce peak RAM usage by aggressively freeing any residual NumPy arrays and image references held in memory, ensuring the system has maximum memory available for the FFmpeg encoding subprocess. -#### 2.2. Clarification of Tiling and VRAM Logic +#### Clarification of Tiling and VRAM Logic - Detailed internal documentation (`# comments`) was added to the validation function (`check_upscale_settings`) to **explain the calculation logic for tile size** based on the user's VRAM limiter and the AI model's usage factor. - **Clarified Formula:** `tiles_resolution = (ModelUsageFactor * VRAM_GB) * 100`. This is a technical refinement ensuring transparency and justification for the internal calculation. -#### 2.3. Robustness and Clarification in Video Encoding (FFmpeg Command Line) 🎬 +#### Robustness and Clarification in Video Encoding (FFmpeg Command Line) 🎬 - **Explicit Stream Mapping:** Within `create_video_with_ffmpeg`, the FFmpeg command line now uses **more explicit and safer stream mapping** (`-map 0:v:0 -map 0:a:0?`). This ensures that the first video stream is selected obligatorily, and the first audio stream is selected optionally, resolving ambiguity issues in inputs containing multiple video or audio streams. - **Data Stream Exclusion:** The **`-dn`** (Disable Data stream) argument was introduced into the base FFmpeg command line. This instructs the encoder to ignore unnecessary _data streams_ (such as subtitles or complex metadata) that are not relevant to the video or audio, **simplifying the muxing process and improving compatibility** across various players. -### 3. Aesthetic and UI/UX Refinements +### Aesthetic and UI/UX Refinements -#### 3.1. Complete Aesthetic Overhaul: Crimson Gold Dark Theme 🌑 +#### Complete Aesthetic Overhaul: Crimson Gold Dark Theme 🌑 - The application's entire color scheme was replaced (migrating from a v4.2.1 red/yellow palette) with a high-contrast **"Crimson Gold Dark Theme"**: - **Background:** Deep Black (`#121212`). @@ -181,18 +243,18 @@ The `video_encoding` function has been refactored into a transactional state mac - **Primary Accent:** Pure Gold (`#FFD700`). - Dropdown menus (`CTkOptionMenu`) were styled with explicit **`corner_radius=0`** for a more modern, defined, and flat aesthetic. -#### 3.2. Detailed Visualization of File Information in Queue +#### Detailed Visualization of File Information in Queue - Clarity of information in the queue widget (`FileWidget.add_file_information`) was improved by breaking down the complete resolution transformation sequence into three lines, eliminating ambiguity about intermediate dimensions: - **AI Input:** Shows the final input resolution. - **AI Output:** Shows the native resolution after upscaling by the AI model factor. - **Video Output:** Shows the final resolution of the encoded video. -#### 3.3. Visual Consistency and Updated Menu Separators +#### Visual Consistency and Updated Menu Separators - The visual separator in all dropdown menus has been updated from the string `"<------------------>"` (v4.2.1) to a cleaner, more discreet sequence of dots: **`• • • • • • • • • • • •`**. -#### 3.4. Refined Dynamic Menu Logic +#### Refined Dynamic Menu Logic - The conditional visibility logic for menus in `select_AI_from_menu` was refined for a smoother user experience: - The **Frame Interpolation** control is only visible for RIFE models. @@ -200,48 +262,48 @@ The `video_encoding` function has been refactored into a transactional state mac --- -## Version 4.2.1 +# Version 4.2.1 **Release date:** 27 October 2025 -### 1. Critical Bug Fixes & Core Functionality +### Critical Bug Fixes & Core Functionality -#### 1.1. Resolved Critical Audio Passthrough Failure in Video Encoding +#### Resolved Critical Audio Passthrough Failure in Video Encoding - Addressed a major bug introduced in v4.2 where all generated videos were encoded without audio. This was caused by the accidental omission of the `ffprobe.exe` executable (a key component of the FFmpeg suite) from the application's `Assets` directory and the final build package. - The `video_encoding` pipeline relies on media analysis (performed by `ffmpeg` or `ffprobe`) to detect the presence of audio streams in the source video. Due to the missing executable, the `audio_info_command` subprocess would fail, causing the application to incorrectly assume all input videos had no audio. - By restoring the `ffprobe.exe` binary to the application bundle, the audio detection step now executes successfully, enabling the proper copying (`-c:a copy`) or re-encoding (`-c:a aac`) of the original audio track into the final processed video. -#### 1.2. Fixed Invalid UI State Persistence +#### Fixed Invalid UI State Persistence - Addressed a critical UI logic bug where AI model settings could persist incorrectly when switching between model types. The `select_AI_from_menu` function now properly resets conflicting global variables: - **RIFE Selection:** When an interpolation model (e.g., RIFE, RIFE_Lite) is selected, the **`selected_blending_factor`** is now automatically reset to `0` (OFF), as blending is not a valid operation for this model. - **Upscaling/Face Selection:** Conversely, when any upscaling or face restoration model (e.g., BSRGAN, GFPGAN) is selected, the **`selected_frame_generation_option`** is automatically reset to `OFF`. - This prevents users from applying invalid or non-functional setting combinations, ensuring a more intuitive and error-free workflow. -#### 1.3. Fixed File Thumbnail Generation Crash +#### Fixed File Thumbnail Generation Crash - Reworked the `FileWidget.extract_file_icon` method to be more robust during the conversion of an OpenCV (NumPy) image to a `CTkImage` for file previews. - The process no longer relies on the `mode='RGB'` parameter within `pillow_image_fromarray`, which could fail with certain `numpy` array layouts. - It now uses an explicit, two-step conversion (`pil_img = pillow_image_fromarray(source_icon)` followed by `pil_img = pil_img.convert("RGB")`), ensuring correct channel order and preventing potential `Pillow`/`numpy` compatibility crashes when loading file thumbnails. -### 2. UI Corrections & Usability Enhancements +### UI Corrections & Usability Enhancements -#### 2.1. Corrected Supported File Extension List +#### Corrected Supported File Extension List - The helper text on the file selection screen has been corrected to more accurately list the supported file extensions. It now properly includes `jpeg` and `tiff` and removes incorrect entries (`heic`, `gif`, `mpg`, `qt`, `3gp`) to align with the application's actual processing capabilities. -#### 2.2. Implemented Fixed Application Window +#### Implemented Fixed Application Window - The main application window is now non-resizable (`window.resizable(False, False)`). This change was implemented to ensure a stable and predictable UI layout, preventing the relative-coordinate-based widget placement (`relx`, `rely`) from breaking, overlapping, or scaling improperly when the window is resized. -#### 2.3. Improved Dialog Window Behavior +#### Improved Dialog Window Behavior - Removed the `self.attributes("-topmost", True)` flag from the `MessageBox` class (which handles error and info dialogs). This stops popup windows from aggressively forcing themselves to be the top-most window on the entire desktop. Dialogs now behave as standard application-modal windows, resolving a key usability issue where they could "steal focus" or obstruct other programs. -### 3. Thematic & Visual Redesign +### Thematic & Visual Redesign -#### 3.1. New "Inferno" Thematic Redesign +#### New "Inferno" Thematic Redesign - Version 4.2.1 introduces a significant visual overhaul, moving away from the previous gold-and-grey theme to a high-contrast, dark-mode "inferno" theme. This new palette uses a deep red background with bright yellow and white text, designed to improve readability and reduce eye strain. @@ -258,105 +320,105 @@ The color scheme has been updated as follows: | **Warning Color** | `#E02CDA` (Magenta) | `#FF8C00` (Orange) | | **Error Color** | `#070087` (Dark Blue) | `#DC143C` (Crimson) | -#### 3.2. Monospaced Typography Shift +#### Monospaced Typography Shift - The application's global font has been changed from `"Segoe UI"` to `"Consola"`. This provides a more uniform, technical aesthetic across all UI elements, enhancing readability for file names, numeric values, and status messages. -#### 3.3. Dropdown Menu Readability +#### Dropdown Menu Readability - Updated the visual separators in dropdown menus from `----` to `<------------------>` for clearer, more pronounced grouping of model categories. --- -## Version 4.2 +# Version 4.2 **Release date:** 6 October 2025 -### 1. Core Architecture & Performance Engineering +### Core Architecture & Performance Engineering -#### 1.1. Advanced ONNX Runtime Integration & Execution Provider Strategy +#### Advanced ONNX Runtime Integration & Execution Provider Strategy - **Intelligent Provider Prioritization & Fallback Mechanism**: The core AI model loading architecture has been fundamentally re-engineered for superior performance and resilience. The new implementation leverages a prioritized provider list (`['CUDAExecutionProvider', 'DmlExecutionProvider', 'CPUExecutionProvider']`) within the `onnxruntime.InferenceSession` constructor. It first attempts to initialize a session using the **`CUDAExecutionProvider`**, which offers the highest performance by interfacing directly with NVIDIA's CUDA cores and Tensor Cores. If this fails (due to lack of an NVIDIA GPU, driver issues, or CUDA toolkit incompatibility), the system gracefully falls back and attempts initialization with the **`DmlExecutionProvider`**, utilizing Windows' DirectML API for broader hardware acceleration across various GPU vendors (NVIDIA, AMD, Intel). As a final failsafe, if no GPU acceleration provider can be initialized, it defaults to the **`CPUExecutionProvider`**, ensuring the application remains functional on any machine, albeit with reduced performance. - **Centralized Session Management & Code Refactoring**: A new, unified function, `create_onnx_session`, has been introduced to abstract and centralize all ONNX session creation logic. This eliminates the redundant and error-prone boilerplate code that was previously duplicated within the `_load_inferenceSession` method of each individual AI class (`AI_upscale`, `AI_interpolation`, `AI_face_restoration`). This refactoring adheres to the **Don't Repeat Yourself (DRY)** principle, significantly improving code maintainability, reducing the surface area for bugs, and ensuring a consistent and robust model loading strategy across the entire application. - **Enhanced Error Handling & Diagnostics**: The `try...except` block encapsulating the session creation loop is now more sophisticated. It logs specific warnings when a provider fails to initialize and clearly indicates which provider it is falling back to. This provides transparent diagnostics that are critical for troubleshooting performance issues related to hardware acceleration. -#### 1.2. PyInstaller Packaging & Distribution Overhaul +#### PyInstaller Packaging & Distribution Overhaul - **Aggressive Dependency Pruning for Size Optimization**: The PyInstaller `.spec` file has been meticulously optimized to drastically reduce the final distribution size. An extensive `excludes` list has been implemented to explicitly instruct PyInstaller's analysis engine to ignore and not bundle large, non-essential packages. This prevents the recursive inclusion of entire scientific and machine learning ecosystems like `torch`, `transformers`, `matplotlib`, `pandas`, `scipy`, and `PyQt5`, which are often pulled in as sub-dependencies but are not required for this application's runtime. This strategic pruning reduces the package size by hundreds of megabytes. - **Robust Hidden Import Declaration for Runtime Stability**: The `.spec` file now includes a `hiddenimports` list containing `onnxruntime.capi._pybind_state`, `onnxruntime.providers`, and `moviepy.editor`. This is critical for ensuring runtime stability, as these modules are often loaded dynamically (e.g., via `__import__` or C extensions) in a way that PyInstaller's static analysis cannot detect. Explicitly declaring them forces their inclusion, preventing `ModuleNotFoundError` crashes when the packaged application attempts to access these components. - **Strategic Shift to "One-Folder" Distribution**: The build strategy has been transitioned from a "one-file" mode to a more robust and efficient "one-folder" mode. This is achieved by using the `COLLECT` block in the `.spec` file. Instead of bundling all dependencies into a single large executable that must be decompressed to a temporary directory (`_MEIPASS`) on every launch, the "one-folder" approach places the executable alongside its required `.dll`, `.pyd`, and data files. This results in significantly faster application startup times and avoids potential conflicts with antivirus software or system permissions related to executing from temporary locations. -### 2. Installer & Distribution Strategy Refinement +### Installer & Distribution Strategy Refinement -#### 2.1. Transition to a Full Offline Installer Model +#### Transition to a Full Offline Installer Model - **Self-Contained & Hermetic Package**: The application's distribution model has been fundamentally shifted from a lightweight online/web installer to a comprehensive **offline installer**. All required runtime assets, most notably the large AI model files (`.onnx`), are now bundled directly within the Inno Setup executable. This creates a fully self-contained package that guarantees a successful installation without any external dependencies. - **Elimination of Network Dependencies & Points of Failure**: This architectural change enhances installation reliability exponentially. It completely removes the dependency on an active internet connection during setup and eliminates critical points of failure, such as GitHub/SourceForge server downtime, network interruptions, firewalls, or changes in download URLs. The user is assured of a complete, atomic installation from a single authoritative file. - **Radical Simplification of Installer Logic**: As a direct result of bundling all assets, the entire Pascal Script `[Code]` section in `Setup.iss` has been **completely removed**. This eliminates dozens of lines of complex logic responsible for creating custom download pages, handling HTTP requests, managing user cancellations, and, most critically, invoking external processes like PowerShell for archive extraction (`Expand-Archive`). This simplification makes the installer script significantly more robust, predictable, and easier to maintain. - **Streamlined User Experience**: The installer's UI has been simplified by removing the "Download AI Models" task from the `[Tasks]` section. This avoids user confusion and streamlines the setup process, as the action is no longer necessary. The output filename is also now explicitly suffixed with `-Full-Installer` to clearly communicate its offline nature. -### 3. UI, UX & Developer Experience Enhancements +### UI, UX & Developer Experience Enhancements -#### 3.1. Enhanced Application Startup & Initial Feedback +#### Enhanced Application Startup & Initial Feedback - **Professional Splash Screen Implementation**: A new `SplashScreen` class provides immediate visual feedback upon application launch. This improves the _perceived performance_ by displaying a branded loading screen with status messages while core components and AI models are being initialized in the background. It prevents the appearance of a hung or unresponsive application during the initial loading phase. - **Runtime Environment Diagnostics**: At startup, the application now programmatically queries and prints the available ONNX Runtime providers by calling `onnxruntime.get_available_providers()`. This information is outputted to the console, serving as an invaluable, zero-effort diagnostic tool. It allows both end-users and developers to instantly verify which hardware acceleration backends are detected and available to the application, aiding in performance tuning and troubleshooting. -#### 3.2. Improved Debugging and Diagnosability +#### Improved Debugging and Diagnosability - **Persistent Console for Runtime Output**: The PyInstaller build configuration was modified to set `console=True`. This forces the application to run with an attached console window that captures the `stdout` and `stderr` streams. This is a critical enhancement for diagnostics, as it makes all print statements, logging output, warnings, and unhandled exception tracebacks immediately visible, providing a clear and persistent record of the application's runtime behavior for effective bug reporting and debugging. --- -## Version 4.1 +# Version 4.1 **Release date:** 1 August 2025 -### 1. Model Enhancement and Utilization +### Model Enhancement and Utilization -#### 1.1. Enhanced GPU Utilization and Error Handling +#### Enhanced GPU Utilization and Error Handling - **Robust Provider Configuration**: Added a private method `_select_providers` to intelligently select ONNX runtime providers based on the chosen GPU and improve model execution efficiency. - **Dynamic Fall-back Mechanism**: Enhanced `_load_inferenceSession` to prioritize loading models on GPU providers and gracefully fallback to CPU providers if GPU initialization fails, coupled with detailed logging. - **Improved Model Initialization**: Ensured comprehensive validation and error handling during model loading to enhance stability across various hardware environments. -### 2. Compatibility and Runtime Improvements +### Compatibility and Runtime Improvements -#### 2.1. Addressed NumPy and OpenCV Compatibility +#### Addressed NumPy and OpenCV Compatibility - **Resolved Import Errors**: Fixed critical compatibility issues between NumPy 2.x and OpenCV by downgrading to NumPy 1.26.4, preventing `_ARRAY_API not found` and `numpy.core.multiarray failed to import` errors. - **Critical Module Validation**: Ensured that all critical libraries (OpenCV, ONNX Runtime, CustomTkinter) load successfully without compatibility warnings, enhancing overall application reliability. - **Runtime Environment Stability**: Resolved module loading conflicts that previously caused application crashes during startup. -### 3. Performance Optimization +### Performance Optimization -#### 3.1. Memory and Resource Management +#### Memory and Resource Management - **Contiguous Memory Utilization**: Enhanced use of `numpy.ascontiguousarray` throughout image processing pipelines to optimize memory usage during intensive AI processing tasks. - **GPU Memory Error Recovery**: Improved handling of GPU memory allocation failures with automatic fallback to CPU processing when DirectML providers are unavailable. - **Processing Pipeline Optimization**: Streamlined AI model loading and inference execution for better resource utilization across different hardware configurations. -### 4. Code Quality and Error Handling +### Code Quality and Error Handling -#### 4.1. Enhanced Error Resilience +#### Enhanced Error Resilience - **Syntax Error Resolution**: Fixed critical syntax error in `_load_inferenceSession` method that prevented proper AI model initialization. - **Improved Error Messaging**: Enhanced logging capabilities with more informative error messages and warnings for better user diagnostics and troubleshooting. - **Graceful Degradation**: Implemented improved fallback strategies for GPU resource issues, effectively preventing application crashes by dynamically adjusting processing pathways. - **Provider Validation**: Added comprehensive validation for ONNX runtime providers with automatic fallback from GPU to CPU execution when hardware acceleration is unavailable. -### 5. UI and User Experience +### UI and User Experience -#### 5.1. Application Stability and Feedback +#### Application Stability and Feedback - **Startup Reliability**: Resolved critical startup issues that prevented the application from launching due to module compatibility problems. - **Processing Status Updates**: Enhanced real-time feedback during AI model loading and image/video processing operations. - **Error Notification**: Improved error dialogs and status messages to provide clearer information about processing states and potential issues. - **Hardware Compatibility**: Better detection and handling of different GPU configurations, with informative warnings when falling back to CPU processing. -### 6. Technical Improvements +### Technical Improvements -#### 6.1. Model Loading Architecture +#### Model Loading Architecture - **Modular Provider Selection**: Separated provider selection logic into dedicated methods for better code organization and maintainability. - **Robust Model Validation**: Enhanced file existence checking and model integrity validation before attempting to load AI models. @@ -364,13 +426,13 @@ The color scheme has been updated as follows: --- -## Version 4.0.1 +# Version 4.0.1 **Release date:** 27 July 2025 -### 1. Model Cleanup and Optimization +### Model Cleanup and Optimization -#### 1.1. SuperResolution-10 Model Removal +#### SuperResolution-10 Model Removal - **Model Deprecation**: Removed the SuperResolution-10 model from the application due to performance and compatibility issues. - **Code Cleanup**: Eliminated the dedicated `AI_super_resolution` class and all related processing pipelines. @@ -379,7 +441,7 @@ The color scheme has been updated as follows: - **Streamlined Processing**: Simplified the upscaling orchestrator by removing SuperResolution-specific routing logic. - **Model List Cleanup**: Removed `SuperResolution_models_list` from the main AI models collection. -#### 1.2. Performance Improvements +#### Performance Improvements - **Reduced Memory Footprint**: Application now uses less memory without the SuperResolution-10 model overhead. - **Simplified Code Paths**: Cleaner processing logic with fewer conditional branches for model selection. @@ -387,63 +449,63 @@ The color scheme has been updated as follows: --- -## Version 4.0 +# Version 4.0 **Release date:** 18 July 2025 -### 1. AI Model Integration & Enhancement +### AI Model Integration & Enhancement -#### 1.1. SuperResolution-10 Model Implementation +#### SuperResolution-10 Model Implementation - **New AI Model Integration**: Added support for the SuperResolution-10 model, providing advanced super-resolution capabilities with 10x upscaling factor. This model is specifically designed for very low-resolution images and excels at significant resolution increases. - **Specialized Processing Pipeline**: Created a dedicated `AI_super_resolution` class that inherits from the new `AI_model_base` class, implementing proper preprocessing (CHW format conversion, normalization) and postprocessing (HWC format conversion, value clipping) for optimal results. - **Model Information Integration**: Added comprehensive model information in the AI model selector dialog, including year (2023), function (high-resolution image enhancement), and specialized use cases. -#### 1.2. AI Architecture Improvements +#### AI Architecture Improvements - **Base Class Implementation**: Created the missing `AI_model_base` class that provides common functionality for all AI models, including ONNX model loading with GPU acceleration support and proper error handling. - **Enhanced Model Loading**: Implemented robust model loading with provider selection (DML, CPU) and comprehensive error handling for missing model files. - **VRAM Management**: Added VRAM usage information for SuperResolution-10 (0.8 GB) to help users optimize their GPU memory usage. -### 2. Code Quality & Stability +### Code Quality & Stability -#### 2.1. Import System Optimization +#### Import System Optimization - **Fixed Import Errors**: Resolved critical `NameError: name 'numpy_ndarray' is not defined` by properly organizing imports at the top of the file. - **Consolidated Imports**: Removed duplicate import sections and properly structured the import hierarchy for better maintainability. - **Type Annotation Fixes**: Corrected type annotations throughout the codebase to use the proper imported numpy types. -#### 2.2. Enhanced Error Handling +#### Enhanced Error Handling - **Model Loading Resilience**: Implemented try-catch blocks for model loading operations with meaningful error messages. - **Graceful Degradation**: Added fallback mechanisms that return the original image if super-resolution enhancement fails, ensuring the application never crashes. - **Debug Information**: Enhanced logging with model loading status and error reporting for better troubleshooting. -### 3. User Interface Updates +### User Interface Updates -#### 3.1. Model Selection Enhancement +#### Model Selection Enhancement - **Updated Model List**: SuperResolution-10 is now properly integrated into the AI model dropdown menu and categorized appropriately. - **Information Dialog Updates**: Added detailed information about the SuperResolution-10 model in the help dialog, including its capabilities and recommended use cases. - **Model Orchestration**: Enhanced the upscaling orchestrator to properly detect and route SuperResolution model tasks to the appropriate processing pipeline. -### 4. Technical Improvements +### Technical Improvements -#### 4.1. Processing Pipeline Optimization +#### Processing Pipeline Optimization - **Specialized Image Processing**: Implemented dedicated image processing functions for super-resolution models that handle the unique requirements of the SuperResolution-10 model. - **Memory Efficiency**: Optimized image preprocessing and postprocessing to minimize memory usage during super-resolution operations. - **Performance Monitoring**: Added processing time tracking for super-resolution operations to help users understand processing performance. -#### 4.2. Integration Completeness +#### Integration Completeness - **Full Model Integration**: SuperResolution-10 is now fully integrated into all aspects of the application, from model selection to processing to output generation. - **Consistent User Experience**: The super-resolution workflow follows the same patterns as other AI models, ensuring a consistent user experience. - **Quality Assurance**: Implemented comprehensive testing to ensure the SuperResolution-10 model works correctly with both individual images and batch processing. -### 5. Smart AI Model Distribution System +### Smart AI Model Distribution System -#### 5.1. Automatic Model Download +#### Automatic Model Download - **Lightweight Installer**: Significantly reduced installer size from 1.4GB to approximately 300MB by removing AI models from the installation package. - **On-Demand Download**: Implemented intelligent model downloading system that automatically fetches required AI models (327MB) when the application is first launched. @@ -451,13 +513,13 @@ The color scheme has been updated as follows: - **Fallback URLs**: Integrated multiple download sources (GitHub Releases, SourceForge) to ensure reliable model availability. - **Resume Capability**: Download system supports resuming interrupted downloads and validates file integrity. -#### 5.2. PyInstaller Optimization +#### PyInstaller Optimization - **Optimized Packaging**: Updated `.spec` file to exclude AI model directory from executable packaging, reducing final executable size by over 1GB. - **Enhanced Dependencies**: Added model downloader module to the build process with proper hidden imports for requests, threading, and file handling libraries. - **Improved Compression**: Increased optimization level and added module exclusions to further reduce executable size. -#### 5.3. Installation Experience +#### Installation Experience - **Smart Setup Script**: Created enhanced Inno Setup configuration that can optionally download models during installation or defer to first-run. - **User Choice**: Users can choose between offline installation (models downloaded on first run) or full installation with models included. @@ -466,21 +528,21 @@ The color scheme has been updated as follows: --- -## Version 3.0 +# Version 3.0 **Release date:** 16 July 2025 -### 1. Major Features & Core Capabilities +### Major Features & Core Capabilities -#### 1.1. AI-Powered Face Restoration (GFPGAN) +#### AI-Powered Face Restoration (GFPGAN) - **New `AI_face_restoration` Class**: A new, specialized class has been implemented to handle face restoration models. This class is architected to manage the unique preprocessing and post-processing requirements of models like GFPGAN, distinct from standard upscaling models. - **GFPGAN Model Integration**: The GFPGAN v1.4 model has been added to the AI model repository and is now selectable from the UI. It is listed under a new `Face_restoration_models_list` category. The main orchestrator (`upscale_orchestrator`) now detects when a face restoration model is selected and routes the task to the appropriate `AI_face_restoration` instance. - **Specialized Processing Pipeline**: The new class introduces a dedicated pipeline for face enhancement. This includes resizing the input image to the model's required dimensions (e.g., 512x512 for GFPGAN), handling color channel conversions, and post-processing the output to restore the image to its original dimensions. -### 2. UI/UX Modernisation +### UI/UX Modernisation -#### 2.1. Complete Thematic Redesign +#### Complete Thematic Redesign - The application has undergone a significant visual overhaul with a new, professionally designed color scheme to improve aesthetics and user comfort during long sessions. The new theme provides better contrast and a more modern look. @@ -493,104 +555,104 @@ The color scheme has been updated as follows: | Button Hover | `#FF6666` (Light Red) | `background_color` | | Info Button | `#B22222` (Dark Red) | `widget_background_color` | -#### 2.2. Enhanced Splash Screen +#### Enhanced Splash Screen - **Dynamic Progress Bar**: The splash screen now features a `CTkProgressBar` to provide visual feedback on the application's loading status, enhancing the startup experience. - **Smooth Fade-Out Animation**: A new `fade_out` method using a cosine function has been implemented for a smooth, animated exit transition instead of an abrupt disappearance. - **Improved Information Display**: The splash screen now prominently displays the application version number. -#### 2.3. Redesigned and Resizable Message Boxes +#### Redesigned and Resizable Message Boxes - The `MessageBox` class was significantly improved to handle large blocks of text, such as detailed error messages. It now implements a `CTkScrollableFrame`, ensuring that content is always accessible without forcing the dialog to an unmanageable size. - The dialogs now have defined `minsize` and `maxsize` properties for better window management. -#### 2.4. Improved UI Readability +#### Improved UI Readability - The main AI model dropdown menu is now logically grouped by model type (Upscaling, Denoising, Face Restoration, Interpolation), with a `MENU_LIST_SEPARATOR` between categories. This makes it easier for users to find and select the appropriate AI model for their task. -### 3. Performance and Code Optimisation +### Performance and Code Optimisation -#### 3.1. Memory Optimisation with Contiguous Arrays +#### Memory Optimisation with Contiguous Arrays - Widespread use of `numpy.ascontiguousarray` has been implemented across the codebase. This is applied during critical image handling steps in `AI_upscale.preprocess_image`, `AI_interpolation.concatenate_images`, and the new `AI_face_restoration.preprocess_face_image` class. This ensures data is aligned in memory, which can significantly speed up operations in backend libraries like OpenCV and ONNX Runtime. -#### 3.2. Refined Data Type Handling +#### Refined Data Type Handling - The `AI_upscale` class now explicitly ensures input images are converted to `float32` before normalization, improving precision and preventing potential data type mismatches during inference. - The `AI_face_restoration` class is configured to intelligently select between `float16` and `float32` based on the specific model's requirements (`fp16: True` in config), further optimizing performance and VRAM usage for compatible models. -### 4. Codebase Health and Maintainability +### Codebase Health and Maintainability -#### 4.1. Specialised Class for Face Restoration +#### Specialised Class for Face Restoration - The logic for face restoration has been fully encapsulated within the new `AI_face_restoration` class, separating it from the general-purpose `AI_upscale` class. This object-oriented approach makes the code more modular, readable, and easier to extend with different face enhancement models in the future. -#### 4.2. Robust BGRA to BGR Conversion +#### Robust BGRA to BGR Conversion - The application now explicitly handles images with an alpha channel (4-channel BGRA) when using face restoration models. A new import for `COLOR_BGRA2BGR` was added, and it is used within `preprocess_face_image` to convert images to the 3-channel BGR format expected by the GFPGAN model. This prevents runtime errors and ensures correct processing of PNGs or other images with transparency. --- -## Version 2.2 +# Version 2.2 **Release date:** 7 July 2025 -### 1. Major Enhancements and Stability Overhaul +### Major Enhancements and Stability Overhaul -#### 1.1. Comprehensive Logging System +#### Comprehensive Logging System - Implemented a full-featured `logging` system that writes to files in the user's `Documents` folder (`warlock_studio.log` and `error_log.txt`). This provides detailed diagnostics for debugging without relying solely on console output. - A unified `log_and_report_error` function centralizes error handling, ensuring all critical issues are both logged and displayed to the user. -#### 1.2. Proactive Environment Validation +#### Proactive Environment Validation - The application now performs pre-flight checks before processing begins to prevent common failures. - Includes validation for Python version, required modules (`validate_environment`), FFmpeg availability, disk space, and available RAM (`validate_system_requirements`). - Verifies that all input file paths exist and are accessible (`validate_file_paths`) and that the output directory is writable (`validate_output_path`). -#### 1.3. Resilient Video Encoding Pipeline +#### Resilient Video Encoding Pipeline - The entire `video_encoding` function was overhauled for maximum reliability. - **Codec Fallback:** The system now tests for hardware codec availability (NVENC, AMF, QSV) before encoding. If a selected hardware encoder is not functional, it automatically falls back to the highly compatible `libx264` software encoder. - **Robust Audio Handling:** Implements a fallback chain for audio processing. It first attempts to directly copy the audio stream; if that fails, it attempts to re-encode it; if that also fails, it finalizes the video without audio, ensuring a video file is always produced. -#### 1.4. Graceful Shutdown and Cleanup +#### Graceful Shutdown and Cleanup - Implemented `atexit` and `signal` handlers to ensure that temporary files are cleaned up and child processes are terminated safely, even on unexpected exits. - Replaced abrupt `process.kill()` calls with the more graceful `process.terminate()` to allow for cleaner process shutdown. -### 2. Performance and Memory Optimization +### Performance and Memory Optimization -#### 2.1. Aggressive Memory Management +#### Aggressive Memory Management - Video frame processing (`upscale_video_frames_async`) no longer holds large numbers of frames in RAM. It now writes small batches to disk and immediately calls the garbage collector (`gc.collect()`) to free memory, dramatically reducing the risk of crashes on long videos. -#### 2.2. Dynamic GPU VRAM Error Recovery +#### Dynamic GPU VRAM Error Recovery - The AI orchestration logic can now recover from GPU "out of memory" errors during tiling. If an error is detected, it automatically reduces the tile resolution and retries the operation on that specific frame, preventing a total process failure. -### 3. Critical Bug Fixes +### Critical Bug Fixes -#### 3.1. Resolved Video Encoding Race Condition +#### Resolved Video Encoding Race Condition - Fixed a critical bug where video encoding could start before all frame-writing threads were complete. The system now tracks all writer threads and explicitly waits for them to finish (`thread.join()`) before beginning the final video encoding, preventing corrupted or incomplete videos. -#### 3.2. Corrected Persistent Stop Flag +#### Corrected Persistent Stop Flag - The `stop_thread_flag` is now reset (`.clear()`) at the start of each "Make Magic" execution, fixing a bug where a previously stopped job would prevent a new one from running. -#### 3.3. Eliminated Status Update Race Condition +#### Eliminated Status Update Race Condition - Implemented a `threading.Lock` (`global_status_lock`) to protect shared flags that update the GUI. This prevents race conditions where multiple threads could attempt to modify the status simultaneously. -### 4. UI / UX Refinements +### UI / UX Refinements -#### 4.1. Updated Splash Screen +#### Updated Splash Screen - Reduced splash screen duration to 10 seconds for a faster application start-up. - Corrected asset path to `Assets/banner.png` for proper display. -#### 4.2. New Application Theme +#### New Application Theme | Element | New Value | Old Value (v2.1) | | :---------------- | :--------------- | :------------------- | @@ -598,42 +660,42 @@ The color scheme has been updated as follows: | Widget background | `#5A5A5A` (Grey) | `#960707` (Dark Red) | | Accent/Border | Gold & Red | Blue & Red | -### 5. Codebase Health and Maintainability +### Codebase Health and Maintainability -#### 5.1. Enhanced Checkpointing and Recovery +#### Enhanced Checkpointing and Recovery - Added functions (`create_checkpoint`, `load_checkpoint`) to save and resume the progress of video frame processing, allowing recovery from interruptions. -#### 5.2. Hardened Core Methods +#### Hardened Core Methods - Core methods in AI classes now include checks for `None` inputs and feature default fallbacks (`case _:`) in `match` statements to prevent unexpected errors with unsupported data. --- -## Version 2.1 +# Version 2.1 **Release date:** 23 June 2025 -### 1. Major Enhancements and Stability Overhaul +### Major Enhancements and Stability Overhaul -#### 1.1. Robust Error Handling +#### Robust Error Handling - Model loading (`AI_upscale`, `AI_interpolation`) wrapped in `try…except FileNotFoundError, OSError`; meaningful error messages propagate to GUI. - `extract_video_frames()` validates file existence, `cv2.VideoCapture.isOpened()`, and frame count > 0. - `video_encoding()` captures `subprocess.CalledProcessError`, logs `stderr`, and continues with fallback strategies. - Audio passthrough failures now trigger a silent audio‑less encode instead of total job abort. -#### 1.2. Safe Thread and Process Management +#### Safe Thread and Process Management - Deprecated error‑raising thread stop replaced with `threading.Event` (`stop_thread_flag`) polled at defined checkpoints. -#### 1.3. Resilient Core Processing +#### Resilient Core Processing - `copy_file_metadata()` now verifies `exiftool.exe` availability and the existence of source/target before execution. -### 2. UI / UX Refinements +### UI / UX Refinements -#### 2.1. Refined Colour Palette +#### Refined Colour Palette | Element | New Value | | ----------------- | ------------------------------- | @@ -641,112 +703,112 @@ The color scheme has been updated as follows: | Widget background | `#960707` | | Active border | Red (same as widget background) | -### 3. Code‑base Maintainability +### Code‑base Maintainability -#### 3.1. Improved Code Organisation +#### Improved Code Organisation - File‑extension lists extracted to `filetypes.py` as `SUPPORTED_IMAGE_EXTENSIONS`, `SUPPORTED_VIDEO_EXTENSIONS`. -#### 3.2. Dependency and Initialisation +#### Dependency and Initialisation - Added imports: `shutil.move`, `subprocess.CalledProcessError`, `threading.Event`. - Global variables initialised in `init_globals()` for deterministic start‑up. --- -## Version 2.0 +# Version 2.0 **Release date:** 6 June 2025 -### 1. Major Features +### Major Features -#### 1.1. AI Frame Interpolation Support (`AI_interpolation` class) +#### AI Frame Interpolation Support (`AI_interpolation` class) - Supports RIFE‑based ONNX models; generates 1 (×2), 3 (×4), or 7 (×8) intermediate frames. - Provides both real‑time preview and batch processing modes. - Integrates with `FrameScheduler` for temporal upscaling pipelines. -#### 1.2. RIFE Models Integration +#### RIFE Models Integration - Added **RIFE** and **RIFE_Lite** to model repository. - `RIFE_models_list` enumerates available checkpoints; `AI_models_list` now merges SRVGGNetCompact, BSRGAN, IRCNN, and RIFE families. -### 2. Enhancements +### Enhancements -#### 2.1. Visual/UI Redesign +#### Visual/UI Redesign - Application renamed to **“Warlock‑Studio”** (with hyphen). - New dark palette (`#121212`, `#454242`) with bright white text (`#FFFFFF`) and accent red (`#FF0E0E`). -#### 2.2. Version‑Specific User Preferences +#### Version‑Specific User Preferences - User configuration stored as `Warlock-Studio_._UserPreference.json` to avoid backward‑compatibility clashes. -#### 2.3. Modular and Scalable Layout System +#### Modular and Scalable Layout System - Added GUI constants defined in `layout_constants.py` (e.g., `OFFSET_Y_OPTIONS`, `COLUMN_1_5`). -#### 2.4. Extended File‑Type Compatibility +#### Extended File‑Type Compatibility - Updated `SUPPORTED_FILE_EXTENSIONS` and `SUPPORTED_VIDEO_EXTENSIONS` to include modern codecs (e.g., HEIC, AVIF, WebM). -#### 2.5. Improved GPU Execution Support +#### Improved GPU Execution Support - `provider_options` enumerates up to four DirectML devices (Auto, GPU 1 – GPU 4); selection persists across sessions. -### 3. Technical Refinements +### Technical Refinements -#### 3.1. Model List Structure +#### Model List Structure - Menu drop‑downs now grouped by category separated by `MENU_LIST_SEPARATOR` for readability. -#### 3.2. Advanced Interpolation Logic +#### Advanced Interpolation Logic - Implements tree‑based frame generation (e.g., D→A‑B‑C) with dependency tracking to avoid redundant inference passes. -#### 3.3. Improved Numeric Precision and Post‑Processing +#### Improved Numeric Precision and Post‑Processing - Normalisation uses 32‑bit floats with epsilon guarding; RGBA conversion paths optimised using `numexpr`. -### 4. UI / UX Refinements +### UI / UX Refinements -#### 4.1. Resizable Message Dialogs +#### Resizable Message Dialogs - `MessageBox`; Tk `resizable(True, True)`. -#### 4.2. Improved Dialog Formatting +#### Improved Dialog Formatting - Uniform spacing, font hierarchy, and default‑value display. -### 5. Minor Fixes +### Minor Fixes -#### 5.1. Code Corrections +#### Code Corrections - Corrected typo `ttext_color` → `text_color`. - Expanded inline comments and reorganised sections for clarity. --- -## Version 1.1 +# Version 1.1 **Release date:** 20 May 2025 -### 1. Major Improvements +### Major Improvements -#### 1.1. Program Start‑up Optimisation +#### Program Start‑up Optimisation - Launch time reduced via lazy module loading. -#### 1.2. Model Loading Improvements +#### Model Loading Improvements - Parallel prefetch and checksum verification. -#### 1.3. General Performance Optimisation +#### General Performance Optimisation - Core refactor, improved I/O scheduling, and smarter resource allocation. -### 2. Minor Fixes +### Minor Fixes -#### 2.1. Accessibility +#### Accessibility - User‑interface tweaks for better accessibility (focus indicators, tab order). diff --git a/Manual/Warlock-Studio_Manual.tex b/Manual/Warlock-Studio_Manual.tex index 09c509b..c37f6f2 100644 --- a/Manual/Warlock-Studio_Manual.tex +++ b/Manual/Warlock-Studio_Manual.tex @@ -1,514 +1,331 @@ -% ======================================================================================= -% 1. DOCUMENT SETUP & PACKAGES -% ======================================================================================= -\documentclass[11pt, a4paper]{article} +\documentclass[a4paper,11pt]{article} -% --- ESSENTIAL PACKAGES --- +% ========================================================= +% PACKAGES & CONFIGURATION +% ========================================================= \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} -\usepackage[english]{babel} - -% --- PAGE LAYOUT & STYLE --- -\usepackage[a4paper, margin=2.2cm, headheight=15pt, footskip=30pt]{geometry} -\usepackage{graphicx} -\usepackage{float} -\usepackage{caption} -\usepackage{subcaption} -\usepackage{fancyhdr} +\usepackage[margin=1in, bottom=1.2in]{geometry} \usepackage{xcolor} -\usepackage{titletoc} - -% --- TYPOGRAPHY & TEXT --- -\usepackage{lato} -\renewcommand*\familydefault{\sfdefault} -\usepackage{textcomp} -\usepackage{fontawesome5} -\usepackage{microtype} % Improves line breaking and spacing - -% Slightly more readable line spacing and allow more flexible breaks -\usepackage{setspace} -\setstretch{1.05} -\sloppy -\emergencystretch=2em - -% --- TABLES, LISTS, & BOXES --- -\usepackage{booktabs} -\usepackage{longtable} -\usepackage{tabularx} -\usepackage{array} -\usepackage{enumitem} -\usepackage[skins, breakable, theorems]{tcolorbox} -\tcbuselibrary{skins, breakable, shadows} % Load advanced libraries - -% --- TITLES & HYPERLINKS --- +\usepackage{graphicx} \usepackage{titlesec} -\usepackage{hyperref} % Always load this last - -% --- TIKZ FOR DIAGRAMS (STYLIZED WITH CORPORATE PALETTE) --- +\usepackage{fancyhdr} +\usepackage{tcolorbox} +\usepackage{fontawesome5} % For icons +\usepackage{booktabs} +\usepackage{tabularx} +\usepackage{multirow} \usepackage{tikz} -\usetikzlibrary{shapes, arrows.meta, positioning, shadows, calc, decorations.pathreplacing, backgrounds} -\usepackage{pgfkeys} +\usepackage{float} +\usepackage{hyperref} +\usepackage{enumitem} -% ======================================================================================= -% 2. COLOR & STYLE DEFINITIONS -% ======================================================================================= +\usetikzlibrary{shapes.geometric, arrows, positioning} +\tcbuselibrary{skins, breakable} -% --- CORPORATE COLOR PALETTE --- -\definecolor{WarlockRed}{HTML}{C11919} -\definecolor{WarlockGold}{HTML}{ECD125} -\definecolor{WarlockDark}{HTML}{1B1818} % Updated to match v5.0 Theme -\definecolor{WarlockGray}{HTML}{333333} -\definecolor{WarlockLightGray}{HTML}{F0F0F0} -\definecolor{WarlockWhite}{HTML}{FFFFFF} +% ========================================================= +% WARLOCK STUDIO BRANDING COLORS (From Source Code) +% ========================================================= +\definecolor{WarlockBg}{HTML}{0A0A0A} % Main Background +\definecolor{WarlockRed}{HTML}{D41C1C} % Accent Red +\definecolor{WarlockGold}{HTML}{FDEF2F} % Accent Gold +\definecolor{WarlockDark}{HTML}{303030} % Widget Background +\definecolor{WarlockText}{HTML}{FFFFFF} % White Text +\definecolor{WarlockGray}{HTML}{B5B4B4} % Secondary Text -% --- SECTION COLOR PALETTE --- -\definecolor{IntroColor}{HTML}{005A9B} % Blue -\definecolor{QuickStartColor}{HTML}{00796B} % Green -\definecolor{InstallColor}{HTML}{8E44AD} % Purple -\definecolor{ModelsColor}{HTML}{D35400} % Orange -\definecolor{OptimizeColor}{HTML}{27AE60} % Emerald Green -\definecolor{TroubleColor}{HTML}{C0392B} % Red -\definecolor{ArchColor}{HTML}{2C3E50} % Dark Blue -\definecolor{GlossaryColor}{HTML}{7F8C8D} % Gray -\definecolor{SupportColor}{HTML}{34495E} % Dark Gray -% --- TEXTBOX COLOR PALETTE --- -\definecolor{InfoFill}{HTML}{E7F3FE} -\definecolor{InfoBorder}{HTML}{005A9B} -\definecolor{WarnFill}{HTML}{FFFBE6} -\definecolor{WarnBorder}{HTML}{FFBE0B} -\definecolor{QuickStartFill}{HTML}{E6FFFA} -\definecolor{QuickStartBorder}{HTML}{00796B} -% New Palette for NEO Engine -\definecolor{NeoFill}{HTML}{F3E5F5} -\definecolor{NeoBorder}{HTML}{8E44AD} +% Header and Footer +\pagestyle{fancy} +\fancyhf{} +\renewcommand{\headrulewidth}{0pt} +\renewcommand{\footrulewidth}{2pt} +\renewcommand{\footrule}{\hbox to\headwidth{\color{WarlockRed}\leaders\hrule height \footrulewidth\hfill}} -% --- DEFAULT TEXT COLOR APPLICATION --- -\color{WarlockGray} +\fancyhead[R]{\textbf{\textcolor{WarlockDark}{Warlock-Studio v5.1}}} +\fancyhead[L]{\textcolor{WarlockGray}{User Manual}} +\fancyfoot[C]{\thepage} +\fancyfoot[R]{\includegraphics[height=0.8cm]{logo.png}} % Logo at footer -% ======================================================================================= -% 3. DOCUMENT ELEMENT CONFIGURATION -% ======================================================================================= +% Section Styling +\titleformat{\section} +{\color{WarlockRed}\normalfont\Large\bfseries\uppercase} +{\thesection}{1em}{}[{\titlerule[1pt]}] -% --- HYPERLINKS --- +\titleformat{\subsection} +{\color{WarlockDark}\normalfont\large\bfseries} +{\thesubsection}{1em}{} + +% Custom Boxes for Information grouping +\newtcolorbox{infobox}[1]{ + colback=WarlockDark!10!white, + colframe=WarlockDark, + fonttitle=\bfseries, + title=#1, + arc=0mm, + boxrule=1pt, + leftrule=4pt +} + +\newtcolorbox{warningbox}[1]{ + colback=red!5!white, + colframe=WarlockRed, + fonttitle=\bfseries, + title=\faExclamationTriangle\ #1, + arc=0mm, + boxrule=1pt, + leftrule=4pt, + coltitle=white +} + +\newtcolorbox{tipbox}[1]{ + colback=WarlockGold!10!white, + colframe=orange!80!black, + fonttitle=\bfseries, + title=\faLightbulb\ #1, + arc=0mm, + boxrule=1pt, + leftrule=4pt, + coltitle=black +} + +% Hyperlink Setup \hypersetup{ colorlinks=true, linkcolor=WarlockRed, - filecolor=WarlockRed, - urlcolor=WarlockRed, - pdftitle={Warlock-Studio v5.0 | Technical Documentation and User Manual}, - pdfauthor={Iván Eduardo Chavez Ayub} + filecolor=magenta, + urlcolor=blue, + pdftitle={Warlock-Studio Manual}, } -% --- SECTION & SUBSECTION TITLES --- -\newcommand{\SectionColor}{WarlockGray} % Default color -\newcommand{\setsectioncolor}[1]{\renewcommand{\SectionColor}{#1}} +% ========================================================= +% DOCUMENT CONTENT +% ========================================================= -\titleformat{\section} - {\normalfont\Large\bfseries} - {} - {0em} - {% - \begin{tcolorbox}[ - enhanced, - colback=\SectionColor!90!black, - colframe=\SectionColor!90!black, - boxrule=0pt, - sharp corners, - halign=center, - valign=center, - boxsep=6pt, - left=0pt, right=0pt, top=0pt, bottom=0pt - ] - \color{white}\faBookmark\hspace{0.5em}\thesection.\hspace{1em}#1 - \end{tcolorbox} - } -\titleformat{\subsection} - {\normalfont\large\bfseries\color{\SectionColor!80!black}} - {\faCaretRight\ \thesubsection} - {1em} - {} -\titlespacing*{\section}{0pt}{4ex plus 1ex minus .2ex}{3ex plus .2ex} -\titlespacing*{\subsection}{0pt}{2.5ex plus 1ex minus .2ex}{1.3ex plus .2ex} - -% --- ENHANCED TEXTBOX DEFINITIONS --- -\newtcolorbox{infobox}[2][]{ - enhanced, breakable, - colback=InfoFill, colframe=InfoBorder, - fonttitle=\bfseries, coltitle=InfoBorder, - title=\faInfoCircle\hspace{0.5em}#2, - attach boxed title to top left={yshift=-2mm, xshift=3mm}, - boxed title style={colback=InfoBorder, sharp corners}, - coltext=WarlockDark, - shadow={2mm}{-1mm}{0mm}{black!20!white}, - #1 -} -\newtcolorbox{warnbox}[2][]{ - enhanced, breakable, - colback=WarnFill, colframe=WarnBorder, - fonttitle=\bfseries, coltitle=WarnBorder!80!black, - title=\faExclamationTriangle\hspace{0.5em}#2, - attach boxed title to top left={yshift=-2mm, xshift=3mm}, - boxed title style={colback=WarnBorder, sharp corners}, - coltext=WarlockDark, - shadow={2mm}{-1mm}{0mm}{black!20!white}, - #1 -} -\newtcolorbox{quickstartbox}[2][]{ - enhanced, breakable, - colback=QuickStartFill, colframe=QuickStartBorder, - fonttitle=\bfseries, coltitle=QuickStartBorder!80!black, - title=\faRocket\hspace{0.5em}#2, - attach boxed title to top left={yshift=-2mm, xshift=3mm}, - boxed title style={colback=QuickStartBorder, sharp corners}, - coltext=WarlockDark, - shadow={2mm}{-1mm}{0mm}{black!20!white}, - #1 -} -% New box for NEO Engine / Hardware features -\newtcolorbox{neobox}[2][]{ - enhanced, breakable, - colback=NeoFill, colframe=NeoBorder, - fonttitle=\bfseries, coltitle=NeoBorder!80!black, - title=\faMicrochip\hspace{0.5em}#2, - attach boxed title to top left={yshift=-2mm, xshift=3mm}, - boxed title style={colback=NeoBorder, sharp corners}, - coltext=WarlockDark, - shadow={2mm}{-1mm}{0mm}{black!20!white}, - #1 -} - -% --- INLINE CODE COMMAND --- -\newcommand{\inlinecode}[1]{\colorbox{WarlockLightGray}{\small\texttt{\detokenize{#1}}}} - -% --- HEADER & FOOTER --- -\pagestyle{fancy} -\fancyhf{} -\fancyhead[L]{\textit{Warlock-Studio v5.0}} -\fancyhead[R]{\leftmark} -\fancyfoot[L]{\includegraphics[height=0.8cm]{logo.png}} -\fancyfoot[C]{\thepage} -\fancyfoot[R]{\textcopyright~2025 Warlock-Studio} -\renewcommand{\headrulewidth}{0.4pt} -\renewcommand{\footrulewidth}{0.4pt} -\renewcommand{\sectionmark}[1]{\markboth{\thesection. #1}{}} - -% ======================================================================================= -% BEGIN DOCUMENT -% ======================================================================================= \begin{document} -% --- REDESIGNED TITLE PAGE --- +% --- COVER PAGE --- \begin{titlepage} - \begin{tcolorbox}[ - enhanced, sharp corners, - colback=WarlockDark, colframe=WarlockGold, - boxrule=2pt, - height=\textheight, - halign=center, valign=center - ] - \centering - \includegraphics[width=0.4\textwidth]{logo.png}\par + \begin{center} + \vspace*{2cm} + \includegraphics[width=0.4\textwidth]{logo.png}\\[1cm] + + {\Huge \textbf{WARLOCK-STUDIO}}\\[0.5cm] + {\Large \textit{AI Upscaling \& Interpolation Suite}}\\[0.2cm] + {\large Version 5.1} + + \vspace{2cm} + + \begin{tcolorbox}[colback=WarlockDark, colframe=WarlockRed, width=0.8\textwidth, arc=2mm] + \centering \textcolor{white}{\textbf{\Large USER OPERATING MANUAL}} + \end{tcolorbox} + \vfill - \color{WarlockWhite} - {\Huge\bfseries\scshape Warlock-Studio\par} - \vspace{1.5cm} - \color{WarlockGold} - \rule{0.6\textwidth}{1pt}\par - \vspace{0.4cm} - \color{WarlockWhite} - {\Large\bfseries Technical Documentation and User Guide\par} - \vspace{0.2cm} - {\large Software Version: 5.0 (NEO-Refactor)\par} - \vspace{0.4cm} - \color{WarlockGold} - \rule{0.6\textwidth}{1pt}\par - \vfill - {\large Iván Eduardo Chavez Ayub\par} - \href{https://github.com/Ivan-Ayub97}{\texttt{\color{WarlockGold}\faGithub\ @Ivan-Ayub97}}\par - \vspace{1.5cm} - {\large \today\par} - \end{tcolorbox} - \thispagestyle{empty} + + \textbf{Developed by Ivan-Ayub97}\\ + \today + + \end{center} \end{titlepage} -\newpage \tableofcontents \newpage -% ======================================================================================= -% SECTION 1: INTRODUCTION -% ======================================================================================= -\setsectioncolor{IntroColor} -\section{Introduction to Warlock-Studio v5.0} -Welcome to Warlock-Studio v5.0 — a major evolutionary leap in AI-powered media enhancement. -This version introduces a robust \textbf{Modular Architecture} and the new \textbf{NEO Engine}, optimizing -stability, hardware diagnostics, and processing efficiency. It provides advanced tools for super-resolution, -artifact removal, and frame generation through an intuitive interface that now includes an \textbf{Integrated Console} -and native \textbf{Drag \& Drop} support. +% --------------------------------------------------------- +% SECTION 1: INTRODUCTION +% --------------------------------------------------------- +\section{Introduction} +Warlock-Studio is a comprehensive GUI application designed for AI-driven image and video enhancement. It integrates state-of-the-art neural networks to perform Upscaling, Denoising, Face Restoration, and Frame Interpolation. -% ======================================================================================= -% SECTION 2: QUICK START GUIDE -% ======================================================================================= -\setsectioncolor{QuickStartColor} -\section{Quick Start Guide} -\begin{quickstartbox}{Accelerated Media Enhancement Procedure} -Follow these steps to process your media using the new v5.0 workflow. -\begin{enumerate} - \item \textbf{Load Files (Drag \& Drop):} You can now simply \textbf{drag and drop} your image or video files directly onto the application window. Alternatively, click the \textbf{"Select Files"} button. - \item \textbf{AI Model Selection:} In the \textbf{"AI model"} dropdown menu, select an inference model. +Built on Python, CustomTkinter, and ONNX Runtime, Warlock-Studio optimizes hardware resources (CPU and GPU) to deliver great results. + +\begin{infobox}{System Requirements} +\begin{itemize} + \item \textbf{OS:} Windows 10/11 (x64) + \item \textbf{RAM:} Minimum 8GB (16GB+ recommended) + \item \textbf{GPU:} NVIDIA (CUDA), AMD/Intel (DirectML), or CPU (Slow fallback) + \item \textbf{Dependencies:} FFmpeg (included in assets), Visual C++ Redistributable. +\end{itemize} +\end{infobox} + +% --------------------------------------------------------- +% SECTION 2: INTERFACE & USAGE +% --------------------------------------------------------- +\section{Interface Overview & Usage} +The interface is divided into functional blocks designed for a linear workflow: \textit{Load $\rightarrow$ Configure $\rightarrow$ Process}. + +\subsection{1. Input Section} +Located on the left side (or top, depending on layout), this area handles file ingestion. +\begin{itemize} + \item \textbf{Drag \& Drop:} You can drag images or videos directly onto the window. + \item \textbf{Manual Select:} Clicking the button opens a file dialog. + \item \textbf{File List:} Selected files appear in a scrollable list showing resolution, duration, and calculated output resolution based on current settings. +\end{itemize} + +\subsection{2. AI Configuration} +This is the core control panel. +\begin{description} + \item[AI Model:] Selects the neural network architecture (see Chapter 3). + \item[AI Multithreading:] Controls how many frames are processed simultaneously. \begin{itemize} - \item For photorealistic images, \inlinecode{BSRGANx4} is recommended for texture reconstruction. - \item For animation/cartoons, \inlinecode{RealESR_Animex4} preserves sharp edges. - \item For video, \inlinecode{RealESR_Gx4} balances speed and quality. - \item For increasing framerate, use \inlinecode{RIFE} models (note: Blending controls will hide automatically). + \item \textit{Recommendation:} Set to "2 threads" for mid-range GPUs. Use "OFF" (1 thread) for high-resolution upscaling (4K) to save VRAM. \end{itemize} - \item \textbf{Verify Hardware (NEO Engine):} Click the \textbf{Gear Icon} (\faCog) to open Preferences. Check the \textbf{Hardware Diagnostics} to see the "Recommended Tiles" and "Safe VRAM Limit" calculated specifically for your PC. - \item \textbf{Adjust Settings:} Set the \textbf{"GPU VRAM (GB)"} based on the recommendation. For a quick test, set \textbf{"Input resolution"} to \texttt{75}\%. - \item \textbf{Start Processing:} Click \textbf{"Make Magic"}. You can now monitor real-time progress and logs via the new \textbf{Integrated Console} at the bottom of the window. -\end{enumerate} -\end{quickstartbox} + \item[Frame Generation (RIFE):] Only active when RIFE models are selected. Interpolates frames to increase smoothness (e.g., 30fps $\rightarrow$ 60fps). +\end{description} -% ======================================================================================= -% SECTION 3: INSTALLATION & ARCHITECTURE -% ======================================================================================= -\setsectioncolor{InstallColor} -\section{Installation and Modular Architecture} -\subsection{\faDownload\ Installation Process \& Path Change} -Warlock-Studio uses a self-contained offline installer. +\subsection{3. Hardware & Performance} +\begin{itemize} + \item \textbf{GPU Selection:} Choose specific GPU or "Auto". + \item \textbf{VRAM Limiter:} \textbf{Crucial Setting.} This defines the tile size for processing. + \begin{itemize} + \item \textit{Integrated Graphics:} Set to 2GB or lower. + \item \textit{Dedicated GPU (e.g., RTX 3060):} Set to match your card's VRAM (e.g., 6GB-8GB). + \end{itemize} +\end{itemize} -\begin{warnbox}{Critical: Installation Directory Change} -In version 5.0, the default installation directory has been migrated from \texttt{Program Files} to: -\begin{center} -\inlinecode{\%userprofile\%\\Documents\\Warlock-Studio} -\end{center} -\textbf{Reason:} This change prevents "Permission Denied" errors on Windows systems with strict UAC. It ensures the application has full read/write access to generate the \inlinecode{warlock_config.json}, write real-time logs, and manage video checkpoints without requiring constant Administrator privileges. -\end{warnbox} +\begin{tipbox}{Tiling Technology} +Warlock-Studio uses "Tiling". If an image is too large for VRAM, it splits the image into small squares, processes them, and merges them back. The \textbf{VRAM Limiter} controls the size of these squares. +\end{tipbox} -\begin{enumerate}[leftmargin=*] - \item \textbf{Obtaining the Executable:} Download the `Warlock-Studio-Setup.exe` (Full Installer) from the official repositories. - \item \textbf{Run the Installer:} Run the setup. It will automatically default to your Documents folder. - \item \textbf{Launch:} Open Warlock-Studio via the Desktop shortcut. -\end{enumerate} +\subsection{4. Resolution Control} +\begin{itemize} + \item \textbf{Input Resolution \%:} Downscales the image \textit{before} AI processing. Useful for speeding up 4K video processing (e.g., set to 50\%). + \item \textbf{Output Resolution \%:} Downscales the image \textit{after} AI processing. +\end{itemize} -\subsection{\faMicrochip\ System Requirements} -\begin{table}[H] - \centering - \begin{tabularx}{\textwidth}{lX} - \toprule - \textbf{Component} & \textbf{Technical Specification} \\ - \midrule - Operating System & Windows 11 or Windows 10 (64-bit architecture required). \\ - RAM & 8 GB (minimum), 16 GB (recommended). \\ - Graphics Card (GPU) & \textbf{Mandatory Requirement:} GPU with \textbf{DirectX 12} support. \\ - & \textbf{NVIDIA:} CUDA support (Maxwell or newer). \\ - & \textbf{AMD/Intel:} DirectML support. \\ - & \textbf{4+ GB of VRAM} is recommended. \\ - Storage & 2 GB of free disk space. SSD strongly recommended for video I/O. \\ - \bottomrule - \end{tabularx} - \caption{Requirements for v5.0. The NEO Engine will verify these upon launch.} +\subsection{5. Output Settings} +\begin{itemize} + \item \textbf{Image Ext:} PNG (Lossless), JPG (Fast), BMP/TIFF (Uncompressed). + \item \textbf{Video Ext:} MP4, MKV, AVI, MOV. + \item \textbf{Video Codec:} + \begin{itemize} + \item \textbf{x264/x265:} CPU Encoding (High quality, slow). + \item \textbf{NVENC:} NVIDIA Hardware (Fast). + \item \textbf{AMF:} AMD Hardware. + \item \textbf{QSV:} Intel Hardware. + \end{itemize} +\end{itemize} + +% --------------------------------------------------------- +% SECTION 3: AI MODELS EXPLAINED +% --------------------------------------------------------- +\newpage +\section{AI Models Library} +Warlock-Studio includes varied models optimized for specific scenarios. Use this table to choose the right tool. + +\begin{table}[h!] +\centering +\renewcommand{\arraystretch}{1.3} +\begin{tabularx}{\textwidth}{|l|l|X|} +\hline +\rowcolor{WarlockDark} \textcolor{white}{\textbf{Category}} & \textcolor{white}{\textbf{Model Name}} & \textcolor{white}{\textbf{Best Use Case}} \\ \hline +\multirow{2}{*}{\textbf{Denoising}} & IRCNN\_Mx1 & Removing grain/noise without changing resolution. Fast. \\ + & IRCNN\_Lx1 & Heavier denoising for very grainy sources. \\ \hline +\multirow{2}{*}{\textbf{Anime / Art}} & RealESR\_Animex4 & \textbf{Best for Cartoons/Anime.} Removes compression artifacts and sharpens lines. \\ + & RealESR\_Gx4 & General purpose fast upscaling. \\ \hline +\multirow{4}{*}{\textbf{Realistic}} & BSRGANx4 & \textbf{Best for Real World video.} Adds texture and realistic details. \\ + & BSRGANx2 & 2x version of above. Slightly faster. \\ + & RealESRGANx4 & Good balance between sharpness and texture. \\ + & RealESRNetx4 & Smoother look, less texture hallucination. \\ \hline +\textbf{Faces} & GFPGAN & \textbf{Face Restoration.} Miraculous recovery of blurry/small faces. \\ \hline +\textbf{Interpolation} & RIFE / Lite & Increasing Frame Rate (30$\rightarrow$60fps). Creates intermediate frames. \\ \hline +\end{tabularx} +\caption{Warlock-Studio Model Reference Guide} \end{table} -\subsection{\faPuzzlePiece\ Modular File Architecture (v5.0)} -\begin{infobox}{From Monolithic to Modular} -Version 5.0 abandons the single-script structure. The application is now composed of specialized modules to improve stability and maintainability. -\end{infobox} - -\begin{itemize}[leftmargin=*] - \item \textbf{\inlinecode{Warlock-Studio.py} (Core Orchestrator):} - Manages the main GUI event loop and spawns multiprocessing tasks for AI inference. - \item \textbf{\inlinecode{warlock_preferences.py} (State Manager):} - Houses the \textbf{NEO Engine} for hardware telemetry, the \inlinecode{ConfigManager} for JSON persistence, and the OTA Update Manager. - \item \textbf{\inlinecode{console.py} (I/O Manager):} - Controls the new \textbf{Integrated Console}, redirecting \texttt{stdout} and \texttt{stderr} streams to the GUI for real-time debugging. - \item \textbf{\inlinecode{drag_drop.py} (Event Wrapper):} - Implements the \inlinecode{DnDCTk} class to handle native OS Drag \& Drop events. - \item \textbf{Assets:} - Includes \inlinecode{ffmpeg.exe}, \inlinecode{exiftool.exe}, and the AI Models (`.onnx`) in the \texttt{AI-onnx} directory. +\subsection*{When NOT to use certain models:} +\begin{itemize} + \item Do \textbf{not} use \textit{RealESR\_Animex4} on realistic photos; it will make skin look like plastic (oil painting effect). + \item Do \textbf{not} use \textit{GFPGAN} on non-human subjects or high-quality faces (it might alter facial features slightly). \end{itemize} +% --------------------------------------------------------- +% SECTION 4: WORKFLOW DIAGRAMS +% --------------------------------------------------------- +\section{Process Workflows} -% ======================================================================================= -% SECTION 4: DETAILED AI MODEL GUIDE -% ======================================================================================= -\setsectioncolor{ModelsColor} -\section{Detailed Analysis of Inference Models} +\subsection{Video Upscaling Pipeline} +Understanding the internal process helps in troubleshooting speed issues. -\begin{infobox}{Dynamic Interface Adaptation} -In v5.0, the interface adapts to your model selection. Selecting a \textbf{RIFE} model will automatically hide "Blending" controls and reveal "Frame Generation" options. Selecting an \textbf{Upscaling} model does the reverse. -\end{infobox} +\vspace{0.5cm} -\subsection{\faTable\ Model Comparison Matrix} -\begin{longtable}{p{2.8cm} p{1.8cm} p{1.2cm} p{1.5cm} p{7.2cm}} -\toprule -\textbf{Model} & \textbf{Function} & \textbf{Scale} & \textbf{VRAM} & \textbf{Use Case} \\ -\midrule -\endhead -\multicolumn{5}{c}{\textit{\textbf{\faEraser\ Denoising}}} \\ -\midrule -\texttt{IRCNN\_Mx1} & Denoise & x1 & 4.0 & Moderate noise reduction (JPEG artifacts). \\ -\texttt{IRCNN\_Lx1} & Denoise & x1 & 4.0 & Intensive noise reduction for degraded images. \\ -\midrule -\multicolumn{5}{c}{\textit{\textbf{\faTachometerAlt\ High-Fidelity Upscaling}}} \\ -\midrule -\texttt{BSRGANx4} & Upscale & x4 & 0.6 & Photorealistic texture synthesis. Best for portraits/nature. \\ -\texttt{RealESRGANx4} & Upscale & x4 & 0.6 & General-purpose robust reconstruction. \\ -\midrule -\multicolumn{5}{c}{\textit{\textbf{\faBolt\ High-Speed Upscaling}}} \\ -\midrule -\texttt{RealESR\_Gx4} & Upscale & x4 & 2.2 & Fastest model. Optimized for video. \\ -\texttt{RealESR\_Animex4} & Upscale & x4 & 2.2 & Optimized for Anime/Cartoons (clean lines). \\ -\midrule -\multicolumn{5}{c}{\textit{\textbf{\faUserCircle\ Facial Restoration}}} \\ -\midrule -\texttt{GFPGAN} & Restore & x1 & 1.8 & Face reconstruction. v5.0 enforces \textbf{Float32} precision for stability. \\ -\midrule -\multicolumn{5}{c}{\textit{\textbf{\faFilm\ Frame Interpolation (FluidFrames)}}} \\ -\midrule -\texttt{RIFE} & Interpolate & N/A & \textasciitilde{}1.5 & Generates intermediate frames (x2, x4, x8). \\ -\texttt{RIFE\_Lite} & Interpolate & N/A & \textasciitilde{}1.2 & Faster variant for lower-end GPUs. \\ -\midrule -\bottomrule -\caption{Technical guide for AI models. VRAM values are base estimates.} -\label{tab:modelos} -\end{longtable} +\begin{center} +\begin{tikzpicture}[node distance=1.5cm] + \tikzstyle{startstop} = [rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=WarlockRed!30] + \tikzstyle{process} = [rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=WarlockGold!30] + \tikzstyle{decision} = [diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!10] + \tikzstyle{arrow} = [thick,->,>=stealth] -% ======================================================================================= -% SECTION 5: OPTIMIZATION & NEO ENGINE -% ======================================================================================= -\setsectioncolor{OptimizeColor} -\section{Performance Optimization and NEO Engine} + \node (in) [startstop] {Input Video}; + \node (extract) [process, below of=in] {Extract Frames (FFmpeg)}; + \node (resize1) [process, below of=extract] {Input Resize \%}; + \node (ai) [process, below of=resize1] {AI Inference (ONNX)}; + \node (blend) [decision, below of=ai, yshift=-0.5cm] {Blending?}; + \node (merge) [process, below of=blend, yshift=-0.5cm] {Merge Upscale + Original}; + \node (encode) [process, below of=merge] {Encode Video (FFmpeg)}; + \node (out) [startstop, below of=encode] {Output Video}; -\subsection{\faMagic\ The NEO Engine} -\begin{neobox}{Automatic Hardware Heuristics} -Warlock-Studio v5.0 introduces the \textbf{NEO Engine} (located in \inlinecode{warlock_preferences.py}). This system scans your CPU, RAM, and GPU capabilities in real-time to generate \textbf{Smart Recommendations}. -\end{neobox} + \draw [arrow] (in) -- (extract); + \draw [arrow] (extract) -- (resize1); + \draw [arrow] (resize1) -- (ai); + \draw [arrow] (ai) -- (blend); + \draw [arrow] (blend) -- node[anchor=east] {Yes} (merge); + \draw [arrow] (blend.east) -- ++(1,0) |- node[anchor=south] {No} (encode.east); + \draw [arrow] (merge) -- (encode); + \draw [arrow] (encode) -- (out); -\begin{itemize}[leftmargin=*, itemsep=2pt] - \item \textbf{Safe VRAM Limit:} The engine calculates a safe buffer using the formula: $\max(0.5, \text{Physical VRAM} - 1.5 \text{ GB})$. - \item \textbf{Recommended Tiles:} It suggests the optimal \inlinecode{tiles_resolution} to maximize speed while preventing Out-Of-Memory (OOM) crashes. - \item \textbf{Thread Concurrency:} It analyzes your CPU topology (physical vs. logical cores) to suggest safe multithreading levels for video processing. -\end{itemize} +\end{tikzpicture} +\end{center} -\subsection{\faSlidersH\ Critical Parameters} -\begin{itemize}[leftmargin=*, itemsep=2pt] - \item \textbf{Input Resolution \%:} Setting this to \textbf{75\%} drastically reduces load with minimal quality loss. - \item \textbf{AI Multithreading:} (Video only) Processes multiple frames in parallel. Use the NEO Engine's recommendation to avoid system freezing. - \item \textbf{Keep Frames:} Enable this (\inlinecode{selected_keep_frames = True}) if you plan to experiment with different video encoding codecs later. -\end{itemize} +% --------------------------------------------------------- +% SECTION 5: TROUBLESHOOTING +% --------------------------------------------------------- +\newpage +\section{Troubleshooting & Error Codes} -% ======================================================================================= -% SECTION 6: TROUBLESHOOTING -% ======================================================================================= -\setsectioncolor{TroubleColor} -\section{Diagnostics and Troubleshooting} -\begin{warnbox}{Integrated Console} -Use the new **Integrated Console** at the bottom of the app window to view real-time error logs, warnings, and processing status. You can search, copy, and save these logs. -\end{warnbox} +The integrated console (bottom of the app) provides real-time logs. Here are common errors and fixes. -\begin{description}[leftmargin=*, style=nextline, itemsep=0.8em] - \item[\faBan\ Error: "FFmpeg encoding failed..." / Fallback Active] - \textbf{Diagnosis:} The selected hardware codec (e.g., \inlinecode{hevc_nvenc}) failed due to driver issues or resource locking. - \textbf{v5.0 Solution:} The system now features an \textbf{Automatic Fallback}. If the GPU encoder fails, it automatically switches to the CPU-based \inlinecode{libx264} encoder to ensure the video is finished. Check the console for yellow warnings indicating this switch. +\subsection{Common Runtime Errors} - \item[\faMemory\ Error: "Out of memory" / OOM Recovery] - \textbf{Diagnosis:} VRAM exhaustion during tiling. - \textbf{v5.0 Solution:} The application detects this exception and triggers \textbf{Recursive Dynamic Tiling}. It automatically halves the tile resolution (e.g., 100\% $\to$ 50\%) and retries the frame. You do not need to restart the process manually. - - \item[\faRocket\ Error: "Failed to load model" (ONNX)] - \textbf{Diagnosis:} Issue initializing the execution provider. - \textbf{Solution:} v5.0 implements a strict priority chain: CUDA $\to$ DirectML $\to$ CPU. Ensure your GPU drivers are up to date. If using an older NVIDIA card, the system may default to DirectML or CPU. - - \item[\faTachometerAlt\ Error: "NaN" (Not a Number)] - \textbf{Diagnosis:} GPU Driver Timeout (TDR). - \textbf{Solution:} Restart the process without deleting the temp frames folder. The app will resume from the last successful frame. -\end{description} - -% ======================================================================================= -% SECTION 7: ADVANCED TECHNICAL ARCHITECTURE -% ======================================================================================= -\setsectioncolor{ArchColor} -\section{Software Architecture Analysis (v5.0)} - -\subsection{\faCogs\ Modular Inference Engine} -Warlock-Studio v5.0 utilizes a robust \textbf{ONNX Runtime} backend managed by the \inlinecode{create_onnx_session} factory in the core orchestrator. It enforces strict integer typing for device IDs to ensure compatibility with rigid DirectML backends. - -\subsection{\faSyncAlt\ Lossless Intermediate Pipeline} -In v5.0, the video extraction pipeline (\inlinecode{extract_video_frames}) strictly enforces the use of \textbf{.PNG} containers for temporary frames. This eliminates the generation loss previously caused by JPEG artifacts before the image entered the neural network. - -\subsection{\faThLarge\ Architecture Diagram (Modular)} -\noindent -Updated component-level architecture illustrating the new modular design and the interaction between the GUI, the NEO Engine, and the Core Orchestrator. - -\begin{figure}[H] - \centering - \resizebox{\textwidth}{!}{% - \begin{tikzpicture}[node distance=12mm, every node/.style={font=\small}] - \tikzset{ - module/.style={rectangle, rounded corners=3pt, draw=WarlockDark!70!black, fill=WarlockDark!6, minimum width=42mm, minimum height=10mm, align=center, drop shadow}, - core/.style={rectangle, rounded corners=3pt, draw=WarlockGold!80!black, fill=WarlockGold!15, minimum width=42mm, minimum height=10mm, align=center, drop shadow}, - hw/.style={rectangle, rounded corners=3pt, draw=WarlockGray!80!black, fill=WarlockLightGray, minimum width=42mm, minimum height=10mm, align=center}, - line/.style={-Latex, thick, color=WarlockGray!90!black} - } - - % Nodes - \node[module] (gui) {\textbf{GUI Frontend}\\(Main Window +\\Drag\&Drop Wrapper)}; - \node[module, left=15mm of gui] (prefs) {\textbf{Warlock Prefs}\\(NEO Engine +\\Update Manager)}; - \node[module, right=15mm of gui] (console) {\textbf{Console Manager}\\(Stream Redirection)}; - - \node[core, below=15mm of gui] (orch) {\textbf{Core Orchestrator}\\(Multiprocessing)}; - - \node[module, below=15mm of orch] (ai) {\textbf{AI Engine}\\(ONNX Runtime)}; - \node[module, right=15mm of ai] (io) {\textbf{I/O \& Encoding}\\(FFmpeg / Fallback)}; - - \node[hw, below=12mm of ai] (gpu) {\textbf{Hardware}\\(CUDA / DirectML)}; - \node[hw, below=12mm of io] (disk) {\textbf{Storage}\\(Logs/Config/Frames)}; - - % Connections - \draw[line] (prefs) -- (gui); - \draw[line] (console) -- (gui); - \draw[line] (gui) -- (orch); - \draw[line] (orch) -- (ai); - \draw[line] (orch) -- (io); - \draw[line] (ai) -- (gpu); - \draw[line] (io) -- (disk); - \draw[line, dashed] (prefs) |- (disk); - - \end{tikzpicture} - } - \caption{Warlock-Studio v5.0 Modular Component Architecture.} -\end{figure} - -% ======================================================================================= -% SECTION 8: GLOSSARY -% ======================================================================================= -\setsectioncolor{GlossaryColor} -\section{Glossary} -\begin{description}[leftmargin=*, style=nextline, itemsep=0.8em] - \item[NEO Engine] The new heuristic subsystem in v5.0 responsible for hardware scanning, diagnostics, and configuration recommendation. - \item[Modular Architecture] A software design technique that splits the code into separate, independent modules (`console`, `preferences`, `core`) to improve maintainability. - \item[ONNX Runtime] The cross-platform engine used to run the AI models. v5.0 enforces strict device ID typing. - \item[OOM Recovery] (Out Of Memory) An automatic mechanism that reduces tile size when VRAM is exhausted to prevent crashes. - \item[DirectML] (Direct Machine Learning) API used for GPU acceleration on AMD and Intel cards. -\end{description} - -% ======================================================================================= -% SECTION 9: SUPPORT & CONTRIBUTIONS -% ======================================================================================= -\setsectioncolor{SupportColor} -\section{Support and Community} -\begin{itemize}[leftmargin=*] - \item \textbf{\faBook\ Manual:} Click the \textbf{Book Icon} in the app header to open this PDF document. - \item \textbf{\faBug\ Reporting Issues:} Report bugs on GitHub. Please attach the \inlinecode{error_log.txt} file located in your \textbf{Documents} folder. - \item \textbf{\faSync\ Updates:} Use the internal \textbf{Update Manager} (Gear Icon $\to$ Check Updates) to download the latest version directly. - \item \textbf{\faEnvelope\ Contact:} For non-bug related inquiries: \href{mailto:negroayub97@gmail.com}{\texttt{negroayub97@gmail.com}}. -\end{itemize} -\vspace{1cm} +\begin{table}[h!] \centering -\textbf{Thank you for using Warlock-Studio v5.0.} +\begin{tabularx}{\textwidth}{|l|X|} +\hline +\rowcolor{WarlockRed} \textcolor{white}{\textbf{Error / Symptom}} & \textcolor{white}{\textbf{Solution}} \\ \hline +\textbf{CUDA / Out of Memory} & The AI model requires more VRAM than available. \newline \textbf{Fix:} Lower the "GPU VRAM" setting (e.g., set to 2). Lower "AI Multithreading" to OFF. \\ \hline +\textbf{FFmpeg not found} & The application cannot process video/audio. \newline \textbf{Fix:} Ensure \texttt{ffmpeg.exe} is in the \texttt{Assets/} folder. \\ \hline +\textbf{Gray/Black Output} & Often caused by incompatible Video Codecs. \newline \textbf{Fix:} Switch output codec to \texttt{x264} (Software) or check GPU driver updates. \\ \hline +\textbf{Process Stops Immediately} & File path issue. \newline \textbf{Fix:} Avoid special characters or emojis in filenames/folders. Move files to a simple path like \texttt{C:/Upscale/}. \\ \hline +\textbf{DLL Load Failed} & Missing Visual C++ dependencies. \newline \textbf{Fix:} Install latest MSVC Redistributable. \\ \hline +\end{tabularx} +\end{table} + +\begin{warningbox}{Checkpoint Recovery} +If the app crashes during a long video upscale, \textbf{do not delete the temporary folder}. Warlock-Studio will detect the processed frames and resume from where it left off automatically upon restarting the same job. +\end{warningbox} + +\subsection{Performance Tuning Tips} +\begin{itemize} + \item \textbf{Slow Speed?} Ensure "Process Priority" in Preferences is set to "High". Check if you are using CPU instead of GPU (Console will say \texttt{CPUExecutionProvider}). + \item \textbf{Low Quality?} Try disabling "Blending" (set to OFF). Increase "Input Resolution \%" to 100. + \item \textbf{Glitchy Video?} If using Interpolation (RIFE), scene changes might look weird. This is a limitation of current AI flow generation. +\end{itemize} + +% --------------------------------------------------------- +% SECTION 6: PREFERENCES +% --------------------------------------------------------- +\section{Preferences Menu} +Accessible via the \faCog\ icon in the top right. + +\begin{itemize} + \item \textbf{App Theme:} Switch between Dark/Light modes. + \item \textbf{ONNX Provider:} Force specific backend (CUDA vs DirectML). \textit{Auto} is recommended. + \item \textbf{Clean Temp Files:} Removes leftover \texttt{.tmp} files and frame folders from crashed sessions. + \item \textbf{Extended Logging:} Enables detailed debug logs for error reporting. +\end{itemize} + +\vspace{2cm} +\begin{center} + \textit{Warlock-Studio is an open-source tool. \\ Thank you for using it.} +\end{center} -% ======================================================================================= -% END OF DOCUMENT -% ======================================================================================= \end{document} diff --git a/README.md b/README.md index 2c7b203..93f4fec 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@
-**Warlock-Studio** is a unified, high-performance platform for **upscaling, restoration, denoising, and frame interpolation**. +**Warlock-Studio** is a unified, high-performance platform for **upscaling, restoration, denoising, and frame interpolation**. Inspired by [Djdefrag](https://github.com/Djdefrag) tools such as **QualityScaler** and **FluidFrames**. --- @@ -21,54 +21,45 @@ Inspired by [Djdefrag](https://github.com/Djdefrag) tools such as **QualityScale ## 📥 Download Installer

-

- This installer was built using PyInstaller and Inno Setup.
- By default, it includes DirectML support to ensure maximum compatibility with any graphics card (NVIDIA/AMD/INTEL). -

-

- Select your preferred option to download the latest version (Direct Release/SourceForge): -

+    This installer was built using PyInstaller and Inno Setup.
+    By default, it includes DirectML support to ensure maximum compatibility with any graphics card (NVIDIA/AMD/INTEL). + 

+    Select your preferred option to download the latest version (Direct Release/SourceForge): + 

- - - - +  +    +    +   
- - Download from GitHub - - - - Warlock-Studio on SourceForge - -
+      +        Download from GitHub +      +    +      +        Warlock-Studio on SourceForge +     
--- -## ✨ What is New in v5.0 - -The **v5.0** release represents a foundational transformation of the application: - -* **🧩 Modular Architecture:** The core has been re-engineered into specialized components (`core`, `preferences`, `console`, `drag_drop`) for superior stability and fault isolation. -* **🧠 NEO Engine:** A new diagnostic subsystem that scans CPU topology, RAM, and GPU VRAM to automatically recommend optimal tiling and thread settings. -* **🖥️ Integrated Debug Console:** A real-time GUI terminal that intercepts `stdout` and `stderr` with syntax highlighting, allowing users to diagnose FFmpeg or ONNX issues instantly. -* **⚡ Native CUDA & Failover:** The backend now strictly prioritizes **CUDA** (NVIDIA Optimized) > **DirectML** > **CPU**, with corrected integer typing for device IDs. -* **💎 Lossless Pipeline:** Deprecated `.jpg` usage in favor of `.png` for intermediate frames to prevent compression artifacts (blurriness). - ---- - ## 🖼️ Interface Previews -
- Main Interface -
+--- -
+## 🚀 Version 5.1 Highlights (Decoupling & Precision) + +Version 5.1 introduces significant structural and algorithmic improvements, transforming the application's stability and file handling efficiency. + +- **Asynchronous Architecture (New `FileQueueManager`):** File I/O operations (metadata reading, thumbnail generation) are now offloaded to background threads. This eliminates UI freezes (ANR) during batch processing and ensures a non-blocking user experience. +- **Critical AI Correction:** Implemented **Dynamic Padding** for the RIFE frame interpolation algorithm. This surgically corrects a mathematical deficiency, guaranteeing artifact-free video output regardless of the source video's resolution (eliminates black/green edge artifacts). +- **Preferences Redesign:** The Settings panel has been completely re-engineered into a modern **Sidebar Navigation** system, improving categorization and usability. +- **Diagnostic Suite:** Added an integrated Real-Time Log Viewer and an automatic **Debug Package Export** tool to streamline error reporting. +- **Enhanced Stability:** Introduced **Binary Path Overrides** for FFmpeg/ExifTool, rigorous thread-safe UI updates, and safer process shutdown handling. -### ⚙️ Preferences -[Preferences.webm](https://github.com/user-attachments/assets/933003de-7618-4ed4-8815-077c69bf1ebc) --- @@ -84,25 +75,25 @@ The **v5.0** release represents a foundational transformation of the application ## ✨ Key Features -* **AI Upscaling & Restoration** – Utilize **Real-ESRGAN, BSRGAN, RealESRNet, RealESR_Animex4, and IRCNN** models for denoising, super-resolution, and detail recovery. -* **Face Restoration (GFPGAN)** – Recover facial details from low-resolution or blurry images and video frames. -* **Frame Interpolation (RIFE)** – Smooth motion or generate slow-motion content with **2×, 4×, or 8× interpolation**. -* **Advanced Hardware Acceleration** – Intelligent provider selection prioritizes **CUDA**, falls back to **DirectML**, and finally **CPU** for maximum compatibility. -* **Batch Processing** – Process multiple media files simultaneously, saving time and effort. -* **Custom Workflows** – Fine-grained control over models, resolution, output formats, and quality parameters. -* **Open-Source & Extensible** – Fully MIT licensed, for contributors and developers. +- **AI Upscaling & Restoration** – Utilize **Real-ESRGAN, BSRGAN, RealESRNet, RealESR_Animex4, and IRCNN** models for denoising, super-resolution, and detail recovery. +- **Face Restoration (GFPGAN)** – Recover facial details from low-resolution or blurry images and video frames. +- **Frame Interpolation (RIFE)** – Smooth motion or generate slow-motion content with **2×, 4×, or 8× interpolation**. +- **Advanced Hardware Acceleration** – Intelligent provider selection prioritizes **CUDA**, falls back to **DirectML**, and finally **CPU** for maximum compatibility. +- **Batch Processing** – Process multiple media files simultaneously, saving time and effort. +- **Custom Workflows** – Fine-grained control over models, resolution, output formats, and quality parameters. +- **Open-Source & Extensible** – Fully MIT licensed, for contributors and developers. --- ## 🖥️ System Requirements -| Component | Minimum Specification | Recommended Specification | -| :--- | :--- | :--- | -| **OS** | Windows 10 (64-bit) | Windows 11 (64-bit) | -| **RAM** | 8 GB | 16 GB+ (Recommended for 4K Video) | -| GPU | DirectX 12 Compatible | NVIDIA RTX 2060 / AMD RX 6700 XT | NVIDIA RTX 4070 Ti / AMD RX 7900 XT or better | -| **VRAM** | 4 GB | 8 GB+ (NEO Engine auto-tunes limits) | -| **Storage** | HDD Space | NVMe SSD (Highly recommended for RIFE) | +| Component | Minimum Specification | Recommended Specification | +| :---------- | :-------------------- | :------------------------------------- | --------------------------------------------- | +| **OS** | Windows 10 (64-bit) | Windows 11 (64-bit) | +| **RAM** | 8 GB | 16 GB+ (Recommended for 4K Video) | +| GPU | DirectX 12 Compatible | NVIDIA RTX 2060 / AMD RX 6700 XT | NVIDIA RTX 4070 Ti / AMD RX 7900 XT or better | +| **VRAM** | 4 GB | 8 GB+ (NEO Engine auto-tunes limits) | +| **Storage** | HDD Space | NVMe SSD (Highly recommended for RIFE) | --- @@ -110,9 +101,9 @@ The **v5.0** release represents a foundational transformation of the application We welcome contributions from the community: -1. **Fork** the repository. -2. **Create a branch** for your feature or bug fix. -3. **Submit a Pull Request** with a detailed description and testing notes. +1. **Fork** the repository. +2. **Create a branch** for your feature or bug fix. +3. **Submit a Pull Request** with a detailed description and testing notes. 📧 Contact: **[negroayub97@gmail.com](mailto:negroayub97@gmail.com)** @@ -125,43 +116,26 @@ We welcome contributions from the community: ### 📊 Integrated Technologies & Licenses -| Technology / Model | License | Author / Maintainer | Source | -| :--- | :--- | :--- | :--- | -| **Real-ESRGAN** | BSD 3-Clause | Xintao Wang | [GitHub](https://github.com/xinntao/Real-ESRGAN) | -| • RealESRGANx4 | BSD 3-Clause | Xintao Wang | Same as above | -| • RealESRNetx4 | BSD 3-Clause | Xintao Wang | Same as above | -| • RealESR_Gx4 (Custom Variant) | BSD 3-Clause | Xintao / Community | Same as above | -| • RealESR_Animex4 (Anime Model) | BSD 3-Clause | Community | Same as above | -| **BSRGAN** | Apache 2.0 | Kai Zhang | [GitHub](https://github.com/cszn/BSRGAN) | -| • BSRGANx4 | Apache 2.0 | Kai Zhang | Same as above | -| • BSRGANx2 | Apache 2.0 | Kai Zhang | Same as above | -| **IRCNN** | BSD / Mixed | Kai Zhang | [GitHub](https://github.com/cszn/IRCNN) | -| • IRCNN_Mx1 | BSD / Mixed | Kai Zhang | Same as above | -| • IRCNN_Lx1 | BSD / Mixed | Kai Zhang | Same as above | -| **GFPGAN** | Apache 2.0 | TencentARC | [GitHub](https://github.com/TencentARC/GFPGAN) | -| **RIFE** | Apache 2.0 | hzwer | [GitHub](https://github.com/megvii-research/ECCV2022-RIFE) | -| **QualityScaler** | MIT | Djdefrag | [GitHub](https://github.com/Djdefrag/QualityScaler) | -| **FluidFrames** | MIT | Djdefrag | [GitHub](https://github.com/Djdefrag/FluidFrames) | -| **ONNX Runtime** | MIT | Microsoft | [GitHub](https://github.com/microsoft/onnxruntime) | -| **FFmpeg** | LGPL / GPL | FFmpeg Team | [Official Site](https://ffmpeg.org) | -| **ExifTool** | Artistic | Phil Harvey | [Official Site](https://exiftool.org/) | -| **Python** | PSF License | Python Software Foundation | [Official Site](https://www.python.org) | -| **PyInstaller** | GPLv2+ | PyInstaller Team | [GitHub](https://github.com/pyinstaller/pyinstaller) | -| **Inno Setup** | Custom | Jordan Russell | [Official Site](http://www.jrsoftware.org/isinfo.php) | - - - - - - - - - - - - - - - - - +| Technology / Model | License | Author / Maintainer | Source | +| :------------------------------ | :----------- | :------------------------- | :--------------------------------------------------------- | +| **Real-ESRGAN** | BSD 3-Clause | Xintao Wang | [GitHub](https://github.com/xinntao/Real-ESRGAN) | +| • RealESRGANx4 | BSD 3-Clause | Xintao Wang | Same as above | +| • RealESRNetx4 | BSD 3-Clause | Xintao Wang | Same as above | +| • RealESR_Gx4 (Custom Variant) | BSD 3-Clause | Xintao / Community | Same as above | +| • RealESR_Animex4 (Anime Model) | BSD 3-Clause | Community | Same as above | +| **BSRGAN** | Apache 2.0 | Kai Zhang | [GitHub](https://github.com/cszn/BSRGAN) | +| • BSRGANx4 | Apache 2.0 | Kai Zhang | Same as above | +| • BSRGANx2 | Apache 2.0 | Kai Zhang | Same as above | +| **IRCNN** | BSD / Mixed | Kai Zhang | [GitHub](https://github.com/cszn/IRCNN) | +| • IRCNN_Mx1 | BSD / Mixed | Kai Zhang | Same as above | +| • IRCNN_Lx1 | BSD / Mixed | Kai Zhang | Same as above | +| **GFPGAN** | Apache 2.0 | TencentARC | [GitHub](https://github.com/TencentARC/GFPGAN) | +| **RIFE** | Apache 2.0 | hzwer | [GitHub](https://github.com/megvii-research/ECCV2022-RIFE) | +| **QualityScaler** | MIT | Djdefrag | [GitHub](https://github.com/Djdefrag/QualityScaler) | +| **FluidFrames** | MIT | Djdefrag | [GitHub](https://github.com/Djdefrag/FluidFrames) | +| **ONNX Runtime** | MIT | Microsoft | [GitHub](https://github.com/microsoft/onnxruntime) | +| **FFmpeg** | LGPL / GPL | FFmpeg Team | [Official Site](https://ffmpeg.org) | +| **ExifTool** | Artistic | Phil Harvey | [Official Site](https://exiftool.org/) | +| **Python** | PSF License | Python Software Foundation | [Official Site](https://www.python.org) | +| **PyInstaller** | GPLv2+ | PyInstaller Team | [GitHub](https://github.com/pyinstaller/pyinstaller) | +| **Inno Setup** | Custom | Jordan Russell | [Official Site](http://www.jrsoftware.org/isinfo.php) | diff --git a/SECURITY.md b/SECURITY.md index 40e8ef7..48e35c5 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -6,6 +6,7 @@ We aim to support the most recent stable release of Warlock-Studio. Security upd | Version | Supported | | ------- | --------- | +| 5.1.x | ✅ | | 5.0.x | ✅ | | 4.3.x | ✅ | | 4.2.1 | ✅ | diff --git a/Setup.iss b/Setup.iss index a20cd72..2b7f6be 100644 --- a/Setup.iss +++ b/Setup.iss @@ -1,6 +1,6 @@ #define AppName "Warlock-Studio" -#define AppVersion "5.0" -#define AppPublisher "Ivan-Ayub97|Ivanayub1997" +#define AppVersion "5.1" +#define AppPublisher "Ivan-Ayub97 on GH| Ivanayub1997 on SF" #define AppURL "https://github.com/Ivan-Ayub97/Warlock-Studio" #define AppExeName "Warlock-Studio.exe" @@ -15,6 +15,7 @@ DefaultDirName={userdocs}\{#AppName} DefaultGroupName={#AppName} AllowNoIcons=yes PrivilegesRequired=none +AppId={{7CC447B5-CDCF-494D-A432-378B744C0EE6} ; --- Configuración del Instalador --- OutputDir=Output diff --git a/Warlock-Studio.py b/Warlock-Studio.py index 0fe7121..9cd2547 100644 --- a/Warlock-Studio.py +++ b/Warlock-Studio.py @@ -42,10 +42,12 @@ from subprocess import run as subprocess_run from threading import Event, Lock, Thread from time import sleep from timeit import default_timer as timer -from tkinter import DISABLED, StringVar +from tkinter import DISABLED, StringVar, messagebox from typing import Any, Callable, Dict, List, Optional, Tuple, Union from webbrowser import open as open_browser +import customtkinter as ctk +import cv2 # ONNX Runtime imports import onnxruntime # GUI imports (CustomTkinter & TkinterDnD) @@ -88,6 +90,7 @@ from numpy import transpose as numpy_transpose from numpy import uint8 from numpy import zeros as numpy_zeros from onnxruntime import InferenceSession +# Necesitarás PIL para cargar el icono de limpieza que pide el constructor from PIL import Image from PIL.Image import fromarray as pillow_image_fromarray from PIL.Image import open as pillow_image_open @@ -102,6 +105,8 @@ from tkinterdnd2 import DND_ALL, TkinterDnD from console import IntegratedConsole, console # Local imports from drag_drop import DnDCTk, enable_drag_and_drop +# Importa la clase de tu archivo (asumiendo que se llama file_queue_manager.py) +from file_queue_manager import FileQueueManager from warlock_preferences import PreferencesButton # Importación local # Redirigir inmediatamente para capturar logs de importación @@ -123,9 +128,8 @@ def find_by_relative_path(relative_path: str) -> str: return os_path_join(base_path, relative_path) -# Application Info app_name = "Warlock-Studio" -version = "5.0" +version = "5.1" # Supported File Extensions supported_image_extensions = [".jpg", ".jpeg", @@ -138,16 +142,20 @@ supported_file_extensions = supported_image_extensions + supported_video_extensi # THEME & COLORS # ----------------------------------------------------------------------------- +# ----------------------------------------------------------------------------- +# THEME & COLORS +# ----------------------------------------------------------------------------- + # Fondo: Negro casi puro, igual que el fondo del banner para máximo contraste -background_color = "#1B1818" +background_color = "#0A0A0A" # Nombre de la app: Plata metálico, inspirado en el texto "STUDIO" -app_name_color = "#FF4848" +app_name_color = "#FAF600" # Paneles: Gris oscuro neutro, permite que el rojo y dorado resalten sin competir -widget_background_color = "#2A2727" +widget_background_color = "#303030" # Texto principal: Blanco puro para legibilidad máxima text_color = "#FFFFFF" # Texto secundario: Dorado pálido/desaturado, para no cansar la vista pero mantener la identidad -secondary_text_color = "#CAC9C9" +secondary_text_color = "#B5B4B4" # Acento: El amarillo dorado brillante del sombrero y los destellos (Sparkles) accent_color = "#FDEF2F" # Hover de botones: El rojo vibrante del relleno del texto "WARLOCK" @@ -155,13 +163,13 @@ button_hover_color = "#D41C1C" # Bordes: Un dorado oscuro muy sutil, imitando el borde del logo sin ser chillón border_color = "#E2340D" # Botones info/secundarios: El rojo sangre oscuro del fondo del círculo del logo -info_button_color = "#212121" +info_button_color = "#770000" # Advertencias: Naranja dorado, sacado del sombreado del sombrero warning_color = "#FFA000" # Éxito: Verde brillante, necesario para contraste funcional success_color = "#00E676" # Error: Rojo carmesí intenso, similar al borde de las letras "WARLOCK" -error_color = "#B00020" +error_color = "#81091F" # Resaltado: Amarillo luz, como el centro de los destellos (estrellas) highlight_color = "#FFFF8D" # Scrollbars: Rojo vino oscuro translúcido, para mantener la temática sin distraer @@ -921,12 +929,12 @@ class AI_upscale: return final_image -# AI INTERPOLATION for frame generation ----------------- - class AI_interpolation: - # CLASS INIT FUNCTIONS + # ------------------------------------------------------------------------- + # CLASS INIT + # ------------------------------------------------------------------------- def __init__( self, @@ -936,7 +944,6 @@ class AI_interpolation: input_resize_factor: int, output_resize_factor: int, ): - # Passed variables self.AI_model_name = AI_model_name self.frame_gen_factor = frame_gen_factor @@ -947,6 +954,10 @@ class AI_interpolation: # Calculated variables self.AI_model_path = find_by_relative_path( f"AI-onnx{os_separator}{self.AI_model_name}_fp32.onnx") + + # RIFE requiere múltiplos de 32 para evitar artefactos + self.divisor = 32 + self.inferenceSession = self._load_inferenceSession() def _load_inferenceSession(self) -> InferenceSession: @@ -958,18 +969,18 @@ class AI_interpolation: print(f"[AI ERROR] {error_msg}") raise RuntimeError(error_msg) - # INTERNAL CLASS FUNCTIONS + # ------------------------------------------------------------------------- + # INTERNAL UTILS + # ------------------------------------------------------------------------- def get_image_mode(self, image: numpy_ndarray) -> str: if image is None: raise ValueError("Image is None") shape = image.shape - if len(shape) == 2: # Grayscale: 2D array (rows, cols) + if len(shape) == 2: return "Grayscale" - # RGB: 3D array with 3 channels elif len(shape) == 3 and shape[2] == 3: return "RGB" - # RGBA: 3D array with 4 channels elif len(shape) == 3 and shape[2] == 4: return "RGBA" else: @@ -978,16 +989,15 @@ class AI_interpolation: def get_image_resolution(self, image: numpy_ndarray) -> tuple: height = image.shape[0] width = image.shape[1] - return height, width def resize_with_input_factor(self, image: numpy_ndarray) -> numpy_ndarray: - old_height, old_width = self.get_image_resolution(image) new_width = int(old_width * self.input_resize_factor) new_height = int(old_height * self.input_resize_factor) + # Mantenemos esto simple, el padding real se hace en la inferencia new_width = new_width if new_width % 2 == 0 else new_width + 1 new_height = new_height if new_height % 2 == 0 else new_height + 1 @@ -999,7 +1009,6 @@ class AI_interpolation: return image def resize_with_output_factor(self, image: numpy_ndarray) -> numpy_ndarray: - old_height, old_width = self.get_image_resolution(image) new_width = int(old_width * self.output_resize_factor) @@ -1015,7 +1024,42 @@ class AI_interpolation: else: return image - # AI CLASS FUNCTIONS + # ------------------------------------------------------------------------- + # PADDING & CROPPING (CRITICAL FIX FOR RIFE STRIPES) + # ------------------------------------------------------------------------- + + def pad_image_to_divisor(self, image: numpy_ndarray) -> tuple[numpy_ndarray, int, int]: + """ + Añade bordes negros a la imagen para que sus dimensiones sean múltiplos de self.divisor (32). + Retorna la imagen con padding y las dimensiones del padding añadido. + """ + h, w = image.shape[:2] + + # Calcular cuánto falta para llegar al siguiente múltiplo de 32 + pad_h = (self.divisor - (h % self.divisor)) % self.divisor + pad_w = (self.divisor - (w % self.divisor)) % self.divisor + + if pad_h == 0 and pad_w == 0: + return image, 0, 0 + + # Aplicar padding (top, bottom, left, right) -> Solo rellenamos abajo y derecha + # Usamos cv2.BORDER_REFLECT o BORDER_REPLICATE para reducir artefactos en bordes + image_padded = cv2.copyMakeBorder( + image, 0, pad_h, 0, pad_w, cv2.BORDER_REFLECT) + + return image_padded, pad_h, pad_w + + def crop_padding(self, image: numpy_ndarray, pad_h: int, pad_w: int) -> numpy_ndarray: + """Recorta la imagen para eliminar el padding añadido previamente.""" + if pad_h == 0 and pad_w == 0: + return image + + h, w = image.shape[:2] + return image[:h-pad_h, :w-pad_w] + + # ------------------------------------------------------------------------- + # AI CORE FUNCTIONS + # ------------------------------------------------------------------------- def concatenate_images(self, image1: numpy_ndarray, image2: numpy_ndarray) -> numpy_ndarray: # Optimización: Normalizar in-place para reducir uso de memoria @@ -1048,14 +1092,34 @@ class AI_interpolation: case _: return (onnx_output * 255).astype(uint8) def AI_interpolation(self, image1: numpy_ndarray, image2: numpy_ndarray) -> numpy_ndarray: - image = self.concatenate_images(image1, image2).astype(float32) + """ + Ejecuta la interpolación asegurando dimensiones correctas. + """ + # 1. Aplicar Padding a ambas imágenes (Critical Fix) + img1_padded, pad_h, pad_w = self.pad_image_to_divisor(image1) + # Asumimos que img2 tiene el mismo tamaño que img1 + img2_padded, _, _ = self.pad_image_to_divisor(image2) + + # 2. Preprocesamiento estándar + image = self.concatenate_images( + img1_padded, img2_padded).astype(float32) image = self.preprocess_image(image) + + # 3. Inferencia onnx_output = self.onnxruntime_inference(image) + + # 4. Postprocesamiento onnx_output = self.postprocess_output(onnx_output) - output_image = self.de_normalize_image(onnx_output, 255) + output_image_padded = self.de_normalize_image(onnx_output, 255) + + # 5. Eliminar Padding (Critical Fix) + output_image = self.crop_padding(output_image_padded, pad_h, pad_w) + return output_image - # EXTERNAL FUNCTION + # ------------------------------------------------------------------------- + # ORCHESTRATION + # ------------------------------------------------------------------------- def AI_orchestration(self, image1: numpy_ndarray, image2: numpy_ndarray) -> List[numpy_ndarray]: """Generate interpolated frames between two input images.""" @@ -1723,230 +1787,6 @@ class MessageBox(CTkToplevel): self.placeInfoMessageOkButton() -class FileWidget(CTkScrollableFrame): - - def __init__( - self, - master, - selected_file_list, - upscale_factor=1, - input_resize_factor=0, - output_resize_factor=0, - **kwargs - ) -> None: - - super().__init__(master, **kwargs) - self.grid_columnconfigure(0, weight=1) - - self.file_list = selected_file_list - self.upscale_factor = upscale_factor - self.input_resize_factor = input_resize_factor - self.output_resize_factor = output_resize_factor - - self.index_row = 1 - self.ui_components = [] - self._create_widgets() - - def _destroy_(self) -> None: - self.file_list = [] - self.destroy() - place_loadFile_section() - - def _create_widgets(self) -> None: - self.add_clean_button() - for file_path in self.file_list: - file_name_label, file_info_label = self.add_file_information( - file_path) - self.ui_components.append(file_name_label) - self.ui_components.append(file_info_label) - - def add_file_information(self, file_path) -> tuple: - infos, icon = self.extract_file_info(file_path) - - # File name - file_name_label = CTkLabel( - self, - text=os_path_basename(file_path), - font=bold14, - text_color=accent_color, # Usar color amarillo para nombres de archivo - compound="left", - anchor="w", - padx=10, - pady=5, - justify="left", - ) - file_name_label.grid( - row=self.index_row, - column=0, - pady=(0, 2), - padx=(3, 3), - sticky="w" - ) - - # File infos and icon - file_info_label = CTkLabel( - self, - text=infos, - image=icon, - font=bold12, - text_color=secondary_text_color, # Usar color de texto secundario para info - compound="left", - anchor="w", - padx=10, - pady=5, - justify="left", - ) - file_info_label.grid( - row=self.index_row + 1, - column=0, - pady=(0, 15), - padx=(3, 3), - sticky="w" - ) - - self.index_row += 2 - - return file_name_label, file_info_label - - def add_clean_button(self) -> None: - - button = CTkButton( - master=self, - command=self._destroy_, - text="CLEAN", - image=clear_icon, - width=90, - height=28, - font=bold11, - border_width=1, - corner_radius=1, - fg_color=widget_background_color, - text_color=text_color, - border_color=accent_color, - hover_color=button_hover_color - ) - - button.grid(row=0, column=2, pady=(7, 7), padx=(0, 7)) - - @cache - def extract_file_icon(self, file_path) -> CTkImage: - max_size = 60 - - if check_if_file_is_video(file_path): - video_cap = opencv_VideoCapture(file_path) - _, frame = video_cap.read() - if frame is not None: - source_icon = opencv_cvtColor(frame, COLOR_BGR2RGB) - else: - # Fallback para videos problemáticos - source_icon = numpy_zeros((60, 60, 3), dtype=uint8) - video_cap.release() - else: - source_icon = opencv_cvtColor(image_read(file_path), COLOR_BGR2RGB) - - # Optimización: Usar memoria contigua para mejor rendimiento - source_icon = numpy_ascontiguousarray(source_icon) - - ratio = min( - max_size / source_icon.shape[0], max_size / source_icon.shape[1]) - new_width = int(source_icon.shape[1] * ratio) - new_height = int(source_icon.shape[0] * ratio) - source_icon = opencv_resize( - source_icon, (new_width, new_height), interpolation=INTER_AREA) - - # Convertir a PIL y luego a CTkImage sin usar mode= - pil_img = pillow_image_fromarray(source_icon) - pil_img = pil_img.convert("RGB") # conversión explícita - ctk_icon = CTkImage(pil_img, size=(new_width, new_height)) - - return ctk_icon - - def extract_file_info(self, file_path) -> tuple: - - if check_if_file_is_video(file_path): - cap = opencv_VideoCapture(file_path) - width = round(cap.get(CAP_PROP_FRAME_WIDTH)) - height = round(cap.get(CAP_PROP_FRAME_HEIGHT)) - num_frames = int(cap.get(CAP_PROP_FRAME_COUNT)) - frame_rate = cap.get(CAP_PROP_FPS) - duration = num_frames/frame_rate - minutes = int(duration/60) - seconds = duration % 60 - cap.release() - - file_icon = self.extract_file_icon(file_path) - file_infos = f"{minutes}m:{round(seconds)}s • {num_frames}frames • {width}x{height} \n" - - if self.input_resize_factor != 0 and self.output_resize_factor != 0 and self.upscale_factor != 0: - input_resized_height = int( - height * (self.input_resize_factor/100)) - input_resized_width = int( - width * (self.input_resize_factor/100)) - - upscaled_height = int( - input_resized_height * self.upscale_factor) - upscaled_width = int(input_resized_width * self.upscale_factor) - - output_resized_height = int( - upscaled_height * (self.output_resize_factor/100)) - output_resized_width = int( - upscaled_width * (self.output_resize_factor/100)) - - file_infos += ( - f"AI input ({self.input_resize_factor}%) ➜ {input_resized_width}x{input_resized_height} \n" - f"AI output (x{self.upscale_factor}) ➜ {upscaled_width}x{upscaled_height} \n" - f"Video output ({self.output_resize_factor}%) ➜ {output_resized_width}x{output_resized_height}" - ) - - else: - height, width = get_image_resolution(image_read(file_path)) - file_icon = self.extract_file_icon(file_path) - - file_infos = f"{width}x{height}\n" - - if self.input_resize_factor != 0 and self.output_resize_factor != 0 and self.upscale_factor != 0: - input_resized_height = int( - height * (self.input_resize_factor/100)) - input_resized_width = int( - width * (self.input_resize_factor/100)) - - upscaled_height = int( - input_resized_height * self.upscale_factor) - upscaled_width = int(input_resized_width * self.upscale_factor) - - output_resized_height = int( - upscaled_height * (self.output_resize_factor/100)) - output_resized_width = int( - upscaled_width * (self.output_resize_factor/100)) - - file_infos += ( - f"AI input ({self.input_resize_factor}%) ➜ {input_resized_width}x{input_resized_height} \n" - f"AI output (x{self.upscale_factor}) ➜ {upscaled_width}x{upscaled_height} \n" - f"Image output ({self.output_resize_factor}%) ➜ {output_resized_width}x{output_resized_height}" - ) - - return file_infos, file_icon - - # EXTERNAL FUNCTIONS - - def clean_file_list(self) -> None: - self.index_row = 1 - for ui_component in self.ui_components: - ui_component.grid_forget() - - def get_selected_file_list(self) -> list: - return self.file_list - - def set_upscale_factor(self, upscale_factor) -> None: - self.upscale_factor = upscale_factor - - def set_input_resize_factor(self, input_resize_factor) -> None: - self.input_resize_factor = input_resize_factor - - def set_output_resize_factor(self, output_resize_factor) -> None: - self.output_resize_factor = output_resize_factor - - def get_values_for_file_widget() -> tuple: # Upscale factor upscale_factor = get_upscale_factor() @@ -1969,18 +1809,21 @@ def get_values_for_file_widget() -> tuple: def update_file_widget(a, b, c) -> None: - try: - selected_file_list = file_widget.get_selected_file_list() - except Exception: + # Si el widget no existe o no tiene archivos, no hacemos nada crítico, + # pero actualizamos los valores internos para cuando lleguen archivos. + if not file_widget: return upscale_factor, input_resize_factor, output_resize_factor = get_values_for_file_widget() - file_widget.clean_file_list() + # Pasar valores al manager file_widget.set_upscale_factor(upscale_factor) file_widget.set_input_resize_factor(input_resize_factor) file_widget.set_output_resize_factor(output_resize_factor) - file_widget._create_widgets() + + # Regenerar textos de info en la lista si es necesario + if file_widget.queue_items: + file_widget.regenerate_all_info() def create_option_background(): @@ -3934,6 +3777,11 @@ def upscale_button_command() -> None: global process_upscale_orchestrator global stop_thread_flag + # --- AGREGAR CONFIRMACIÓN --- + if not messagebox.askyesno("Start Processing", "Do you want to start the AI processing?"): + return + # ---------------------------- + # Fix 2.2: Clear stop_thread_flag at the beginning of each execution stop_thread_flag.clear() @@ -4112,32 +3960,39 @@ def fluidframes_video_interpolate( write_process_status( process_status_q, f"{file_number}. Extracting video frames") - # --- CAMBIO CRÍTICO: Forzar .png para extracción temporal --- + # Forzar .png para extracción temporal temp_extraction_ext = ".png" extracted_frames_paths = extract_video_frames( process_status_q, file_number, target_directory, AI_instance, video_path, cpu_number, temp_extraction_ext) - # Step 3. Prepare output/gen frame names (asegurar que usan png) + # Step 3. Prepare output/gen frame names total_frames_paths = prepare_output_video_frame_filenames( extracted_frames_paths, selected_AI_model, frame_gen_factor, temp_extraction_ext) # Step 4. Interpolated frames generation write_process_status( - process_status_q, f"{file_number}. Video frame generation") + process_status_q, f"{file_number}. Video frame generation initializing...") + + # --- LOGICA DE PROGRESO AÑADIDA --- global global_processing_times_list global_processing_times_list = [] - for frame_index in range(len(extracted_frames_paths)-1): + total_pairs = len(extracted_frames_paths) - 1 + + for frame_index in range(total_pairs): frame_1_path = extracted_frames_paths[frame_index] frame_2_path = extracted_frames_paths[frame_index+1] + + # Medir tiempo de carga e inferencia + start_timer = timer() + frame_1 = image_read(frame_1_path) frame_2 = image_read(frame_2_path) - start_timer = timer() generated_frames = AI_instance.AI_orchestration(frame_1, frame_2) - # Save generated frames (usando la misma extensión temporal .png) + # Save generated frames generated_frames_paths = prepare_generated_frames_paths( os_path_splitext(frame_1_path)[0], selected_AI_model, temp_extraction_ext, frame_gen_factor) @@ -4145,13 +4000,30 @@ def fluidframes_video_interpolate( image_write(generated_frames_paths[i], gen_frame) end_timer = timer() - global_processing_times_list.append(end_timer - start_timer) + + # --- CÁLCULO DE TIEMPO Y ACTUALIZACIÓN DE ESTADO --- + step_time = end_timer - start_timer + global_processing_times_list.append(step_time) + + # Limitamos el tamaño de la lista de tiempos para mantener el promedio reciente + if len(global_processing_times_list) > 100: + global_processing_times_list.pop(0) + + # Actualizar la interfaz cada 1% o cada frame si son pocos (evita saturar la GUI) + if total_pairs > 0 and (frame_index % max(1, int(total_pairs / 100)) == 0 or frame_index == total_pairs - 1): + avg_time = numpy_mean(global_processing_times_list) + remaining_frames = total_pairs - (frame_index + 1) + time_left = calculate_time_to_complete_video( + avg_time, remaining_frames) + percent_complete = ((frame_index + 1) / total_pairs) * 100 + + status_msg = f"{file_number}. Interpolating frames: {percent_complete:.1f}% completed ({time_left})" + write_process_status(process_status_q, status_msg) # Step 6. Video encoding write_process_status( process_status_q, f"{file_number}. Encoding frame-generated video") - # --- CAMBIO CRÍTICO: Calcular multiplicador de FPS para FFmpeg --- fps_multiplier = 1 if slowmotion else frame_gen_factor video_encoding( @@ -4736,6 +4608,18 @@ def user_input_checks() -> bool: global input_resize_factor global output_resize_factor + # Enhanced file validation + try: + # Esto llama al método del nuevo FileQueueManager + selected_file_list = file_widget.get_selected_file_list() + except Exception: + info_message.set("Please select a file") + return False + + if not selected_file_list or len(selected_file_list) <= 0: + info_message.set("Please select a file") + return False + # Enhanced file validation try: selected_file_list = file_widget.get_selected_file_list() @@ -4853,48 +4737,37 @@ def open_files_action(files=None): info_message.set("Processing files...") - # --- CORRECCIÓN AQUÍ --- if files: - # Caso A: Viene de Drag & Drop - # El módulo drag_drop.py YA nos envía la lista limpia (es una tupla), - # así que solo la convertimos a lista y listo. + # Caso A: Drag & Drop uploaded_files_list = list(files) else: - # Caso B: Viene del Botón (files es None) - # Abrimos el explorador de archivos manualmente + # Caso B: Botón manual info_message.set("Selecting files") uploaded_files_list = list(filedialog.askopenfilenames()) - # ----------------------- - uploaded_files_counter = len(uploaded_files_list) + if not uploaded_files_list: + return + # Filtrar archivos supported_files_list = check_supported_selected_files(uploaded_files_list) - supported_files_counter = len(supported_files_list) - - print("> Uploaded files: " + str(uploaded_files_counter) + - " => Supported files: " + str(supported_files_counter)) - - if supported_files_counter > 0: + if supported_files_list: + # 1. Configurar los factores actuales en el widget antes de añadir upscale_factor, input_resize_factor, output_resize_factor = get_values_for_file_widget() + file_widget.set_upscale_factor(upscale_factor) + file_widget.set_input_resize_factor(input_resize_factor) + file_widget.set_output_resize_factor(output_resize_factor) - global file_widget - file_widget = FileWidget( - master=window, - selected_file_list=supported_files_list, - upscale_factor=upscale_factor, - input_resize_factor=input_resize_factor, - output_resize_factor=output_resize_factor, - fg_color=background_color, - bg_color=background_color - ) - file_widget.place(relx=0.0, rely=0.0, relwidth=0.5, relheight=1.0) - info_message.set("Ready to be being enchanted!") + # 2. Añadir archivos (la carga pesada ocurre en segundo plano en el nuevo módulo) + file_widget.add_files(supported_files_list) + + # 3. Cambiar vista + show_file_manager() + + info_message.set("Ready to be enchanted!") + print(f"> Added {len(supported_files_list)} files to queue.") else: - if uploaded_files_counter > 0: - info_message.set("Not supported files :(") - else: - info_message.set("No files selected") + info_message.set("No supported files selected") def open_output_path_action(): @@ -5035,18 +4908,41 @@ def place_dynamic_rife_interpolator(): # END FLUIDFRAMES +# Variables globales para manejar las vistas +drop_zone_frame = None +file_widget = None # Esta será la instancia de FileQueueManager + + +def show_drop_zone(): + """Oculta la lista de archivos y muestra la zona de carga.""" + if file_widget: + file_widget.place_forget() + if drop_zone_frame: + drop_zone_frame.place(relx=0.0, rely=0.0, relwidth=0.5, relheight=1.0) + info_message.set("No files selected") + + +def show_file_manager(): + """Oculta la zona de carga y muestra la lista de archivos.""" + if drop_zone_frame: + drop_zone_frame.place_forget() + if file_widget: + file_widget.place(relx=0.0, rely=0.0, relwidth=0.5, relheight=1.0) + + def place_loadFile_section(): - # Crear el frame de fondo para la sección de carga - background = CTkFrame( + global drop_zone_frame, file_widget + + # --- 1. Crear el Frame de la Drop Zone (Inicialmente Visible) --- + drop_zone_frame = CTkFrame( master=window, fg_color=background_color, corner_radius=1) - # Texto informativo sobre formatos soportados text_drop = (" SUPPORTED FILES \n\n " + "IMAGES • jpg, jpeg, png, bmp, tiff, tif, webp \n " + "VIDEOS • mp4, avi, mkv, mov, wmv, flv, webm ") input_file_text = CTkLabel( - master=window, + master=drop_zone_frame, text=text_drop, fg_color=widget_background_color, bg_color=background_color, @@ -5058,10 +4954,9 @@ def place_loadFile_section(): corner_radius=10 ) - # Botón para seleccionar archivos manualmente input_file_button = CTkButton( - master=window, - command=open_files_action, + master=drop_zone_frame, + command=open_files_action, # Llama a la función modificada abajo text="Select Files or Drag & Drop", width=150, height=30, @@ -5074,20 +4969,27 @@ def place_loadFile_section(): hover_color=button_hover_color ) - # Colocar elementos en la interfaz - background.place(relx=0.0, rely=0.0, relwidth=0.5, relheight=1.0) - input_file_text.place(relx=0.25, rely=0.4, anchor="center") - input_file_button.place(relx=0.25, rely=0.5, anchor="center") + # Colocar elementos dentro del frame de Drop Zone + input_file_text.place(relx=0.5, rely=0.4, anchor="center") + input_file_button.place(relx=0.5, rely=0.5, anchor="center") - # --- CORRECCIÓN DRAG & DROP --- - # Registramos 'background', 'input_file_button' y 'input_file_text' - # para maximizar el área de detección de archivos. - enable_drag_and_drop( - window, - [background, input_file_button, input_file_text], - open_files_action + # Mostrar Drop Zone por defecto + drop_zone_frame.place(relx=0.0, rely=0.0, relwidth=0.5, relheight=1.0) + + # --- 2. Instanciar FileQueueManager (Inicialmente Oculto) --- + # Usamos show_drop_zone como callback para cuando el usuario limpie la lista + file_widget = FileQueueManager( + master=window, + clear_icon=clear_icon, + on_queue_empty_callback=show_drop_zone, + width=300, # <-- Esto es un kwargs ) + # Habilitar Drag & Drop en AMBOS componentes (Drop Zone y File Manager) + # Esto permite arrastrar archivos incluso si ya hay una lista visible + enable_drag_and_drop(window, [ + drop_zone_frame, input_file_button, input_file_text, file_widget], open_files_action) + def place_app_name(): background = CTkFrame( @@ -5684,11 +5586,18 @@ def place_upscale_button(): # ==== MAIN APPLICATION SECTION ==== def on_app_close() -> None: - # Clean up logger - logging.shutdown() - window.grab_release() - window.destroy() + # 1. Confirmación de salida + if not messagebox.askyesno("Exit Warlock-Studio", "Are you sure you want to close the application?"): + return + # 2. CAPTURAR ESTADO DE LA VENTANA (ANTES DE DESTRUIRLA) + # Soluciona el error: application has been destroyed + try: + is_topmost = window.attributes("-topmost") + except Exception: + is_topmost = False + + # 3. Recopilar variables globales para guardar preferencias global selected_AI_model global selected_AI_multithreading global selected_gpu @@ -5714,6 +5623,7 @@ def on_app_close() -> None: else: AI_multithreading_to_save = f"{selected_AI_multithreading} threads" + # 4. Construir diccionario de preferencias user_preference = { "default_AI_model": AI_model_to_save, "default_AI_multithreading": AI_multithreading_to_save, @@ -5727,12 +5637,28 @@ def on_app_close() -> None: "default_input_resize_factor": str(selected_input_resize_factor.get()), "default_output_resize_factor": str(selected_output_resize_factor.get()), "default_VRAM_limiter": str(selected_VRAM_limiter.get()), + # Usamos la variable capturada al inicio + "keep_window_on_top": is_topmost } - user_preference_json = json_dumps(user_preference) - with open(USER_PREFERENCE_PATH, "w") as preference_file: - preference_file.write(user_preference_json) + # 5. Guardar JSON en disco + try: + user_preference_json = json_dumps(user_preference) + with open(USER_PREFERENCE_PATH, "w") as preference_file: + preference_file.write(user_preference_json) + except Exception as e: + print(f"Error saving preferences: {e}") + + # 6. Limpieza de procesos y logs stop_upscale_process() + logging.shutdown() + + # 7. DESTRUIR LA VENTANA (AL FINAL) + try: + window.grab_release() + window.destroy() + except Exception: + pass class App(): diff --git a/Warlock-Studio.spec b/Warlock-Studio.spec index 5d1f0fe..175a878 100644 --- a/Warlock-Studio.spec +++ b/Warlock-Studio.spec @@ -4,7 +4,7 @@ block_cipher = None a = Analysis( # 1. Aquí agregamos los dos archivos nuevos a la lista de scripts - ['Warlock-Studio.py', 'drag_drop.py', 'console.py', 'warlock_preferences.py'], + ['Warlock-Studio.py', 'drag_drop.py', 'console.py', 'warlock_preferences.py', 'file_queue_manager.py'], pathex=[], binaries=[], datas=[ diff --git a/console.py b/console.py index 4dbdaaf..f2ea13d 100644 --- a/console.py +++ b/console.py @@ -1,3 +1,4 @@ +import json import sys import threading import tkinter as tk diff --git a/file_queue_manager.py b/file_queue_manager.py new file mode 100644 index 0000000..f123282 --- /dev/null +++ b/file_queue_manager.py @@ -0,0 +1,401 @@ +import logging +import os +import queue +import threading +from concurrent.futures import ThreadPoolExecutor +from typing import Dict, List, Optional, Tuple + +import customtkinter as ctk +import cv2 +import numpy as np +from PIL import Image + + +# --- CONFIGURACIÓN Y ESTILOS --- +class Theme: + BG_COLOR = "#101010" # Fondo general un poco más oscuro + ITEM_BG = "#3A3A3A" # Fondo de cada tarjeta + TEXT_MAIN = "#FFFFFF" + TEXT_SEC = "#FDEF2F" + ACCENT = "#F7F7F7" # Dorado original + ERROR = "#CF6679" # Rojo suave para errores + BTN_HOVER_DANGER = "#B00020" + BTN_HOVER_NORMAL = "#4A4A4A" + BORDER_COLOR = "#555555" + + FONT_MAIN = ("Roboto Medium", 13) + FONT_SUB = ("Roboto", 11) + FONT_MONO = ("Consolas", 10) + + +# Configuración de logging para debug +logging.basicConfig(level=logging.ERROR, + format='%(asctime)s - %(levelname)s - %(message)s') + + +class QueueItem: + """Clase de datos para manejar el estado de cada archivo individualmente.""" + + def __init__(self, path: str): + self.path = path + self.name = os.path.basename(path) + self.info_text = "Cargando info..." + self.thumbnail: Optional[ctk.CTkImage] = None + self.is_loaded = False + self.has_error = False + self.id = id(self) # Identificador único para referenciar widgets + + +class FileQueueManager(ctk.CTkScrollableFrame): + def __init__(self, master, clear_icon=None, on_queue_empty_callback=None, **kwargs): + super().__init__(master, fg_color=Theme.BG_COLOR, **kwargs) + + self.on_queue_empty_callback = on_queue_empty_callback + self.clear_icon = clear_icon + + # Estado interno + self.queue_items: List[QueueItem] = [] + # Mapa para acceder a widgets por ID de item + self._widget_refs: Dict[int, dict] = {} + + # Factores de redimensionado + self.upscale_factor = 1 + self.input_resize_factor = 0 + self.output_resize_factor = 0 + + # Sistema de hilos para no congelar la GUI + self.executor = ThreadPoolExecutor(max_workers=2) + self.msg_queue = queue.Queue() + + # Grid layout básico + self.grid_columnconfigure(0, weight=1) + + # Iniciar loop de verificación de mensajes (para actualizaciones desde hilos) + self._check_queue() + + def _check_queue(self): + """Revisa la cola de mensajes para actualizar la UI desde el hilo principal.""" + try: + while True: + task_type, item_id, data = self.msg_queue.get_nowait() + if task_type == "UPDATE_ITEM": + self._update_item_ui(item_id, data) + except queue.Empty: + pass + finally: + self.after(100, self._check_queue) + + def add_files(self, file_paths: List[str]): + """Agrega archivos y lanza la carga en segundo plano.""" + added_any = False + existing_paths = {item.path for item in self.queue_items} + + for path in file_paths: + norm_path = os.path.normpath(path) + if norm_path not in existing_paths and os.path.exists(path): + new_item = QueueItem(norm_path) + self.queue_items.append(new_item) + added_any = True + + # Renderizar placeholder inmediatamente + self._render_item(new_item, index=len(self.queue_items)-1) + + # Lanzar tarea pesada en background + self.executor.submit(self._worker_load_info, new_item) + + if added_any: + self._update_layout_indices() + + def _worker_load_info(self, item: QueueItem): + """Método que corre en otro hilo (Thread) para procesar OpenCV.""" + try: + info_text, pil_img = self._extract_file_data(item.path) + + # Crear CTkImage debe hacerse preferiblemente al volver al main, + # pero PIL Image es seguro pasarlo. + item.info_text = info_text + item.is_loaded = True + + # Enviamos resultados al hilo principal + self.msg_queue.put( + ("UPDATE_ITEM", item.id, {"info": info_text, "img": pil_img})) + + except Exception as e: + logging.error(f"Error procesando {item.path}: {e}") + item.has_error = True + item.info_text = "Error al leer archivo" + self.msg_queue.put(("UPDATE_ITEM", item.id, {"error": True})) + + def _update_item_ui(self, item_id, data): + """Actualiza un widget específico una vez que el hilo terminó.""" + widgets = self._widget_refs.get(item_id) + if not widgets: + return + + if "error" in data: + widgets['lbl_info'].configure( + text="⚠️ Archivo corrupto o ilegible", text_color=Theme.ERROR) + return + + # Actualizar texto + widgets['lbl_info'].configure(text=data["info"]) + + # Actualizar imagen si existe + if data["img"]: + ctk_img = ctk.CTkImage(data["img"], size=data["img"].size) + # Guardamos referencia en el objeto item para que no se pierda + item = next((x for x in self.queue_items if x.id == item_id), None) + if item: + item.thumbnail = ctk_img + widgets['lbl_icon'].configure( + image=ctk_img, text="") # Quitar texto placeholder + + def _render_item(self, item: QueueItem, index: int): + """Dibuja una tarjeta para el archivo.""" + row_idx = index + 1 # +1 para dejar espacio al botón Clean arriba si fuera necesario + + # Frame contenedor (Tarjeta) + card = ctk.CTkFrame(self, fg_color=Theme.ITEM_BG, corner_radius=8, + border_width=1, border_color=Theme.BORDER_COLOR) + card.grid(row=row_idx, column=0, sticky="ew", padx=10, pady=5) + card.grid_columnconfigure(1, weight=1) + + # 1. Icono / Thumbnail + lbl_icon = ctk.CTkLabel(card, text="⏳", width=64, + height=64, fg_color="#222", corner_radius=6) + lbl_icon.grid(row=0, column=0, rowspan=2, padx=8, pady=8) + + # Si ya teníamos la imagen (ej: reordenando lista), la ponemos directo + if item.thumbnail: + lbl_icon.configure(image=item.thumbnail, text="") + + # 2. Información + lbl_name = ctk.CTkLabel( + card, text=item.name, font=Theme.FONT_MAIN, text_color=Theme.ACCENT, anchor="w") + lbl_name.grid(row=0, column=1, sticky="w", padx=5, pady=(8, 0)) + + lbl_info = ctk.CTkLabel(card, text=item.info_text, font=Theme.FONT_MONO, + text_color=Theme.TEXT_SEC, justify="left", anchor="w") + lbl_info.grid(row=1, column=1, sticky="w", padx=5, pady=(0, 8)) + + # 3. Controles (Frame derecho) + ctrl_frame = ctk.CTkFrame(card, fg_color="transparent") + ctrl_frame.grid(row=0, column=2, rowspan=2, padx=8, sticky="e") + + # Botón Subir + btn_up = ctk.CTkButton(ctrl_frame, text="▲", width=28, height=28, + fg_color="transparent", border_width=1, border_color=Theme.TEXT_SEC, + hover_color=Theme.BTN_HOVER_NORMAL, text_color=Theme.TEXT_MAIN, + font=("Arial", 12), + command=lambda: self.move_up(item)) + btn_up.pack(side="left", padx=2) + + # Botón Eliminar + btn_del = ctk.CTkButton(ctrl_frame, text="✕", width=28, height=28, + fg_color="transparent", border_width=1, border_color=Theme.ERROR, + text_color=Theme.ERROR, hover_color=Theme.BTN_HOVER_DANGER, + font=("Arial", 12, "bold"), + command=lambda: self.remove_item(item)) + btn_del.pack(side="left", padx=2) + + # Guardar referencias para actualizaciones asíncronas + self._widget_refs[item.id] = { + "card": card, + "lbl_info": lbl_info, + "lbl_icon": lbl_icon, + "btn_up": btn_up # Guardamos por si queremos deshabilitar el primero + } + + # Renderizar encabezado si es el primer elemento + if index == 0: + self._render_header() + + def _render_header(self): + """Dibuja el botón de limpiar todo si hay elementos.""" + # Limpiar header anterior si existe + for w in self.grid_slaves(row=0): + w.destroy() + + if self.queue_items: + header_frame = ctk.CTkFrame(self, fg_color="transparent") + header_frame.grid(row=0, column=0, sticky="ew", + padx=10, pady=(5, 0)) + + ctk.CTkLabel(header_frame, text=f"Queue: {len(self.queue_items)} Files", + font=Theme.FONT_SUB, text_color=Theme.TEXT_SEC).pack(side="left") + + ctk.CTkButton(header_frame, text="CLEAN ALL", image=self.clear_icon, + font=Theme.FONT_SUB, height=24, width=100, + fg_color="transparent", border_width=1, border_color=Theme.ACCENT, text_color=Theme.ACCENT, + hover_color=Theme.BTN_HOVER_NORMAL, + command=self.clean_file_list).pack(side="right") + + def _update_layout_indices(self): + """Re-dibuja toda la lista. Útil para reordenar o borrar.""" + # Nota: En una app muy grande esto sería ineficiente, pero para <100 archivos está bien + # destruir y recrear widgets garantiza orden visual correcto. + + # Limpiar UI actual + for widget in self.winfo_children(): + widget.destroy() + + self._widget_refs.clear() + + # Redibujar + if self.queue_items: + self._render_header() + for i, item in enumerate(self.queue_items): + self._render_item(item, i) + else: + # Lista vacía + if self.on_queue_empty_callback: + self.on_queue_empty_callback() + + # --- LÓGICA DE DATOS --- + + def move_up(self, item: QueueItem): + try: + idx = self.queue_items.index(item) + if idx > 0: + self.queue_items[idx], self.queue_items[idx - + 1] = self.queue_items[idx - 1], self.queue_items[idx] + self._update_layout_indices() + except ValueError: + pass + + def remove_item(self, item: QueueItem): + if item in self.queue_items: + self.queue_items.remove(item) + # Eliminar referencias para liberar memoria + if item.id in self._widget_refs: + del self._widget_refs[item.id] + self._update_layout_indices() + + def clean_file_list(self): + self.queue_items.clear() + self._widget_refs.clear() + self._update_layout_indices() + + def get_selected_file_list(self) -> List[str]: + return [item.path for item in self.queue_items if not item.has_error] + + def regenerate_all_info(self): + """Recalcula el texto de redimensionado sin recargar imágenes.""" + for item in self.queue_items: + if not item.has_error and item.is_loaded: + # Recalculamos solo el texto basado en lo que ya sabemos (o recargamos dims rápidas) + # Para optimizar, asumimos que podemos volver a lanzar el worker o + # simplemente recalcular si guardáramos width/height en el objeto. + # Por simplicidad y robustez, relanzamos el worker ligero. + self.executor.submit(self._worker_load_info, item) + + # --- SETTERS --- + def set_upscale_factor(self, f): + self.upscale_factor = f + + def set_input_resize_factor(self, f): + self.input_resize_factor = f + + def set_output_resize_factor(self, f): + self.output_resize_factor = f + + # --- UTILIDADES ESTÁTICAS (Lógica pura) --- + + def _extract_file_data(self, file_path) -> Tuple[str, Optional[Image.Image]]: + """Extrae info y genera thumbnail PIL (Seguro para Threads).""" + info_str = "Info no disponible" + pil_image = None + + try: + exts_video = ['.mp4', '.avi', '.mkv', + '.mov', '.wmv', '.flv', '.webm'] + is_video = any(file_path.lower().endswith(ext) + for ext in exts_video) + + width, height = 0, 0 + + if is_video: + cap = cv2.VideoCapture(file_path) + if cap.isOpened(): + width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) + height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) + frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)) + fps = cap.get(cv2.CAP_PROP_FPS) + + # Leer frame central para thumbnail + try: + if frames > 100: + cap.set(cv2.CAP_PROP_POS_FRAMES, 50) + ret, frame = cap.read() + if ret: + frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) + pil_image = self._process_thumbnail(frame) + except: + pass # Fallo silencioso solo en thumbnail + + dur = frames/fps if fps > 0 else 0 + m, s = divmod(int(dur), 60) + info_str = f"Video: {m}m:{s:02d}s • {frames} frames • {width}x{height}\n" + cap.release() + else: + # Imagen + # cv2.imdecode es mejor para rutas con caracteres especiales en Windows + img_array = np.fromfile(file_path, np.uint8) + img = cv2.imdecode(img_array, cv2.IMREAD_COLOR) + + if img is not None: + height, width = img.shape[:2] + img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) + pil_image = self._process_thumbnail(img) + info_str = f"Image: {width}x{height}\n" + + # Añadir datos de redimensionado calculado + if width > 0 and height > 0: + info_str += self._calculate_resize_text(width, height) + + except Exception as e: + logging.error(f"Error interno extract: {e}") + raise e + + return info_str, pil_image + + def _process_thumbnail(self, img_array) -> Image.Image: + """Redimensiona y recorta imagen para thumbnail.""" + h, w = img_array.shape[:2] + target_size = 64 + + # Mantener aspect ratio dentro de 64x64 + scale = target_size / max(h, w) + new_w, new_h = int(w * scale), int(h * scale) + + resized = cv2.resize(img_array, (new_w, new_h), + interpolation=cv2.INTER_AREA) + return Image.fromarray(resized) + + def _calculate_resize_text(self, w, h) -> str: + """Lógica pura de cálculo de dimensiones.""" + if self.upscale_factor <= 0: + return "" + + iw = int(w * (self.input_resize_factor/100) + ) if self.input_resize_factor else w + ih = int(h * (self.input_resize_factor/100) + ) if self.input_resize_factor else h + + uw, uh = int(iw * self.upscale_factor), int(ih * self.upscale_factor) + + ow = int(uw * (self.output_resize_factor/100) + ) if self.output_resize_factor else uw + oh = int(uh * (self.output_resize_factor/100) + ) if self.output_resize_factor else uh + + txt = "" + if self.input_resize_factor: + txt += f"Input AI ({int(self.input_resize_factor)}%) ➜ {iw}x{ih}\n" + + txt += f"Output AI (x{self.upscale_factor}) ➜ {uw}x{uh}" + + if self.output_resize_factor: + txt += f"\nFinal Output ({int(self.output_resize_factor)}%) ➜ {ow}x{oh}" + + return txt diff --git a/rsc/Capture.png b/rsc/Capture.png deleted file mode 100644 index 8dccb2c28af5fbb6e832cd20e10d58e1edf7cae5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49816 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
8AZ@(fZqTdSbMv)44<0JU+M-^)I?KE$H*5+ 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 ya=^g}5oekEcJCVaB-Ez@NC`Q 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 T8U%vk;DBfvY7}3zz4gBUf#0=a diff --git a/warlock_preferences.py b/warlock_preferences.py index a30c22b..93eca14 100644 --- a/warlock_preferences.py +++ b/warlock_preferences.py @@ -1,13 +1,13 @@ -import ctypes import glob import json import os import platform import shutil -import socket import subprocess import sys import threading +import time +# GUI Imports import tkinter as tk import webbrowser import zipfile @@ -16,11 +16,12 @@ from tkinter import filedialog, messagebox from typing import Any, Dict, List, Optional import customtkinter as ctk -# --- IMPORTACIONES DEL MOTOR NEO (Hardware Info) --- +# Hardware Info Imports import psutil import requests from packaging import version as pkg_version +# Optional Imports Handling try: import wmi except ImportError: @@ -30,65 +31,86 @@ try: except ImportError: GPUtil = None -# ----------------------------------------------------------------------------- -# CONSTANTES DE ESTILO & TEMAS -# ----------------------------------------------------------------------------- -THEME = { - "bg": "#1B1818", - "widget_bg": "#2A2727", - "card_bg": "#212121", - "text": "#FFFFFF", - "text_sec": "#CAC9C9", - "accent": "#FDEF2F", # Amarillo Dorado (Warlock) - "accent_hover": "#D4C428", - "title": "#FF3232", # Rojo Warlock - "hover": "#D41C1C", # Rojo oscuro - "border": "#E2340D", - "success": "#00E676", - "error": "#B00020", - "warning": "#FFA000", - "info_bg": "#1E3A8A", - "scroll_bg": "#181818" -} +# ============================================================================= +# CONSTANTES Y TEMA VISUAL (WARLOCK IDENTITY) +# ============================================================================= CONFIG_FILE = "warlock_config.json" -# ----------------------------------------------------------------------------- -# UTILIDADES DE UI -# ----------------------------------------------------------------------------- +THEME = { + "bg_main": "#121212", # Fondo principal muy oscuro + "bg_sidebar": "#1E1E1E", # Fondo barra lateral + "card_bg": "#252525", # Fondo de tarjetas + "card_hover": "#2F2F2F", # Hover tarjetas + "text_main": "#FFFFFF", # Texto blanco puro + "text_dim": "#A0A0A0", # Texto secundario + "accent": "#E63946", # Rojo Warlock Vibrante + "accent_hover": "#C92A35", # Rojo oscuro hover + "gold": "#FDEF2F", # Dorado (Highlights) + "success": "#00E676", # Verde éxito + "error": "#CF6679", # Rojo error + "border": "#333333", # Bordes sutiles + "input_bg": "#151515" # Fondo de inputs +} +FONTS = { + "header": ("Segoe UI", 24, "bold"), + "subheader": ("Segoe UI", 16, "bold"), + "label": ("Segoe UI", 12), + "label_bold": ("Segoe UI", 12, "bold"), + "small": ("Segoe UI", 10), + "mono": ("Consolas", 11) +} -def get_font(size: int, weight: str = "normal", family: str = "Segoe UI") -> tuple: - """Genera una fuente base.""" - return (family, size, weight) - -# ----------------------------------------------------------------------------- -# GESTOR DE CONFIGURACIÓN -# ----------------------------------------------------------------------------- +# ============================================================================= +# GESTOR DE CONFIGURACIÓN (CENTRALIZADO) +# ============================================================================= class ConfigManager: + # Configuración por defecto expandida DEFAULT_CONFIG = { - "check_updates_on_startup": True, - "keep_window_on_top": False, - "ui_scaling": 1.0, - "font_scale": 1.0, - "window_opacity": 1.0, + # General "app_theme": "Dark", + "ui_scaling": 1.0, + "window_opacity": 1.0, + "keep_window_on_top": False, + "check_updates_on_startup": True, + + # Rendimiento "process_priority": "Normal", + "onnx_provider_preference": "Auto", # Auto, CUDA, DirectML, CPU "auto_close_on_finish": False, - "auto_clean_temp": False, - "notifications_enabled": True, - "last_gpu_index": "Auto" + "max_cpu_threads": 0, # 0 = Auto + + # Integraciones (Rutas manuales) + "custom_ffmpeg_path": "", + "custom_exiftool_path": "", + + # Logs + "extended_logging": False } @staticmethod - def get_config_path(): + def get_base_path(): + """Obtiene la ruta base de instalación (funciona en .py y .exe).""" if getattr(sys, 'frozen', False): - base_dir = os.path.dirname(sys.executable) + # Si es un ejecutable (PyInstaller), usa la carpeta del .exe + return os.path.dirname(sys.executable) else: - base_dir = os.path.dirname(os.path.abspath(__file__)) - return os.path.join(base_dir, CONFIG_FILE) + # Si es script, usa la carpeta del script + return os.path.dirname(os.path.abspath(__file__)) + + @staticmethod + def get_assets_path(): + """Obtiene la ruta de assets compatible con PyInstaller --onefile""" + base_dir = getattr(sys, '_MEIPASS', os.path.dirname( + os.path.abspath(__file__))) + return os.path.join(base_dir, "Assets") + + @staticmethod + def get_config_path(): + return os.path.join(ConfigManager.get_base_path(), CONFIG_FILE) @staticmethod def load_config() -> Dict[str, Any]: @@ -99,12 +121,13 @@ class ConfigManager: try: with open(path, "r", encoding="utf-8") as f: data = json.load(f) + # Merge seguro for k, v in data.items(): - if k in config: - if isinstance(v, type(config[k])) or (isinstance(config[k], float) and isinstance(v, int)): - config[k] = v + # Permitimos nuevas claves si el usuario edita manualmente, + # pero priorizamos la estructura existente + config[k] = v except Exception as e: - print(f"[Config] Error loading/validating config: {e}") + print(f"[Config] Error loading config: {e}") return config @@ -122,690 +145,757 @@ class ConfigManager: ConfigManager.save_config(ConfigManager.DEFAULT_CONFIG) return ConfigManager.DEFAULT_CONFIG.copy() -# ----------------------------------------------------------------------------- -# ESCÁNER DE HARDWARE (INTEGRACIÓN MOTOR NEO) -# ----------------------------------------------------------------------------- +# ============================================================================= +# HARDWARE SCANNER (NEO ENGINE OPTIMIZED) +# ============================================================================= class HardwareScanner: @staticmethod - def get_specs_detailed() -> Dict[str, Any]: - """ - Utiliza el motor de detección de NEO (WMI/PSUTIL/GPUTIL) - adaptado para devolver el diccionario que espera Warlock. - """ - specs = { - "os": f"{platform.system()} {platform.release()} ({platform.architecture()[0]})", - "cpu_name": platform.processor(), - "cpu_cores": os.cpu_count() or 4, - "ram_total": 0.0, - "ram_used": 0.0, - "gpu_name": "Integrated / Unknown", - "gpu_vram": 0, - "disk_free": 0.0, + def get_system_info() -> Dict[str, Any]: + info = { + "os": f"{platform.system()} {platform.release()}", + "cpu": platform.processor(), + "ram_total": 0, + "ram_used": 0, + "gpu": "Unknown", + "vram": 0 } try: - # 1. CPU y SO (Motor NEO: WMI Processor) - if wmi: + # RAM + mem = psutil.virtual_memory() + info["ram_total"] = round(mem.total / (1024**3), 2) + info["ram_used"] = round(mem.used / (1024**3), 2) + + # CPU Name Cleanup + if wmi and platform.system() == "Windows": try: c = wmi.WMI() - # SO Info detallada - specs["os"] = f"{platform.system()} {platform.release()} {platform.machine()}" + cpu = c.Win32_Processor()[0] + info["cpu"] = cpu.Name.strip() + except: + pass + elif platform.system() == "Darwin": + info["cpu"] = subprocess.check_output( + ["sysctl", "-n", "machdep.cpu.brand_string"]).strip().decode('utf-8') - # CPU Info detallada - proc_obj = c.Win32_Processor()[0] - specs["cpu_name"] = proc_obj.Name.strip() - specs["cpu_cores"] = proc_obj.NumberOfLogicalProcessors - except Exception: - pass # Fallback a los valores por defecto de platform - - # 2. RAM (Motor NEO: Psutil + WMI logic adaptation) - mem = psutil.virtual_memory() - specs["ram_total"] = round(mem.total / (1024**3), 2) - specs["ram_used"] = round(mem.used / (1024**3), 2) - - # 3. Almacenamiento (Motor NEO logic) - total_free_space = 0 - for p in psutil.disk_partitions(): - try: - usage = psutil.disk_usage(p.mountpoint) - total_free_space += usage.free - except PermissionError: - continue - specs["disk_free"] = round(total_free_space / (1024**3), 2) - - # 4. GPU (Motor NEO: GPUtil Priority -> WMI Fallback) + # GPU (Prioridad: NVIDIA > AMD/Intel Dedicada > Integrada) gpu_found = False - # Intento A: GPUtil (NVIDIA) + # 1. GPUtil (NVIDIA) if GPUtil: try: gpus = GPUtil.getGPUs() if gpus: - best_gpu = gpus[0] - specs["gpu_name"] = f"[NVIDIA] {best_gpu.name}" - specs["gpu_vram"] = round( - best_gpu.memoryTotal / 1024, 2) # GPUtil returns MB + info["gpu"] = gpus[0].name + info["vram"] = round(gpus[0].memoryTotal / 1024, 2) gpu_found = True - except Exception: + except: pass - # Intento B: WMI (AMD / Intel / Fallback) - if not gpu_found and wmi: + # 2. WMI (Fallback Windows) + if not gpu_found and wmi and platform.system() == "Windows": try: c = wmi.WMI() - for gpu in c.Win32_VideoController(): - # Lógica simple para elegir la GPU dedicada si hay varias - name = gpu.Name - vram_bytes = 0 + best_vram = -1 + for g in c.Win32_VideoController(): + v_bytes = 0 try: - # AdapterRAM suele devolver bytes, pero a veces es negativo en int32 overflow - vram_bytes = int(gpu.AdapterRAM) - if vram_bytes < 0: - vram_bytes += 2**32 + # Algunas implementaciones WMI devuelven enteros negativos para valores altos + v_bytes = int(g.AdapterRAM) + if v_bytes < 0: + v_bytes += 2**32 except: - vram_bytes = 0 + continue - vram_gb = round(vram_bytes / (1024**3), 2) - - # Preferir GPU con más VRAM o que no sea "Intel" si ya tenemos una integrada - current_best = specs["gpu_vram"] - # Si encontramos una con más VRAM o es la primera dedicada que vemos - if vram_gb > current_best or (vram_gb > 0 and "Intel" not in name and specs["gpu_name"] == "Integrated / Unknown"): - specs["gpu_name"] = name - specs["gpu_vram"] = vram_gb - except Exception: + v_gb = round(v_bytes / (1024**3), 2) + # Buscamos la GPU con más VRAM (generalmente la dedicada) + if v_gb > best_vram: + best_vram = v_gb + info["gpu"] = g.Name + info["vram"] = v_gb + except: pass except Exception as e: - print(f"[HardwareScanner] Error using NEO Engine: {e}") + print(f"Hardware scan error: {e}") + info["os"] = f"Error scanning: {str(e)}" - return specs + return info - @staticmethod - def get_smart_recommendations(specs: Dict) -> Dict: - rec = {} - vram = specs.get("gpu_vram", 0) - ram = specs.get("ram_total", 0) - - # Cálculo de seguridad Warlock - safe_vram = max(0.5, vram - 1.5) - rec_tiles = int(safe_vram * 3.5) - if rec_tiles < 2: - rec_tiles = 2 - - rec["Recommended Tiles"] = f"{rec_tiles}" - rec["Safe VRAM Limit"] = f"{safe_vram:.1f} GB" - - if vram >= 8 and ram >= 16: - rec["AI Model Class"] = "High End (RealESRGANx4 / BSRGANx4)" - rec["Multithreading"] = "2 - 4 Threads" - elif vram >= 4: - rec["AI Model Class"] = "Mid Range (RealESR_Animex4)" - rec["Multithreading"] = "2 Threads" - else: - rec["AI Model Class"] = "Low End (RealESR_Gx4 / RIFE Lite)" - rec["Multithreading"] = "OFF (1 Thread)" - - return rec - -# ----------------------------------------------------------------------------- +# ============================================================================= # UPDATE MANAGER -# ----------------------------------------------------------------------------- +# ============================================================================= class UpdateManager: def __init__(self, owner, repo, version): - self.api_url = f"https://api.github.com/repos/{owner}/{repo}/releases/latest" - self.current_ver = version + self.url = f"https://api.github.com/repos/{owner}/{repo}/releases/latest" + self.current = version - def check_update(self): + def check(self): try: - r = requests.get(self.api_url, timeout=10) + r = requests.get(self.url, timeout=5) if r.status_code == 200: data = r.json() tag = data.get("tag_name", "v0.0").lstrip("v") - if pkg_version.parse(tag) > pkg_version.parse(self.current_ver): - return True, tag, data.get("assets", []), data.get("body", "No changelog provided.") - return False, self.current_ver, None, None + # Comparación semántica de versiones + if pkg_version.parse(tag) > pkg_version.parse(self.current): + return True, tag, data.get("html_url"), data.get("body") + return False, self.current, None, None except Exception as e: return None, str(e), None, None - def download(self, url, path, progress_callback): - try: - with requests.get(url, stream=True, timeout=30) as r: - r.raise_for_status() - total = int(r.headers.get('content-length', 0)) - downloaded = 0 - with open(path, 'wb') as f: - for chunk in r.iter_content(8192): - f.write(chunk) - downloaded += len(chunk) - if progress_callback and total > 0: - progress_callback(downloaded / total) - return path - except Exception as e: - raise e - -# ----------------------------------------------------------------------------- -# COMPONENTES UI PERSONALIZADOS (Blender Style) -# ----------------------------------------------------------------------------- +# ============================================================================= +# COMPONENTES UI (WIDGETS) +# ============================================================================= -class SettingCard(ctk.CTkFrame): - def __init__(self, master, title, **kwargs): - super().__init__(master, fg_color="transparent", **kwargs) - self.pack(fill="x", pady=(5, 0), padx=5) +class SidebarButton(ctk.CTkButton): + def __init__(self, master, text, icon_char, command, is_selected=False): + color = THEME["card_bg"] if is_selected else "transparent" + text_col = THEME["accent"] if is_selected else THEME["text_dim"] - h = ctk.CTkFrame(self, fg_color="transparent") - h.pack(fill="x", pady=(5, 5)) - - ctk.CTkLabel(h, text="—", text_color=THEME["border"], font=( - "Arial", 12, "bold")).pack(side="left", padx=(0, 5)) - ctk.CTkLabel(h, text=title.upper(), text_color=THEME["text_sec"], font=get_font( - 11, "bold")).pack(side="left") - ctk.CTkFrame(self, height=1, fg_color=THEME["widget_bg"]).pack( - fill="x", padx=0, pady=(0, 5)) + super().__init__(master, text=f" {icon_char} {text}", anchor="w", + fg_color=color, hover_color=THEME["card_hover"], + text_color=text_col, height=45, corner_radius=8, + font=FONTS["label_bold"], command=command) -class CollapsibleMenu(ctk.CTkFrame): - def __init__(self, master, title, **kwargs): - super().__init__(master, - fg_color=THEME["card_bg"], border_color=THEME["border"], border_width=1, **kwargs) - self.pack(fill="x", pady=8, padx=15) - self.grid_columnconfigure(0, weight=1) +class SettingRow(ctk.CTkFrame): + def __init__(self, master, title, desc=None): + super().__init__(master, fg_color="transparent") + self.pack(fill="x", pady=10) - self.header_frame = ctk.CTkFrame( - self, fg_color=THEME["widget_bg"], height=40, corner_radius=0) - self.header_frame.grid(row=0, column=0, sticky="ew") - self.header_frame.grid_columnconfigure(0, weight=1) + lbl_frame = ctk.CTkFrame(self, fg_color="transparent") + lbl_frame.pack(side="left", fill="both", expand=True) - ctk.CTkLabel(self.header_frame, text=title.upper(), font=get_font( - 13, "bold"), text_color=THEME["accent"], padx=15, anchor="w").grid(row=0, column=0, sticky="ew", pady=5) + ctk.CTkLabel(lbl_frame, text=title, font=FONTS["label_bold"], + text_color=THEME["text_main"], anchor="w").pack(fill="x") - self.is_expanded = True - self.toggle_button = ctk.CTkButton(self.header_frame, text="▼", width=30, height=30, - fg_color=THEME["widget_bg"], hover_color=THEME["hover"], - text_color=THEME["text"], command=self.toggle) - self.toggle_button.grid(row=0, column=1, padx=10, pady=5) + if desc: + ctk.CTkLabel(lbl_frame, text=desc, font=FONTS["small"], + text_color=THEME["text_dim"], anchor="w").pack(fill="x") - self.content_frame = ctk.CTkFrame( - self, fg_color=THEME["card_bg"], corner_radius=0) - self.content_frame.grid( - row=1, column=0, sticky="ew", padx=15, pady=(0, 15)) - self.content_frame.grid_columnconfigure(0, weight=1) + self.control_area = ctk.CTkFrame(self, fg_color="transparent") + self.control_area.pack(side="right") - def toggle(self): - if self.is_expanded: - self.content_frame.grid_remove() - self.toggle_button.configure(text="▶") - else: - self.content_frame.grid( - row=1, column=0, sticky="ew", padx=15, pady=(0, 15)) - self.toggle_button.configure(text="▼") - self.is_expanded = not self.is_expanded + def add_widget(self, widget): + widget.pack(in_=self.control_area) - -class DownloadWindow(ctk.CTkToplevel): - def __init__(self, master, filename): - super().__init__(master) - self.title("Update Downloader") - self.geometry("400x150") - self.attributes("-topmost", True) - self.configure(fg_color=THEME["bg"]) - - try: - x = master.winfo_x() + (master.winfo_width()//2) - 200 - y = master.winfo_y() + (master.winfo_height()//2) - 75 - self.geometry(f"+{x}+{y}") - except: - pass - - ctk.CTkLabel(self, text=f"Downloading {filename}...", text_color=THEME["accent"], font=get_font( - 12)).pack(pady=(30, 10)) - - self.prog = ctk.CTkProgressBar( - self, width=300, progress_color=THEME["success"]) - self.prog.pack(pady=10) - self.prog.set(0) - - self.lbl = ctk.CTkLabel(self, text="0%", text_color=THEME["text_sec"]) - self.lbl.pack() - - def update_progress(self, val): - self.prog.set(val) - self.lbl.configure(text=f"{int(val*100)}%") - self.update_idletasks() - -# ----------------------------------------------------------------------------- +# ============================================================================= # VENTANA PRINCIPAL DE PREFERENCIAS -# ----------------------------------------------------------------------------- +# ============================================================================= class PreferencesWindow(ctk.CTkToplevel): def __init__(self, master, version, owner, repo): super().__init__(master) - self.title("Warlock-Studio - Preferences") - self.geometry("650x750") - self.configure(fg_color=THEME["bg"]) - self.attributes("-topmost", True) + # Configuración Ventana + self.title("Preferences") + self.geometry("750x500") + self.minsize(850, 600) + self.configure(fg_color=THEME["bg_main"]) + + # Intentar centrar la ventana respecto al padre try: - if getattr(sys, 'frozen', False): - base_dir = os.path.dirname(sys.executable) - else: - base_dir = os.path.dirname(os.path.abspath(__file__)) - icon_path = os.path.join(base_dir, "Assets", "logo.ico") - self.iconbitmap(icon_path) + self.after(10, self.lift) + self.after(10, self.focus_force) except: pass - self.curr_ver = version - self.upd_mgr = UpdateManager(owner, repo, version) + # Datos self.config = ConfigManager.load_config() + self.version = version + self.owner = owner + self.repo = repo + self.cached_hw_info = None # Cache para no escanear constantemente - self.create_ui() - self.after(100, lambda: self.focus_force()) + # Layout Principal (Grid 2 columnas: Sidebar | Content) + self.grid_columnconfigure(1, weight=1) + self.grid_rowconfigure(0, weight=1) - def create_ui(self): - # HEADER - head = ctk.CTkFrame(self, fg_color="transparent", height=80) - head.pack(fill="x", padx=25, pady=15) + self.setup_sidebar() + self.setup_content_area() - t_frame = ctk.CTkFrame(head, fg_color="transparent") - t_frame.pack(side="left") + # Cargar pestaña inicial + self.show_page("general") - ctk.CTkLabel(t_frame, text="WARLOCK", font=("Impact", 36), - text_color=THEME["title"]).pack(side="left") - ctk.CTkLabel(t_frame, text="- STUDIO", font=("Impact", 36), - text_color=THEME["text"]).pack(side="left") - - ver_badge = ctk.CTkLabel(head, text=f"v{self.curr_ver}", fg_color=THEME["widget_bg"], - text_color=THEME["accent"], corner_radius=6, padx=12, font=get_font(12, "bold")) - ver_badge.pack(side="right", padx=10) - - self.status_lbl = ctk.CTkLabel( - head, text="", font=get_font(11, "bold")) - self.status_lbl.pack(side="right", padx=10) - - # SCROLLABLE CONTENT - self.scroll_frame = ctk.CTkScrollableFrame(self, fg_color=THEME["bg"], scrollbar_button_color=THEME["border"], - label_text="SETTINGS MENU", label_text_color=THEME["text_sec"], - label_font=get_font(10, "bold")) - self.scroll_frame.pack(fill="both", expand=True, padx=20, pady=(0, 20)) - self.scroll_frame.grid_columnconfigure(0, weight=1) - - self._build_general_menu() - self._build_system_menu() - self._build_updates_menu() - self._build_logs_menu() - self._build_about_menu() - - self.after(500, self._run_scan) - - # --- MENUS --- - - def _build_general_menu(self): - menu = CollapsibleMenu(self.scroll_frame, "General Settings") - frame = menu.content_frame - - c1 = SettingCard(frame, "USER INTERFACE") - self._add_dropdown(frame, "Theme Mode", "app_theme", ["Dark", "Light", "System"], - lambda v: self._update("app_theme", v, lambda: ctk.set_appearance_mode(v))) - self._add_slider(frame, "Window Opacity", "window_opacity", 0.5, 1.0, 50, - lambda v: self._update("window_opacity", v, lambda: self.master.attributes("-alpha", v))) - self._add_slider(frame, "UI Scaling", "ui_scaling", 0.8, 1.5, 7, - lambda v: self._update("ui_scaling", v, lambda: ctk.set_widget_scaling(v))) - - c2 = SettingCard(frame, "BEHAVIOR") - self._add_switch(frame, "Keep Window on Top", "keep_window_on_top", - lambda: self.master.attributes("-topmost", self.config["keep_window_on_top"])) - self._add_switch(frame, "Check Updates on Startup", "check_updates_on_startup", - lambda: self._update("check_updates_on_startup", self.config["check_updates_on_startup"])) - self._add_switch(frame, "Auto-Close App when Task Finishes", "auto_close_on_finish", - lambda: self._update("auto_close_on_finish", self.config["auto_close_on_finish"])) - - c3 = SettingCard(frame, "MAINTENANCE") - row = ctk.CTkFrame(frame, fg_color="transparent") - row.pack(fill="x", padx=5, pady=10) - ctk.CTkButton(row, text="Clean Temporary Files", fg_color="#4A0000", hover_color=THEME["error"], border_color=THEME["error"], border_width=1, - command=self._clean_temp).pack(side="left", expand=True, fill="x", padx=(0, 5)) - ctk.CTkButton(row, text="Reset All Settings", fg_color="transparent", border_color=THEME["warning"], border_width=1, text_color=THEME["warning"], - hover_color="#332200", command=self._reset_settings).pack(side="right", expand=True, fill="x", padx=(5, 0)) - - def _build_system_menu(self): - self.hw_menu = CollapsibleMenu( - self.scroll_frame, "System & AI Configuration") - frame = self.hw_menu.content_frame - - SettingCard(frame, "HARDWARE DIAGNOSTICS (NEO ENGINE)") - self.hw_content = ctk.CTkFrame(frame, fg_color="transparent") - self.hw_content.pack(fill="both", padx=10, pady=5) - - self.btn_scan = ctk.CTkButton(frame, text="Run Hardware Scan", fg_color=THEME["border"], hover_color=THEME["hover"], - command=self._run_scan, height=35) - self.btn_scan.pack(pady=15, padx=10) - - SettingCard(frame, "PROCESSING PRIORITY") - self._add_dropdown(frame, "FFmpeg/AI Priority", "process_priority", ["Normal", "Above Normal", "High"], - lambda v: self._update("process_priority", v)) - - def _run_scan(self): - self.btn_scan.configure(state="disabled", text="Scanning System...") - for widget in self.hw_content.winfo_children(): - widget.destroy() - ctk.CTkLabel(self.hw_content, text="Scanning with NEO Engine... Please wait.", - text_color=THEME["text_sec"]).pack(pady=20) - threading.Thread(target=self._thread_scan, daemon=True).start() - - def _thread_scan(self): - specs = HardwareScanner.get_specs_detailed() - recs = HardwareScanner.get_smart_recommendations(specs) - if self.winfo_exists(): - self.after(0, lambda: self._render_specs(specs, recs)) - - def _render_specs(self, specs, recs): - if not self.winfo_exists(): - return - self.btn_scan.configure(state="normal", text="Refresh Hardware Info") - for widget in self.hw_content.winfo_children(): - widget.destroy() - - grid = ctk.CTkFrame(self.hw_content, fg_color="transparent") - grid.pack(fill="x") - grid.grid_columnconfigure(1, weight=1) - - items = [("CPU", specs['cpu_name']), ("Cores", f"{specs['cpu_cores']} Logical Cores"), - ("RAM", - f"{specs['ram_total']} GB (Used: {specs['ram_used']} GB)"), - ("GPU", specs['gpu_name']), ("VRAM", f"{specs['gpu_vram']} GB"), ("OS", specs['os'])] - - for i, (label, val) in enumerate(items): - ctk.CTkLabel(grid, text=label, font=get_font(11, "bold"), text_color=THEME["text_sec"], anchor="w").grid( - row=i, column=0, sticky="w", pady=4, padx=5) - ctk.CTkLabel(grid, text=str(val), font=get_font(11), text_color=THEME["accent"], anchor="w").grid( - row=i, column=1, sticky="w", padx=20, pady=4) - - rec_frame = ctk.CTkFrame( - self.hw_content, fg_color="#1A1A1A", corner_radius=6) - rec_frame.pack(fill="x", padx=10, pady=20) - ctk.CTkLabel(rec_frame, text="RECOMMENDED AI SETTINGS", - text_color=THEME["success"], font=get_font(11, "bold")).pack(pady=(10, 10)) - - rec_grid = ctk.CTkFrame(rec_frame, fg_color="transparent") - rec_grid.pack(pady=(0, 10), padx=10) - r_items = [("Tiles Resolution", recs.get("Recommended Tiles", "N/A")), - ("VRAM Limit", recs.get("Safe VRAM Limit", "N/A")), - ("AI Threads", recs.get("Multithreading", "OFF"))] - for i, (k, v) in enumerate(r_items): - ctk.CTkLabel(rec_grid, text=k + ": ", text_color=THEME["text_sec"], anchor="e").grid( - row=i, column=0, padx=(10, 5), pady=2, sticky="e") - ctk.CTkLabel(rec_grid, text=v, text_color="#FFFFFF", font=get_font( - 12, "bold"), anchor="w").grid(row=i, column=1, padx=(0, 10), pady=2, sticky="w") - - def _build_updates_menu(self): - menu = CollapsibleMenu(self.scroll_frame, "Updates & Changelog") - frame = menu.content_frame - v_frame = ctk.CTkFrame(frame, fg_color="transparent") - v_frame.pack(pady=15) - ctk.CTkLabel(v_frame, text="CURRENT VERSION", font=get_font( - 10), text_color=THEME["text_sec"]).pack() - ctk.CTkLabel(v_frame, text=f"v{self.curr_ver}", font=( - "Impact", 42), text_color=THEME["accent"]).pack() - self.btn_upd = ctk.CTkButton(frame, text="Check for Updates", height=45, - fg_color=THEME["border"], hover_color=THEME["hover"], font=get_font(14, "bold"), command=self._check_update) - self.btn_upd.pack(fill="x", padx=60, pady=(0, 20)) - ctk.CTkLabel(frame, text="CHANGELOG / STATUS:", font=get_font(11, "bold"), - text_color=THEME["text_sec"], anchor="w").pack(fill="x", pady=(10, 5), padx=5) - self.upd_log = ctk.CTkTextbox(frame, height=200, fg_color="#111111", text_color=THEME["text"], font=( - "Consolas", 11), border_width=1, border_color=THEME["widget_bg"]) - self.upd_log.pack(fill="x", expand=True, pady=5, padx=5) - self.upd_log.insert( - "0.0", "Click 'Check for Updates' to connect to GitHub repository...") - - def _check_update(self): - self.btn_upd.configure(state="disabled", text="Checking GitHub...") - self.upd_log.delete("0.0", "end") - self.upd_log.insert("end", "Connecting to repository...\n") - threading.Thread(target=self._thread_upd, daemon=True).start() - - def _thread_upd(self): - res = self.upd_mgr.check_update() - if self.winfo_exists(): - self.after(0, lambda: self._res_upd(res)) - - def _res_upd(self, res): - is_new, tag, assets, body = res - self.btn_upd.configure(state="normal", text="Check Again") - self.upd_log.delete("0.0", "end") - if is_new is None: - self.upd_log.insert("end", f"Connection Error: {tag}\n") - elif is_new: - self.upd_log.insert( - "end", f"NEW UPDATE AVAILABLE: v{tag}\n\n--- CHANGELOG ---\n\n{body}\n") - if messagebox.askyesno("Update Found", f"Version v{tag} available. Download?"): - target = next( - (a for a in assets if a['name'].endswith('.exe')), None) - if target: - self._start_download( - target['browser_download_url'], target['name']) - else: - webbrowser.open( - "https://github.com/Ivan-Ayub97/Warlock-Studio/releases") - else: - self.upd_log.insert( - "end", f"You are using the latest version (v{tag}).") - - def _start_download(self, url, name): - dw = DownloadWindow(self, name) - - def t(): - try: - tmp = os.path.join(os.getenv('TEMP'), name) - self.upd_mgr.download(url, tmp, dw.update_progress) - dw.destroy() - if messagebox.askyesno("Install", "Download complete. Install now?"): - os.startfile(tmp) - sys.exit(0) - except Exception as e: - dw.destroy() - messagebox.showerror("Download Error", str(e)) - threading.Thread(target=t, daemon=True).start() - - def _build_logs_menu(self): - menu = CollapsibleMenu(self.scroll_frame, "Log Management") - frame = menu.content_frame - ctrl = ctk.CTkFrame(frame, fg_color="transparent") - ctrl.pack(fill="x", padx=5, pady=5) - ctk.CTkButton(ctrl, text="Refresh Logs", width=120, - fg_color=THEME["widget_bg"], command=self._load_logs).pack(side="left", padx=5) - ctk.CTkButton(ctrl, text="Export All Logs (.zip)", width=160, - fg_color=THEME["info_bg"], command=self._export_logs).pack(side="right", padx=5) - self.log_text = ctk.CTkTextbox(frame, font=("Consolas", 11), fg_color="#111111", text_color="#DDDDDD", - wrap="none", border_width=1, border_color=THEME["widget_bg"], height=200) - self.log_text.pack(fill="x", expand=True, padx=5, pady=5) - self._load_logs() - - def _load_logs(self): - self.log_text.delete("0.0", "end") - log_dir = os.path.join(os.path.expanduser('~'), 'Documents') - patterns = [os.path.join(log_dir, "Warlock*Logs", "*.log"), - os.path.join(log_dir, "Warlock*Logs", "*.txt")] - found_files = [] - for p in patterns: - found_files.extend(glob.glob(p)) - found_files.sort(key=os.path.getmtime, reverse=True) - if not found_files: - self.log_text.insert("end", "No log files found.") - return - latest = found_files[0] - self.log_text.insert( - "end", f"--- LOADING LOG: {os.path.basename(latest)} ---\n\n") + # Icono (Intentar cargar) try: - with open(latest, "r", encoding="utf-8", errors='replace') as f: - self.log_text.insert("end", f.read()) - except Exception as e: - self.log_text.insert("end", f"Error reading log: {e}") - - def _export_logs(self): - try: - save_path = filedialog.asksaveasfilename( - defaultextension=".zip", filetypes=[("ZIP", "*.zip")]) - if not save_path: - return - log_dir = os.path.join(os.path.expanduser('~'), 'Documents') - folders = glob.glob(os.path.join(log_dir, "Warlock*Logs")) - if not folders: - return - with zipfile.ZipFile(save_path, 'w') as zf: - for folder in folders: - for root, _, files in os.walk(folder): - for file in files: - zf.write(os.path.join(root, file), arcname=file) - messagebox.showinfo("Export", "Logs exported successfully!") - except Exception as e: - messagebox.showerror("Error", str(e)) - - def _build_about_menu(self): - menu = CollapsibleMenu(self.scroll_frame, "About Warlock-Studio") - frame = menu.content_frame - ctk.CTkLabel(frame, text="WARLOCK-STUDIO", font=("Impact", - 40), text_color=THEME["title"]).pack(pady=(20, 5)) - ctk.CTkLabel(frame, text=f"Version {self.curr_ver}", font=get_font( - 12), text_color=THEME["accent"]).pack(pady=(0, 20)) - SettingCard(frame, "DEVELOPER & PROJECT") - ctk.CTkLabel(frame, text="Developed by Ivan-Ayub97", - font=get_font(12, "bold")).pack(pady=5) - link_frame = ctk.CTkFrame(frame, fg_color="transparent") - link_frame.pack(pady=10) - ctk.CTkButton(link_frame, text="GitHub Repository", fg_color="#24292e", width=140, command=lambda: webbrowser.open( - "https://github.com/Ivan-Ayub97/Warlock-Studio")).pack(side="left", padx=10) - ctk.CTkButton(link_frame, text="SourceForge", fg_color="#EE7600", width=140, command=lambda: webbrowser.open( - "https://sourceforge.net/projects/warlock-studio/")).pack(side="left", padx=10) - - SettingCard(frame, "LICENSES") - base_dir = getattr(sys, '_MEIPASS', os.path.dirname( - os.path.abspath(__file__))) - license_path = os.path.join(base_dir, "Assets", "license.txt") - try: - with open(license_path, "r", encoding="utf-8") as f: - l_txt = f.read() + assets = ConfigManager.get_assets_path() + icon_path = os.path.join(assets, "logo.ico") + if os.path.exists(icon_path): + self.iconbitmap(icon_path) except: - l_txt = "License file not found." - ld = ctk.CTkTextbox(frame, height=200, fg_color="#111111", - text_color=THEME["text"], font=("Consolas", 10)) - ld.pack(fill="x", expand=True, pady=10, padx=20) + pass + + def setup_sidebar(self): + self.sidebar = ctk.CTkFrame( + self, width=240, corner_radius=0, fg_color=THEME["bg_sidebar"]) + self.sidebar.grid(row=0, column=0, sticky="nsew") + self.sidebar.grid_propagate(False) + + # Logo / Título + title_frame = ctk.CTkFrame(self.sidebar, fg_color="transparent") + title_frame.pack(pady=30, padx=20, fill="x") + + ctk.CTkLabel(title_frame, text="Warlock-Studio", font=("Impact", 28), + text_color=THEME["accent"]).pack(anchor="w") + ctk.CTkLabel(title_frame, text="CONFIG", font=("Arial", 10, "bold"), + text_color=THEME["text_dim"]).pack(anchor="w", pady=(0, 10)) + + # Separador + ctk.CTkFrame(self.sidebar, height=2, fg_color=THEME["border"]).pack( + fill="x", padx=20, pady=(0, 20)) + + # Botones de Navegación + self.nav_btns = {} + pages = [ + ("general", "General", "⚙"), + ("performance", "Performance & AI", "🚀"), + ("integrations", "Paths & Tools", "🔗"), + ("logs", "Logs & Maintenance", "🛠"), + ("about", "About & Update", "ℹ") + ] + + for pid, text, icon in pages: + btn = SidebarButton(self.sidebar, text, icon, + lambda p=pid: self.show_page(p)) + btn.pack(fill="x", padx=15, pady=5) + self.nav_btns[pid] = btn + + # Footer Sidebar + footer = ctk.CTkFrame(self.sidebar, fg_color="transparent") + footer.pack(side="bottom", pady=20, fill="x") + ctk.CTkLabel(footer, text=f"v{self.version}", font=FONTS["small"], + text_color=THEME["text_dim"]).pack() + + def setup_content_area(self): + self.content = ctk.CTkScrollableFrame( + self, fg_color="transparent", corner_radius=0) + self.content.grid(row=0, column=1, sticky="nsew", padx=20, pady=20) + + def show_page(self, page_id): + # Actualizar estado botones sidebar + for pid, btn in self.nav_btns.items(): + is_active = (pid == page_id) + btn.configure(fg_color=THEME["card_bg"] if is_active else "transparent", + text_color=THEME["accent"] if is_active else THEME["text_dim"]) + + # Limpiar contenido + for widget in self.content.winfo_children(): + widget.destroy() + + # Construir página + if page_id == "general": + self.build_general() + elif page_id == "performance": + self.build_performance() + elif page_id == "integrations": + self.build_integrations() + elif page_id == "logs": + self.build_logs() + elif page_id == "about": + self.build_about() + + # ========================================================================= + # CONSTRUCTORES DE PÁGINAS + # ========================================================================= + + def header(self, text): + ctk.CTkLabel(self.content, text=text, font=FONTS["header"], + text_color=THEME["text_main"]).pack(anchor="w", pady=(0, 20)) + + def build_general(self): + self.header("General Settings") + + # UI Appearance + grp = ctk.CTkFrame(self.content, fg_color=THEME["card_bg"]) + grp.pack(fill="x", pady=10, padx=5) + + # Theme + r1 = SettingRow(grp, "App Theme", + "Select the visual style of the application") + om = ctk.CTkOptionMenu(grp, values=["Dark", "Light", "System"], + command=lambda v: self.save( + "app_theme", v, lambda: ctk.set_appearance_mode(v)), + fg_color=THEME["input_bg"], button_color=THEME["accent"], width=150) + om.set(self.config.get("app_theme", "Dark")) + r1.add_widget(om) + + # UI Scaling + r_scale = SettingRow( + grp, "UI Scaling", "Adjust the size of the interface elements") + om_scale = ctk.CTkOptionMenu(grp, values=["80%", "90%", "100%", "110%", "125%"], + command=self.set_ui_scaling, + fg_color=THEME["input_bg"], button_color=THEME["accent"], width=150) + current_scale = f"{int(self.config.get('ui_scaling', 1.0) * 100)}%" + om_scale.set(current_scale) + r_scale.add_widget(om_scale) + + # Opacity + r2 = SettingRow(grp, "Window Opacity", + "Adjust transparency (0.5 - 1.0)") + + def update_opacity(val): + # Convertir a float porque el slider devuelve float pero a veces muchos decimales + v = float(val) + self.master.attributes("-alpha", v) # Aplica al padre + self.attributes("-alpha", v) # Aplica a esta ventana también + self.config["window_opacity"] = v + + sl = ctk.CTkSlider(grp, from_=0.5, to=1.0, number_of_steps=50, + command=update_opacity, + progress_color=THEME["accent"], button_color=THEME["gold"]) + sl.set(self.config.get("window_opacity", 1.0)) + # Bind release para guardar configuración y no saturar disco + sl.bind("", + lambda event: ConfigManager.save_config(self.config)) + r2.add_widget(sl) + + # Toggles + # Usamos winfo_toplevel() para asegurar que obtenemos la ventana raíz + root_win = self.master.winfo_toplevel() + + r3 = SettingRow(grp, "Always on Top", + "Keep the main window above others") + sw1 = ctk.CTkSwitch(grp, text="", command=lambda: self.save_bool("keep_window_on_top", sw1, lambda: root_win.attributes("-topmost", sw1.get())), + progress_color=THEME["accent"], button_color="white") + if self.config.get("keep_window_on_top", False): + sw1.select() + r3.add_widget(sw1) + + r4 = SettingRow(grp, "Check Updates on Startup", + "Automatically check Github for new versions") + sw2 = ctk.CTkSwitch(grp, text="", command=lambda: self.save_bool("check_updates_on_startup", sw2), + progress_color=THEME["accent"]) + if self.config.get("check_updates_on_startup", True): + sw2.select() + r4.add_widget(sw2) + + r5 = SettingRow(grp, "Auto-Close on Finish", + "Close app automatically when processing ends") + sw3 = ctk.CTkSwitch(grp, text="", command=lambda: self.save_bool("auto_close_on_finish", sw3), + progress_color=THEME["accent"]) + if self.config.get("auto_close_on_finish", False): + sw3.select() + r5.add_widget(sw3) + + def set_ui_scaling(self, value): + scale_map = {"80%": 0.8, "90%": 0.9, + "100%": 1.0, "110%": 1.1, "125%": 1.2} + new_scale = scale_map.get(value, 1.0) + ctk.set_widget_scaling(new_scale) + self.save("ui_scaling", new_scale) + + def build_performance(self): + self.header("Performance & AI") + + # Hardware Info Card + self.hw_frame = ctk.CTkFrame( + self.content, fg_color=THEME["card_bg"], border_color=THEME["accent"], border_width=1) + self.hw_frame.pack(fill="x", pady=(0, 20)) + + # Loading Label + self.lbl_hw_loading = ctk.CTkLabel( + self.hw_frame, text="Scanning Hardware...", text_color=THEME["text_dim"]) + self.lbl_hw_loading.pack(pady=20) + + # Iniciar scan en hilo para no congelar + if self.cached_hw_info: + self._display_hw_info(self.cached_hw_info) + else: + threading.Thread(target=self._run_hw_scan, daemon=True).start() + + # Settings + grp = ctk.CTkFrame(self.content, fg_color=THEME["card_bg"]) + grp.pack(fill="x") + + # ONNX Provider + r1 = SettingRow(grp, "ONNX Provider", + "Force specific AI execution backend (Restart Required)") + om1 = ctk.CTkOptionMenu(grp, values=["Auto", "CUDA", "DirectML", "CPU"], + command=lambda v: self.save( + "onnx_provider_preference", v), + fg_color=THEME["input_bg"], button_color=THEME["accent"]) + om1.set(self.config.get("onnx_provider_preference", "Auto")) + r1.add_widget(om1) + + # Process Priority + r2 = SettingRow(grp, "Process Priority", + "System priority for FFmpeg and AI threads") + om2 = ctk.CTkOptionMenu(grp, values=["Normal", "Above Normal", "High"], + command=lambda v: self.save( + "process_priority", v), + fg_color=THEME["input_bg"], button_color=THEME["accent"]) + om2.set(self.config.get("process_priority", "Normal")) + r2.add_widget(om2) + + def _run_hw_scan(self): + self.cached_hw_info = HardwareScanner.get_system_info() + # Actualizar UI en main thread + self.after(0, lambda: self._display_hw_info(self.cached_hw_info)) + + def _display_hw_info(self, hw): + + # Seguridad: evitar error cuando el frame ya no existe + if not hasattr(self, "hw_frame"): + return + + if not str(self.hw_frame) or not self.hw_frame.winfo_exists(): + return + + for w in self.hw_frame.winfo_children(): + w.destroy() + + lbl_grid = ctk.CTkFrame(self.hw_frame, fg_color="transparent") + lbl_grid.pack(padx=20, pady=15, fill="x") + + items = [ + ("OS:", hw['os']), + ("CPU Model:", hw['cpu']), + ("RAM Usage:", f"{hw['ram_used']} GB / {hw['ram_total']} GB"), + ("GPU Model:", hw['gpu']), + ("VRAM:", f"{hw['vram']} GB") + ] + + for i, (k, v) in enumerate(items): + ctk.CTkLabel(lbl_grid, text=k, font=FONTS["label_bold"], text_color=THEME["text_dim"]).grid( + row=i//2, column=(i % 2)*2, sticky="w", padx=(0, 10), pady=2) + ctk.CTkLabel(lbl_grid, text=v, font=FONTS["label"], text_color=THEME["text_main"]).grid( + row=i//2, column=(i % 2)*2+1, sticky="w", padx=(0, 40), pady=2) + + def build_integrations(self): + self.header("Paths & Tools") + + desc = ctk.CTkLabel(self.content, text="Manually configure paths for external tools if auto-detection fails. Leave empty to use built-in/default paths.", + text_color=THEME["text_dim"], font=FONTS["small"], wraplength=500, justify="left") + desc.pack(anchor="w", pady=(0, 20)) + + grp = ctk.CTkFrame(self.content, fg_color=THEME["card_bg"]) + grp.pack(fill="x") + + # FFmpeg + self.create_path_selector( + grp, "FFmpeg Executable", "custom_ffmpeg_path", "ffmpeg.exe") + + # ExifTool + self.create_path_selector( + grp, "ExifTool Executable", "custom_exiftool_path", "exiftool.exe") + + def create_path_selector(self, parent, title, config_key, file_filter): + f = ctk.CTkFrame(parent, fg_color="transparent") + f.pack(fill="x", padx=10, pady=10) + + ctk.CTkLabel(f, text=title, font=FONTS["label_bold"]).pack(anchor="w") + + row = ctk.CTkFrame(f, fg_color="transparent") + row.pack(fill="x", pady=(5, 0)) + + entry = ctk.CTkEntry( + row, fg_color=THEME["input_bg"], border_color=THEME["border"]) + entry.pack(side="left", fill="x", expand=True, padx=(0, 10)) + + current_val = self.config.get(config_key, "") + entry.insert(0, current_val) + + # Validación visual simple + if current_val and not os.path.exists(current_val): + entry.configure(text_color=THEME["error"]) + + def pick(): + path = filedialog.askopenfilename( + filetypes=[("Executables", "*.exe"), ("All Files", "*.*")]) + if path: + entry.delete(0, "end") + entry.insert(0, path) + entry.configure(text_color=THEME["text_main"]) + self.save(config_key, path) + + def clear(): + entry.delete(0, "end") + self.save(config_key, "") + entry.configure(text_color=THEME["text_main"]) + + btn_pick = ctk.CTkButton( + row, text="Browse", width=80, fg_color=THEME["border"], command=pick) + btn_pick.pack(side="left", padx=5) + + btn_clear = ctk.CTkButton( + row, text="✖", width=30, fg_color=THEME["bg_main"], hover_color=THEME["accent"], command=clear) + btn_clear.pack(side="left", padx=(5, 0)) + + def build_logs(self): + self.header("Logs & Maintenance") + + grp = ctk.CTkFrame(self.content, fg_color=THEME["card_bg"]) + grp.pack(fill="x", pady=10) + + # Actions Row + act_row = ctk.CTkFrame(grp, fg_color="transparent") + act_row.pack(fill="x", padx=10, pady=10) + + ctk.CTkButton(act_row, text="Open Logs Folder", fg_color=THEME["border"], + command=self.open_logs_dir).pack(side="left", padx=5) + + ctk.CTkButton(act_row, text="Clean Temp Files", fg_color=THEME["accent"], + command=self.clean_temp_files).pack(side="left", padx=5) + + ctk.CTkButton(act_row, text="Export Debug Zip", fg_color="#444", + command=self.export_debug_info).pack(side="left", padx=5) + + ctk.CTkButton(act_row, text="Reset Config", fg_color="transparent", border_color="#FF0000", border_width=1, text_color="#FF0000", + command=self.reset_all).pack(side="right", padx=5) + + # Log Viewer + ctk.CTkLabel(grp, text="Latest Log Preview:", + font=FONTS["label_bold"]).pack(anchor="w", padx=10, pady=(10, 0)) + + log_box = ctk.CTkTextbox( + grp, height=300, fg_color=THEME["input_bg"], font=FONTS["mono"]) + log_box.pack(fill="x", padx=10, pady=10) + + # Load Log Content + base = ConfigManager.get_base_path() + log_folder_pattern = os.path.join(base, "*_Logs") + log_folders = glob.glob(log_folder_pattern) + + if log_folders: + log_folder = log_folders[0] + log_path_pattern = os.path.join(log_folder, "*.log") + files = glob.glob(log_path_pattern) + + if files: + latest = max(files, key=os.path.getmtime) + try: + with open(latest, "r", encoding="utf-8", errors="ignore") as f: + content = f.read() + log_box.insert("0.0", content) + log_box.see("end") # Auto scroll al final + except Exception as e: + log_box.insert("0.0", f"Error reading log file: {e}") + else: + log_box.insert( + "0.0", "Log folder found, but no .log files present.") + else: + log_box.insert("0.0", "No logs folder found.") + + def build_about(self): + self.header("About") + + card = ctk.CTkFrame(self.content, fg_color=THEME["card_bg"]) + card.pack(fill="x", pady=10) + + ctk.CTkLabel(card, text="Warlock-Studio", font=("Impact", 48), + text_color=THEME["accent"]).pack(pady=(30, 5)) + ctk.CTkLabel( + card, text=f"Version {self.version}", font=FONTS["label_bold"]).pack() + ctk.CTkLabel(card, text="Developed by Ivan-Ayub97", + font=FONTS["small"], text_color=THEME["text_dim"]).pack(pady=(0, 20)) + + # Buttons + btn_row = ctk.CTkFrame(card, fg_color="transparent") + btn_row.pack(pady=20) + + ctk.CTkButton(btn_row, text="GitHub Repository", fg_color="#333", width=140, + command=lambda: webbrowser.open(f"https://github.com/{self.owner}/{self.repo}")).pack(side="left", padx=10) + + # License View + lbl_lic = ctk.CTkLabel(card, text="LICENSE AGREEMENT", + font=FONTS["label_bold"], text_color=THEME["text_dim"]) + lbl_lic.pack(pady=(10, 5)) + + # Intento robusto de cargar licencia + l_txt = "License file not found." + try: + # Opción 1: Assets/license.txt + assets_path = ConfigManager.get_assets_path() + lic_path = os.path.join(assets_path, "license.txt") + if not os.path.exists(lic_path): + # Opción 2: Raíz/license.txt + lic_path = os.path.join( + ConfigManager.get_base_path(), "license.txt") + + if os.path.exists(lic_path): + with open(lic_path, "r", encoding="utf-8") as f: + l_txt = f.read() + except: + pass + + ld = ctk.CTkTextbox(card, height=150, fg_color="#111111", + text_color=THEME["text_dim"], font=("Consolas", 10)) + ld.pack(fill="x", pady=10, padx=20) ld.insert("0.0", l_txt) ld.configure(state="disabled") - # --- HELPERS --- + # Update Checker + upd_frame = ctk.CTkFrame(self.content, fg_color="transparent") + upd_frame.pack(fill="x", pady=20) - def _update(self, key, val, callback=None): - if isinstance(val, float): - val = round(val, 2) - self.config[key] = val + self.btn_upd = ctk.CTkButton(upd_frame, text="Check for Updates", height=50, font=FONTS["subheader"], + fg_color=THEME["border"], hover_color=THEME["success"], command=self.check_updates) + self.btn_upd.pack(fill="x") + + # ========================================================================= + # LOGICA DE ACCIONES + # ========================================================================= + + def save(self, key, value, callback=None): + self.config[key] = value ConfigManager.save_config(self.config) if callback: callback() - self.status_lbl.configure(text="Saved ✓", text_color=THEME["success"]) - self.after(2000, lambda: self.status_lbl.configure(text="")) - def _add_slider(self, parent, text, key, min_v, max_v, steps, cmd): - f = ctk.CTkFrame(parent, fg_color="transparent") - f.pack(fill="x", padx=5, pady=5) - ctk.CTkLabel(f, text=text, width=140, anchor="w", - font=get_font(11)).pack(side="left") - val_lbl = ctk.CTkLabel( - f, text=f"{self.config.get(key, min_v):.2f}", width=40, text_color=THEME["accent"]) - val_lbl.pack(side="right") + def save_bool(self, key, switch_widget, callback=None): + val = bool(switch_widget.get()) + self.save(key, val, callback) - def internal_cmd(v): - val_lbl.configure(text=f"{v:.2f}") - cmd(v) - s = ctk.CTkSlider(f, from_=min_v, to=max_v, number_of_steps=steps, command=internal_cmd, - progress_color=THEME["accent"], button_color=THEME["accent"], button_hover_color=THEME["accent_hover"]) - s.set(self.config.get(key, min_v)) - s.pack(side="right", fill="x", expand=True, padx=10) + def open_logs_dir(self): + base = ConfigManager.get_base_path() + log_dirs = glob.glob(os.path.join(base, "*_Logs")) + target = log_dirs[0] if log_dirs else base - def _add_switch(self, parent, text, key, cmd): - def internal_cmd(): - self.config[key] = bool(sw.get()) - ConfigManager.save_config(self.config) - if cmd: - cmd() - self.status_lbl.configure( - text="Saved ✓", text_color=THEME["success"]) - self.after(1500, lambda: self.status_lbl.configure(text="")) - sw = ctk.CTkSwitch(parent, text=text, command=internal_cmd, font=get_font(11), - progress_color=THEME["accent"], button_color="#FFFFFF", button_hover_color="#EEEEEE") - if self.config.get(key, False): - sw.select() - sw.pack(anchor="w", padx=10, pady=8) + try: + if platform.system() == "Windows": + os.startfile(target) + else: + webbrowser.open(target) + except Exception as e: + messagebox.showerror("Error", f"Could not open folder: {e}") - def _add_dropdown(self, parent, text, key, values, cmd): - f = ctk.CTkFrame(parent, fg_color="transparent") - f.pack(fill="x", padx=5, pady=5) - ctk.CTkLabel(f, text=text, width=140, anchor="w", - font=get_font(11)).pack(side="left") - om = ctk.CTkOptionMenu(f, values=values, command=cmd, font=get_font(11), - fg_color=THEME["widget_bg"], button_color=THEME["accent"], - button_hover_color=THEME["accent_hover"], text_color=THEME["bg"]) - om.set(self.config.get(key, values[0])) - om.pack(side="right", fill="x", expand=True, padx=10) + def clean_temp_files(self): + if not messagebox.askyesno("Confirm Cleanup", "Are you sure you want to delete all temporary and intermediate files? This action cannot be undone."): + return + + base = ConfigManager.get_base_path() + patterns = ["*.tmp", "*.checkpoint", "*.part", "temp_*", + "*_frames.txt", "Pipeline_temp.json", "warlock_config.json.bak"] + count = 0 - def _clean_temp(self): - n = 0 - cwd = os.getcwd() - patterns = ["*.tmp", "*.checkpoint", - "*.part", "temp_*", "*_frames.txt"] for p in patterns: - for f in glob.glob(os.path.join(cwd, p)): + for f in glob.glob(os.path.join(base, p)): try: os.remove(f) - n += 1 + count += 1 except: pass - messagebox.showinfo( - "Clean", f"Cleanup complete.\nRemoved {n} temporary files.") - def _reset_settings(self): - if messagebox.askyesno("Reset", "Restore default settings?"): + messagebox.showinfo("Cleanup", f"Deleted {count} temporary files.") + + def export_debug_info(self): + """Genera un ZIP con logs y config para facilitar reporte de bugs.""" + save_path = filedialog.asksaveasfilename(defaultextension=".zip", + initialfile=f"Warlock_Debug_{datetime.now().strftime('%Y%m%d')}.zip") + if not save_path: + return + + try: + base = ConfigManager.get_base_path() + with zipfile.ZipFile(save_path, 'w', zipfile.ZIP_DEFLATED) as zf: + # Agregar Config + cfg_path = os.path.join(base, CONFIG_FILE) + if os.path.exists(cfg_path): + zf.write(cfg_path, CONFIG_FILE) + + # Agregar Logs recientes + log_dirs = glob.glob(os.path.join(base, "*_Logs")) + if log_dirs: + for f in glob.glob(os.path.join(log_dirs[0], "*.log")): + zf.write(f, os.path.join("Logs", os.path.basename(f))) + + messagebox.showinfo("Export Successful", + f"Debug info saved to:\n{save_path}") + except Exception as e: + messagebox.showerror("Export Failed", str(e)) + + def reset_all(self): + if messagebox.askyesno("Reset", "Are you sure you want to reset ALL preferences to default? The application will restart."): ConfigManager.reset_config() - self.destroy() + messagebox.showinfo( + "Reset", "Configuration reset. The application will now close.") + self.master.destroy() + sys.exit(0) -# ----------------------------------------------------------------------------- -# BOTÓN PRINCIPAL (INTEGRACIÓN) -# ----------------------------------------------------------------------------- + def check_updates(self): + self.btn_upd.configure(text="Checking...", state="disabled") + threading.Thread(target=self._update_thread, daemon=True).start() + + def _update_thread(self): + um = UpdateManager(self.owner, self.repo, self.version) + is_new, tag, url, body = um.check() + + def ui_cb(): + self.btn_upd.configure(state="normal") + if is_new is True: + self.btn_upd.configure( + text=f"Update Available: {tag}", fg_color=THEME["success"], hover_color="#00C853") + if messagebox.askyesno("Update Found", f"Version {tag} is available.\n\nOpen download page?"): + webbrowser.open(url) + elif is_new is False: + self.btn_upd.configure( + text="You are up to date", fg_color=THEME["border"], hover_color=THEME["card_hover"]) + else: + self.btn_upd.configure( + text=f"Error checking updates: {tag}", fg_color=THEME["accent"], hover_color=THEME["accent_hover"]) + + self.after(0, ui_cb) + +# ============================================================================= +# BOTÓN DE ACCESO (INTEGRACIÓN) +# ============================================================================= class PreferencesButton(ctk.CTkButton): def __init__(self, master, current_version, repo_owner="Ivan-Ayub97", repo_name="Warlock-Studio", **kwargs): - super().__init__(master, text="⚙", width=100, height=28, - fg_color=THEME["widget_bg"], border_color=THEME["border"], border_width=1, - hover_color=THEME["hover"], text_color=THEME["text"], + super().__init__(master, text="⚙", width=40, height=28, + fg_color=THEME["bg_sidebar"], border_color=THEME["border"], border_width=1, + hover_color=THEME["accent"], text_color=THEME["text_main"], command=self.open_window, **kwargs) self.ver = current_version - self.repo = (repo_owner, repo_name) - self._apply_startup_config() + self.repo_data = (repo_owner, repo_name) + + # Aplicar configuraciones iniciales + # Usamos after para asegurar que el widget esté cargado en la jerarquía + self.after(100, self._apply_startup) def open_window(self): - for w in self.master.winfo_children(): + # Evitar múltiples ventanas + for w in self.winfo_toplevel().winfo_children(): if isinstance(w, PreferencesWindow): w.lift() w.focus_force() return - PreferencesWindow(self.master, self.ver, *self.repo) + # Pasamos el toplevel actual como master + PreferencesWindow(self.winfo_toplevel(), self.ver, *self.repo_data) - def _apply_startup_config(self): + def _apply_startup(self): + """Aplica la configuración al iniciar la app de forma segura.""" c = ConfigManager.load_config() + + # Obtener la ventana raíz real (no el frame donde está este botón) + root = self.winfo_toplevel() + + # Tema try: ctk.set_appearance_mode(c.get("app_theme", "Dark")) + except: + pass + + # Escala + try: ctk.set_widget_scaling(c.get("ui_scaling", 1.0)) except: pass - if c.get("window_opacity", 1.0) < 1.0: - self.master.attributes("-alpha", c["window_opacity"]) - if c.get("keep_window_on_top", False): - self.master.attributes("-topmost", True) + + # Opacidad + alpha = c.get("window_opacity", 1.0) + if 0.1 <= alpha <= 1.0: + root.attributes("-alpha", alpha) + + # Siempre Visible + top = c.get("keep_window_on_top", False) + root.attributes("-topmost", top)