)2h=ddlZddlZddlZddlZddlZddlZddlZddlmZddl Z ddl m Z m Z m Z mZddlZddlZddlZddlmZmZmZmZddlmZmZddlmZmZmZmZm Z ddl!m"Z"Gdd eZ#Gd d e$Z%Gd d Z&GddeZ'GddZ(ddifdZ)dZ*d!dZ+dZ,d"dZ-dZ.dZ/GddZ0dZ1dZ2dZ3dZ4Gdd Z5dS)#N)Enum)ListLiteral NamedTupleOptional)get_input_info ExecutionList DynamicPromptExecutionBlocker)is_link GraphBuilder)HierarchicalCacheLRUCacheDependencyAwareCacheCacheKeySetInputSignature CacheKeySetID)validate_node_inputceZdZdZdZdZdS)ExecutionResultrN)__name__ __module__ __qualname__SUCCESSFAILUREPENDING0D:\ComfyUI_windows_portable\ComfyUI\execution.pyrrsGGGGGrrceZdZdS)DuplicateNodeErrorN)rrrrrr r"r"sDrr"ceZdZdZdZdS)IsChangedCachec0||_||_i|_dSN) dynprompt outputs_cache is_changed)selfr'r(s r __init__zIsChangedCache.__init__s"*rc||jvr |j|S|j|}|d}tj|}t |dsd|j|<|j|Sd|vr|d|j|<|j|St |d||d\}} t||d}d|D|d<nP#t$rC}tj d |td|d<Yd}~nd}~wwxYw|d|j|<n#|d|j|<wxYw|j|S) N class_type IS_CHANGEDFr)inputsc@g|]}t|trdn|Sr&) isinstancer .0xs r z&IsChangedCache.get..6s-!e!e!eUV*Q8H*I*I"P$$q!e!e!erz WARNING: {}NaN) r)r'get_nodenodesNODE_CLASS_MAPPINGShasattrget_input_data_map_node_over_list Exceptionloggingwarningformatfloat) r*node_idnoder- class_definput_data_all_r)es r getzIsChangedCache.get#s do % %?7+ +~&&w//,' -j9 y,// ,',DOG $?7+ + 4  '+L'9DOG $?7+ ++4>9gtTT :,Y UUJ!e!eZd!e!e!eD   . . . OM0033 4 4 4!&uD       .(,L'9DOG $ $tL'9DOG $ 9 9 9 9w''s0/ CD1 D9DD1DD11EN)rrrr+rHrrr r$r$s2 (((((rr$ceZdZdZdZdZdS) CacheTyperrrN)rrrCLASSICLRUDEPENDENCY_AWARErrr rJrJ?s G CrrJc.eZdZddZdZdZdZdZdS)CacheSetNcN|tjkr)|tjdnR|tjkr.|d}||tjdn||j|j |j g|_ dS)Nz"Disabling intermediate node cache.rzUsing LRU cache) rJrMinit_dependency_aware_cacher>inforLinit_lru_cacheinit_classic_cacheoutputsuiobjectsall)r* cache_type cache_sizes r r+zCacheSet.__init__Fs 3 3 3  , , . . . L= > > > > 9= ( (!    + + + L* + + + +  # # % % %L$'4<8rctt|_tt|_tt|_dSr&)rrrUrVrrWr*s r rTzCacheSet.init_classic_cacheUs5()BCC #$=>>(77 rctt||_tt||_t t |_dS)N)max_size)rrrUrVrrrW)r*rZs r rSzCacheSet.init_lru_cacheZs? 9JOOO 4zJJJ(77 rctt|_tt|_tt|_dSr&)rrrUrVrrWr\s r rQz$CacheSet.init_dependency_aware_cache`s5+,EFF &'@AA+M:: rcl|j|jd}|S)N)rUrV)rUrecursive_debug_dumprV)r*results r razCacheSet.recursive_debug_dumpes7|88::'..00   rNN)rrrr+rTrSrQrarrr rOrOEsd 9 9 9 9888 888 ;;; rrOcd|}ii|D]|}t||\}} } fd} t|r| r| ddsk|d} |d} | | j|| }| | | t |kr | || }|<| |g<d|vr|d}|D]|dkr||nig<|dkr|g<|d kr|d dg<|d kr|g<|d kr|d dg<|dkr|ddg<fS)Ncd<d<dS)NTr&r)rE missing_keysr4sr mark_missingz$get_input_data..mark_missingss"LO 'N1   rrawLinkFrrhiddenPROMPT DYNPROMPT EXTRA_PNGINFO extra_pnginfo UNIQUE_IDAUTH_TOKEN_COMFY_ORGauth_token_comfy_orgAPI_KEY_COMFY_ORGapi_key_comfy_org) INPUT_TYPESrr rHlenget_original_prompt)r/rD unique_idrUr' extra_data valid_inputs input_datarFinput_category input_inforginput_unique_id output_index cached_outputobjhrErfr4s @@@r r;r;lsT((**LNL --AY (6y!\(R(R%>: ( ( ( ( ( ( ( :   -  -*..TY:Z:Z -(mO%a=L #KK88M$ s=1111  -C #N1    '!+ N1 <  " P PAtxHQH]Y%B%B%D%D%Dce$fq!t{""%.Kq!t&&%/^^OT%J%J$Kq!t{""%.Kq!t---%/^^4JD%Q%Q$Rq!t***%/^^4G%N%N$Oq! < ''rFcp tdd}t|dkrd}n+td|D}d}g d fd } |r| |d|n<|dkr | in*t |D]} ||| } | | |  S) N INPUT_IS_LISTFrc34K|]}t|VdSr&rtr2s r z&_map_node_over_list..s(DDqCFFDDDDDDrcDfd|DS)NcRi|]#\}}||t|krnd$S)r)r3kvis r z;_map_node_over_list..slice_dict..s6DDD$!Q1#a&&1**QQ"-DDDr)items)drs `r slice_dictz'_map_node_over_list..slice_dicts%DDDD!''))DDDDrcrtjd}|D]K\}}|r|D]}t|tr|}nt|trr |n|}nL|: |  | t di|dS |dS)Nr)r8before_node_executionrr1r appendgetattr) r/index input_is_listexecution_blockrrrGallow_interruptexecution_block_cbfuncrpre_execute_cbresultss r process_inputsz+_map_node_over_list..process_inputss  *  ' ) ) )LLNN  DAq A!!%566!-.. ;M"T"4"4Q"7"7"7ST   ")e.?u%%% NN-73--7777 8 8 8 8 8 NN? + + + + +r)r)NF)rrtmaxvaluesrange) rrErrrrr max_len_inputrrr input_dictrs ` ```` @r r<r<s/C%88M >a DDN,A,A,C,CDDDDD EEEG,,,,,,,,,,,(*~q FFFFF !  r}%% * *A#NA66J N:q ) ) ) ) Nrcg}dgt|dz}t|dr|j}tt t|d|D]\}|rog}|D]T}t |t r||9||U||v|fd|D|S)NFrOUTPUT_IS_LISTc g|] }| Srr)r3ors r r5z%merge_result_data..s111A1Q4111r) rtr:rziprr1r rextend)rroutputoutput_is_listis_listvaluerrs @r merge_result_datars FWs71:.Ns$%%,+%GAJ00.AA 3 3 7  3E ' 'ad$455'LL1&&&&LL1&&&& MM% MM1111111 2 2 2 2 Mrcg}gg}t|||jd||}d}tt|D]}||} t | t rd| vr| dd| vrrd}| d} | dd} t | tr%t| gt|j z} || | fd| vr|| dd} t | tr%t| gt|j z} || |d| f8t | tr%t| gt|j z} || |d| f|r|} n&t|dkrt||} ng} t } tdkr&fdd D} | | |fS) NT)rrrFrVexpandrbrc0i|]fdDS)c*g|]}|D]}|Srr)r3r4yrs r r5z.get_output_data...s*///!A$//Q!////rr)r3ruiss @r rz#get_output_data..s1 G G GAa////S/// G G Gr) r<FUNCTIONrrtr1dictrrHr tuple RETURN_TYPESrkeys)rrErrrsubgraph_results return_values has_subgraphrr new_graphrbrrVrs @r get_output_datarstG C'^S\[_uGXfgggML 3}%% & &// !  a   /qyy 1T7###1}}# hK x..f&677E"F8c#2B.C.C#CDDF ''F(;<<<<Qx..f&677E"F8c#2B.C.C#CDDFv&&& ''v777!-.. 71#C$4 5 5566 NN1     # #T1I . . . .! W  "7C00 B 3xx!|| G G G GQ G G G 2| ##rc||dSt|ttttfr|St |Sr&)r1intrAboolstr)r4s r format_valuers7yt AUD#. / /1vv rc *789:|:|:} |:} |:} |:d} |:d7tj7} |j:gjQ|j :pi} d:| |dddjtj ddfSd8 :|vr|:}g}|D]\}}|s| |g}|D]q}t|rK|d|d}}|j||}|D]}| |\| |r| t|t!|| }g}d}nFt#| | :|j||\89j'| _ d :| d j|j:}|%| }|j:|t+|d rt-|8d d }t)t/d|Dg}89fd|D}t1|dkr*|D]}|:|tjddfS7:fd}:fd} t7|8|| \}}}t1|dkrK|j ::| | | d|dj! d:| |dj|rIg}!g}"g}#g}$t9t1|D]}||\}%}&|%|! d|&f(|%D]*}'||'rt?d|'d+|% D]\}'}(|" |'|(d:})|!|'|(:|)|(d7tj7} t+| dr | j"d kr|# |'t9t1|&D]J}t|&|r3|&|d|&|d}+}*|$ |*|+fK|! d |&ft)|"}"|j#D]*},|,$:|"%+|#D]}'|&|'|$D]%}-|'|-d|-d:&|!|:<tjddfS|j:|ns#tPj)j*$r1}.tWj,dd| i}/tj-|/|.fcYd}.~.Sd}.~.wt\$r"}0t_j0\}1}2}3tc|1}4i}58+i}58 D]\}6} d| D|5|6<tWj2d|0tWj2tgj4| tk|0|4tgj6|3|5d}/to|0tPj)j8r2tWj2dtPj)9tj-|/|0fcYd}0~0Sd}0~0wwxYw::tj ddfS)Nr/r-executedr)rC display_noder prompt_idrrF executing)rCrrcheck_lazy_statusT)rc<g|]}t|t|Sr)r1list)r3rs r r5zexecute..@s)*\*\*\TUVZI[I[*\1*\*\*\rcNg|]!}t|tr |vs|v|"Sr)r1r)r3r4rErfs r r5zexecute..AsH###AcARAR#^++qL/@/@$%/@/@/@rc |jLtd|jdgggd }d|jt dS|S)NzExecution Blocked: ExecutionBlocked rrB node_typerexception_messageexception_type tracebackcurrent_inputscurrent_outputsexecution_error)messager send_sync client_idr )blockmesr-rrserverrvs r rz#execute..execution_block_cbIss=,%.#,%/$(NN-R5=-R-R*<%'*,+-  C$$%6V=MNNN+D111 Lrc4tj|ddSNr)r set_default_prefix) call_indexrvs r rzexecute..pre_execute_cb[s/ :qIIIIIr)rr)rBr parent_node real_node_id)metarzAttempt to add duplicate node zO. Ensure node ids are unique and deterministic or use graph_utils.GraphBuilder.override_display_id OUTPUT_NODEzProcessing interruptedrBc,g|]}t|Sr)rr2s r r5zexecute..s-N-N-N!l1oo-N-N-Nrz$!!! Exception during processing !!! )rBrrrrz(Got an OOM, unloading all loaded models.);get_real_node_idget_display_node_idget_parent_node_idr7r8r9rUrHrrVrrrrr rrr; last_node_idrWsetr:r<sumrtmake_input_strong_linkrrrrhas_noder"radd_ephemeral_noderrXensure_subcache_for clean_unusedadd_nodeadd_strong_linkcomfymodel_managementInterruptProcessingExceptionr>rRrr=sysexc_infofull_type_nameerrorr format_excr format_tbr1 OOM_EXCEPTIONunload_all_modelsadd);rr'caches current_itemrwrrexecution_listpending_subgraph_resultsrdisplay_node_idparent_node_idr/rDr~cached_resultsresolved_outputs is_subgraphrbresolved_outputr source_node source_output node_outputr output_data output_uirrrequired_inputsrrrcached_outputs new_node_idsnew_output_idsnew_output_linksr node_outputsrB node_info display_id from_node_id from_socketcachelinkiex error_detailsextyprFtbrinput_data_formattednamer-rErfrvs;` `` @@@@r executer!s I--i88L33I>>O11)<K^pt"u"u"u"%c*\*\o*\*\*\^`&a&a"b"b#####o###''!++,LL&==iKKKK+3T4@@ ! ! ! ! ! ! ! ! !$ J J J J J3B3k}O]4^4^4^ 0KL y>>A   IMM)($3#1$0  $&&   +  yRamvFO.Q.QSYScddd $ 9NLN! 3{++,, @ @*5a.' <$"))5,*?@@@@$->>#3#3pp$--g66p"46oV]6o6o6o#p#ppp.7oo.?.?;;*$++G444%.]]3H)%T%T !44WiT^___%.|%< $)$=j$I "9m<<;AVZ^A^A^*11':::"3|#4#455QQ"<?33Q8DQ8JLYZO\]L^+L,33\;4OPPP"))4*>????|,,L R R)))\BBOOQQQQ) 1 1''0000( L L..tAwQKKKK2@ $Y /#+T48 89k2222  ! >=== -... |  '<<<<<<< <<<\^^ Q',,!  %#% . 4 4 6 6 O O f-N-Nv-N-N-N$T** ARAABBB i*,,---$!$R,",R002    b%0> ? ? 7 MD E E E  " 4 4 6 6 6';;;;;;;/<2 LL  #T4 00s?GKW>!W>>].&X>8].>]. D])#].)].c>eZdZd dZdZdedefdZdZigfd Z dS) PromptExecutorFNcX||_||_||_|dSr&)rZrYrreset)r*rrYrZs r r+zPromptExecutor.__init__s($$  rcbt|j|j|_g|_d|_dS)N)rYrZT)rOrYrZrstatus_messagessuccessr\s r r%zPromptExecutor.resets-$/doVVV ! rdata broadcastci|dttjdzi}|j||f|jj|r(|j|||jjdSdS)N timestampi)rtimer'rrrr)r*eventr)r*s r add_messagezPromptExecutor.add_messages  TY[[4/00   ##UDM222 ; , , K ! !%t{/D E E E E E - ,rc x|d}||d}t|tjjr.|||t |d} |d| ddS|||t ||d|d|d |d t |d } |d | d dS)NrBr-)rrBrrexecution_interruptedTr*rrrrrrF)r1rrrrr/) r*rpromptrrrrrBr-rs r handle_execution_errorz%PromptExecutor.handle_execution_errors "G_\2  b%0M N N F&"' NN C   4cT  J J J J J'"' NN%*+>%?"'(8"9";/"'(8"9#'#8#8  C   .u  E E E E Erc Btjdd|vr|d|j_n d|j_g|_|dd|idt j5t|}t||j j }|j j D]?}| ||||@g}|D]6} |j j | || 7t$j|d||ddi} t+} t-||j j } |j j } t1|D]} | | | s| \} }}| |||j| | ||nt=|j||j | || || | \}}}|t>j k|_!|t>j kr |||j| | ||ng|t>j"kr| #n| $| |dd|idi}i}|j j%}|D]9} |j j%| }||d || <|d || <:||d |_&d|j_'t$jj(rt$j)ddddS#1swxYwYdS) NFrexecution_startrr2execution_cached)r8rexecution_successrr)rUr)*r8interrupt_processingrrr'r/torchinference_moder r$rrUrX set_promptrrrHrrrcleanup_models_gcrr all_node_idsrris_emptystage_node_executionr4original_promptr!rrr(runstage_node_executioncomplete_node_executionrVhistory_resultrDISABLE_SMART_MEMORYr)r*r3rrwexecute_outputsdynamic_promptis_changed_cacher cached_nodesrBrrrrrrrb ui_outputs meta_outputsr>ui_infos r r!zPromptExecutor.executes< "5))) * $ $$.{$;DK ! !$(DK !! *k9,EQVWWW  ! # #8 ;8 ;*622N-ndk>QRR  % %  @PQQQ""$$$$L! 1 1;&**733? ''000  " 4 4 6 6 6   /%1 JJ$)  + + +(* $uuH*>4;;NOON"k1>>@@O00 1 1''0000$--// c%3%H%H%J%J"$// >;Y[jltv{}AAA$+DKV]_iksu~AOQi%j%j!r%)@@ _444// >;Y[jltv{}AAA666"99;;;;"::<<<%--// c"  !4 Y6P\a bbbJL;>6688L' < <+.,,W55&*1(*;Jw',3FOL)%$##D (,DK $%: ;&88:::q8 ;8 ;8 ;8 ;8 ;8 ;8 ;8 ;8 ;8 ;8 ;8 ;8 ;8 ;8 ;8 ;8 ;8 ;s,LNNN)FN) rrrr+r%rrr/r4r!rrr r#r#s  FtFFFFFFFF857C;C;C;C;C;C;rr#c V |}||vr||S||d}||d}tj|}|}t|dit|di}g} d} g} d} t |dr)tj|j } | j } | j du} i}|D]}t|||\}}}|J||vr&|dkrdd |d |id }| |F||}||f}t|tr\t!|d kr"d d||||dd }| ||d}||d}tj|j}||d}|||<d| vr>t%||s.|d|d|d}dd|||||dd }| | t'|||}|ddurd} ?A#t($rv}t+j\}}}d} t/|}ddt1|||t1||t3j||dd g} d| |f||<Yd}~d}~wwxYw t|t6rd|vr |d}|||<|dkrt9|}|||<|dkrt;|}|||<|dkrt1|}|||<|d krt=|}|||<nR#t($rE}d!d"|d#|d$|d$||||t1|d%d }| |Yd}~d}~wwxYw|| vr| sd&|vrI||d&kr=d'd(||d&||||dd }| |d)|vrI||d)kr=d*d+||d)||||dd }| |Ht|trl|}!||!vrf|}"d,}#t!|!d-krd.t!|!d}#d}"nt1|!}#d/d0|d1|d2|#||"|dd }| |ɐt!| dks| rtA|||\}$}i}%|$D]}|| vs| r |$||%|<d| vr|g|%d<tC||%d}&|%D]k}tE|&D]Y\}'}|durPt|tFs;|}|dur|d3t1|z }d4d5|d |id }| |YZlt!| dks| durd| |f}&ndg|f}&|&||<|&S)6Nr/r-requiredoptionalTFVALIDATE_INPUTSrequired_input_missingzRequired input is missing input_nametyperdetails extra_inforbad_linked_inputzBBad linked input, must be a length-2 list of [node_id, slot_index])rR input_configreceived_valuerr input_typesz, received_type(z) mismatch input_type()return_type_mismatchz)Return type mismatch between linked nodes)rRrX received_type linked_node!exception_during_inner_validationz$Exception when validating inner node)rRrXrrrr^ __value__INTFLOATSTRINGBOOLEANinvalid_input_typez&Failed to convert an input value to a z valuez, )rRrXrYrminvalue_smaller_than_minzValue {} smaller than min of {}rvalue_bigger_than_maxzValue {} bigger than max of {}z(list of length value_not_in_listzValue not in listz: 'z ' not in z - custom_validation_failedz!Custom validation failed for node)$r8r9rsrrHunionr:inspectgetfullargspecrPargsvarkwrrr1rrtrrvalidate_inputsr=rrrrrrrrrArr@r;r< enumerater )(r3item validatedrvr/r- obj_class class_inputsrxerrorsvalidvalidate_function_inputsvalidate_has_kwargsargspecreceived_typesr4 input_typerzrVrvalrRo_id o_class_typerr]rUrrrFrrreasons combo_optionsrX list_inforEinput_filteredretrs( r rrrr-sII## I x (F "<0J)*5I((**L|'' 26677==c,BRBRS]^`BaBa>b>bccL F E!y+,,8()BCC#*< %m47N g!g!1? 1l1[1[. NJ%%% F??++4:"#v$a#  e$$$ QiJ' c4 U !3xx1}}.c"#v&'(,*-##   e$$$q6D!$< 5L),7DAc!fIM -N1 $<<Q>>1!;#F#*(!' EMM%((( " 6{{Q%t++fi(R#Ii Js2 H.. J.8A+J))J.2BM N :N  NcD|j}|dkr|jS|dz|jzS)Nbuiltins.)rr)klassmodules r rrs0  F !! C<%, ,,rc t}|D]}d||vrddd|did}d|gifcS||d}tj|d}|dd|d d|did}d|gifcSt |d r|jd ur||t|d kr d ddid}d|gifSt}g}i}i} |D]} d} g} t|| | } | d } | d} nq#t$rd}tj \}}}d} t|}ddt||tj|ddg} d| | f| | <Yd}~nd}~wwxYw| d ur|| t!jd| dt| d kr?t!jd| D](}t!jd|dd|d)|| | fgz }| D]\}}|d } |d} | d urt| d kr||vr]||d}| g|d||<t!jd|d|d| D](}t!jd|dd|d)||d| t!jdt|d krdg}|D]0\} }|D](}||dd|d)1d |}d!d"|id}d|t+||fSd dt+||fS)#Nr-invalid_promptzACannot execute because a node is missing the class_type property.z Node ID '#'rSFzCannot execute because node z does not exist.rTrprompt_no_outputszPrompt has no outputsrirexception_during_validationzException when validating node)rrz%Failed to validate prompt for output :z * (prompt):z - rz: rU)rxdependent_outputsr-z*  rzOutput will be ignored prompt_outputs_failed_validationz Prompt outputs failed validation)rr8r9rHr:rrrtrrr=rrrrrrr>rrrjoinr)r3rUr4rr-class_ good_outputsrx node_errorsrurryrmrrrFrrreasonrBrb errors_lists r validate_promptrseeG  vay ( ((^,,,, E 5"b) ) ) )AY|, *..z4@@ >(V*VVV,,,, E 5"b) ) ) ) 6= ) ) f.@D.H.H KKNNN 7||q'.    ub"%%55L FKI 1414 /955AaDEdGG / / /JCBE+C00N5;r77&4!*!4R!8!8 G"7A.IaLLLLLL / D==   Q     MF!FFF G G G7||a m,,,%SSFM"Q ):"Q"QfY>O"Q"QRRRR 7|n $F#,??#4#4 H Hq  )$$W)9)9k11%+G_\%B &-13*400 G,  &B:&B&B&B&B&BCCC&-[[F#M*Y 1B*Y*YfYFW*Y*YZZZZ()<=DDQGGG M2 3 3 3 3 <A  N NIAv N N""eI&6#L#L% :J#L#LMMMM Nii ,, 79"   ud<00+>> $\**K 88s$!D E4AE//E4i'ceZdZdZdZddZGddeZdedfd Z d Z d Z d Z d Z dZddZdZdZdZddZdS) PromptQueuec||_tj|_tj|j|_d|_g|_i|_i|_ i|_ dSr) r threadingRLockmutex Condition not_empty task_counterqueuecurrently_runninghistoryflags)r*rs r r+zPromptQueue.__init__sU _&& ",TZ88 !#  rc|j5tj|j||j|jddddS#1swxYwYdSr&)rheapqheappushrr queue_updatedrnotify)r*rts r putzPromptQueue.puts Z $ $ N4:t , , , K % % ' ' ' N ! ! # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $sA A""A&)A&Nc|j5t|jdkr[|j||&t|jdkr ddddSt|jdk[t j|j}|j}tj||j |<|xjdz c_|j ||fcdddS#1swxYwYdS)Nr)timeoutr) rrtrwaitrheappoprcopydeepcopyrrr)r*rrtrs r rHzPromptQueue.getsQ ^  dj//Q&&##G#444&3tz??a+?+?        dj//Q&&=,,D!A(, d(;(;D "1 %    "   K % % ' ' '!9                  sAC1$BC11C58C5cFeZdZUeded<eed<eeed<dS)PromptQueue.ExecutionStatus)r(r status_str completedmessagesN)rrrr__annotations__rrrrrr ExecutionStatusrs=.////s)rrstatusrc |j5|j|}t|jt kr9|jt t|jd}|&tj | }|i|d|j|d<|j|d ||j ddddS#1swxYwYdS)N)r3rUrr)rrpoprtrMAXIMUM_HISTORY_SIZEnextiterrr_asdictupdaterr)r*item_idrDrr3 status_dicts r task_donezPromptQueue.task_dones= Z ( (+//88F4<  #777   d4<&8&8!9!9:::*.K!"mFNN,<,<== !%''DL # L # * *> : : : K % % ' ' ' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (sC.DD Dc|j5g}|jD]}||gz } |tj|jfcdddS#1swxYwYdSr&)rrrrrr)r*outr4s r get_current_queuezPromptQueue.get_current_queues Z 4 4C+2244  s tz223  4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s?AAAc|j5d|jD}tj|j}||fcdddS#1swxYwYdS)Ncg|]}|Srrr2s r r5z:PromptQueue.get_current_queue_volatile..sBBBQqBBBr)rrrrr)r*runningqueueds r get_current_queue_volatilez&PromptQueue.get_current_queue_volatiles Z % %BB$"8"?"?"A"ABBBGYtz**FV$ % % % % % % % % % % % % % % % % % %sAAAAc|j5t|jt|jzcdddS#1swxYwYdSr&)rrtrrr\s r get_tasks_remainingzPromptQueue.get_tasks_remainings Z A Atz??S)?%@%@@ A A A A A A A A A A A A A A A A A As)>AAc|j5g|_|jddddS#1swxYwYdSr&)rrrrr\s r wipe_queuezPromptQueue.wipe_queues Z ( (DJ K % % ' ' ' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s !6::c|j5tt|jD]}||j|rt|jdkr|n3|j|t j|j|j ddddS dddn #1swxYwYdS)NrTF) rrrtrrrrheapifyrr)r*functionr4s r delete_queue_itemzPromptQueue.delete_queue_items2 Z 3tz??++  8DJqM** 4:!++)))) q))) dj111K--///    usB4C CCCrc|j5|mi}d}|dkr|t|j|z }|jD]4}||kr'|j|||<|t||krn|dz }5|cdddS||jvr-|tj|j|icdddSicdddS#1swxYwYdS)Nrr)rrtrrr)r*r max_itemsoffsetrrrs r get_historyzPromptQueue.get_historyso Z   A::)"7 ..:FAF{{!%aA$0SXX5J5J!EFAA        dl**!4=i1H#I#IJ         !                  sA#B<8)B<.B<<CCcT|j5i|_ddddS#1swxYwYdSr&)rrr\s r wipe_historyzPromptQueue.wipe_historysu Z  DL                  s !!c||j5|j|dddddS#1swxYwYdSr&)rrr)r* id_to_deletes r delete_history_itemzPromptQueue.delete_history_items Z 1 1 L  \4 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s 155c|j5||j|<|jddddS#1swxYwYdSr&)rrrr)r*r r)s r set_flagzPromptQueue.set_flags Z $ $#DJt  N ! ! # # # $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s $9==Tc|j5|r|j}i|_|cdddS|jcdddS#1swxYwYdSr&)rrr)r*r%rs r get_flagszPromptQueue.get_flagss Z ) ) )j   ) ) ) ) ) ) ) ) z((  ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )sA A  AAr&)NNr)T)rrrr+rrHrrrrrrrrrrrrrrrrr rrs5$$$    * ("#@A(((((444%%% AAA(((   &111$$$ ))))))rr)FNNrc)6rrr>rrr-renumrrntypingrrrrr:r8comfy.model_managementrcomfy_execution.graphrr r r comfy_execution.graph_utilsr r comfy_execution.cachingrrrrrcomfy_execution.validationrrr=r"r$rJrOr;map_node_over_listr<rrrr!r#rrrrrrrrr rs  666666666666 ````````````========::::::d         ((((((((D %%%%%%%%N:>Z\+(+(+(+(Z****X*($($($($Tf1f1f1Pt;t;t;t;t;t;t;t;ncccJ--- j9j9j9XB)B)B)B)B)B)B)B)B)B)r