+
    UV-j˜¥  ã                  ó@  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHtH	t	H
t
HtHtHt ^ RIHt ^ RIHt ^ RIHt ^RIHt ^RIHtHtHt ]P6                  ! R4      tRt^@t^0t^ t R	 R
 lt!R R lt"RjR R llt#RjR R llt$R R lt%RjR R llt&RjR R llt'RjRR/R R lllt(RjR R llt)R R lt*RjR R  llt+ ! R! R"4      t,R# R$ lt-R% R& lt.R' R( lt/R) R* lt0R+ R, lt1 ! R- R.4      t2R/ R0 lt3R1 R2 lt4R3 R4 lt5R5 R6 lt6R7 R8 lt7R9 R: lt8R; R< lt9]Pt                  R= R> l4       t;R? R@ lt<RA RB lt=RCR/RD RE llt>RF RG lt?RH RI lt@RJ RK ltARL RM ltBRN RO ltCRP RQ ltDRR RS ltERjRT RU lltFRV]RWRRXRRYRRZRR[RR\R]R^R_R`RRaRRb^Rc] RdRReR/Rf Rg lltGRh Ri ltHR# )ké    )ÚannotationsN)ÚAnyÚDictÚ	GeneratorÚListÚOptionalÚTuple)ÚPreTrainedTokenizer)Úmake_streaming_detokenizer)ÚGenerationResultÚgeneration_streamÚwired_limitzmlx_vlm.generateç        c               ó    € V ^8„  d   QhRRRR/# )é   ÚtextÚstrÚreturnÚint© )Úformats   "Úk/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/generate/diffusion.pyÚ__annotate__r      s   € ÷ ñ ˜ð  ñ ó    c                ó¤   € ^ pV  FG  p\         P                  ! V4      '       d   K!  T\         P                  ! V4      R9   d   ^M^,          pKI  	  V# )r   ©ÚFÚW)ÚunicodedataÚ	combiningÚeast_asian_width)r   ÚwidthÚchars   &  r   Ú_display_widthr$      sJ   € Ø€EÛˆÜ× Ò  ×&Ò&ÙØ”k×2Ò2°4Ó8¸JÔF‘ÈAÕMŠñ ð €Lr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   Ú	max_widthr   r   r   )r   s   "r   r   r   "   s!   € ÷ ñ ˜cð ¨cð °cñ r   c                óä  € V^ 8:  d   R# . p^ pRpV  Fk  p\         P                  ! V4      '       d   ^ pM\         P                  ! V4      R9   d   ^M^pW6,           V8”  d   Rp MVP                  V4       W6,          pKm  	  V'       dY   V^8¼  dR   V'       d9   \	        RP                  V4      4      V^,
          8”  d   VP                  4        K@  VP                  R4       RP                  V4      # )r   Ú FTz...r   )r   r    r!   Úappendr$   ÚjoinÚpop)r   r&   Úoutr"   Úclippedr#   Ú
char_widths   &&     r   Ú_clip_display_widthr/   "   sÅ   € Ø�A„~Ùà
€CØ€EØ€GÛˆÜ× Ò  ×&Ò&Ø‰Jä)×:Ò:¸4Ó@ÀJÔN™ÐTUˆJØÕ 	Ô)ØˆGÙØ�
‰
�4ÔØÕŠñ ÷ �9 ”>ß”n R§W¡W¨S£\Ó2°YÀµ]ÔBØ�G‰GŽIØ�
‰
�5Ôà�7‰7�3‹<Ðr   c               ó    € V ^8„  d   QhRRRR/# )r   Úrequested_widthúOptional[int]r   r   )r   s   "r   r   r   <   s   € ÷ <ñ <¨mð <À}ñ <r   c                ó®   € \         P                  ! R4      P                  pT ;'       g    \        p V ^ 8:  d   R# \	        ^\        V^,
          V 4      4      # )éx   N©r4   é   )ÚshutilÚget_terminal_sizeÚcolumnsÚ!DEFAULT_DIFFUSION_UNMASKING_WIDTHÚmaxÚmin)r1   Úterminal_widths   & r   Ú_diffusion_display_limitr>   <   sJ   € Ü×-Ò-¨iÓ8×@Ñ@€NØ%×JÐJÔ)J€OØ˜!ÔÙÜˆq”#�n qÕ(¨/Ó:Ó;Ð;r   c               ó    € V ^8„  d   QhRRRR/# )r   r1   r2   r   r   r   )r   s   "r   r   r   D   s   € ÷ Cñ C¨Mð CÀSñ Cr   c                ó†   € \        V 4      pVe   V# \        ^\        P                  ! R4      P                  ^,
          4      # )Nr5   )r>   r;   r7   r8   r9   )r1   Úlimits   & r   Ú_diffusion_draft_widthrB   D   s:   € Ü$ _Ó5€EØÒØˆÜˆq”&×*Ò*¨9Ó5×=Ñ=ÀÕAÓBÐBr   c               ó   € V ^8„  d   QhRR/# )r   r   Úboolr   )r   s   "r   r   r   K   s   € ÷ Fñ F 4ñ Fr   c                 ó„   € \         P                  ! ^4      ;'       d$    \         P                  P                  RR4      R8g  # )é   ÚTERMÚxtermÚdumb)ÚosÚisattyÚenvironÚgetr   r   r   Ú_supports_in_place_outputrN   K   s,   € Ü�9Š9�Q‹<×EÐEœBŸJ™JŸN™N¨6°7Ó;¸vÑEÐEr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úresponser   r1   r2   r   r   r   )r   s   "r   r   r   O   s&   € ÷ ;ñ ;Øð;à"ð;ð 	ñ;r   c                ód   € \        V4      pVf   V P                  # \        V P                  V4      # ©N)r>   Ú
draft_textr/   )rP   r1   r"   s   && r   Ú_format_diffusion_draft_linerT   O   s2   € ô % _Ó5€EØ‚}Ø×"Ñ"Ð"Ü˜x×2Ñ2°EÓ:Ð:r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rP   r   r1   r2   r   ÚNoner   )r   s   "r   r   r   Y   s&   € ÷ 2ñ 2Øð2à"ð2ð 
ñ2r   c                óF   € \        W4      p\        R V,           RRR7       R# ©ú[2Kr(   T©ÚendÚflushN)rT   Úprint)rP   r1   Úlines   && r   Ú_print_diffusion_draftr_   Y   s   € ô (¨ÓB€DÜ	ˆ+˜Õ
 "¨D×1r   Úpreserve_newlinesFc               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r   r   r1   r2   r`   rD   r   r   )r   s   "r   r   r   a   s0   € ÷ ,ñ ,Ø
ð,à"ð,ð ð	,ð
 	ñ,r   c               ó’   € \        V4      pV P                  R R4      p V'       g   V P                  RR4      p Vf   V # \        W4      # )Úú\rÚ
ú\n)r>   Úreplacer/   )r   r1   r`   r"   s   &&$ r   Ú_format_diffusion_live_textrh   a   sF   € ô % _Ó5€EØ�<‰<˜˜eÓ$€DßØ�|‰|˜D %Ó(ˆØ‚}ØˆÜ˜tÓ+Ð+r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   r1   r2   r   rV   r   )r   s   "r   r   r   p   s&   € ÷ ñ Ø
ðà"ðð 
ñr   c                óB   € \        R \        W4      ,           RRR7       R# rX   )r]   rh   )r   r1   s   &&r   Ú_print_diffusion_live_textrk   p   s    € ô 
ØÔ1°$ÓHÕHØØ÷r   c               ó   € V ^8„  d   QhRR/# ©r   r   rV   r   )r   s   "r   r   r   {   s   € ÷ +ñ + Tñ +r   c                 ó"   € \        R RRR7       R# rX   )r]   r   r   r   Ú_clear_diffusion_draft_linero   {   s   € Ü	ˆ+˜2 T×*r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   r9   r2   r   r   r   )r   s   "r   r   r      s!   € ÷ 	ñ 	 #ð 	°ð 	Èñ 	r   c                ó  € V '       g   ^ # T;'       g!    \         P                  ! R4      P                  p\        ^V4      p^ pV P	                  R4       F5  p\        V4      pV\        ^WA,           ^,
          V,          4      ,          pK7  	  V# )r   re   r5   )r7   r8   r9   r;   Úsplitr$   )r   r9   Úrowsr^   r"   s   &&   r   Ú_terminal_rows_for_textrt      sw   € ßÙØ×DÐDœ×1Ò1°)Ó<×DÑD€GÜ�!�W‹o€GØ€DØ—
‘
˜4Ö ˆÜ˜tÓ$ˆØ”�A˜�¨!Õ+°Õ7Ó8Õ8Šñ !ð €Kr   c                  ó4   € ] tR t^‹tR tR R ltR R ltRtR# )Ú_DiffusionRedrawerc                	ó   € ^ V n         R# )r   N©rs   )Úselfs   &r   Ú__init__Ú_DiffusionRedrawer.__init__Œ   s	   € ØˆŽ	r   c               ó   € V ^8„  d   QhRR/# rm   r   )r   s   "r   r   Ú_DiffusionRedrawer.__annotate__�   s   € ÷ ñ �tñ r   c                	óâ   € V P                   ^ 8:  d   R# R.p\        V P                   ^,
          4       F  pVP                  R4       K  	  \        RP	                  V4      RRR7       ^ V n         R# )r   NrY   z	[1A[2Kr(   TrZ   )rs   Úranger)   r]   r*   )ry   ÚcontrolsÚ_s   &  r   ÚclearÚ_DiffusionRedrawer.clear�   sW   € Ø�9‰9˜Œ>Ùà�=ˆÜ�t—y‘y 1•}Ö%ˆAØ�O‰OÐ.Ö/ñ &äˆb�g‰g�hÓ R¨tÕ4ØˆŽ	r   c               ó    € V ^8„  d   QhRRRR/# ©r   r   r   r   rV   r   )r   s   "r   r   r}   ™   s   € ÷ 2ñ 2˜ð 2 ñ 2r   c                	ób   € V P                  4        \        VR RR7       \        V4      V n        R# )r(   TrZ   N)r‚   r]   rt   rs   ©ry   r   s   &&r   ÚdrawÚ_DiffusionRedrawer.draw™   s#   € Ø�
‰
ŒÜˆd˜ $Õ'Ü+¨DÓ1ˆŽ	r   rx   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rz   r‚   rˆ   Ú__static_attributes__r   r   r   rv   rv   ‹   s   † òõ÷2ñ 2r   rv   c               ó    € V ^8„  d   QhRRRR/# )r   Úconfigr   r   rD   r   )r   s   "r   r   r   Ÿ   s   € ÷ >ñ > ð >¨ñ >r   c                ó    € \        V R R4      RJ# )Úcanvas_lengthN©Úgetattr©r�   s   &r   Ú_is_diffusion_configr–   Ÿ   s   € ô �6˜?¨DÓ1¸Ð=Ð=r   c               ó    € V ^8„  d   QhRRRR/# ©r   Úmodelú	nn.Moduler   rD   r   )r   s   "r   r   r   ¦   s   € ÷ @ñ @˜ið @¨Dñ @r   c                ó.   € \        \        V RR4      4      # )zCTrue for block-diffusion canvas models driven by the shared engine.r�   N)r–   r”   )r™   s   &r   Úis_diffusion_modelrœ   ¦   s   € ä¤¨¨x¸Ó >Ó?Ð?r   c               ó    € V ^8„  d   QhRRRR/# r˜   r   )r   s   "r   r   r   «   s   € ÷ >ñ > Yð >°4ñ >r   c                ó:   € \        V RR4      p\        VRR4      RJ# )zCTrue for masked-diffusion text models that own their generate loop.r�   NÚmask_token_idr“   ©r™   r�   s   & r   Úis_masked_diffusion_modelr¡   «   s$   € ä�U˜H dÓ+€FÜ�6˜?¨DÓ1¸Ð=Ð=r   c               ó    € V ^8„  d   QhRRRR/# )r   r™   rš   r   úOptional[str]r   )r   s   "r   r   r   ±   s   € ÷ ñ  yð °]ñ r   c                ó�   € \        V 4      '       d   R# \        V 4      '       d"   \        V RR4      p\        VRR4      R8w  d   R# R# )aT  Classify how a model generates, for request routing.

Returns ``"block"`` for canvas-denoising models the shared engine drives,
``"masked"`` for masked-diffusion text models that run their own
``generate()`` loop (unless the checkpoint defaults to autoregressive
generation, like nemotron), and ``None`` for ordinary autoregressive
models.
Úblockr�   NÚdefault_generation_modeÚarÚmasked)rœ   r¡   r”   r    s   & r   Údiffusion_generation_familyr©   ±   sC   € ô ˜%× Ò ÙÜ  ×'Ò'Ü˜ ¨$Ó/ˆÜ�6Ð4°dÓ;¸tÔCÙÙr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úargsr   r�   r   úDict[str, Any]r   )r   s   "r   r   r   Ã   s!   € ÷ ñ  Sð °#ð ¸.ñ r   c                óŒ  € \        V4      '       g   / # / pV P                  e   V P                  VR&   V P                  '       d   RVR&   V P                  e   V P                  VR&   \	        V RR 4      e   V P
                  VR&   V P                  R8w  d/   V P                  VR&   V P                  f   RMV P                  VR	&   V# )
NÚmax_denoising_stepsTÚdiffusion_full_canvasÚdiffusion_min_canvas_lengthÚdiffusion_max_canvas_lengthúentropy-boundÚdiffusion_samplerçÍÌÌÌÌÌì?Údiffusion_threshold)r–   r®   r¯   r°   r”   r±   r³   Ú	threshold)r«   r�   Úkwargss   && r   Údiffusion_kwargs_from_argsr¸   Ã   sÌ   € Ü ×'Ò'Øˆ	à€FØ×ÑÒ+Ø(,×(@Ñ(@ˆÐ$Ñ%Ø×!×!Ð!Ø*.ˆÐ&Ñ'Ø×'Ñ'Ò3Ø04×0PÑ0PˆÐ,Ñ-ÜˆtÐ2°DÓ9ÒEØ04×0PÑ0PˆÐ,Ñ-Ø×Ñ Ô0Ø&*×&<Ñ&<ˆÐ"Ñ#à—>‘>Ò)‰C¨t¯~©~ð 	Ð$Ñ%ð €Mr   c                  óF   € ] tR t^ØtR R ltR R ltR R ltR R ltR	tR
# )ÚDiffusionOutputHandlerc               ó$   € V ^8„  d   QhRRRRRR/# )r   r™   rš   r·   r¬   ÚverboserD   r   )r   s   "r   r   Ú#DiffusionOutputHandler.__annotate__Ù   s!   € ÷ "ñ "˜ið "°ð "È$ñ "r   c                	óV  € W0n         \        VP                  R R4      ;'       d    \        V4      4      V n        VP                  R\
        4      V n        V P                  ;'       d    \        4       V n        V P                  '       d   \        4       MRV n
        RV n        RV n        R# )Údiffusion_show_unmaskingFÚdiffusion_unmasking_widthNr(   )r¼   rD   rM   rœ   Ú	live_moder:   r"   rN   Ú
can_redrawrv   ÚredrawerÚ	live_textÚdraft_active)ry   r™   r·   r¼   s   &&&&r   rz   ÚDiffusionOutputHandler.__init__Ù   s†   € ØŒÜØ�J‰JÐ1°5Ó9×WÐWÔ>PÐQVÓ>Wó
ˆŒð —Z‘ZØ'Ô)Jó
ˆŒ
ð Ÿ.™.×HÐHÔ-FÓ-HˆŒØ04··°Ô*Ô,ÀTˆŒØˆŒØ!ˆÖr   c               ó    € V ^8„  d   QhRRRR/# )r   rP   r   r   rV   r   )r   s   "r   r   r½   æ   s   € ÷ %ñ %Ð%5ð %¸$ñ %r   c                	ó¸   € V P                   '       dH   V P                  e8   V P                  P                  \        WP                  4      4       RV n        R # R # R # )NT)r¼   rÃ   rˆ   rT   r"   rÅ   )ry   rP   s   &&r   Úhandle_draftÚ#DiffusionOutputHandler.handle_draftæ   s?   € Ø�<�<ˆ<˜DŸM™MÒ5Ø�M‰M×ÑÔ;¸HÇjÁjÓQÔRØ $ˆDÖñ 6‰<r   c               ó    € V ^8„  d   QhRRRR/# )r   r   r   r   rD   r   )r   s   "r   r   r½   ë   s   € ÷ ñ  ð ¨ñ r   c                	óÎ  € V P                   '       dx   V P                  '       df   V ;P                  V,          un        V'       dC   V P                  P	                  \        V P                  V P                  R R7      4       R V n        R # V P                  '       d   V P                  '       d   R # V P                  '       d$   V P                  '       d   \        4        RV n        R# )T)r`   F)
rÂ   r¼   rÄ   rÃ   rˆ   rh   r"   rÅ   rÁ   ro   r‡   s   &&r   Úhandle_textÚ"DiffusionOutputHandler.handle_textë   s•   € Ø�?�?ˆ?˜tŸ|Ÿ|˜|Ø�NŠN˜dÕ"�NßØ—‘×"Ñ"Ü/ØŸ™ØŸ
™
Ø*.ôôð %)�Ô!Ùà�>�>ˆ>˜dŸlŸl˜lÙà××Ð §§ Ü'Ô)Ø %ˆDÔÙr   c               ó    € V ^8„  d   QhRRRR/# r…   r   )r   s   "r   r   r½     s   € ÷ 	&ñ 	&˜3ð 	& 4ñ 	&r   c                	óR  € V P                   '       dp   V P                  e4   V P                  '       d"   V P                  P                  4        RV n        V P                  '       d   V'       d   \        VRRR7       R # R # R # V P                  '       d   \        4        RV n        R # R # )NFr(   TrZ   )rÁ   rÃ   rÅ   r‚   r¼   r]   ro   r‡   s   &&r   ÚfinishÚDiffusionOutputHandler.finish  su   € Ø�>�>ˆ>Ø�}‰}Ò(¨T×->×->Ð->Ø—‘×#Ñ#Ô%Ø$)�Ô!Ø�|�|ˆ|§Ü�d ¨$×/ñ !%‰|à××ÐÜ'Ô)Ø %ˆDÖñ r   )rÂ   rÅ   rÁ   rÄ   rÃ   r¼   r"   N)	rŠ   r‹   rŒ   r�   rz   rÉ   rÍ   rÑ   rŽ   r   r   r   rº   rº   Ø   s   † õ"õ%õ
÷,	&ñ 	&r   rº   c               ó    € V ^8„  d   QhRRRR/# )r   r�   r   r   r¬   r   )r   s   "r   r   r     s   € ÷ 6ñ 6 3ð 6¨>ñ 6r   c                ó6   € \        V \        4      '       d   V # / # rR   )Ú
isinstanceÚdictr•   s   &r   Ú_diffusion_config_dictr×     s   € Ü ¬×-Ò-ˆ6Ð5°2Ð5r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Ú
batch_sizer   r’   Ú
vocab_sizer   úmx.arrayr   )r   s   "r   r   r     s6   € ÷ Wñ WØðWàðWð ðWð
 ñWr   c                ód   € \         P                  P                  ^ W V34      P                  V4      # )r   )ÚmxÚrandomÚrandintÚastype)rÙ   r’   rÚ   Údtypes   &&&&r   Ú_diffusion_initialize_canvasrâ     s,   € ô �9‰9×Ñ˜Q 
¸Ð,GÓH×OÑOÐPUÓVÐVr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úcur_stepr   r®   Úschedule_configúOptional[Dict[str, Any]]r   zOptional[float]r   )r   s   "r   r   r     s6   € ÷ 	Hñ 	HØð	Hàð	Hð .ð	Hð ñ		Hr   c                ó²   € Vf   R # \        VP                  RR4      4      p\        VP                  RR4      4      pW4V,
          W,          ,          ,           # )NÚt_minçš™™™™™Ù?Út_maxçš™™™™™é?)ÚfloatrM   )rä   r®   rå   rè   rê   s   &&&  r   Ú_diffusion_linear_temperaturerí     sP   € ð
 ÒÙÜ�/×%Ñ% g¨sÓ3Ó4€EÜ�/×%Ñ% g¨sÓ3Ó4€EØ˜U•] xÕ'EÕFÕGÐGr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úprocessed_logitsrÛ   Útemperaturerì   r   r   )r   s   "r   r   r   &  s(   € ÷ 
7ñ 
7Øð
7ð ð
7ð ñ	
7r   c                ó  € V P                  \        P                  4      pV^ 8:  d(   \        P                  ! VRR7      P                  V4      # VR8w  d	   W2,          p\        P                  P                  V4      P                  V4      # )r   ©Úaxisç      ð?éÿÿÿÿ)rà   rÝ   Úfloat32ÚargmaxrÞ   Úcategorical)rï   rá   rð   Úlogitss   &&& r   Ú_diffusion_sample_canvasrú   &  sl   € ð
 ×$Ñ$¤R§Z¡ZÓ0€FØ�aÔÜ�yŠy˜ bÔ)×0Ñ0°Ó7Ð7Ø�cÔØÕ%ˆÜ�9‰9× Ñ  Ó(×/Ñ/°Ó6Ð6r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rï   rÛ   Ú	token_idsr   r   )r   s   "r   r   r   3  s+   € ÷ 
@ñ 
@Øð
@àð
@ð ñ
@r   c                ó  € V P                  \        P                  4      p\        P                  ! VVR,          RR7      P	                  R4      p\        P
                  ! V\        P                  ! VRR7      ,
          4      # ).rò   ©.Nrõ   )rà   rÝ   rö   Útake_along_axisÚsqueezeÚexpÚ	logsumexp)rï   rü   rù   Útoken_logitss   &&  r   Ú_diffusion_token_probabilityr  3  se   € ð ×$Ñ$¤R§Z¡ZÓ0€FÜ×%Ò%ØØ�)ÕØô÷ �gˆbƒkð	 ô
 �6Š6�,¤§¢¨f¸2Ô!>Õ>Ó?Ð?r   c               ó    € V ^8„  d   QhRRRR/# )r   rï   rÛ   r   r   )r   s   "r   r   r   @  s   € ÷ /ñ /¨xð /¸Hñ /r   c                óê   € V P                  \        P                  4      pV\        P                  ! VRRR7      ,
          p\        P                  ! V4      p\        P
                  ! W2,          RR7      ) # ©rF   T)ró   Úkeepdimsrò   rõ   )rà   rÝ   rö   r  r  Úsum)rï   rù   Ú	log_probsÚprobss   &   r   Ú_diffusion_token_entropyr  @  sR   € Ø×$Ñ$¤R§Z¡ZÓ0€FØœŸš f°2ÀÔEÕE€IÜ�FŠF�9Ó€EÜ�FŠF�5Õ$¨2Ô.Ð.Ð.r   c               ó    € V ^8„  d   QhRRRR/# )r   Úembed_tokensrš   r   rÛ   r   )r   s   "r   r   r   G  s   € ÷ ñ °9ð Àñ r   c                óô   € \        V \        P                  4      '       dN   \        P                  ! V P
                  V P                  V P                  V P                  V P                  R7      # V P
                  # )a  Return a float weight matrix usable as ``probs @ weight``.

For quantized embeddings, the packed weight cannot feed a regular matmul
and ``mx.quantized_matmul(..., transpose=False)`` is several times slower
at this shape, so the table is dequantized once per generation call.
)Ú
group_sizeÚbits)
rÕ   ÚnnÚQuantizedEmbeddingrÝ   Ú
dequantizeÚweightÚscalesÚbiasesr  r  )r  s   &r   Ú _diffusion_soft_embedding_weightr  G  sc   € ô �,¤× 5Ñ 5×6Ò6Ü�}Š}Ø×ÑØ×ÑØ×ÑØ#×.Ñ.Ø×"Ñ"ô
ð 	
ð ×ÑÐr   c               ó    € V ^8„  d   QhRRRR/# )r   rù   rÛ   r   úTuple[mx.array, mx.array]r   )r   s   "r   r   r   Z  s   € ÷ ñ ¨8ð Ð8Qñ r   c                ó²   € V \         P                  ! V RRR7      ,
          p\         P                  ! V4      p\         P                  ! W!,          RR7      ) pW#3# r  )rÝ   r  r  r	  )rù   r
  r  Úentropys   &   r   Ú_diffusion_entropy_probs_chainr  Y  sE   € àœŸš f°2ÀÔEÕE€IÜ�FŠF�9Ó€EÜ�vŠv�eÕ'¨bÔ1Ð1€GØˆ>Ðr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   rï   rÛ   Úembedding_weightÚembed_scalerì   r   r  r   )r   s   "r   r   r   a  s0   € ÷ 	$ñ 	$Øð	$àð	$ð ð	$ð ñ		$r   c                óà   € \        V P                  \        P                  4      4      w  r4VP                  VP                  4      V,          P                  VP                  4      V,          pWE3# rR   )r  rà   rÝ   rö   rá   )rï   r  r   r  r  Úsoft_embeddingss   &&&   r   Ú&_diffusion_entropy_and_soft_embeddingsr#  a  sb   € ô
 4Ð4D×4KÑ4KÌBÏJÉJÓ4WÓX�N€EØ—|‘|Ð$4×$:Ñ$:Ó;Ð>NÕN×VÑVØ×Ñóàõ€Oð Ð#Ð#r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   rï   rÛ   r  r   rì   r   r   )r   s   "r   r   r   m  s0   € ÷ ñ Øðàðð ðð ñ	r   c                ó¸   € \         P                  ! V RRR7      pVP                  VP                  4      V,          P                  VP                  4      V,          # )rF   T)ró   Úpreciserõ   )rÝ   Úsoftmaxrà   rá   )rï   r  r   r  s   &&& r   Ú_diffusion_soft_embeddingsr(  m  sQ   € ô
 �JŠJÐ'¨b¸$Ô?€EØ�L‰LÐ)×/Ñ/Ó0Ð3CÕC×KÑKØ×Ñóàõð r   Ú	force_allc          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r   Ú
confidencerÛ   Úunrevealed_maskr¶   rì   r)  rD   r   r   )r   s   "r   r   r   x  s:   € ÷ "ñ "Øð"àð"ð ð"ð
 ð"ð ñ"r   c               ó¸  € V'       d   V# WV8¬  ,          p\         P                  ! VRR7      p\         P                  ! VRR7      pWV( ,          p\         P                  ! W\         P                  ) 4      p\         P                  ! VRR7      p	\         P
                  ! V P                  R,          4      R,          p
W©R,          8H  VR,          ,          pWK,          # )rF   rò   rõ   )NºNNN)r.  N)rÝ   ÚanyÚwhereÚinfr÷   ÚarangeÚshape)r+  r,  r¶   r)  Útransfer_maskÚhas_unrevealedÚhas_transferÚneeds_forceÚmasked_confidenceÚ
best_indexÚ	positionsÚforceds   &&&$        r   Ú#_diffusion_confidence_transfer_maskr<  x  sª   € ÷ ØÐà#°YÑ'>Õ?€MÜ—V’V˜O°"Ô5€NÜ—6’6˜-¨bÔ1€LØ  MÕ2€KÜŸš ¼r¿v¹v¸gÓFÐÜ—’Ð,°2Ô6€JÜ—	’	˜*×*Ñ*¨2Õ.Ó/°Õ8€IØ gÕ.Ñ.°+¸gÕ2FÕF€FØÕ!Ð!r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r  rÛ   Úentropy_boundrì   r   r   )r   s   "r   r   r   �  s&   € ÷ ñ Øðàðð ñr   c                ó8  € \         P                  ! V RR7      p\         P                  ! WRR7      p\         P                  ! VRR7      p\         P                  ! VRR7      pWE,
          V8*  p\         P
                  ! V4      p\         P                  ! VVVRR7      # )rF   rò   rõ   )rÝ   Úargsortrÿ   ÚcumsumÚcummaxÚ
zeros_likeÚput_along_axis)r  r>  Úsorted_indicesÚsorted_entropyÚcumulative_entropyÚcumulative_maximum_entropyÚsorted_selection_maskÚselection_masks   &&      r   Ú _diffusion_entropy_transfer_maskrK  �  s‰   € ô —Z’Z ¨bÔ1€NÜ×'Ò'¨ÀbÔI€NÜŸš >¸Ô;ÐÜ!#§¢¨>ÀÔ!CÐàÕ7Ø	ñÐô —]’]Ð#8Ó9€NÜ×ÒØØØØô	ð r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úprompt_lengthr   Úmax_new_tokensÚmodel_canvas_lengthr   r   )r   s   "r   r   r   ¡  s0   € ÷ 0ñ 0Øð0àð0ð ð0ð 	ñ	0r   c                ó@   € V^,
          V,          V,          pW,           # )rF   r   )rM  rN  rO  Úcached_canvas_tokenss   &&& r   Ú_diffusion_static_cache_lengthrR  ¡  s(   € ð
 ,¨aÕ/Ð4GÕGØõÐð Õ/Ð/r   c               ó    € V ^8„  d   QhRRRR/# )r   Úmm_token_type_idsúOptional[mx.array]r   rD   r   )r   s   "r   r   r   ¬  s    € ÷ Tñ TÐ9Kð TÐPTñ Tr   c                ó‚   € V f   R# \        \        P                  ! V ^8H  V ^8H  ,          4      P                  4       4      # ©NF)rD   rÝ   r/  Úitem)rT  s   &r   Ú!_diffusion_has_visual_token_typesrY  ¬  s9   € ØÒ ÙÜ”—’Ð)¨QÑ.Ð3DÈÑ3IÕJÓK×PÑPÓRÓSÐSr   c               ó4   € V ^8„  d   QhRRRRRRRRRR	R
R	RR/# )r   Úprefill_step_sizer2   rM  r   Úhas_paddingrD   Úuse_static_cacheÚpixel_valuesrU  rT  r   r   )r   s   "r   r   r   ²  sY   € ÷ Dñ Dà$ðDð ðDð ð	Dð
 ðDð %ðDð *ðDð 
ñDr   c                óf   € V e   W8:  d   R# V'       g   V'       g   Ve   R# \        V4      '       * # rW  )rY  ©r[  rM  r\  r]  r^  rT  s   $$$$$$r   Ú_diffusion_should_chunk_prefillra  ²  s1   € ð Ò  MÔ$FÙß×&¨,Ò*BÙô 1Ð1BÓCÔCÐCr   c               ó4   € V ^8„  d   QhRRRRRRRRRRR	R
RR/# )r   r™   rš   Ú	input_idsrÛ   Úattention_maskrU  r^  rT  r[  r2   Úchunk_prefillrD   r   )r   s   "r   r   r   Å  sN   € ÷ ñ Øðàðð 'ð	ð %ðð *ðð %ðð ñr   c               óÔ  € V'       g%   V P                   P                  VVVVVR 7      w  rƒV# \        ^ VP                  ^,          V4       F”  p	\	        W–,           VP                  ^,          4      p
V P                   P                  VRWš13,          RVR7      w  rƒ\
        P                  ! V Uu. uF  q»P                  NK  	  up4       \
        P                  ! 4        K–  	  V# u upi ))rd  Úcacher^  rT  r.  N©rd  rg  )	r™   Úencoderr   r3  r<   rÝ   ÚevalÚstateÚclear_cache)r™   rc  rd  Úkv_cacher^  rT  r[  re  r�   Ústartr[   Úcs   &&$$$$$$    r   Ú_diffusion_prefill_cacherp  Å  sÒ   € ÷ Ø—k‘k×)Ñ)ØØ)ØØ%Ø/ð *ó 
‰ˆð ˆä�q˜)Ÿ/™/¨!Õ,Ð.?Ö@ˆÜ�%Õ+¨Y¯_©_¸QÕ-?Ó@ˆØ—k‘k×)Ñ)Ø�a˜˜�lÕ#ØØð *ó 
‰ˆô
 	�Š¡(Ó+¡(˜Q—”¡(Ñ+Ô,Ü
�ŠÖñ Að €Oùò ,s   Â/C%
c          
     ó,   € V ^8„  d   QhRRRRRRRRRR	/# )
r   Úaccepted_canvasrÛ   rï   ÚhistoryzList[mx.array]Ústopping_configræ   r   rD   r   )r   s   "r   r   r   æ  s:   € ÷  ñ  Øð àð ð ð ð .ð	 ð
 
ñ r   c                ó  a € Vf   R# \        VP                  R^4      4      p\        VP                  RR4      4      p\        V4      V8X  d<   \        ;QJ d    V 3R lV 4       F  '       d   K   RM	  RM! V 3R lV 4       4      pMRpVP                  S 4       \        V4      V8”  d   VP                  ^ 4       V'       g   R# \        V4      p\        \        P                  ! V4      V8  P                  4       4      pT;'       d    T# )NFÚstability_thresholdÚconfidence_thresholdg{®Gázt?c              3  ó„   <"  € T F5  p\        \        P                  ! SV8H  4      P                  4       4      x € K7  	  R # 5irR   )rD   rÝ   ÚallrX  )Ú.0Úcanvasrr  s   & €r   Ú	<genexpr>Ú2_diffusion_stable_and_confident.<locals>.<genexpr>ó  s3   øé € ð 
ÙIP¸vŒD”—’˜¨6Ñ1Ó2×7Ñ7Ó9×:Ð:Ëùs   ƒ=A T)r   rM   rì   Úlenry  r)   r+   r  rD   rÝ   ÚmeanrX  )	rr  rï   rs  rt  rv  rw  ÚstableÚtoken_entropyÚ	confidents	   f&&&     r   Ú_diffusion_stable_and_confidentrƒ  æ  så   ø€ ð ÒÙä˜o×1Ñ1Ð2GÈÓKÓLÐÜ  ×!4Ñ!4Ð5KÈUÓ!SÓTÐä
ˆ7ƒ|Ð*Ô*ß“ô 
ÙIPó
——’ô 
ÙIPó
ó 
‰ð ˆà‡N�N�?Ô#Ü
ˆ7ƒ|Ð)Ô)Ø�‰�AŒçÙä,Ð-=Ó>€MÜ”b—g’g˜mÓ,Ð/CÑC×IÑIÓKÓL€IØ×Ð�iÐr   c               ó    € V ^8„  d   QhRRRR/# )r   r™   rš   Úcompile_graphrD   r   )r   s   "r   r   r     s   € ÷ =ñ =Øð=ð
 ñ=r   c               ó–   a aa€ VVV 3R  lpVVV 3R lpV'       d-   \         P                  ! V4      \         P                  ! V4      3# WE3# )c                ó0   <€ S! SV R SR7      P                   # )N)rg  Ú
canvas_idsÚself_conditioning_logitsÚdecoder_attention_mask©rù   )Úcurrent_canvasrm  Úmask_mappingr™   s   &€€€r   Úwithout_self_conditioningÚE_make_diffusion_decoder_logits_fns.<locals>.without_self_conditioning  s#   ø€ ÙØØ%Ø%)Ø#/ô	
÷
 ‰&ð	r   c                ó0   <€ S! SV VSR 7      P                   # ))rg  rˆ  Úself_conditioning_embeddingsrŠ  r‹  )rŒ  r‘  rm  r�  r™   s   &&€€€r   Úwith_self_conditioningÚB_make_diffusion_decoder_logits_fns.<locals>.with_self_conditioning  s#   ø€ ÙØØ%Ø)EØ#/ô	
÷
 ‰&ð	r   )rÝ   Úcompile)r™   rm  r�  r…  rŽ  r’  s   fff$  r   Ú"_make_diffusion_decoder_logits_fnsr•    s:   ú€ ÷÷÷ Ü�zŠzÐ3Ó4´b·j²jÐAWÓ6XÐXÐXØ$Ð<Ð<r   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   Ú	tokenizerr
   rü   z	List[int]Úreveal_maskz
List[bool]Ú	max_charsr2   r   r   r   )r   s   "r   r   r   !  s:   € ÷  ñ  Ø"ð àð ð ð ð
 ð ð 	ñ r   c                ó„  a a
a€ \        T;'       g    . 4      p. o. o
V
VV 3R  lp\        W4       FK  w  rx\        V4      pV'       d   Wu9  d   S
P                  V4       K1  K3  V! 4        SP                  R4       KM  	  V! 4        RP	                  R S 4       4      p	V	P                  RR4      P                  RR4      p	V	# )c                 óò   <€ S '       g   R #  SP                  SP                  S RR7      4       S P	                  4        R #   \         d+    SP                  RP                  R S  4       4      4        LFi ; i)NF)Úskip_special_tokensÚ c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5irR   )r   )rz  Útoken_ids   & r   r|  ÚG_decode_diffusion_masked_draft.<locals>.flush_tokens.<locals>.<genexpr>2  s   é € Ð"PÁ°X¤3 x§= =Ãùs   ‚)r)   ÚdecodeÚ	Exceptionr*   r‚   )Úpending_tokensÚpiecesr—  s   €€€r   Úflush_tokensÚ4_decode_diffusion_masked_draft.<locals>.flush_tokens,  sg   ø€ ßÙð	RØ�M‰M˜)×*Ñ*¨>ÈuÐ*ÓUÔVð 	×ÑÖøô ô 	RØ�M‰M˜#Ÿ(™(Ñ"PÁÓ"PÓPÖQð	Rús   �"A Á2A6Á5A6z[Mask]r�  c              3  ó8   "  € T F  q'       g   K  Vx € K  	  R # 5irR   r   )rz  Úpieces   & r   r|  Ú1_decode_diffusion_masked_draft.<locals>.<genexpr>?  s   é € Ð7¡v˜e³—E’E£vùs   ‚	�
rc   rd   re   rf   )ÚsetÚzipr   r)   r*   rg   )r—  rü   r˜  Úskip_special_token_idsr™  Úskip_idsr¥  rŸ  Úrevealr   r£  r¤  s   f&&&&     @@r   Ú_decode_diffusion_masked_draftr¯  !  s°   ú€ ô Ð)×/Ð/¨RÓ0€HØ€FØ€N÷ô   	Ö7ÑˆÜ�x“=ˆßØÔ'Ø×%Ñ% hÖ/ñ (ñ ŒNØ�M‰M˜(Ö#ñ 8ñ „NØ�8‰8Ñ7¡vÓ7Ó7€DØ�<‰<˜˜eÓ$×,Ñ,¨T°5Ó9€DØ€Kr   rð   r®   r¯   r°   r±   Údiffusion_static_cacher³   r²   rµ   r´   Údiffusion_compiler¿   Údiffusion_unmasking_intervalrÀ   rT  r[  c          ,     óp   € V ^8„  d   Qh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RRRRRRRRR	RRRR /# )!r   r™   rš   Ú	processorr
   r—  rc  rÛ   r^  rU  rd  Ú
max_tokensr   rð   rì   r®   r2   r¯   rD   r°   r±   r°  r³   r   rµ   r±  r¿   r²  rÀ   rT  r[  r   ú'Generator[GenerationResult, None, None]r   )r   s   "r   r   r   D  s  € ÷ CMñ CMØðCMà"ðCMð #ðCMð ð	CMð
 %ðCMð 'ðCMð ðCMð ðCMð 'ðCMð  ðCMð "/ðCMð "/ðCMð !ðCMð  ð!CMð" ð#CMð$ ð%CMð& #ð'CMð( #&ð)CMð*  #ð+CMð, *ð-CMð. %ð/CMð0 -ñ1CMr   c             #  óè  aVaWaXaYaZa[a\a]"  € VP                   ^ ,          ^8w  d   \        R4      h\        \        V P                  RR4      4      pVP                  R4      pVe.   \        VR4      '       d   VP                  P                  V4       V P                  P                  pVP                   w  ppVP                  o]\        V P                  P                  4      pVe   V^ 8:  d   \        R4      hVe   V^ 8:  d   \        R4      hV
'       d   TM\        T\        T;'       g    T4      4      p\        T\        T;'       g    \        4      4      p\        VP                  4      p\        T;'       g    VP                  RR	4      4      pV	f*   \        VP                  R
4      ;'       g    \         4      p	M\        V	4      p	V^ 8:  d   \        R4      hV^ 8  d   \        R4      hVR@9  d   \        RV: R24      hRTu;8:  d   R8:  g   M \        R4      hVe   \        V4      pV^ 8:  d   \        R4      h\        VP                  RR4      4      p V P                  RR4      p!\#        V P                  RR4      4      p"V!R8w  d   \%        RV!: R24      hVP                  R4      p#\        V#4      p#V#'       g<   RV9   g   RV9   d(   RVP                  RR4      RVP                  RR 4      /p#MRRRR /p#VP                  R!4      p$\        V$4      p$V$'       g-   RA U%u/ uF  p%V%V9   g   K  V%VV%,          bK  	  p$p%V$'       g   Rp$Vf*   \&        P(                  ! VV3\&        P*                  R"7      pMVP-                  \&        P*                  4      p\/        VVV4      p&T;'       d    V&V8„  p'\1        \&        P2                  ! V4      P5                  4       4      '       * p(V''       dG   \&        P6                  ! VV&3\&        P*                  R"7      p)VV)R#RV13&   Tp*V P9                  V&R$7      p+MV('       d   TMRp)Tp*V P9                  4       p+\;        V4      p,\=        VVV(V'VVR%7      p-^ oY^ oV^ oW^ oXRo[Ro\\>        P@                  ! 4       oZ\>        P@                  ! 4       p.R&p/Rp0R'p1R(p2R)R'R*R+R,^ R-^ R.^ R/R'R0R/R1 VVVWVXVYVZV[V\V]3R2 lllp3\&        PB                  ! \D        4      ;_uu_ 4        \G        V PH                  PJ                  PL                  4      p4^ p5SYV8  EdÛ   V5^,          p5V/'       d   TMT0p6V/'       d   \O        T T6V('       d   TMRV+VVVV-R37      p+M!V PH                  PQ                  V6RV+R47      w  p7p+V/'       dd   \&        PR                  ! V+ U8u. uF  p8V8PT                  NK  	  up84       \>        P@                  ! 4       V.,
          o\\>        P@                  ! 4       oZR'p/VSY,
          p9V
'       d   TM\        V\W        V9V4      4      p:V)eA   \&        PX                  ! V)\&        P(                  ! VV:3\&        P*                  R"7      .RBR57      MRp;\[        VV:VVP\                  4      p0\&        P6                  ! V0P                   \&        P*                  R"7      p<T0p=T0p>T0p?Rp@V PH                  PJ                  P_                  V0RC,          V+V;4      pA\a        V V+VAVR67      w  pBpC. pD^ pEV'       dW   \c        TV=^ ,          Pe                  4        UFu. uF  pF\        VF4      NK  	  upFR'.V:,          VVR77      pGV3! R+R&VG^ V	V5R87      x € \g        \i        ^V	^,           4      4       EF>  pHXE^,          pE X@f
   XB! V04      pIM
XC! V0X@4      pI \q        XHV	V#4      pKVKe
   XIXK,          pI\&        Pr                  ! XIRBR57      P-                  VP\                  4      p?XH^8X  d   V'       g    EMÁV^ 8:  d   T?M\u        XIVP\                  V4      pLVR8X  d›   XH^8”  d0   \w        XIV4V PH                  PJ                  Px                  4      w  pMpNM\{        XI4      pMRpN\}        XMV"4      pO\&        P~                  ! VOXLV04      p>\&        P~                  ! VOV>\[        VV:VVP\                  4      4      p0TOp<T?p=M‘RpNV<( pP\�        XIXL4      pQ\ƒ        VQVPVXH^8H  R:7      pO\&        P~                  ! VOVLV=4      p>\&        P~                  ! V<VO,          V>\[        VV:VVP\                  4      4      p0V<VO,          p<\&        P~                  ! VOV>V=4      p=V	XH,
          ^,           pRT;'       d'    XR^8H  ;'       g    XH^8H  ;'       g    XRV,          ^ 8H  pSVS'       d”   \&        PR                  ! V=V<4       \c        TV=^ ,          Pe                  4        UFu. uF  pF\        VF4      NK  	  upFV<^ ,          Pe                  4        UTu. uF  pT\1        VT4      NK  	  upTVVR77      pGV3! R+R&VGXRV	V5R87      x € VR8X  d8   \1        \&        P2                  ! V<4      P5                  4       4      '       d   T=p> MV\…        V?XIXDV$4      '       d    M@XH^8”  g   EK  XNf,   \‡        XIV4V PH                  PJ                  Px                  4      pNXNp@EKA  	  T?p0SVV:,          oVSWXE,          oWSXV:VE,          ,          oX\&        PR                  ! V04       V0^ ,          Pe                  4        Fj  pF\        VF4      o[SY^,          oYVP                  S[4      '       d   R&p1R;p2 M:V,P‰                  S[VR<7       V3! V,PŠ                  V5R=7      x € SYV8¼  g   Kf  R&p1R(p2 M	  V3! R+V5R&R>7      x € V1'       d   M~V''       d   R&V)R#V*V*V:,           13&   V*V:,          p*MDV)eA   \&        PX                  ! V)\&        P(                  ! VV:3\&        P*                  R"7      .RBR57      p)\&        PŒ                  ! 4        EKâ  RRR4       S\R8X  d   \>        P@                  ! 4       V.,
          o\V,P�                  4        V1'       d   T2MR(pUV3! V,PŠ                  VUR?7      x € R# u up%i u up8i u upFi   \j         dZ   pJT'       g   h \l        Po                  R9XJ4       R'p\a        T T+XAR'R67      w  pBpCX@f   XB! T04      pI RpJ?JEL/XC! T0X@4      pI RpJ?JEL>RpJ?Jii ; iu upFi u upTi   + '       g   i     Lç; i5i)Dr   z@Diffusion model streaming generation only supports batch size 1.Úgeneration_configNÚeos_token_idÚstopping_criteriaz7diffusion_min_canvas_length must be a positive integer.z7diffusion_max_canvas_length must be a positive integer.rN  é   r®   z8diffusion_unmasking_interval must be a positive integer.z/diffusion_unmasking_width must be non-negative.r²   úconfidence-thresholdzUnsupported diffusion sampler: Ú.r   rô   z,diffusion_threshold must be between 0 and 1.z-prefill_step_size must be a positive integer.Úsampler_configÚ	_cls_nameÚEntropyBoundSamplerConfigr>  gš™™™™™¹?zDiffusion sampler z is not supported yet.Ú"linear_temperature_schedule_configrè   rê   ré   rë   Údiffusion_stopping_config)rá   r.  )Úmax_sizer`  TFÚlengthÚis_draftrS   r(   Údiffusion_stepÚdiffusion_total_stepsÚdiffusion_canvas_indexÚdiffusion_block_completeÚfinish_reasonc               ó<   € V ^8„  d   QhRRRRRRRRRRR	RR
RRRRR/	# )r   r   r   rÅ  rD   rS   rÆ  r   rÇ  rÈ  rÉ  rÊ  r£   r   r   r   )r   s   "r   r   Ú/stream_diffusion_generate.<locals>.__annotate__ß  sd   € ÷ "
ñ "
Øð"
ð ð"
ð ð	"
ð
 ð"
ð  #ð"
ð !$ð"
ð #'ð"
ð %ð"
ð 
ñ"
r   c          
     ón  <€ \        \        P                  ! 4       S,
          R 4      p\        R/ RV bRSbRRbRSbRSbRSS,           bRS\        SR 4      ,          bR	SV,          bR
\        P
                  ! 4       R,          bRVbRS	bRS
bRSbRS	V,          bRSV,          bRVbRVbRVbRVbRVbRVb # )g•Ö&è.>r   ÚtokenÚlogprobsNÚprompt_tokensÚgeneration_tokensÚtotal_tokensÚ
prompt_tpsÚgeneration_tpsÚpeak_memoryg    eÍÍArÊ  Údiffusion_canvas_tokensÚdiffusion_denoising_stepsÚdiffusion_work_tokensÚdiffusion_canvas_tpsÚdiffusion_work_tpsrÅ  rS   rÆ  rÇ  rÈ  rÉ  r   )r;   ÚtimeÚperf_counterr   rÝ   Úget_peak_memory)r   rÅ  rS   rÆ  rÇ  rÈ  rÉ  rÊ  Úgeneration_timerÖ  r×  rØ  Úgenerated_tokensÚgeneration_ticÚ
last_tokenÚprompt_timerÐ  s   &$$$$$$$ €€€€€€€€r   Úmake_resultÚ.stream_diffusion_generate.<locals>.make_resultß  s*  ø€ ô œd×/Ò/Ó1°NÕBÀDÓIˆÜò 
Ùð
áð
ñ ð
ñ (ð	
ñ
 /ð
ð 'Ð)9Ö9ð
ð %¤s¨;¸Ó'=Ö=ð
ð ,¨oÖ=ð
ô ×*Ò*Ó,¨sÖ2ð
ñ (ð
ñ %<ð
ñ '@ð
ñ #8ð
ð "9¸?Ö!Jð
ð  5°ÖFð
ñ  ð!
ñ" "ð#
ñ$ *ð%
ñ& #8ð'
ñ( $:ð)
ñ* &>ð+
ð 	
r   )rd  rm  r^  rT  r[  re  rh  rò   )r…  )r™  )rÅ  rS   rÆ  rÇ  rÈ  zHDiffusion decoder compilation failed; falling back to the eager path: %s)r)  Ústop)r¬  )rÈ  )rÈ  rÉ  )rÊ  )r²   r¼  )rw  rv  rõ   rþ   )Hr3  Ú
ValueErrorr×   r”   r�   rM   Úhasattrrº  Úadd_eos_token_idsÚtext_configÚsizer   r’   r<   Ú#DEFAULT_DIFFUSION_MIN_CANVAS_LENGTHrÚ   Ú%DEFAULT_DIFFUSION_MAX_DENOISING_STEPSrì   ÚNotImplementedErrorrÝ   ÚonesÚbool_rà   rR  rD   ry  rX  ÚzerosÚ
make_cacher   ra  rÛ  rÜ  Ústreamr   r  r™   Údecoderr  rp  ri  rj  rk  r;   Úconcatenaterâ   rá   Ú_make_decoder_masksr•  r¯  ÚtolistÚreversedr   r¢  ÚloggerÚwarningrí   r÷   rú   r#  r   r  rK  r0  r  r<  rƒ  r(  Ú	add_tokenÚlast_segmentrl  Úfinalize)^r™   r´  r—  rc  r^  rd  rµ  r¬  rð   r®   r¯   r°   r±   r°  r³   rµ   r±  r¿   r²  rÀ   rT  r[  r¸  Úconfig_eos_token_idsré  rÙ   rM  rO  Úmax_canvas_lengthÚmin_canvas_lengthrÚ   rN  r¾  Úsampler_namer>  Útemperature_configrÂ  ÚkeyÚstatic_cache_lengthr]  r\  rŠ  Úcached_sequence_lengthrm  Údetokenizerre  ÚticÚ
is_prefillrŒ  ÚstoppedÚstop_reasonrã  Úsoft_embedding_weightÚcanvas_indexÚunprocessed_input_idsr�   ro  Úremaining_tokensr’   Úcurrent_decoder_attention_maskÚdraft_reveal_maskÚdraft_canvasrr  Úargmax_canvasr‘  r�  Údecoder_logits_without_scÚdecoder_logits_with_scÚdiffusion_historyÚdenoising_steps_this_canvasrŸ  rS   rä   rï   ÚexcÚschedule_temperatureÚdenoiser_canvasr�  Ú!next_self_conditioning_embeddingsÚacceptance_maskr,  r+  Údisplayed_stepÚshould_show_unmaskingÚvrÊ  rÖ  r×  rØ  rß  rà  rá  râ  rÐ  s^   &&&&&&$$$$$$$$$$$$$$$$                                                                @@@@@@@@r   Ústream_diffusion_generater  D  s©  ÿé € ð2 ‡��qÕ˜QÔÜØNó
ð 	
ô /Ü�—‘Ð1°4Ó8óÐð -×0Ñ0°Ó@ÐØÒ'¬G°IÐ?R×,SÒ,SØ×#Ñ#×5Ñ5Ð6JÔKØ—,‘,×*Ñ*€KØ )§¡Ñ€J�Ø—N‘N€MÜ˜eŸl™l×8Ñ8Ó9ÐØ"Ò.Ð3NÐRSÔ3SÜÐRÓSÐSØ"Ò.Ð3NÐRSÔ3SÜÐRÓSÐS÷ !ñ 	äØÜÐ+×BÐBÐ/BÓCó
ð ô ØÜÐ'×NÐNÔ+NÓOóÐô �[×+Ñ+Ó,€JÜ˜×SÐSÐ'8×'<Ñ'<Ð=MÈsÓ'SÓT€NØÒ"Ü!Ø×!Ñ!Ð"7Ó8÷ 5ð 5Ü4ó
Ñô
 "Ð"5Ó6ÐØ# qÔ(ÜÐSÓTÐTØ  1Ô$ÜÐJÓKÐKØÐ IÔIÜÐ:Ð;LÑ:OÈqÐQÓRÐRØÐ%Ö,¨Ö,ÜÐGÓHÐHØÒ$ÜÐ 1Ó2ÐØ Ô!ÜÐLÓMÐMä+Ø×ÑÐ.°Ó5ó€Nð "×%Ñ% kÐ3NÓO€LÜ˜.×,Ñ,¨_¸cÓBÓC€MØÐ2Ô2Ü!Ø  Ñ 0Ð0FÐGó
ð 	
ð +×.Ñ.Ð/SÓTÐÜ/Ð0BÓCÐßØÐ'Ô'¨7Ð6GÔ+GàÐ*×.Ñ.¨w¸Ó<ØÐ*×.Ñ.¨w¸Ó<ð"Ñð
 #*¨3°¸Ð!=Ðà 1× 5Ñ 5Ð6QÓ RÐÜ 6Ð7PÓ QÐß$ñ Gó%
áF�ØÐ'Ñ'ô (ˆCÐ" 3Õ'Ò'ÙFð 	"ð %
÷
 )Ø(,Ð%àÒÜŸš *¨mÐ!<ÄBÇHÁHÔM‰à'×.Ñ.¬r¯x©xÓ8ˆä8ØØØóÐð
 .×UÐUÐ2EÈÑ2UÐÜœ2Ÿ6š6 .Ó1×6Ñ6Ó8Ó9Ô9€KßÜ!#§¢ØÐ,Ð-´R·X±Xô"
Ðð 5CÐ˜q . = .Ð0Ñ1Ø!.ÐØ×#Ñ#Ð-@Ð#ÓA‰ç3>¡ÀDÐØ!.ÐØ×#Ñ#Ó%ˆÜ,¨YÓ7€KÜ3Ø+Ø#ØØ)Ø!Ø+ô€Mð ÐØÐØ !ÐØÐØ€JØ€KÜ×&Ò&Ó(€NÜ
×
Ò
Ó
€CØ€JØ€NØ€GØ€Kð"
ð ð"
ð ð	"
ð
  ð"
ð &'ð"
ð '(ð"
ð */ð"
ð (,÷"
÷ "
ñ "
ôH 
�ŠÔ$×	%Õ	%ô !AØ�K‰K×Ñ×,Ñ,ó!
Ðð ˆØ Õ/Ø˜AÕˆLß1;¡IÀÐ!ßÜ3ØØ)ß5@¡>ÀdØ%Ø!-Ø&7Ø&7Ø"/ô	‘ð $Ÿk™k×1Ñ1Ø)Ø#'Ø"ð 2ó ‘��8÷ Ü—’©(Ó3©( Q˜Ÿœ©(Ñ3Ô4Ü"×/Ò/Ó1°CÕ7�Ü!%×!2Ò!2Ó!4�Ø"�
à-Ð0@Õ@Ð÷ )ñ $äÐ*¬CÐ0@ÐBSÓ,TÓUð ð *Ò5ô —’à.ÜŸš ¨]Ð ;Ä2Ç8Á8ÔLðð õð ð +ô :ØØØØ—‘ó	ˆNô !#§¢¨×)=Ñ)=ÄRÇXÁXÔ NÐØ)ˆLØ,ˆOØ*ˆMØ+/Ð(Ø Ÿ;™;×.Ñ.×BÑBØ˜yÕ)ØØ.óˆLô 3ØØØ Ø"3ô	ñ >Ð%Ð'=ð 13ÐØ*+Ð'ç'Ü;ØØ3?Àµ?×3IÑ3IÔ3KÓLÑ3K x”S˜–]Ñ3KÑLØ�G˜mÕ+Ø*Ø7ô�
ñ "ØØ!Ø)Ø#$Ø*=Ø+7ôò ô %¤U¨1Ð.AÀAÕ.EÓ%F×G�Ø+¨qÕ0Ð+ðØ3Ò;Ù+DÀ^Ó+TÑ(á+AØ*Ø8ó,Ñ(ô8 (EØØ'Ø&ó(Ð$ð
 (Ò3Ø'7Ð:NÕ'NÐ$ä "§	¢	Ð*:ÀÔ D× KÑ KØ—O‘Oó!�ð ˜q”=×)AÚð # aÔ'ñ "ä1Ø(Ø!Ÿ™Ø#óð  ð %¨Ô7Ø !”|äBØ 0Ø 5Ø %§¡× 3Ñ 3× ?Ñ ?óñ I˜Ñ'Hô )AÐAQÓ(R˜Ø<@Ð9Ü&FØ%Ø%ó'�Oô ')§h¢hØ'Ø'Ø&ó'�Oô
 &(§X¢XØ'Ø'Ü4Ø&Ø)Ø&Ø%ŸO™Oó	ó	&�Nð )8Ð%Ø#0‘Là8<Ð5Ø'8Ð&8�OÜ!=Ø(Ø'ó"�Jô 'JØ"Ø'Ø+Ø"*¨a¡-ô	'�Oô ')§h¢hØ'Ø'Ø$ó'�Oô
 &(§X¢XØ)¨OÕ;Ø'Ü4Ø&Ø)Ø&Ø%ŸO™Oó	ó	&�Nð ):¸OÕ(KÐ%Ü#%§8¢8Ø'¨¸,ó$�Lð "5°xÕ!?À!Õ!C�Ø(@÷ )ð )Ø" aÑ'÷ Jð JØ 1‘}÷Jð Jà%Ð(DÕDÈÑIð &÷
 )Ü—G’G˜LÐ*;Ô<Ü!?Ø!Ø7CÀAµ×7MÑ7MÔ7OÓPÑ7O¨8œ˜XžÑ7OÑPØ*;¸AÕ*>×*EÑ*EÔ*GÓHÑ*G Qœ˜ažÑ*GÑHØ.Ø";ô"�Jñ &ØØ!%Ø#-Ø'5Ø.AØ/;ôò ð %Ð(>Ô>Ä4Ü—F’FÐ,Ó-×2Ñ2Ó4÷Dò Dð '3�OÙä2Ø!Ø$Ø%Ø-÷	ò ñ à˜a—<Ø8Ò@Ü<VØ,Ø1Ø!ŸK™K×/Ñ/×;Ñ;ó=Ð9ð
 4UÓ0ñS HðV +ˆNØ# }Õ4Ð#Ø%Ð)DÕDÐ%Ø! ]Ð5PÕ%PÕPÐ!Ü�GŠG�NÔ#à*¨1Õ-×4Ñ4Ö6�Ü  ›]�
Ø  AÕ%Ð à×.Ñ.¨z×:Ò:Ø"�GØ"(�KÙà×%Ñ%ØÐ7Mð &ô ñ "Ø×,Ñ,Ø+7ôò ð
 $ ~Ö5Ø"�GØ"*�KÙñ) 7ñ0 ØØ'3Ø)-ôò ÷ Øçð ð 'ØÐ-Ð0FÈÕ0VÐVÐVñð '¨-Õ7Ñ&Ø'Ò3Ü)+¯ªà.ÜŸš ¨]Ð ;Ä2Ç8Á8ÔLðð ô*Ð&ô �NŠN×÷}	 
&ð@
 �cÔÜ×'Ò'Ó)¨CÕ/ˆØ×ÑÔß#*‘K°€MÙ
�k×.Ñ.¸mÔ
LÔLùò}%
ùòn 4ùòh Møô0 !ô ß,ØÜ—N‘Nð0àôð
 ).Ð%ä:Ø!Ø$Ø(Ø*/ô	ñ FÐ-Ð/Eð 4Ò;Ù+DÀ^Ó+TÖ(á+AØ*Ø8ó,Ö(ûð)üòx QùÚH÷M 
&×	%üs5  ŠD	s2Äs2Ä*s2Å	1s2Å;7s2Æ3E5s2Ì(	qÌ6qÍA-s2Î2Bs2Ñ B2s2Ó2AsÔ7sÕAsÖ
sÖq$Ö3A
s×>DsÜq)Ü+AsÝ8q.ÞsÞ	q.ÞAsß)E-såså$så1sæ6sæ<sçsç+sç?A2sé7C(sí$sîsî
A6sð As2ñ!s2ñ$
sñ.s	ñ9?s	ò8sò>	s	ósós	ósós/	ó*s2c               ó8   € V ^8„  d   QhRRRRRRRRRR	R
R	RRRR/# )r   r™   rš   r´  r
   r—  rc  rÛ   r^  rU  rd  r·   r¬   r   r¶  r   )r   s   "r   r   r   J  sX   € ÷ 2ñ 2Øð2à"ð2ð #ð2ð ð	2ð
 %ð2ð 'ð2ð ð2ð -ñ2r   c              #  óZ  "  € VP                  R R4      pVP                  RR4      p	VP                  RR4      p
VP                  RR4      pVP                  RR4      pVP                  RR4      pVP                  R	R
4      pVP                  RR4      pVP                  RR4      pVP                  R^4      pVP                  R\        4      pVP                  RR4      pVP                  RR4      p\        V \        .4      ;_uu_ 4        \	        V VVVVV3/ RVP                  RR4      bRVP                  R\        4      bRVbR VbRV	bRV
bRVbRVbRVbR	VbRVbRVbRVbRVbRVbRVb  Rj  x€L
  \        P                  ! 4        RRR4       R#  L#  + '       g   i     R# ; i5i)r®   Nr¯   Fr°   r±   r°  r³   r²   rµ   r´   r±  r¿   r²  rÀ   rT  r[  rµ  i   rð   r¬  )	r+   r:   r   r   r  rM   ÚDEFAULT_TEMPERATURErÝ   rl  )r™   r´  r—  rc  r^  rd  r¬  r·   r®   r¯   r°   r±   r°  r³   rµ   r±  r¿   r²  rÀ   rT  r[  s   &&&&&&&&             r   Ú%stream_diffusion_generate_from_kwargsr"  J  s
  é € ð !Ÿ*™*Ð%:¸DÓAÐØ"ŸJ™JÐ'>ÀÓFÐØ"(§*¡*Ð-JÈDÓ"QÐØ"(§*¡*Ð-JÈDÓ"QÐØ#ŸZ™ZÐ(@À%ÓHÐØŸ
™
Ð#6¸ÓHÐØ Ÿ*™*Ð%:¸CÓ@ÐØŸ
™
Ð#6¸Ó>ÐØ%Ÿz™zÐ*DÀeÓLÐØ#)§:¡:Ð.LÈaÓ#PÐ Ø &§
¡
Ø#Ô%Fó!Ðð Ÿ
™
Ð#6¸Ó=ÐØŸ
™
Ð#6¸Ó=ÐÜ	�UÔ.Ð/×	0Õ	0Ü,ØØØØØØò
ð —z‘z ,°Ô5ð
ð Ÿ
™
 =Ô2EÔFð
ñ $:ð
ñ !4ð
ñ #8ð
ñ )Dð
ñ )Dð
ñ $:ð
ñ 0ð
ñ  !4ð!
ñ" 0ð#
ñ$ &>ð%
ñ& *Fð'
ñ( '@ð)
ñ* 0ð+
ñ, 0ð-
÷ 	
ð 	
ô0 	�ŠÔ÷3 
1Ñ	0ñ	
÷ 
1×	0Ð	0üs1   ‚DF+Ä
A'FÅ1FÅ2FÆ
F+ÆFÆF(	Æ"	F+rR   )IÚ
__future__r   ÚloggingrJ   r7   rÛ  r   Útypingr   r   r   r   r   r	   Úmlx.coreÚcorerÝ   Úmlx.nnr  Útransformersr
   Útokenizer_utilsr   Úcommonr   r   r   Ú	getLoggerrø  r!  rë  rì  r:   r$   r/   r>   rB   rN   rT   r_   rh   rk   ro   rt   rv   r–   rœ   r¡   r©   r¸   rº   r×   râ   rí   rú   r  r  r  r”  r  r#  r(  r<  rK  rR  rY  ra  rp  rƒ  r•  r¯  r  r"  r   r   r   Ú<module>r-     s  ðÝ "ã Û 	Û Û Û ß >× >å Ý Ý ,å 8ß DÑ Dà	×	Ò	Ð-Ó	.€àÐ Ø&(Ð #Ø(*Ð %Ø$%Ð !õõ÷4<÷CõF÷;÷2ñ,ð $÷	,ð ,÷õ+÷	÷2ñ 2õ(>õ@õ
>õõ$÷*2&ñ 2&õj6õWõ	Hõ
7õ
@õ/õð$ ‡�ôó ðõ	$õð"ð
 ÷"õ*õ(0õTõDõ&õB õ>=÷8 ðFCMð -ðCMð *.ðCMð #(ðCMð 26ðCMð 26ðCMð $)ðCMð  -ð!CMð" "%ð#CMð$ $ð%CMð& &+ð'CMð( )*ð)CMð* &Gð+CMð, -1ð-CMð. (,÷/CM÷L2r   