§
    Û×j’T  ã                  óT  — d dl mZ d dlZd dlZh d£Z ej        dej        ¦  «        ZdSd	„ZdTdUd„Z	dTdUd„Z
dZdadVd„ZdTdUd„ZdTdUd„ZdTdWd„ZdXd „ZdYd(„ZdZd)„Zd
d
ddd*dd+œd[d7„Zd
d
ddd*d*dd8œd\d<„Zd d
d*dd=œd]d?„Zd
d
dd dd d*dd@œd^dE„ZdF„ Zdd
d*ddGœd_dM„Zd
d
ddNd*d d d d*ddOœ
d`dR„ZdS )aé    )ÚannotationsN>   ÚoverlapÚdurationÚnew_shotÚ
loras_multÚno_end_imagez\[\s*/\s*([^\]]+?)\s*\]Úpromptsú	list[str]ÚreturnÚboolc                ó4   — t          d„ | D ¦   «         ¦  «        S )Nc              3  óR   K  — | ]"}t                                |pd ¦  «        duV — Œ#dS )Ú N)ÚSLASH_BLOCK_REÚsearch)Ú.0Úprompts     úDC:\Users\johnn\OneDrive\Documents\AI\shared\utils\frame_scheduler.pyú	<genexpr>z%has_slash_commands.<locals>.<genexpr>   s9   è è € ÐUÐUÀ6�~×$Ò$ V \¨rÑ2Ô2¸$Ð>ÐUÐUÐUÐUÐUÐUó    )Úany)r	   s    r   Úhas_slash_commandsr      s   € ÝÐUÐUÈWÐUÑUÔUÑUÔUÐUr   é   Úframe_countÚintÚminimumÚstepÚoffsetc                óÎ   — t          || ¦  «        } t          d|¦  «        }t          d|¦  «        }|dk    r.t          j        t          d| |z
  ¦  «        |z  ¦  «        |z  |z   n| S ©Nr   r   )ÚmaxÚmathÚceil)r   r   r   r   s       r   Únormalize_frame_countr$      sh   € Ý�g˜{Ñ+Ô+€KÝˆq�$‰<Œ<€DÝ��F‰^Œ^€FØMQÐTUÊXÈX�4Œ9•S˜˜K¨&Ñ0Ñ1Ô1°DÑ8Ñ9Ô9¸DÑ@À6ÑIÐIÐ[fÐfr   c                óÂ   — t          || ¦  «        } t          d|¦  «        }t          d|¦  «        }|dk    r| S | |z
  |z  |z  |z   }||k    r|nt          ||||¦  «        S r    )r!   r$   )r   r   r   r   Úlowers        r   Úfloor_frame_countr'      sx   € Ý�g˜{Ñ+Ô+€KÝˆq�$‰<Œ<€DÝ��F‰^Œ^€FØˆq‚y€yØÐØ˜FÑ" tÑ+¨tÑ3°fÑ<€EØ˜WÒ$Ð$ˆ5ˆ5Õ*?ÀÈÐRVÐX^Ñ*_Ô*_Ð_r   ©Úfloorr#   Únearestr#   ÚroundingÚstrÚNonec                óv   — | t           vr-t          dd                     t           ¦  «        › d| ›�¦  «        ‚| ad S )Nz%Video length rounding must be one of ú, z, not )ÚVIDEO_LENGTH_ROUNDINGSÚ
ValueErrorÚjoinÚVIDEO_LENGTH_ROUNDING)r+   s    r   Úset_video_length_roundingr4   %   sG   € àÕ-Ð-Ð-ÝÐvÀÇÂÕKaÑAbÔAbÐvÐvÐjrÐvÐvÑwÔwÐwØ$ÐÐÐr   c                ó^   — t           t          t          dœt                   } || |||¦  «        S )zïA requested video length fitted to a model's frame steps with VIDEO_LENGTH_ROUNDING: ceil never shortens the request
    (speech and music driving the video keep their last words), floor never lengthens it, nearest takes the closest count.r(   )r'   r$   Únormalize_output_frame_countr3   )r   r   r   r   Úfits        r   Úfit_video_lengthr8   ,   s8   € õ &Õ/DÕQmÐ
nÐ
nõ  pEô  F€CØˆ3ˆ{˜G T¨6Ñ2Ô2Ð2r   c                óº   — t          || ¦  «        } t          d|¦  «        }|dk    r| S t          | |||¦  «        }t          | |||¦  «        }| |z
  || z
  k    r|n|S )Nr   )r!   r'   r$   )r   r   r   r   r&   Úuppers         r   r6   r6   3   sq   € Ý�g˜{Ñ+Ô+€KÝˆq�$‰<Œ<€DØˆq‚y€yØÐÝ˜k¨7°D¸&ÑAÔA€EÝ! +¨w¸¸fÑEÔE€EØ %Ñ'¨5°;Ñ+>Ò>Ð>ˆ5ˆ5ÀEÐIr   útuple[int | None, str | None]c                ó¾   — | dk     rdS | dk    rdS t          d|¦  «        }t          d|¦  «        }| |z
  |dz  z   |z  |z  |z   }t          |dk    r|n||¦  «        d fS )Nr   )Nz-/overlap must be 0 or a positive frame count.)r   Nr   é   )r!   )r   r   r   r   s       r   Únormalize_overlapr>   =   s~   € Ø�Q‚€ØDÐDØ�aÒÐØˆwÝˆq�$‰<Œ<€DÝ��F‰^Œ^€FØ˜fÑ$ t¨q¡yÑ0°TÑ9¸TÑAÀFÑJ€GÝ�v ’{�{ˆtˆt¨°Ñ8Ô8¸$Ð>Ð>r   Ú	raw_valueÚfpsÚfloatÚtotal_framesc          	     ó€  — t          | pd¦  «                             ¦   «                              ¦   «         }	 |                     d¦  «        rWt	          t          t          |d d…                              ¦   «         ¦  «        t          |¦  «        z  dz  ¦  «        ¦  «        }nx|                     d¦  «        rTt	          t          t          |d d…                              ¦   «         ¦  «        t          |¦  «        z  ¦  «        ¦  «        }nt	          |¦  «        }n# t          $ r d d| › d�fcY S w xY w|dk    rd	S |d fS )
Nr   ú%éÿÿÿÿg      Y@ÚszInvalid /duration value 'z9'. Use frames, seconds like 5s, or a percentage like 20%.r   )Nz)/duration must be a positive frame count.)r,   Ústripr&   Úendswithr   ÚroundrA   Ú	Exception)r?   r@   rB   ÚvalueÚframess        r   Ú_parse_durationrM   H   s>  € Ý�	�˜RÑ Ô ×&Ò&Ñ(Ô(×.Ò.Ñ0Ô0€EðvØ�>Š>˜#ÑÔð 	 Ý��u U¨3¨B¨3¤Z×%5Ò%5Ñ%7Ô%7Ñ8Ô8½5ÀÑ;NÔ;NÑNÐQVÑVÑWÔWÑXÔXˆFˆFØ�^Š^˜CÑ Ô ð 	 Ý��u U¨3¨B¨3¤Z×%5Ò%5Ñ%7Ô%7Ñ8Ô8½5À¹:¼:ÑEÑFÔFÑGÔGˆFˆFå˜‘Z”ZˆFøøÝð vð vð vØÐu°ÐuÐuÐuÐuÐuÐuÐuðvøøøà�‚{€{Ø@Ð@Ø�4ˆ<Ðs   ·C$D ÄD1Ä0D1r   Úsupported_model_commandsúset[str]Úallow_new_shotÚoverlap_offsetÚdefault_overlapú(tuple[str, dict, dict, bool, str | None]c               ó†   ‡‡‡‡‡‡‡‡	‡
‡‡— i Ši ŠdŠ
d Š	ˆˆˆ	ˆˆ
ˆˆˆˆˆˆfd„}t                                || ¦  «        ‰‰‰
‰	fS )NFc                ó¨  •— dŠg }|                       d¦  «                             d¦  «        D ]Ô}|                     ¦   «         }|                     d¦  «        r|dd …                              ¦   «         n|}|                     d¦  «        \  }}}|                     ¦   «                              ¦   «         }|r5|                     d¦  «        s |s|t          vr|‰vr|d         › d|› �|d<   Œ¿|                     |¦  «         ŒÕ|D �]Ë}‰� �nÅ|                     ¦   «         }|                     d¦  «        r|dd …                              ¦   «         }|                     d¦  «        \  }}}	|                     ¦   «                              ¦   «         }|	                     ¦   «         }
|sŒ£|dk    r |r|
sdŠŒ°t          |
‰‰¬	¦  «        \  ‰d
<   ŠŒÉ|dk    rj|r|
sdŠŒÖ	 |s‰nt          |
¦  «        }n# t          $ r	 d|
› d�ŠY Œýw xY wt          |‰‰¦  «        \  }Š‰��Œ|r|dk    r‰sdŠ�Œ'|‰d<   |dk    rd‰d<   �Œ9|dk    r|rdŠ�ŒE‰sdŠ�ŒKd‰d<   d‰d<   �ŒW|dk    r|rdŠ�Œcd‰d<   �Œj|dk    r|r|
sdŠ�Œx|
‰d<   �Œ|‰v r|r|
nd‰|<   �ŒŽt          t          ‰z  ¦  «        }d|› dd                     d„ |D ¦   «         ¦  «        › d�Š�ŒÍdS ) NTr   ú,ú/ú=rE   r   z0/duration requires a value, e.g. [/duration=5s].)r@   rB   Úduration_framesr   z?/overlap value cannot be empty. Use [/overlap] or [/overlap=9].zInvalid /overlap value 'z'. Use an integer frame count.r   z=/overlap=0 is only supported by text-to-video capable models.Úoverlap_framesr   z /new_shot does not take a value.z</new_shot is only supported by text-to-video capable models.r   z$/no_end_image does not take a value.r   z5/loras_mult requires a value, e.g. [/loras_mult=1;3].Úloras_multiplierszUnknown prompt command '/z'. Supported / commands: r/   c              3  ó    K  — | ]	}d |z   V — Œ
dS )rW   N© )r   Úones     r   r   z2_parse_options.<locals>.replace.<locals>.<genexpr>¤   s*   è è € Ð[{Ð[{ÐjmÐ\_ÐbeÑ\eÐ[{Ð[{Ð[{Ð[{Ð[{Ð[{r   ú.r   )ÚgroupÚsplitrG   Ú
startswithÚ	partitionr&   ÚWGP_SLASH_COMMANDSÚappendrM   r   rJ   r>   Úsortedr2   )ÚmatchÚraw_optionsÚpartÚoptionÚ
normalizedÚkeyÚ	separatorÚ_Ú
raw_optionr?   rK   Úoverlap_valuer   Ú	supportedrP   rR   Úerrorr@   Úhas_optionsÚmodel_optionsrQ   r   rN   rB   Úwgp_optionss                 €€€€€€€€€€€r   Úreplacez_parse_options.<locals>.replace^   sæ  ø€ àˆØˆØ—K’K ‘N”N×(Ò(¨Ñ-Ô-ð 	+ð 	+ˆDØ—Z’Z‘\”\ˆFØ/5×/@Ò/@ÀÑ/EÔ/EÐQ˜   œ×)Ò)Ñ+Ô+Ð+È6ˆJØ *× 4Ò 4°SÑ 9Ô 9ÑˆC�˜AØ—)’)‘+”+×#Ò#Ñ%Ô%ˆCØð + 6×#4Ò#4°SÑ#9Ô#9ð +À)ð +ÐPSÕ[mÐPmÐPmÐruð  ~Vð  sVð  sVØ%0°¤_Ð"?Ð"?°vÐ"?Ð"?�˜B‘�à×"Ò" 6Ñ*Ô*Ð*Ð*Ø%ð 9	ñ 9	ˆJØÐ Ø‘Ø×%Ò%Ñ'Ô'ˆFØ× Ò  Ñ%Ô%ð ,Ø   œ×)Ò)Ñ+Ô+�Ø(.×(8Ò(8¸Ñ(=Ô(=Ñ%ˆC�˜IØ—)’)‘+”+×#Ò#Ñ%Ô%ˆCØ—O’OÑ%Ô%ˆEØð ØØ�jÒ Ð Ø ð ¨ð ØN�EØÝ8GÈÐSVÐeqÐ8rÑ8rÔ8rÑ5�Ð-Ñ.°°Ø˜	Ò!Ð!Øð  Uð Ø]�EØðØ;DÐ$T O OÍ#ÈeÉ*Ì*�M�MøÝ ð ð ð Ø\°uÐ\Ð\Ð\�EØ�Hðøøøõ "3°=À$ÈÑ!WÔ!W‘�˜ØÐ$ÙØð  ¨A¢ °n Ø[�EÙØ07�Ð,Ñ-Ø˜a’<�<Ø.2�K 
Ñ+ùØ˜
Ò"Ð"Øð Ø>�EÙØ%ð ØZ�EÙØ01�Ð,Ñ-Ø*.�˜JÑ'Ñ'Ø˜Ò&Ð&Øð ØB�EÙØ.2�˜NÑ+Ñ+Ø˜Ò$Ð$Ø ð ¨ð ØS�EÙØ38�Ð/Ñ0Ñ0ØÐ0Ð0Ð0Ø.7Ð%A U U¸T�˜cÑ"Ñ"å"Õ#5Ð8PÑ#PÑQÔQ�	Ø~°CÐ~Ð~ÐRV×R[ÒR[Ð[{Ð[{ÐqzÐ[{Ñ[{Ô[{ÑR{ÔR{Ð~Ð~Ð~�‘Øˆrs   ÇG0Ç0HÈH)r   Úsub)r   rN   rP   r@   rB   r   rQ   rR   rv   rr   rs   rt   ru   s    ``````` @@@@r   Ú_parse_optionsrx   X   s    øøøøøøøøøøø€ Ø€KØ€MØ€KØ€EðGð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð GõR ×Ò˜g vÑ.Ô.°¸]ÈKÐY^Ð^Ð^r   c                ó  — t          dt          | ¦  «        ¦  «        } | dk    rdS t          dt          |¦  «        ¦  «        }t          dt          |¦  «        ¦  «        }|dk    r| |z  |z  S | |k     rdn| |z
  |z  |z  |z   S )Nr   r   )r!   r   )r   r   r   s      r   Ú_floor_overlaprz   ª   s•   € Ý�a�˜[Ñ)Ô)Ñ*Ô*€KØ�aÒÐØˆqÝˆq•#�d‘)”)ÑÔ€DÝ�•C˜‘K”KÑ Ô €FØ�‚{€{Ø˜dÑ" TÑ)Ð)Ø˜fÒ$Ð$ˆ1ˆ1¨;¸Ñ+?ÀDÑ*HÈ4Ñ*OÐRXÑ*XÐXr   F©Úframe_offsetrQ   Úmax_overlapÚavailable_overlapÚpreserve_exact_output_framesÚoutput_frame_policyÚoutput_framesrZ   Údiscard_last_framesr|   r}   ú
int | Noner~   r   r€   ú
str | NoneÚdictc               ó.  — t          dt          | ¦  «        ¦  «        } t          dt          |¦  «        ¦  «        }t          dt          |¦  «        ¦  «        }|dk    rdg}nÃ|€|nt          |t          |¦  «        ¦  «        }|�+t          |t          dt          |¦  «        ¦  «        ¦  «        }t          |||¦  «        }t          t          ||¦  «        ||¦  «        }|dk    r<t	          t          ||dz   t          dt          |¦  «        ¦  «        ¦  «        ¦  «        ndg}|
pd}
|
dvrt          d|
›�¦  «        ‚g }|D ]ž}| |z   |z   }|
dk    rt          ||||¦  «        nt          ||||¦  «        }|||z   k    rt          ||z   dz   |||¦  «        }||z
  |z
  }|| z
  }t          |¦  «        t          ||z
  ¦  «        |f}| 
                    |||||f¦  «         ŒŸt          |¦  «        \  }}}}}|
dk    r|} d}n|
dk    r| |z  } d}| ||||dœS )Nr   r   r*   >   ÚexactÚexpandr*   z&Unknown frame scheduler output policy rˆ   )r�   rZ   r‚   Útrim_last_framesÚ	frame_num)r!   r   Úminrz   ÚlistÚranger1   r6   r$   Úabsre   )r�   rZ   r‚   r   r   r|   rQ   r}   r~   r   r€   ÚoverlapsÚoverlap_limitÚpreferred_overlapÚ
candidatesr   Úrequested_frame_numrŠ   Úadjusted_output_framesr‰   Úscorern   s                         r   Úresolve_window_geometryr–   µ   sÏ  € Ý˜�3˜}Ñ-Ô-Ñ.Ô.€MÝ˜�C Ñ/Ô/Ñ0Ô0€NÝ˜a¥Ð%8Ñ!9Ô!9Ñ:Ô:ÐØ˜ÒÐØ�3ˆˆà*5Ð*=˜˜Å3À~ÕWZÐ[fÑWgÔWgÑChÔChˆØÐ(Ý ­s°1µcÐ:KÑ6LÔ6LÑ/MÔ/MÑNÔNˆMÝ& }°d¸NÑKÔKˆÝ*­3¨~¸}Ñ+MÔ+MÈtÐUcÑdÔdÐØ[lÐopÒ[pÐ[p•4�Ð/°ÀÑ1BÅCÈÍ3ÈtÉ9Ì9ÑDUÔDUÑVÔVÑWÔWÐWÐwxÐvyˆà-Ð:°ÐØÐ"@Ð@Ð@ÝÐYÐBUÐYÐYÑZÔZÐZØ€JØð að aˆØ+¨gÑ5Ð8KÑKÐØfyð  ~Gò  gGð  gGÕ0Ð1DÀgÈtÐUaÑbÔbÐbõ  Mbð  cvð  xð  AEð  GSñ  MTô  MTˆ	Ø˜Ð"5Ñ5Ò5Ð5Ý-¨gÐ8KÑ.KÈaÑ.OÐQXÐZ^Ð`lÑmÔmˆIØ!*¨WÑ!4Ð7JÑ!JÐØ1°MÑAÐÝÐ%Ñ&Ô&­¨G°nÑ,DÑ(EÔ(EÀyÐQˆØ×Ò˜5Ð"2°I¸wÐH^Ð_Ñ`Ô`Ð`Ð`ÝMPÐQ[É_Ì_ÑJ€AÐ˜ NÐ4JØ˜iÒ'Ð'Ø.ˆØÐÐØ	 Ò	(Ð	(ØÐ)Ñ)ˆØÐà&Ø(Ø2Ø,Øðð ð r   ©r|   rQ   r}   r~   r   r   r€   rt   údict | Noner   c               ó¶   — |}t          ||rdn|||||||	|
||¬¦  «        }d| i|¥t          |¦  «        t          |pi ¦  «        dœ¥}|d         |k    r||d<   |S )Nr   r{   r   )r   rt   r�   Úrequested_output_frames)r–   r   r…   )r   r�   rZ   r‚   rt   r   r   r|   rQ   r}   r~   r   r   r€   rš   ÚgeometryÚwindows                    r   Ú_windowr�   à   sÀ   € Ø+ÐÝ& }¸8Ð6W°a°aÈÐYlÐnuÐw{ð  KWð  hvð  DOð  ctð  Soð  EXð  Yñ  Yô  Y€Hà�&ðà
ðõ ˜‘N”NÝ˜mÐ1¨rÑ2Ô2ð	ð ð €Fð �Ô Ð$;Ò;Ð;Ø,CˆÐ(Ñ)Ø€Mr   )r‚   r|   r   r€   Úwindow_sizec               ó„   — |t          d|¦  «        z  }	t          | t          d||z
  |z
  ¦  «        ||i ||||	||¬¦  «        S )Nr   )r|   rQ   r   r€   )r!   r�   )
r   rž   rZ   r‚   r   r   r|   r   r€   rQ   s
             r   Úbuild_extension_windowr    î   s{   € Ø#¥c¨!¨T¡l¤lÑ2€NÝ�6�3˜q +°Ñ">ÐATÑ"TÑUÔUÐWeÐgzÐ|~ð  AHð  JNð  ]ið  zHð  gCð  Ylð  mñ  mô  mð  mr   )r|   rQ   r}   Úfirst_window_overlapÚfirst_window_available_overlapÚinitial_shared_framesr   r€   r¡   r¢   r£   ú
list[dict]c                óŠ  — t          dt          | ¦  «        ¦  «        } t          ||||¦  «        }t          dt          |	¦  «        ¦  «        }	|
�+t          |	t          dt          |
¦  «        ¦  «        ¦  «        }	t	          |	||¦  «        }	t          d| t          t          dt          |¦  «        ¦  «        |	¦  «        z
  ¦  «        } t          d||	z
  ¦  «        }| |k    }|rt          dt          |¦  «        ¦  «        nd}t          | t          d||z
  ¦  «        ¦  «        }t          d||	|i ||||||
||¬¦  «        g}|}|d         d         }|| k     rnt          | |z
  t          d||z
  |z
  ¦  «        ¦  «        }t          d|||i ||||||||¬¦  «        }|                     |¦  «         ||z  }||d         z  }|| k     °n|S )Nr   r   r   r{   r�   )r!   r   r$   r‹   rz   r�   re   )rB   rž   rR   r‚   r   r   r|   rQ   r}   r¡   r¢   r£   r   r€   Úfirst_window_capacityÚslidingÚfirst_discardÚfirst_outputÚwindowsÚrequested_consumedÚactual_consumedr�   rœ   s                          r   Úbuild_default_window_planr­   ó   sC  € Ý�q�#˜lÑ+Ô+Ñ,Ô,€LÝ'¨°W¸dÀLÑQÔQ€KÝ˜q¥#Ð&:Ñ";Ô";Ñ<Ô<ÐØ%Ð1Ý"Ð#7½¸QÅÐDbÑ@cÔ@cÑ9dÔ9dÑeÔeÐÝ)Ð*>ÀÀnÑUÔUÐÝ�q˜,­­S°µCÐ8MÑ4NÔ4NÑ-OÔ-OÐQeÑ)fÔ)fÑfÑgÔg€LÝ  ;Ð1EÑ#EÑFÔFÐØÐ2Ò2€GØ8?ÐF•C˜�3Ð2Ñ3Ô3Ñ4Ô4Ð4ÀQ€MÝ�|¥S¨Ð,AÀMÑ,QÑ%RÔ%RÑSÔS€LÝ�r˜<Ð)=¸}ÈbÐRYÐ[_Ðnzð  LZð  hsð  Geð  D`ð  vIð  Jñ  Jô  Jð  K€GØ%ÐØ˜a”j Ô1€OØ
˜|Ò
+Ð
+Ý˜LÐ+=Ñ=½sÀ1ÀkÐTcÑFcÐfyÑFyÑ?zÔ?zÑ{Ô{ˆÝ˜˜]¨OÐ=PÐRTÐV]Ð_cÐr~ð  P^ð  lwð  KZð  yUð  k~ð  ñ  ô  ˆØ�Š�vÑÔÐØ˜mÑ+ÐØ˜6 /Ô2Ñ2ˆð ˜|Ò
+Ð
+ð €Nr   c                óæ   — | €d S i }|                       ¦   «         D ]U\  }}t          |t          ¦  «        rt          |¦  «        ||<   Œ-t          |t          ¦  «        r|d d …         ||<   ŒP|||<   ŒV|S )N)ÚitemsÚ
isinstancer…   Úclone_loras_slistsrŒ   )ÚslistsÚclonedrl   rK   s       r   r±   r±     s†   € Ø€~ØˆtØ€FØ—l’l‘n”nð  ð  ‰
ˆˆUÝ�e�TÑ"Ô"ð 	 Ý,¨UÑ3Ô3ˆF�3‰KˆKÝ˜�tÑ$Ô$ð 	 Ø   œ(ˆF�3‰KˆKàˆF�3‰KˆKØ€Mr   )Úbase_loras_slistsÚmodel_switch_phaseÚstore_slistsÚlora_multiplier_branchesÚframe_schedulerÚnum_inference_stepsÚguidance_phasesrµ   r¶   c          
     ó°  — | �|                       dd¦  «        sd S ddlm} t          | d         d¬¦  «        D ]�\  }	}
|
                      dd	¦  «        }t	          |¦  «        dk    rot	          |¦  «        dk    rd
|	› d�c S  ||t	          |¦  «        ||t          |¦  «        ||¬¦  «        \  }}}t	          |¦  «        dk    r
d|	› d|› �c S |r||
d<   Œžd S )NÚactiveFr   )Úparse_loras_multipliersrª   r   ©Ústartr[   r   úSliding window z* uses /loras_mult but no LoRA is selected.)Ú	nb_phasesÚmerge_slistrµ   r·   z-Error parsing /loras_mult for Sliding window z: Úloras_slists)ÚgetÚshared.utils.loras_mutipliersr½   Ú	enumerateÚlenr±   )r¸   Úactivated_lorasr¹   rº   r´   rµ   r¶   r·   r½   Úidxrœ   Úwindow_loras_multipliersrn   Úwindow_loras_slistsÚerrorss                  r   Úprepare_loras_mult_windowsrÍ     sX  € ØÐ o×&9Ò&9¸(ÀEÑ&JÔ&JÐØˆtØEÐEÐEÐEÐEÐEÝ  °Ô!;À1ÐEÑEÔEð 	=ð 	=‰ˆˆVØ#)§:¢:Ð.AÀ2Ñ#FÔ#FÐ ÝÐ'Ñ(Ô(¨1Ò,Ð,Ý�?Ñ#Ô# qÒ(Ð(ØX¨ÐXÐXÐXÐXÐXÐXØ-DÐ-DÐE]Õ_bÐcrÑ_sÔ_sð  vIð  Udõ  rDð  EVñ  rWô  rWð  l~ð  Yqð  .rñ  .rô  .rÑ*ˆAÐ" FÝ�6‰{Œ{˜QŠˆØVÀsÐVÐVÈfÐVÐVÐVÐVÐVØð =Ø)<��~Ñ&øØˆ4r   r]   )
r|   rQ   r}   rN   rP   Úfirst_window_overlap_framesr£   r‚   r   r€   rÎ   útuple[dict, str | None]c               óÞ  — d„ |
pg D ¦   «         }
t          |||¦  «        \  }}|�i |fS t          d|¦  «        }t          d|¦  «        }g g }}d}d}| D ]‚}t          ||
||||||¬¦  «        \  }}}}}|�i |fc S |                     |                     ¦   «         ¦  «         |                     |                     ¦   «         ||f¦  «         |p|}|pd|v }Œƒ|sd|t          |
¦  «        dœd fS t          t          dt          |¦  «        ¦  «        |¦  «        }|r$|d         d                              dd¦  «        rd}t          d||z
  ¦  «        }g }d}d}t          |d¬	¦  «        D �]*\  }\  }}}|                     d
|¦  «        } |dk    r t          | |¦  «        } t          | |¦  «        } |                     d¦  «        }!|!€9||z
  }"|"dk    r
i d|› d�fc S t          |"t          d|| z
  |z
  ¦  «        ¦  «        }!t          ||!| |||||||	|dk    r|n|t          |                     dd¦  «        ¦  «        ||¬¦  «        }#d|v r|d         |#d<   |                     d¦  «        rd|#d<   |                     |#¦  «         ||!z  }||#d         z  }�Œ,|sŠ||k     r„|r‚t          ||z
  t          d||z
  |z
  ¦  «        ¦  «        }!|                     t          |d         d         |!||i |||||	|||¬¦  «        ¦  «         ||!z  }||d         d         z  }|s||k     r|°‚dd„ |D ¦   «         |t          d„ |D ¦   «         ¦  «        |t          ||||¦  «        |||||t          |
¦  «        dœd fS )Nc                óÜ   — h | ]i}t          |¦  «                             ¦   «         ¯#t          |¦  «                             ¦   «                              ¦   «                              d ¦  «        ’ŒjS )rW   )r,   rG   r&   Úlstrip)r   Úcommands     r   ú	<setcomp>z(build_frame_scheduler.<locals>.<setcomp>>  s�   € ð   Pð   Pð   PÈWÕz}ð  Fñ  {Gô  {G÷  {Mò  {Mñ  {Oô  {Oð   P¥ G¡¤× 2Ò 2Ñ 4Ô 4× :Ò :Ñ <Ô <× CÒ CÀCÑ HÔ Hð   Pð   Pð   Pr   r   F)rN   rP   r@   rB   r   rQ   rR   rY   )r¼   r	   Úmodel_commandsr   r   r¾   rZ   rÀ   zé would generate no frame because previous windows already consume the requested frame count. Unable to start generation: please specify shorter /duration values for the previous sliding windows or increase the total number of frames.r—   r[   r   Tr�   rE   r   r{   c                ó   — g | ]
}|d          ‘ŒS )r   r]   ©r   rœ   s     r   ú
<listcomp>z)build_frame_scheduler.<locals>.<listcomp>v  s   € Ð;Ð;Ð;¨�F˜8Ô$Ð;Ð;Ð;r   c              3  ó&   K  — | ]}|d          V — ŒdS )r�   Nr]   r×   s     r   r   z(build_frame_scheduler.<locals>.<genexpr>x  s'   è è € Ð%TÐ%TÀ& f¨_Ô&=Ð%TÐ%TÐ%TÐ%TÐ%TÐ%Tr   )r¼   r	   rª   Úpredicted_total_framesÚrequested_total_framesÚdefault_window_sizeÚdefault_overlap_framesrQ   r   r   r|   rÕ   )r>   r!   rx   re   rG   rf   r‹   r   rÄ   rÆ   r�   r   Úsumr$   )$r	   rB   r@   rž   rR   r   r   r|   rQ   r}   rN   rP   rÎ   r£   r‚   r   r€   rr   Úparsed_promptsÚparsedÚany_optionsÚany_durationr   Ústrippedru   rt   rs   Útarget_output_framesrª   r«   r¬   rÉ   r   r   Ú	remainingrœ   s$                                       r   Úbuild_frame_schedulerræ   *  sƒ  € ð(  Pð   PÐXpÐXvÐtvð   Pñ   Pô   PÐÝ.¨ÀÀnÑUÔUÑ€O�UØÐØ�5ˆyÐÝ˜aÐ!4Ñ5Ô5ÐÝ"% aÐ)DÑ"EÔ"EÐØ �F€NØ€KØ€LØð Hð HˆÝCQÐRXð  tLð  ]kð  qtð  COð  VZð  kyð  KZð  D[ñ  D[ô  D[Ñ@ˆ�+˜}¨k¸5ØÐØ�u�9ÐÐÐØ×Ò˜hŸnšnÑ.Ô.Ñ/Ô/Ð/Ø�Š�x—~’~Ñ'Ô'¨°mÐDÑEÔEÐEØ!Ð0 [ˆØ#ÐGÐ'8¸KÐ'Gˆˆàð vØ¨NÍfÐUmÑNnÔNnÐoÐoÐquÐuÐuå¥ A¥sÐ+@Ñ'AÔ'AÑ BÔ BÐD_Ñ`Ô`ÐØð "�&˜”)˜A”,×"Ò" :¨uÑ5Ô5ð "Ø !ÐÝ˜q ,Ð1FÑ"FÑGÔGÐØ€GØÐØ€OÝ5>¸vÈQÐ5OÑ5OÔ5Oð 3ñ 3Ñ1ˆÑ1ˆf�k =Ø—/’/Ð"2°OÑDÔDˆØ�!Š8ˆ8Ý˜'Ð#8Ñ9Ô9ˆGÝ˜'Ð#>Ñ?Ô?ˆGØ—?’?Ð#4Ñ5Ô5ˆØÐØ,Ð/AÑAˆIØ˜AŠ~ˆ~Øð  \¨Sð  \ð  \ð  \ð  \ð  \ð  \ð  \Ý˜9¥c¨!¨[¸7Ñ-BÐEXÑ-XÑ&YÔ&YÑZÔZˆHÝ˜ ¨7Ð4GÈÐX_Ðaeð  uAð  R`ð  nyð  loð  stò  ltð  ltð  Mhð  Mhð  zIõ  TXð  Yd÷  Yhò  Yhð  isð  uzñ  Y{ô  Y{ñ  T|ô  T|ð  [wð  M`ð  añ  aô  aˆØ +Ð-Ð-Ø*5Ð6IÔ*JˆFÐ&Ñ'Ø�?Š?˜>Ñ*Ô*ð 	*Ø%)ˆF�>Ñ"Ø�Š�vÑÔÐØ˜hÑ&ÐØ˜6 /Ô2Ñ2ˆ‰àð 8Ð1Ð4HÒHÐHÈWÐHÝÐ+Ð.@Ñ@Å#ÀaÈÐWfÑIfÐi|ÑI|ÑB}ÔB}Ñ~Ô~ˆØ�Š•w˜w rœ{¨8Ô4°hÀÐQdÐfhÐjqÐswð  GSð  drð  @Kð  _nð  Mið  Rð  Sñ  Sô  Sñ  	Tô  	Tð  	TØ˜hÑ&ÐØ˜7 2œ; Ô7Ñ7ˆð	 ð 8Ð1Ð4HÒHÐHÈWÐHð Ø;Ð;°7Ð;Ñ;Ô;ØÝ"%Ð%TÐ%TÈGÐ%TÑ%TÔ%TÑ"TÔ"TØ".Ý4°[À'È4ÐQ]Ñ^Ô^Ø"1Ø(ØØØ$Ý Ð!9Ñ:Ô:ðð ð ðð r   )r	   r
   r   r   )r   )
r   r   r   r   r   r   r   r   r   r   )r+   r,   r   r-   )r   r   r   r   r   r   r   r;   )r?   r,   r@   rA   rB   r   r   r;   )r   r,   rN   rO   rP   r   r@   rA   rB   r   r   r   rQ   r   rR   r   r   rS   )r   r   r   r   r   r   r   r   )r�   r   rZ   r   r‚   r   r   r   r   r   r|   r   rQ   r   r}   rƒ   r~   rƒ   r   r   r€   r„   r   r…   )r   r,   r�   r   rZ   r   r‚   r   rt   r˜   r   r   r   r   r|   r   rQ   r   r}   rƒ   r~   rƒ   r   r   r   r   r€   r„   r   r…   )r   r,   rž   r   rZ   r   r‚   r   r   r   r   r   r|   r   r   r   r€   r„   r   r…   )rB   r   rž   r   rR   r   r‚   r   r   r   r   r   r|   r   rQ   r   r}   rƒ   r¡   r   r¢   rƒ   r£   r   r   r   r€   r„   r   r¤   )r¸   r˜   r¹   r   rº   r   rµ   r   r¶   r   r   r„   )"r	   r
   rB   r   r@   rA   rž   r   rR   r   r   r   r   r   r|   r   rQ   r   r}   rƒ   rP   r   rÎ   r   r£   r   r‚   r   r   r   r€   r„   r   rÏ   )Ú
__future__r   r"   Úrerd   ÚcompileÚ
IGNORECASEr   r   r$   r'   r0   r3   r4   r8   r6   r>   rM   rx   rz   r–   r�   r    r­   r±   rÍ   ræ   r]   r   r   ú<module>rë      s$  ðà "Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	ð WÐVÐVÐ Ø�”Ð6¸¼ÑFÔF€ðVð Vð Vð Vðgð gð gð gð gð`ð `ð `ð `ð `ð 6Ð ØÐ ð%ð %ð %ð %ð3ð 3ð 3ð 3ð 3ðJð Jð Jð Jð Jð?ð ?ð ?ð ?ð ?ðð ð ð ð O_ð O_ð O_ð O_ðdYð Yð Yð Yð PQð  ijð  FJð  lpð  W\ð  @Dð (ð (ð (ð (ð (ð (ðV ijð  BCð  _cð  EIð  \að  HMð  quð ð ð ð ð ð ð noð  ^_ð  FKð  osð mð mð mð mð mð mð
 deð  }~ð  Z^ð  |}ð  lpð  OPð  w|ð  `dð ð ð ð ð ð ð0ð ð ð TXð  tuð  LQð  lpð ð ð ð ð ð ð4 ØØ"ØØ Ø'(Ø!"Ø Ø).Ø&*ð%Wð Wð Wð Wð Wð Wð Wð Wr   