From 50b418113c12bef1c63967af24b3a1fce9ab0931 Mon Sep 17 00:00:00 2001 From: Chenlei Hu Date: Tue, 27 Aug 2024 11:38:39 -0400 Subject: [PATCH] Double click node title to trigger edit (#655) * Update litegraph * Double click edit node title * Update * Auto select all * Update litegraph * Add playwright test * Update readme * Update test expectations [skip ci] --------- Co-authored-by: github-actions --- README.md | 7 ++ browser_tests/assets/single_ksampler.json | 76 +++++++++++++++ browser_tests/interaction.spec.ts | 26 +++++ .../node-title-edited-chromium-linux.png | Bin 0 -> 59413 bytes package-lock.json | 8 +- package.json | 2 +- src/components/common/EditableText.vue | 3 +- src/components/graph/GraphCanvas.vue | 2 + src/components/graph/NodeTitleEditor.vue | 92 ++++++++++++++++++ src/scripts/app.ts | 8 ++ 10 files changed, 218 insertions(+), 6 deletions(-) create mode 100644 browser_tests/assets/single_ksampler.json create mode 100644 browser_tests/interaction.spec.ts-snapshots/node-title-edited-chromium-linux.png create mode 100644 src/components/graph/NodeTitleEditor.vue diff --git a/README.md b/README.md index 01b7d7573..19dbdac92 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,13 @@ https://github.com/user-attachments/assets/4bbca3ee-318f-4cf0-be32-a5a5541066cf ### QoL changes +
+ v1.2.38: **Litegraph** Double click node title to edit + +https://github.com/user-attachments/assets/d61d5d0e-f200-4153-b293-3e3f6a212b30 + +
+
v1.2.7: **Litegraph** drags multiple links with shift pressed diff --git a/browser_tests/assets/single_ksampler.json b/browser_tests/assets/single_ksampler.json new file mode 100644 index 000000000..ae14cf557 --- /dev/null +++ b/browser_tests/assets/single_ksampler.json @@ -0,0 +1,76 @@ +{ + "last_node_id": 9, + "last_link_id": 13, + "nodes": [ + { + "id": 3, + "type": "KSampler", + "pos": [ + 0, + 30 + ], + "size": { + "0": 315, + "1": 262 + }, + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": null + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": null + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": null + }, + { + "name": "latent_image", + "type": "LATENT", + "link": null + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 156680208700286, + "randomize", + 20, + 8, + "euler", + "normal", + 1 + ] + } + ], + "links": [], + "groups": [], + "config": {}, + "extra": { + "ds": { + "scale": 1, + "offset": [ + 0, + 0 + ] + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/browser_tests/interaction.spec.ts b/browser_tests/interaction.spec.ts index 91fc29b19..1107e4901 100644 --- a/browser_tests/interaction.spec.ts +++ b/browser_tests/interaction.spec.ts @@ -132,6 +132,32 @@ test.describe('Node Interaction', () => { }) await expect(comfyPage.canvas).toHaveScreenshot('prompt-dialog-closed.png') }) + + test('Can double click node title to edit', async ({ comfyPage }) => { + await comfyPage.loadWorkflow('single_ksampler') + await comfyPage.canvas.dblclick({ + position: { + x: 50, + y: 10 + } + }) + await comfyPage.page.keyboard.type('Hello World') + await comfyPage.page.keyboard.press('Enter') + await expect(comfyPage.canvas).toHaveScreenshot('node-title-edited.png') + }) + + test('Double click node body does not trigger edit', async ({ + comfyPage + }) => { + await comfyPage.loadWorkflow('single_ksampler') + await comfyPage.canvas.dblclick({ + position: { + x: 50, + y: 50 + } + }) + expect(await comfyPage.page.locator('.node-title-editor').count()).toBe(0) + }) }) test.describe('Canvas Interaction', () => { diff --git a/browser_tests/interaction.spec.ts-snapshots/node-title-edited-chromium-linux.png b/browser_tests/interaction.spec.ts-snapshots/node-title-edited-chromium-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..3878a01d82da8a5fdc1f98eb56db1043c019ab4a GIT binary patch literal 59413 zcma&O2Rzp8`!{}7%1Bm1k`W=7DfpH%G z^MK;fIrz^xJ4JCMBJVrdJOV+9kQ5PCa!yZWkiS7=Y-jWrRI*p6tzy}H?oj(1sOv@qT#)JRP2txP`@}RxCAJrM zJFe1PGU83Ep(eA_`@su{PYouVCB?<~Xu?N{7g}0cSTstOlAJ~gn2W@^Ic2(WRhW=p z^$U1D-b?7fpbCDsG;-bRp6>3KuKgOk?D0&0)q?#0{>7VjT#L!Nv9(on_!+^|ER3=4 z%pWJ+JBW*o&~3CWAF`cnz7zE*t?R|znO5}-&0=H%V|1Y zv*Sq|$y?4f`&EPAXvX;qne)5vKfhj1t8RbwbaO}Z7KlhU4H7xu&w@xJ6UIZP{;=TE zU?e({IvqVd*&Qmk8y*@Gt1v|^1fl``vkoiCdvEjcb!X~fY{Y|6XMXaSwkAy0lb)2A zn3%*w{-4XJTaG}CjXwx>Ub}*Yz`YVA;=}iRz2$Is75(DHF#EJW|Bi6xc}2+kQwD+f zB&P6Y+L-4Y4h|0ayx5-==YLRQkgP|@Ny17%dwPBik4lojxYn7_-oc?5ev9ulmOpPn ze*4vdkFd{)4uYH(O_=qncR_G47RkjcXYYR_jrm-(1WkE)IhMZWm;U^m_Z4Mox}?NJcX#(S{jN*Csd;&_nM$9_ z*Xo{M2*kNLP-u+%I3hZF=j3ozF6q7lp5=<gBxFVIZ2TOiV~9 zoy;F6>3#L;)qA8e`uY>$LMJbzA|fJW6M5L)b)e~*$P+e=+whR#h$5V`D)<0?!Zbje4$frjoBqNonbBx=g~mckg(}zQ=JGpX`*@&fDLwG)Md)n9EZ|d=7x-Ev7NxjisT3VXlaY-w& zmA;9lkQ9#{HE!(s{*#jv9u?fnm#Hx(#_E0HUX@MWzjG%uEp2jTxN>D> zMWe)m*L~0C(W7s$Qbf#}d+i*ZWBD=ZvPrJT2iqAbo&yIZ*0sl6q6(X{onFhueMBtU z{IR>J!ixGN;v`Mew@)^j=CielC6e%w=QFP|&#vu})gY)EiKXa-HqDNHMjcmkNJg+! zZ~e6PI@E}hHqzK$$j-0X?$wZ$mCdo5E>ou`#CiK|U@^Zo*SEzBipr8OQ{Pbv6 z$l<=0vGHt-jwi3vie_bHxrnIfMRfGjNs7}SCY(2K-h|@>wWs-N#Pz18rrg}zNIJRZ zc`JBHN(MFQUl;P^N1AL*wW{Q4rkc8*9PLL%MG2kkrL`I|Ffkp^XQUW)CWo!Q?J?V3 z9UblJsvnAc_whQ1(b7n@My_&cQIY#*2e-ut@!6+EG{1d+jinqtfT!H;yYqU-TAZC? z@39w>TO}w19XYoi!;MDw-T9~|Y~^{X;8lGJjU(yW6*3YMk{dS`XJ$$~k6n$8jnflp zT2-`NZqw2l4VBqGPM6lR%SNy9n1gNjl8pC@dm{VOZ~0!w=2air0~^ZS_djp9l9Q8{ z2=oaG3N9}%OB*{qeR^9m0=7kVW@drl@r_~V|35nlT zE*v#apsLtOK7Bg<#sBiUt)-=9_-sW*#WSA7g9F#2f~+hv`iVcq4uK%SVPbzkULNz^yEif~@$mA>#B)NW`Pj3Nz-_$~`(ogss8#fk5D67c zbX(+49nKrrw7J^(O5+MYUf((8ds=+pC|et^psig4N8m}evWv5Gj!v!T=1j+<4+Kt^ zTbi1v{Ft??oHwQB)#o>pZ5UWMbbx}u_@gv1MJ+Dg~$tl>k}?iCr@$Vu_FefMa~KZgy02xWw$ z(G)_w>0AY+Sumy6u$2J5^V&)YRSgFDpZlgeowyQxG&kI|3<>cl%I5<2tgYwd0 zRA`yyzP<3IK()%G>s?6+SJh$H_F`XJS{j{PvZj)fUv2is+}taen0m~Z*w{tOdryms zi`5v3jIMn0_V%u?I_pLV-QQ4r%k%P9+T%F<{r!!<;atV4;v_Bylb3R zwe|GIo5OAh?TuY1>^~YDJ?ZW4w(E$$S7J;=L=+trm8(&@0+k^_^1Zfx9lTq1e=Yq*=26v?jv~|U#H6Gvml~D_OE)(+ZTIW)o-uNAataD+GenVM2f%$z zOe8Dp55)@(LcQu|35keCDjY(}X_%Ng8X6i7Xz$&-N6f6L+aLPo4dH7E`>i>Jkfxu; zn?plG3=9mh;jYy+Eor&s&ij(X)yRwvT8#H9nWDFz$7JxYig`Y?O*M8ddT=Xub!p4d zRv1GxojI%8?qUDWj}}=5S8tocVvj#7@8sVMeLz{Km0anxy3%*^;Kb@}NeSS;o`!}C zEZHBF7!nc^+y?VM>Uf?Wj#@*rqo#hC-#0rmb25(WWn(h~HzfQfUwV%ji&n)}zi~>x z023dd+wwp$Gz7gzaJow1lvJG~AP+y@8MMwP~dxWdH51oifGJdlE{Xzh4+)a&$k zH=K-DQAeltXrMJ8?S>!`-g6U9>oO@&m54AD91tik-3To0UB^r-?7++J(z#rq|KGm& zxD1{q*^f_-{A9f(i=S)UIib^6i^z`1oKAlQOCN{RN_1iR}*B#XTUUeB-?Yop@O6GHzREY9xXFs|fBM}>U zcw|?!z11y8M@L8Px3I7PkoNrf^PZatqer`5r`(4)1L!qaoCsYL1wv5;!kD%X^xrJF zCMBucpIP;Wilq(12UpJT+uiw`R`UP-*^LbDd83gyS+i?h+>4!;utBUoij0pB77A|C z=c;VOS<3qM?c3VgT1K*K7A!(dO-)4wsZ;4^Dm;vzKYwOrXIqcf4CfndIZ5Weefw52 zl2)tQwYaE=laVo}w7Y_I(NB@MMkLr%o3-E@E-?f$zTCND1eyFR1&uTAJW^s$9u~Abu3=R(V^>G7QSooDW+nKUj z&|_}hAt58vGjHGiYqXxT;as&g3sFcoxj-;_B#LfDv{%lCj|g}XQW3^|=Haou|5$K3 zPG$XhukJ@v^Msq%gYX!5HXk=_OC4LbUzOu$Gw)^elNT1QSJCl!TA&IWSu|n_>Z^~h zua4VtF_T8g7)ubD?|)sk0z;Hp@qK#w7ixmvMn`pWl_wijGrA=|D9#uT@rF7$I>vX* zKv5bPv4ed!wzw!2L9=pF?YKM;dYyw-CccsOTyvY|O+oiE@xYzB`0)oSDk@G++#FE@ zO-&y<{a&=5hW##1x zgx5$&=2llbH65VP{P^($^D6Dwbz`XJ&du}Q`OoV5`}fydD0a8DL@+S@kw6}2k0LHz-_jAJPJH2fS^Ai&RWjL6m5 z*)Jeq0<*b#9J8s*R4Oi<;5nsXB3<~qqv0WAQL$jpY_m1*(dWBm$9{Fi)oVq;Colfl#|rx;qd3r>=YC! zAEaU?ir>J7kIfs-%E}5MW}&@(TPBX(pYla>vzXDj;pbY@5A^g><>?bSjDdd9NcQ&h zuqE_~h=??{v`iWh6UVGi0(7Z4-q9#l7ts5H=0mxrtJ|*2x-?K6@|5GC7z^mHgSPev zP;$wLB2`Af7`>IZ`duwr3z2j&URBwY% z^zB=tenFQ>k#>|B?5k*KZwU!^34*XM`EGA0aa)g6xooBnOW~07&y59maHZ*FKbU;E zRaM2GD*v&2{y-C%Q}F%=H9aU~CG3aV;H%(gC9Hsdem44FSPhOgG#-G!i_V$GW za?PabJy+XqRz;kQ;v4PUoZ5syysRo0e@XAV&kFI7F5z>8~ccz1W2Epkla zS8S!bi^9V@UvOdZ=kVwkIKLl6Am-46->v=JAry`4FbaN$hty>5+mVJIR0_gCQ$oV7 z*mg!f-+fe6KXh4>2$5F}SA&z-3p2m~u_9oOF< z@D?YEX}gByugM(KFdkZeuZTjAD5S}d{d$;KlB_W+iK_O0Y#R|gKapGbAx&t)q4pYe zKd2=mS|&lCDp1W)&h9b0moQyV_0R9%_tDhSa^WXOek?3}oT+5SNgCP8`7`YN!+?fy z41XjrGGb!lAdxSV>jMJ=2Q_A@1D6oG+11rIPix5M1O9v%{>Jx;cfwoXE)^FSgBn0R zOvbteh2YT##Z0B7q$FTw{N!>dT4dIuf)5PU46 zo-5GMbw>OM8YZI4$dBdaF7VwOTo!c{*Fn$9&(9zIr1#LuYGr?O)>cnKLPAODSL(yS zr4eI*x+Rv2IjfAhceRLW(Wtg2I~r02Q<+DYOERLOqZLsbhd%h0B)fpXO{ya3gj8YO z^!^tx3Y~s?s}`XD=iV{kQtq8pUuTo)hL4NG4Eha_Y&79FF)`+x@p`7TB$A*mLRUzi z@9kA?IX-f9^=`O8Cvb0g0D*JgwLqi%_Z#cZ6 zc+YHY)v8_Z2^yWW?r*fQxJ`A^NXAR2Lp7S6o!upI)!P*;sUWQ&5^F!)lDjC~s&U9o zUhVd!zpcC_4h0;Vrk~vjW>4rK6dmumX|W1LaXDJ3su+-VY0S-H%K+7|6ZIF@4*&CO zfbGWJN=zGT6+Pz>YXGW-wFV+iPEO+Dfzq^BgG3&E_*oz4NHCUZ8?r<+KwAe05Lj$( zR@TPG1_748ac8o}QbCKRrly&>d1taf2p$$LZpwWJ24OtXu$f<(kAbWciUPz1P^glr z#C7l9_+eQ^#mNM5?JEfyqLAsm^+~{czHT0f0~t!ZvdYR+KuNZ?ws0H~lZGbo-@kuP zzGvS1`~v!=AKnoI5fi(ssxj^dzvvQlPFB%a_zXDzY)a~z`^nqe7ez*PgX-e4HdbF(_rN_xG=yll(#aYyY)d$WPK`Tn&d*B$ zqwpC*LPGG7u+KtXydbH&Ngw>Jtqm3r%l}<%ALwtBuR8@8Lv(yH(9Vwkjt$ZK9y9R@ zD&4&~`};GMxagNEF`~6$3+J~;WzTQB0N9;IGBLd_JE2 z=@=cOmrod?whgyI$^w}#0~+hO(lc#m3rkL8vB2uGbJ2Ka?FC71jr$8n{0}WJFKc%$ z@kn=baty|%n?}%x-ooGf5YlhK6(@b`wFD&|Yiq7@HWV#)!IVF$&PC#9<(jW0&@fp^ zWS^D0gTQlFC9jd9Tr)2)P#ol5>sjl;k`Bi!OgZW4=^s8k1(I;QP!1jSc>O?caD&2{ zyrfe4=AZjYq7Dk!WJ@?5#=DOnKc=S}y-(m!g_`WD`mRae)Y8&F)qm&e*wUbQ4spFc z)}hwY7UFac&O?@JTN_XD5*bs-bcmB-j9#K5Q4m20r#6LtG%bemxH8e`KVu z5K56{U|4`=exXvs$Y|zU)Lr0%zw)!cxHpUp)UJ1D2J%FtaqGMc_3E6!5mBh-*L!s0CPI7F--rqMe-|67?J0R)B`S19lp5Tdj5) zahV0J3=Ty<2munM<`}R##-OVwa9JKSP@H_So0TosJOK_&OGg)OUwN?nM^+8chQG-H53jivYDEKHaz@-eKx1ewBPz zLpG?ty}757i$L=op#`zj?CFCZqo$@tJzRv(@lo^>w8GfbHjss+_kpyo3!9o|I<$}` z$AePbS^g4aS7%%)aWCEBVO-l_Tps)GAdk>vh>VwM#?oA)uh{{T6?+9iLut)TYw zc(omn+tEY_OOCnQP|G<${9GA-F4em}LC8xGX#(}L*B_Q99txh%#mhG5m*(fo;p75- zTYN*u#%4Rw7zAKAJ1a{ct6XyhupX^!;@82puv|gGk?!uu zepko+jcN8c3#eIG{`&Pk7lHe!=kEMSeJDK>+CsykS;or97@9s0G>}^SC2KYCusMHX z?J|$Ul7xgoxcTu32~c}@Jr1_szkfe7GXv0S{B`^D=g&cC;&a={iHv;w=uxmHGZZhO zXHzd60=q$UTeo6lj|+YGvDmzi{Rya1`(rv3HKZspGdRz?X?7w{(a42)iaNOSeU19hNNP)V#dQPOApFC)|Qc{;W-pVn@ zu;|oOiKmSEVP1`9(E(XiW=7q~X}1F+LmhuziT(*&|Vl`i5`XRU#~od zYrv#UQB!(V%s7EcIjxpRzp3UwzZ~0}7wT`RvJk9+&Jt|Tin^A0AdrN=Qft%rxsB`Qeu6%1SpwLql7$#|x2WuW*nZo^QG zM`dZLQ@C2-!>8VDM`uMAQTI@WhG4uy%`&@4ok=%t@J7Han5j;pgMST@IbAQ`6HPpyjd0F)}fQl~;ZEaM4S=8;<|T$jhsfz#M%j6O&Gz zp7a4DW#cgHOyrG>i@Ouq8sM^gW9}cI9V*I$+gM4l?TwCExO$SrV|z=xm7bP1;7;S? zp0yF~26qZZK|#;O-rV*U&|y$b!qI7w-(lg+FkfSH^DRGD&1dsJKLD9-X>26pcmC9} zUoyPiyB5LeX;WjPs`dU2eEjjL zDf{s+7mx7e2;lVLtUT7z3X7q?%gDI2oS0hCX_NKw;|nk^E?=(nJih;!gor4Bjt+NY z##!D8&UpB<`1IVqOmg*481P9@FWu1l?t7n_^ihI3nB&YK80Xg%G^*ApVIDi*^3u1iieYH0Z$UA@UY)o)AOMOcarSp&7{|_6`%)> zR(8a)O@d`=U}Qua({?<~;x#`#4PEdxNaf@iPmPS48yl-Ozw^PWaFJkZYiom!yU_Q- z9{s;=ycTqi#ib?9VzVCj7`B))-B4G1XQ4NVGDOKHa53@n_Up1j2~kp3Mp>G@vrD73 zwI4oA@6V>71XAYK&d$>|ofFu>>{D>fD1TN;stwxvsN1Rl|FwP8K>+`l!&?K6%$JUi zWn8a4P+R|qf0LV?LZt#s)YMQkb-Uh)T34-K(#~G$&DD4qg}CZis`Ut`r0SI+W^^}3 z>IT=uA{l$O`wMib+V$oeaPZ|bl@t^doFCswH#DI@tD{aYDthyd9w+dj0-G}ftTx`b-xw-PLZU(xu(TnNG56;&t&QlRC`U+}U^*du|(ckz+Q3AUht9A|C0o(KK zZx9HwxAej9=$T`r6yEe(q|;-`HGdN5HsKs#@^Us`*Y~YX`akwwE@j87VmY@vu<17|)q4uRwVR=oBr-T*A z1HZRi&58#+a|`|Z-ZZx<^Xbx^^Azm*PA=a`r*3goS5B@I%5d+mU$9iqAE0#jBlI|c zYvkl$7aAB$f|iVZso}k3B=mngB=AZQ0^yA2S8aR)x(41g2#O6qa(` zngjLuiGsrG=;+@32Y*T!0?|wuCibu!Ab+7MBl+4*(i=AdE40RhU!!D~H|g_&hmX+t zveYuVpC~DfS-v%7kCUgz#=&7`WNeIc0;(u4|EksS7KZ*8KTKrmr%#{O;Mm|;sX|XC zBa_BMlZ?RfN39NAp^S_SI9nL0;BDO{#PXrM)NgTi33X{GFG9EkfFnVW;roOO^0Knu z;ltO0Cx&iohf;<8vX!y~XXys7pV#UNcvrnlIN+agYivX}tqXi=KO|M8U9I*%*Q2Kk!iXTv}?d*7N_o%F6ilr&g5QGH; zjh$VMcUNX*r3NM5nsZfMUETNZvak+aCepMhk`fBi$HU}$Kv2&gj4dsNmPW9XU|W#u z(VZJ{2s?7Y&pCZ;vg?{E{{ojjcw*fdoSw8U47Bs!IJdG+G-Yd<{Zfk41%gcM6%Km82 zwkkLZ06x@KIXn?4RkE@#`z@3iqF8E=J~!#ludE2VY|z-1*Xw@F%hLu@0t!qlGLa@* zi6OBOw63dkvW#k<{TjySwhurMDlq*=q9qAy7F4-($sq6;txN}68@zI*KEw7cEXNUqc`vu!ALVtJws#^9XvKz8cs(}p$1=MP>1*&g$A+g*X2 zjo{miK{@Y8UnUkBHJ@otztBj&q!6n4`0*=55+GFdsg)H`0t{q? zbVR@46-}#qk=rwCShL*8|04mhXbw&{O-G~9h{2`;Tn#lAxG~3V_1x&`VyJD|A3v5s zK*ZPN_bZzr2q_q|#|32Eb`%%f9h;fi@lLj)JC}T2f8Q|kB9$NBbG+bf;S}al3w}T5 zHv(&9zdJfCp?ryoib8RQ9_#WW{KA-?2+Ao1nfx7nVZXEjA@W7r^g#0equ`mXC*_Tg z1kD=UNzyuh(61@+cmxCC9cYjCPUj8|c`8fwt-yD-csNz&4-DXfGf{H7`EIy@?&>}4 zC7L?uTmPYkGO@5gPk@$j-)+YNa!E+~J9q9dFa*E*2#b)y=kzjt9!eDiMy{gS0+0fJ zS?#vV5cMrKHrCG%ErR9=!xJ&FfO=ik5{tM8l&S^#O+eIuv6jJ|gBxo#Tyf27n;jg= z$X5ILpSK4Og+A^5-2=@PI!6=4G?K~uE(BiEva-=_)1amp74BzdBu_jm=O<@@I1>W{ z7D{(%$HCt082TZ6*#Hc7ef>34Fu?>OPDhgO!99Yy z{QLnP5s_Gg;gcsl{+Eekai+ju+}m>o^MREF=m#v9*b`a{x^p<6`=~8TA?aFKS*cTI zLj`dFMn;Q)B2!?^R8&-8@xc4Bkzj+3_cA=Z7D6j$s6!hXWnv;DL6Av2kOf$AXk01` zQP7g(AUp;cT;P8cH*X$8l+M}Jb;7zF6zXeOqQb)GaHhc*umC9D9EOfhdbW~vu}B5N zlul#832i68A3)tfRv^E6H8Le7U!ERV7X&oB(sVf0WR#i3exK@)2vPWUz zX4nmGV5pH;Vz5g^L=x{iWTmAw0L28E0FVk$SAan*UrD=CMcuf38 z2`!WRdwZHy&g&q!ojZ39+*gJuEEQf8JwOh2b{t5PgROZooWSYAGEFOcdwXy=pcX?m z=dq$9Q~=uzeygD}Nb4CI8G()2YREq1&zm))fa{3QnAWBG*jM>p`oP(oAnh<&?yhdu^G~FJ}uoSVA42xRY^r5%uVvwlVj|cd?y}%$uaN#)+y?Ns zlMG@%;I>P?^%b8WO9x;A+$Ac&=J?mHLFel+K2JtWtO5zIm@Eh-Mzx{RkL~ZLv$7cY zDN8}qfYJo2X4yC4%V2FW7bGE;_SArc@Wg=E1v>@qWy3VEPC%U%6$2)mT%4SVaPnFv z3vf8{0?V@Y|xCKKX}_czh(-8@pa+kSFhg6 z)8irC1u0IOK0i@b=7OUa{0=t3dZ^{#A@1Jv-zMd)@c1!E08k%S+Hyg0p{JLSl)M9d zjDbPls}r0H@_v>T!L8lh@USpYA;@sV8KOWY;;q3IRe*nmvnMV2@Zm!d5rAPtAs<>a zhd{ZTn={!7TUss5xoVUoI}18+I2;JL5h<<6C05}yY zchS!dfOmbv@cZhX37lFgHoY%?V9^2V02DF5eE?u>#|2X|0!?^Jl^~Q7qcT^&f(|`h zr}MKBCn*OzdsTHc>pz^YiE``9yxl+Tg{gUP^Z(alR*<5(_NIcu#Ui+r&B4w*5 z<{W4lFJ53IP6P1-lLEpL5j69&vw?W=AeWqce{kzH*z4D^FA1h}CR&4=*)n7Rpt`H8 zi%=9YDZi^v&g|TJ9o+WkOA8%4`%hPoJ32Z#KxIG*g4P77khT~W z4IT4R|MSlu&=ay}dqEw6(v)u6(zy@@^$lcvh}if1{!LGab(1AmCl4TZ69Eo+pZ<4wC`+6cpidpi=(HOV5E(_$0gMWlB%NmoLavc^>2MWWnzw zB66~`3y1agfZM@!!0TCgQf|On>>AWODl!|ZFfg8-@phNT%V(1TZMSuHhQD|rAuSE| z$t){Bp|`lAsp%b21u`7;Q}z1VCh!%we=d{aINRe%;@G%2!O2 z{d$*JKOIqs4DHp!5h=kGxo&%}n4ov`SgRf80yeG?{QxisV-JK_{VXgNqQqT1@KO981bUu6ADLh8~G?rit+TGmt->5u- z)hFQ2KUyhb%^NzU*)PY?aE5=A5p@l@omYYpTr)F2{>@4x{HsKvvJ!YEe_J+nNZT}) zKN1AIaU1dinfHuDmq*qmGP<`*Vt$f%d1(Cmp5(%4!XS+ns7m8CN|a7Nr~L0piQ?`1 zss=~fZWsQ6-(&bw3k%;S*YS{G@&M7!?g112wbd{A2^$_5$^k&w)FgWAHBeAUD5pDy z)_PjM03zngc;oQkb$Nt}>j?G%&Q0Hq`59Fgc1H!1jU3Uhr=T$BsoM~PQQRm1L_DpgfSzpL2 zu5O*nX|m%b`!%tBY^f8ypHWbHS$y^onG=xlpFYIdpL;ZN9nOb_ACk>~8@FlHXG4N- z3pNIi;6DCag~H!fkkQtMG! zIIopX`M?Y43A;1oW}lSi=9GuxiYJ87A)yjEt;M9z%KtBh}NP?@Fl1Exnh;>dO}f zK9vFxPD^_Thgjs+QPcCuK5>*w1iJoF^*j1U`F)e8gM=7pzMYAIOkV`F!Nj@G)BPP+ z@)hH&r&QFi1f8AMAVguLLJC|Eq;sfLuV25WlT8FE3sB*S-cRvE; z3MpY#MnO>?q~*sAatpMth(^Knxrb2Rg?KDxesF*Sod7Eh8lb z-RHBVq^<4x|AxuWM6JPEFE1%6DI^l9u0Al{5O`DQ?-a?Je4PLqtZH@AtLSLR;6CcM zhhZW>?G&0)d+sM~EVb^ZCmu&^Fi8MGpE@Tg(44+~TgWYe96xO&C_G0OpZoT;fI0$U zi|^mXFl3VM7lZ8%Y2C6#Hh%si*f1BYW^Ke`>#J%ey9116U{xL7?jPKW}`WC(&X?AvXa|2}` z{4vMVlViYskZ&avb#Zf>RF{*JqYZ+f>}4#hFY}xUc1uug#61HF;l3^`EiuNl(MiYF z&2HLem_IZB+DL6E0k zD?p~!^{aspC{JJIwwt#d*Sk75KQD>rCqeV&I@#4o{7{?lJ}3A1B($=3X%SDUd^=}P zA)n(62p>idfHH+&Nk=;`j6{Bcd8GpwT7t|5oAnoqUcZ)IKC6%S7B8=3SkK^;FoEpN zL&QTbmWI#WIyiWP+Y~$x_{(Y2U!|3Q$wm-N@}=Gb$dYS)hGC=K-Cg34CYY{iz75HD zo)vYCG8>3)y?}!FSWdt{@X4+VjuaTEZP82#>`#MX*p9rc2AX>!0_Ev9rlqI2Z?u+` z@qpg2wPl~!T~Su{ie?@*#l(dEZV3;^JNj?yiyV-j;URk|K?C*DsPK9?8R%#@kW%8Z zB(+lycM1h?-Zl;B5>iJ%AYiyHjpj@HBA;N#cf2_*7dN5xqpu}D>a`*wBTeH+pe!`$ z$MHE?g{v2!?Rh&Xhtu6N0lwrMrcP<=@_@RIR-_ zHD&1b67C-4ih$$eBY{T(6Dr}5vh2*v%`L8mJj!EN*Zati)z!xkD=PbxnHj{3gN^;m zgmX_27%&b7hCD+Qz#=$r7^&Xg2pC2k7;ptYG4pW-OkbE|JXBCtCL$wiAGfjDWkJq? z#R9(r=D}8$Z$hp_fS-S8co@^i#>vUr#N<=;GOKu*4hR~=3@p_S?pG5mUylc6+@8#t+WMEaGigx}S&LSjSfcJ%o8AwZqHt82s{wf5|QR)!e$ctex+Ws$wS9$!H z!*)XCNK^u7Kcp`V+0`IPmXTp>XgCD|2>Oxy-`?GT%$Z>pQDT6$)~>Dwwq5;(k*|`vdi%jFmAy|k(Qjr&yDp=2_&G!TYPz~2)W6N3mESYF?g_)1e# zQ{TTggyaW|&s0Ee_Fpv=j``*jaaNJdg_eRH{W(6kBWsQ%I!zfaL?C-T- zU!$WT*a>fF3R$m881k}8nZ?d2h87Gvaql-AA8X6*K{wtxmc}%%xaH5TZXV`97@ae- z0CH5){q|@X8ykaQh;RL?SFdbf9}Z@V(R}I6U#)vvBV}S`H3ET3oPc@n=B8|5K<(-0ka3DKhH)z@D}@f13P;p^@G6{E$xpXQ0t~d0+24Q#^x4gPD4`m;@F$DhQY(Kp4Z7H)M~^H<6>^o~tw4l^SbHVr>2LuD=N!w(AstN!XZ_6bgL&*RipvA=KAa_=pQC>gtaa2uHHRXe5s+pN-ad zP!H#gdwX5mQ8mK-eer+C;7cnPmL?}B#|S`Fe=PydJ#Y(GKJ<(iAa34eW`^d0qwUtu z1kLV+1P?)6=ND;9}+ z>7+MRd>rT^`cdh^Qhy<2pjbU&hQ|VDR z=g9HL&c07kpBDeg0<7krtD3YCD{EQgV9oPRZTXSCwdQYjRaUjk{w?!9=d zdhSYBH(#?(EjJhjSJ9||{vcDA8?_LKllzY#23?s(qXURe5ZQBZ*p?_g z<3ZkR#@?7V78Vwe>wEmTTfP+CTRcuS1Nb6Pc4$Z)ZEZK^XU?t~{bk$q7s{zF1Ij-? z0VaN1SQY{yz{$l0bXzt>P(Vn?>;2$ak0mFBG!eVfpF}u0Mg$E+zQbFthBP@}&+4k3 zy7Kzfs~`E7Ve$x+q_?ZY-oo%?gRPAX(mK^Shzc;a{jI9on z7v#%Q;GIS1&unpD)dFrK7`J*nZV;coUX!1esL9;2h~{K(PapLtSNZUTrAXtrjUO^~ zTMT6`Q4fC<+{#D)4a~`qy`a?-TrX|c`48au+u>OjT0;y3CEjK#J@lMq^Lh6XgqubhH^B-cgT{l|k;+T&e7JI?wv?(9z)A17EwxHTX! zkeid!{b;=fz(vfX4*dz!Wf~ZkkBA^>nFTq{5;a6J z(*Zoo*ZhVv<%q|w7Q|Zwe6()8c0bvlz3i#1pzs{eb*JC>HbE=otB$|(tupG=ke%-A z53hPULB9m`{B*4W7nb)SMy`4>OqZGWWIch{Ml-m^>l6n8S8n8KmTyc&%B}n^n1si3 zK#U${9|0ZjfCr1374z{qpZG%%5;yLGLIMIFAnrnf7#j-<5CKrL38Nd-X3Hts~{vm z5Htn%Yi`*CJ>WR}0gTB5ckre-8=4ZM!wIA&favdoW zJvni3^_)JuYLf>JJbI z5EmDJOy~dv08)TIIByaXzKM?q-lL$<<*j}7C?7N`h|ZnD4CK>CFy*rx{uDS9ByP7{ zJw!#DDjXKqUJb+ZMsD)hc&E?*9k!&Jg1G>=2~>Unj({EO>gvLAlaTm|in$l4=IPV| z(;&ZoT}?;l6b$YO=6>)WV6M;a2ZSMnj<+8B*8lkR>rGr7D&Gl=#>?vzpw0NynH_^_ z(zFVM#W1!OE_i@JR{%rUOLKD%Fpl>o!(r%i3NWmiVBhHIDP-pN_F)IAU z)CTsn?}%=$^4-@Gmrfb~)H2qrF_&7<@gCMZW=!eihKC>&UeD- zMbH&Mbb%2w8iH*nze$?~aokVx^h>#X2{JJ;$W-vGAjdroDF!I*04)FwK=KI!9jKrb z1T!E!Md=4pJ*0(DThU=rIY@+nfQ#COH8? zL`ur)%_ z1tqz%MstsU)W!rJ`v5R+d=gjy`)TC-_;}Z7Pf`Gx=cqz*{x-|G5}E1#@Esr#5X?`N zhX@m>^c5BN{gGY2fB*jZ(}!;Y(kPMhHr&mSEfefk7#ta)-BW*P92(9R5O zMoxW|fk!4K9Ycz_2A-}FLd5h4Oh*YCLQzcrFEH}&0c8Oq;t_4r1VJ>nZcPA9fs+fW z4C*;7_(-V1YwPR#fIT5Yl@J#P=2!#&D7vxzaJvce^ zgn-EU4y1*IY9UOW80_ZiN`OX15VTfj0Zs#zHOa_Eq~wWs?)Z%qEe#E~m7#L*b;0P2 zj*f;{i#jD9)EXc_mr`^&Ndb{SAQpISNJxWk-aXPVd3wWUt%MFEP{k}P$*F7hXKuL5 ztEstw!v!laT;q}Oj-J1y97Z0BitNFdg+l?g2$ZSjw3j;W>!P5FKre(1YYFQJfo6~usa9a(b z?#AKhskWM0|BoNuco40m#(0;LgFT8xSG}i7PY8ozNwO^)zsbU9YE(^So7WP4eGi)i-arw8)GMXuL~`c*|Q67XbE zex@}Mr~oiMU+FAKLttbD!BA5(GtdOupP>st#@+Jk=&X9ilHQAm*2qm4W2t=HkM3 zTmXs}>^o<_W~j8)dJUKOZHc|;2uMg`V`2jFurM(*VH|3AcXr(wR- z=Xcqd0wlvOm!Fr1nq9D;C-4-3+MuO%vu#!uq|Li`FMDN2?4K4ojoQi#A5QL#($TrS z`V_>7kM$KRxQwBArTWu|SwU`Yb*a5tX0hOax!d5tprz^R=i=gA4ZdH&!CE|Ki*KI< zVT&@{I8XJ!@$1p?`pMD8*BE?Rq&FgeR%g6wbT)C_bFm(SFAfvv zj4uV=pDKcY$1yN~!}Kr%^`Hsl9H6UfAx)@f$Ov7!bO|0DFc#+xV{I@Co|;MpXM>gX z73B-Cjb0z^cl(bw$`UQro7w=ijLg-6DFWzN0dCE})H{q|FadlxXo^iq8z_^}rg)EETIWC1+IwQUF~pS6M?%Eojsf`;q~i9}r(2efSJO4t75$sU>t_8c9Gj zk)5+b+rJ*8(oF)Fn_6c9Kg3EKfhqyA1_T9IB3pULWGyThk?jzfuhBFl*9;WEHwa^7bmxyoKJR`~}9qw2{> z)jkS3n46>E)WF~%J~F?0XJ8Z_Ken{A1ZI2{=_U*?tikhQ7JhUzG#=Ul=w$$+4xx6>+oQbawTNGYt8RO1;{Xm_AtqZ!e2^9{xG?W>_+|f~ zlO(X=`OVxv#m8F;0){CmDIG?S=?RCGf#X5(fc*ml+90y+J>H6CGYAe24iz(Sbv*#+ zf?m}#;$vf)%L+quco=K3PiAdM6G53PojJ$41!ZI>{y-meU7(CTPbXk3R3?H(dplVy z4dPW)ertW#8_3BK=kJayoGW;Tqc3{1G5G$AYYupK7sM=b$oiz~^DVhrVfA)8`*l0D~SljfP=}y^Sh>v%>fh?D#?ge!-*(da@RR3 zKN#@|tmx&8la`%n$8A#NuOGB6=CC%2a*9Uge2n>@UoU^FIwTO(atVgVI?U3c+{;YGh)9FdamYgJPjL}4aHi(H` zN*29>u!(|YhqUJh#d%%sGhprgx~b!(W~LG;c&%h)nlM05amaUpmC=?5$}Nu%CFS86 zJ=Ps77m6qc*NC1F#>=4p1Mz`VQG|wgK*vZVMTs}&1OrD-4n23ze!aK&mMH_uu3?D6 zp!#D6LZzQ2y;QfR#~uf?O0V|pIv)VWp^==pUd2e%_UFlZRhM`YIs)XPJjUaSbD%jM zah$y&JWUUphJQdnGM^I;6(_`YpdkDa{9#TXva^CCkr3a30U15S4Zg-Y{qKK&Y-|}G zvxbL+4YEUxCJfILfOY!wd=U^+eSLjVL!&x6;dog&IgLrpfVMDF2L{xuqKY0+zU?yk zUyQv8I96-hKK>M;5-LTMA)+0jLT1sR650)tIVAIxc`l+7LQ)AyWlKornS@kAGS4Ao zCiC<^*Q55g-|u_h_xIn&(Q(vHtY@uz-S>5!(`73my?b{bkjd58o`C;Bqy!#8-09s^ zlXCN6)SGnC+0R_z3F*JZvr4E1)nlG^QvJXVhvXGl?g_6j%LYrYQ^DLa`%S*?MiJ0y z6@WO5z*lO?Pr?1i#GoYBN4Y>tb(nh-&?U%m3qI>CjfeU8P34;??+}ZhMm#5EZ2ZxCES$ot+43=RKj=3&JJreh@eqkyrC|2znBi(yC=8_PQ67&B#eIgP8y<7}O6h3;Hj(02Uzo0uiE4+XNC!HQ zYll2_x>i-%d!Va;*B3Dk(pT9^jfNw5f{yedH2rk@ec^V zC(N<#I;Qi;JBmp*r`{%(S`Cqj(k@$7qNzxkCwW33uz`)^I9%TrWXhQ|Dg}Kdw8+I+ zGHh8Katts?!u4O-o1~R91+xs`U)6X!Z113W4fdD!*l13mn8O#TCy1hU#>xX=jY22s z*5#xc@T{{q57u7qv!l$viu(S8&{9#4&FbywP|utpaxdL3iH0NS0`=3}{;ez8JV#z| zpL)rzZf>oLo;dLauUZpMa~+h9NoUjW$l+xO=H7AjGY*)v*RQLfnTc#b!McD0hKAFH zs^0vdrJ9-=fN54GJM_!Fi)&w-9)5zNywPkpZlDD;*%=6W*jc8Qp^{3aS97oc;J|3A z2PGcj1s=$_Nyst4^EGssmHKOyNkSQ1)%;+k{Wo7oP@jZJX!5Y%5<5O9`tLkdoYPRG zm6gR7AdZyykLm%S#YQt=j%8hw1OBg6P3ygJ#S#IB)72A{=L8|0N_q2U4<8?RX&v>Q zXoFT?t1zq?m~_ih_PClrEyls|q+Tu@-yCRGY%u9`7?u+}V#-(3q`#pel0YONc3o^t zkal*ZtGD6WtZ35eT(--)=jvS1)17IK0w0FM9YwHY+(q1n$B$de3Pi|PSJM7G9z=iZDjRk{9;DB^p$Jw{9bm;SHKppqns=$0!7XFOiQH;^f5LX-DQ3>`GYA z=(Qvwl%e|svL_Kim+`^9J@LZS*cem*YXi%$hv*A2do0af0lBAAZ|y1(dJ<_Gy>O^v zk3{0<*terNju;tJ;iJAGU(_{5$1d|YIC#JD7j72+7iZ#N4F?|+^zdQ-v$U_vO4LVB zo%)2m9H6>Ukp+6k1qW)C%h(|rK2iG zy8Oux+LP&vNt&5xc)0;ig=}aqM_5cn!>Mz$A`qXKaexNGOv98L@|4MxI9!BRO` zRjhg3GvZU{i!TEMU0nxE>t3Ns`|I3GTqk-#RQe#)MjBIM6B5i}@dp$DrAkt*iT|xz zjcKM~%CRuJDnr|buR;c@N|a1%Rh1CjwtanlXw3oRBY8~}iB33@ctVV^poxY|Q06{=4to?lp0043yUKXL3`R}QcJE^k1Yju9;h;hI zNLqVFvmdlwDF`P+JBe50;lqb$orn7+w4xArYD_8T3Y3C>>j2#ArCj=p3kyIa�=F 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 literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 4eeeb1b39..e9bf79b3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.2.37", "dependencies": { "@atlaskit/pragmatic-drag-and-drop": "^1.2.1", - "@comfyorg/litegraph": "^0.7.49", + "@comfyorg/litegraph": "^0.7.52", "@primevue/themes": "^4.0.0-rc.2", "@vitejs/plugin-vue": "^5.0.5", "@vueuse/core": "^11.0.0", @@ -1881,9 +1881,9 @@ "dev": true }, "node_modules/@comfyorg/litegraph": { - "version": "0.7.49", - "resolved": "https://registry.npmjs.org/@comfyorg/litegraph/-/litegraph-0.7.49.tgz", - "integrity": "sha512-IBST5qinpDR1OU7KezuK5hRKbQxP3KNWjrceA36feZffw7MvQexHX2ojNK0ByYN6weMLKGiFNxIfPWMZcr/NvA==", + "version": "0.7.52", + "resolved": "https://registry.npmjs.org/@comfyorg/litegraph/-/litegraph-0.7.52.tgz", + "integrity": "sha512-MtJn4VH3eaP4XYfLQVrc00vJGamOfl5a5xMRJpW8tfPO2iPaetshoB9dkDfNJ6fSolzMt24qvZttkPdh2aNR1Q==", "license": "MIT" }, "node_modules/@cspotcode/source-map-support": { diff --git a/package.json b/package.json index 53c8126ae..9c37d4d8e 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ }, "dependencies": { "@atlaskit/pragmatic-drag-and-drop": "^1.2.1", - "@comfyorg/litegraph": "^0.7.49", + "@comfyorg/litegraph": "^0.7.52", "@primevue/themes": "^4.0.0-rc.2", "@vitejs/plugin-vue": "^5.0.5", "@vueuse/core": "^11.0.0", diff --git a/src/components/common/EditableText.vue b/src/components/common/EditableText.vue index 942c5607b..6d767037a 100644 --- a/src/components/common/EditableText.vue +++ b/src/components/common/EditableText.vue @@ -63,7 +63,8 @@ watch( inputElement.setSelectionRange(start, end) }) } - } + }, + { immediate: true } ) const vFocus = { mounted: (el: HTMLElement) => el.focus() diff --git a/src/components/graph/GraphCanvas.vue b/src/components/graph/GraphCanvas.vue index a53197476..995342a3c 100644 --- a/src/components/graph/GraphCanvas.vue +++ b/src/components/graph/GraphCanvas.vue @@ -5,6 +5,7 @@ + @@ -12,6 +13,7 @@ + + diff --git a/src/scripts/app.ts b/src/scripts/app.ts index 48373ff3b..1450f7746 100644 --- a/src/scripts/app.ts +++ b/src/scripts/app.ts @@ -3006,6 +3006,14 @@ export class ComfyApp { ) as Vector2 } + canvasPosToClientPos(pos: Vector2): Vector2 { + const rect = this.canvasContainer.getBoundingClientRect() + const containerOffsets = [rect.left, rect.top] + return _.zip(pos, this.canvas.ds.offset, containerOffsets).map( + ([p, o1, o2]) => (p + o1) * this.canvas.ds.scale + o2 + ) as Vector2 + } + getCanvasCenter(): Vector2 { const dpi = Math.max(window.devicePixelRatio ?? 1, 1) const [x, y, w, h] = app.canvas.ds.visible_area