§
    9†ÆjÄx  ã                   ó¬  — d dl mZmZ d dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlZd dlmZ ddlmZmZmZmZmZmZmZmZmZmZmZ dd	lmZ d d
lmZmZ d dl m!c m"Z# d dl$Z$d dlm%Z%m&Z& d dl'm(Z) d dlm*Z*m+Z+ ddl,m-Z-m.Z. d dl/m0Z1 d dl2m3Z3 ddl4m5Z5m6Z6m7Z7m8Z8m9Z9 ddl:m;Z;m<Z<m=Z=m>Z> ddl,m-Z- d dl?m@Z@ dde@j@        deAfd„ZBd„ ZC G d„ d¦  «        ZDdS )é    )Úgeneration_progressÚset_phase_statusN)Ú	dataclass)Úiglob)Úoffload)Úcalculate_new_dimensionsé   )ÚdenoiseÚget_scheduleÚget_schedule_flux2Úget_schedule_piflux2Úprepare_kontextÚprepare_promptÚprepare_multi_ipÚunpackÚresizeinputÚpatches_to_imageÚ
build_mask)Úget_linear_split_map)ÚSiglipVisionModelÚSiglipImageProcessor)Úconvert_image_to_tensorÚconvert_tensor_to_image)Úfiles_locator)Ú"Qwen2_5_VLForConditionalGenerationÚQwen2VLProcessor)ÚAutoencoderKLFlux2ÚAutoEncoderParamsFlux2)Únunchaku_int4)ÚTextEncoderCache)Úload_aeÚ	load_clipÚload_flow_modelÚload_t5Úpreprocess_flux_state_dict)Úscatter_idsÚbatched_prc_imgÚbatched_prc_txtÚencode_image_refs)r   )ÚImageé   Ú	raw_imageÚ	long_sizec                 óz  — | j         \  }}||k    r|}t          ||z  |z  ¦  «        }n|}t          ||z  |z  ¦  «        }|                      ||ft          j        ¬¦  «        } |dz  dz  }|dz  dz  }||z
  dz  }||z
  dz  }	||z   }
|	|z   }|                      ||	|
|f¦  «        } |                      d¦  «        } | S )N©Úresampleé   é   ÚRGB)ÚsizeÚintÚresizer*   ÚLANCZOSÚcropÚconvert)r,   r-   Úimage_wÚimage_hÚnew_wÚnew_hÚtarget_wÚtarget_hÚleftÚtopÚrightÚbottoms               ú=C:\Users\johnn\OneDrive\Documents\AI\models\flux\flux_main.pyÚpreprocess_refrE       sú   € à ”~Ñ€GˆWð �'ÒÐØˆÝ�Y Ñ(¨GÑ3Ñ4Ô4ˆˆàˆÝ�Y Ñ(¨GÑ3Ñ4Ô4ˆð × Ò  %¨ ½%¼-Ð ÑHÔH€IØ˜‰{˜RÑ€HØ˜‰{˜RÑ€Hð �HÑ Ñ"€DØ�8Ñ Ñ
!€CØ�8‰O€EØ�8‰^€Fð —’  c¨5°&Ð9Ñ:Ô:€Ið ×!Ò! %Ñ(Ô(€IØÐó    c                 ó6  — | j         \  }}|j         \  }}t          ||z  |z  ¦  «        }|                     ||ft          j        j        ¦  «        }t          j        d||z   |f¦  «        }|                     | d¦  «         |                     ||df¦  «         |S )Nr3   )r   r   r   )r4   r5   r6   r*   Ú
Resamplingr7   ÚnewÚpaste)	Úimg1Úimg2Úwidth1Úheight1Úwidth2Úheight2Ú
new_width2Úimg2_resizedÚstitcheds	            rD   Ústitch_imagesrT   >   s™   € à”i�O€FˆGØ”i�O€FˆGÝ�V˜gÑ%¨Ñ/Ñ0Ô0€JØ—;’; 
¨GÐ4µeÔ6FÔ6NÑOÔO€LåŒy˜ ¨*Ñ!4°gÐ >Ñ?Ô?€HØ‡N‚N�4˜Ñ Ô Ð Ø‡N‚N�< &¨! Ñ-Ô-Ð-Ø€OrF   c                   óª   — e Zd Zdddddddej        ej        df
d„Zd„ Ze	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dde	dz  de
de
de	def
d„¦   «         Zd„ ZdS )Úmodel_factoryNFc                 ó  — t          j        d¦  «        | _        d| _        |
| _        |	| _        d}|| _        |                     dd¦  «        | _        |                     dd¦  «        | _        | j        dk    | _	        | j         
                    d	¦  «        p| j	        | _        t          ¦   «         | _        |                     d
d ¦  «        }d x| _        x| _        x| _        | _        | j        �rYt%          | j        |€|n||t&          ¬¦  «        | _        |                     dd¦  «        }|dk    r}ddlm} |                     d¦  «        }t.          j                             t5          j        t.          j                             |d¦  «        ¦  «        ¦  «        } |||¬¦  «        | _        nddlm}  ||¬¦  «        | _        t          j        d¦  «        5  tA          tC          ¦   «         ¦  «        | _"        d d d ¦  «         n# 1 swxY w Y   tG          j$        | j"        t5          j        d¦  «        dd ¬¦  «         d| _%        nÂtM          ||d¬¦  «        | _        tO          |¦  «        | _        |                     dd¦  «        | _        |                     d
d ¦  «        }t%          | j        |€|d         n||t&          ¬¦  «        | _        || _        tQ          | j        dd¦  «        rd ntS          | j        |¬¦  «        | _"        d x}x}}| j        dk    �rt5          j*        d¦  «        }tW          j,        |¦  «        }tG          j-        t5          j        t.          j                             dd ¦  «        ¦  «        t\          t5          j        t.          j                             dd!¦  «        ¦  «        d¬"¦  «        }| /                    ¦   «          0                    d¦  «         tc          |¦  «        dk    r4dd#l2m3}  |d$d%d&d'd(¬)¦  «        }tG          j$        ||d         dd ¬¦  «         || _        || _4        || _5        | j        d*v r®tm          j,        t5          j*        d+¦  «        ¦  «        | _7        tG          j-        t5          j        t.          j                             d+d,¦  «        ¦  «        dtp          t5          j        t.          j                             d+d-¦  «        ¦  «        ¬.¦  «        | _9        nd | _7        d | _9        |�dd/l:m;}  || j        ||	d ¦  «         |r dd0l:m<}  || j        ||d         |	d ¦  «         t{          | j        j>        tQ          | j        j?        d1d2¦  «        tQ          | j        j?        d3d ¦  «        tQ          | j        j?        d4d ¦  «        ¦  «        }|| j        _@        d }| j         A                    ¦   «         D ]G}tQ          |d5d ¦  «        }tQ          |d6d ¦  «        t„          jC        k    rt…          jD        ¦   «         } nŒH|rEtG          jE        | j        ||                     d7¦  «        |                     d8¦  «        ¬9¦  «         d S tG          jE        | j        |¦  «         d S ):NÚcudaFÚcpuÚguidance_max_phasesr   z
flux-modelzflux-devzpi-flux2Úflux2Úsource)Úpreprocess_sdÚtext_encoder_typeÚmistral3Úqwen3r	   )ÚQwen3EmbedderÚtext_encoder_folderztokenizer_config.json)Ú
model_specÚtokenizer_path)ÚMistral3SmallEmbedder)rc   Úmetazflux2_vae.safetensors)Úwritable_tensorsÚdefault_dtypeé   r+   )Ú
max_lengthÚradiance©Údeviceúflux-dev-usozsiglip-so400m-patch14-384zmodel.safetensorszvision_config.json)Ú
modelClassÚdefaultConfigPathrg   )ÚSigLIPMultiFeatProjModeliÙ  é@   i€  i   T)Úsiglip_token_numsÚstyle_token_numsÚsiglip_token_dimsÚhidden_sizeÚcontext_layer_norm©zflux-dev-kontext-dreamomni2zQwen2.5-VL-7B-DreamOmni2z5Qwen2.5-VL-7B-DreamOmni2_quanto_bf16_int8.safetensorszconfig.json)rg   ro   rp   )Ú
save_model)Úsave_quantized_modelÚ	mlp_ratiog      @Úsingle_linear1_mlp_ratioÚdouble_linear1_mlp_ratioÚweight_qtypeÚnameÚsplit_handlersÚshare_fields)r€   r�   )FÚtorchrm   Ú
_interruptÚ	VAE_dtypeÚdtypeÚ	model_defÚgetrZ   r   Ú
is_piflux2Ú
startswithÚis_flux2r    Útext_encoder_cacheÚclipÚt5Úvision_encoderÚmistalr#   r%   ÚmodelÚmodules.text_encoder_qwen3ra   ÚosÚpathÚdirnameÚflÚlocate_fileÚjoinÚmistralÚmodules.text_encoder_mistralre   r   r   Úvaer   Úload_model_dataÚvae_scale_factorr$   r"   Úgetattrr!   Úlocate_folderr   Úfrom_pretrainedÚfast_load_transformers_modelr   ÚevalÚtoÚlenÚmodules.layersrq   Úvision_encoder_processorÚfeature_embedderr   Ú	processorr   Ú	vlm_modelÚwgpry   rz   r   rv   ÚparamsÚsplit_linear_modules_mapÚmodulesÚ_nunchaku_int4Ú_NUNCHAKU_INT4_QTYPE_NAMEÚget_nunchaku_split_kwargsÚsplit_linear_modules)ÚselfÚcheckpoint_dirÚmodel_filenameÚ
model_typer†   Úbase_model_typeÚtext_encoder_filenameÚquantizeTransformerÚsave_quantizedr…   r„   Úmixed_precision_transformerÚtorch_devicer\   r^   ra   rb   rd   re   Úsiglip_processorÚsiglip_modelr¦   Úsiglip_pathrq   ry   rz   r«   Úsplit_kwargsÚmoduleÚqtypes                                 rD   Ú__init__zmodel_factory.__init__K   s6  € õ ”l 7Ñ+Ô+ˆŒØˆŒØ"ˆŒØˆŒ
ØˆØ"ˆŒØ#,§=¢=Ð1FÈÑ#JÔ#JˆÔ Ø—M’M ,°
Ñ;Ô;ˆŒ	Øœ) zÒ1ˆŒØœ	×,Ò,¨WÑ5Ô5ÐH¸¼ˆŒÝ"2Ñ"4Ô"4ˆÔð —’˜x¨Ñ.Ô.ˆØBFÐFˆŒ	ÐF�D”GÐF˜dÔ1°D´KØŒ=ñ )	sÝ(Ø”	Ø"( .��°fØÝ8ð	ñ ô ˆDŒJð !*§¢Ð.AÀ:Ñ NÔ NÐØ  GÒ+Ð+ØEÐEÐEÐEÐEÐEØ&/§m¢mÐ4IÑ&JÔ&JÐ#Ý!#¤§¢µ´ÅÄÇÂÐM`ÐbyÑ@zÔ@zÑ1{Ô1{Ñ!|Ô!|�à,˜}Ø4Ø#1ð ñ  ô  �”�ð
 PÐOÐOÐOÐOÐOØ4Ð4Ð@UÐVÑVÔV�”å”˜fÑ%Ô%ð Ið IÝ.Õ/EÑ/GÔ/GÑHÔH�”ðIð Ið Iñ Iô Ið Ið Ið Ið Ið Ið Iøøøð Ið Ið Ið Iõ Ô# D¤H­b¬nÐ=TÑ.UÔ.UÐhmð  ~Bð  Cñ  Cô  Cð  CØ$%ˆDÔ!Ð!å˜lÐ,AÈcÐRÑRÔRˆDŒGÝ! ,Ñ/Ô/ˆDŒIØ!Ÿš l°JÑ?Ô?ˆDŒIð  —m’m H¨dÑ3Ô3ˆFÝ(Ø”	Ø%+ ^�˜qÔ!Ð!¸ØÝ8ð	ñ ô ˆDŒJð 'ˆDŒNÝ& t¤z°:¸uÑEÔEÐr�t�tÍ7ÐSWÔS\ÐeqÐKrÑKrÔKrˆDŒHà=AÐAÐÐA˜<Ð*:ØŒ9˜Ò&Ñ&ÝÔ+Ð,GÑHÔHˆKÝ3ÔCÀKÑPÔPÐÝ"Ô?Ý”�rœwŸ|š|Ð,GÐI\Ñ]Ô]Ñ^Ô^Ý,Ý"$¤.µ´·²Ð>YÐ[oÑ1pÔ1pÑ"qÔ"qØ!&ð	ñ ô ˆLð ×ÒÑÔ×"Ò" 5Ñ)Ô)Ð)Ý�>Ñ"Ô" QÒ&Ð&ØDÐDÐDÐDÐDÐDØ#;Ð#;Ø&)Ø%'Ø&*Ø $Ø'+ð$ñ $ô $Ð õ Ô'Ð(8¸.ÈÔ:KÐ^cÐswÐxÑxÔxÐxØ*ˆÔØ(8ˆÔ%Ø 0ˆÔàŒ9Ð7Ð7Ð7Ý-Ô=½bÔ>NÐOiÑ>jÔ>jÑkÔkˆDŒNÝ$ÔAÅ"Ä.ÕRTÔRY×R^ÒR^Ð_yð  {rñ  Ssô  Ssñ  Ctô  Ctð  INõ  \~õ  TVô  Tbõ  ceô  cj÷  coò  coð  pJð  LYñ  cZô  cZñ  T[ô  T[ð  \ñ  \ô  \ˆDŒNˆNà!ˆDŒNØ!ˆDŒNð ˆ~Ø&Ð&Ð&Ð&Ð&Ð&ØˆJ�t”z :¨u°dÑ;Ô;Ð;àð 	YØ0Ð0Ð0Ð0Ð0Ð0Ø Ð  ¤¨Z¸ÈÔ9JÈEÐSWÑXÔXÐXå#7ØŒJÔ"Ý�D”JÔ% {°CÑ8Ô8Ý�D”JÔ%Ð'AÀ4ÑHÔHÝ�D”JÔ%Ð'AÀ4ÑHÔHñ	$
ô $
Ð ð /GˆŒ
Ô+ØˆØ”j×(Ò(Ñ*Ô*ð 	ð 	ˆFÝ˜F N°DÑ9Ô9ˆEÝ�u˜f dÑ+Ô+­~Ô/WÒWÐWÝ-ÔGÑIÔI�Ø�ð Xð ð 	OÝÔ(Ø”
Ø(Ø+×/Ò/Ð0@ÑAÔAØ)×-Ò-¨nÑ=Ô=ð	ñ ô ð ð ð õ Ô(¨¬Ð5MÑNÔNÐNÐNÐNs   Ç!HÈHÈHc                 óÐ  — g }|D ]}|                      d|dœ¦  «         Œ|                      d||z   dœ¦  «         d|dœg}| j                             |dd¬	¦  «        }|                      |g|dd
¬¦  «        }|                     d¦  «        } | j        j        di |¤dddœ¤Ž}	d„ t          |j        |	¦  «        D ¦   «         }
| j                             |
dd¬¦  «        }|d         S )NÚimage)ÚtyperÃ   Útext)rÄ   rÅ   Úuser)ÚroleÚcontentFT)ÚtokenizeÚadd_generation_promptÚpt)rÅ   ÚimagesÚpaddingÚreturn_tensorsrY   i   )Ú	do_sampleÚmax_new_tokensc                 óB   — g | ]\  }}|t          |¦  «        d …         ‘ŒS ©N)r£   )Ú.0Úin_idsÚout_idss      rD   ú
<listcomp>z+model_factory.infer_vlm.<locals>.<listcomp>ò   s8   € ð !
ð !
ð !
Ù'6 v¨wˆG•C˜‘K”K�M�MÔ"ð!
ð !
ð !
rF   )Úskip_special_tokensÚclean_up_tokenization_spacesr   © )	Úappendr§   Úapply_chat_templater¢   r¨   ÚgenerateÚzipÚ	input_idsÚbatch_decode)r±   Úinput_img_pathÚinput_instructionÚprefixÚtpr“   ÚmessagesrÅ   ÚinputsÚgenerated_idsÚgenerated_ids_trimmedÚoutput_texts               rD   Ú	infer_vlmzmodel_factory.infer_vlmÔ   sW  € ØˆØ"ð 	8ð 	8ˆDØ�IŠI˜w°Ð6Ð6Ñ7Ô7Ð7Ð7Ø
�	Š	˜6Ð+<¸VÑ+CÐDÐDÑEÔEÐEð #Ø!ðð ðˆð Œ~×1Ò1Ø˜u¸Dð 2ñ 
ô 
ˆð
 —’Ø�Ø!ð Øð  ñ 
ô 
ˆð —’˜5Ñ!Ô!ˆð 0˜œÔ/Ð_Ð_°&Ð_ÀEÐZ^Ð_Ð_Ð_Ð_ˆð!
ð !
Ý:=¸fÔ>NÐP]Ñ:^Ô:^ð!
ñ !
ô !
Ðð ”n×1Ò1Ø!°tÐZ_ð 2ñ 
ô 
ˆð ˜1Œ~ÐrF   ú2replace the logo with the text 'Black Forest Labs'é   é@  éà  ç      @r	   Ú éd   ç      ð?ÚseedÚinput_promptÚn_promptÚsampling_stepsÚembedded_guidance_scalec                 óä  ‡ ‡‡	‡‡‡Z‡[‡\‡]— ‰ j         rd S dŠZ‰ j        }|                     dd ¦  «        }daˆˆfd„	}d }|�*	 t          |¦  «        }n# t          t
          f$ r d }Y nw xY w|dv }‰ j        dk     rd}|�t          |¦  «        dk    rd}|                     dd	¦  «        }|                     d
d¦  «        }|                     dd¦  «        }d } |dk    r|dk    r|||ddœ} d„ }!‰ j        dv }"‰ j        dv }#‰ j        dv }$‰ j        dv }%|�r+|�t          |¦  «        g|pg z   }|d‰	dz  ‰dz  f}&t          j        d¬¦  «                             |¦  «        }'t          j        |&|'t          j        d¬¦  «        }(t          |(¦  «        \  })}*ˆ fd„}+| €|dk    r||gn|g},‰ j                             |+|,‰ j        ¬¦  «        }-|-d         \  }.}/| �é|-d         \  }0}1|.                     ¦   «         dk    r*|.                     d¦  «        }.|/                     d¦  «        }/|0                     ¦   «         dk    r*|0                     d¦  «        }0|1                     d¦  «        }1|.j        d         }2 |!|0|2¦  «        }0 |!|1|2¦  «        }1t          j        |.|0gd¬¦  «        }.t          j        |/|1gd¬¦  «        }/|2| d<   |.                     ¦   «         dk    r*|.                     d¦  «        }.|/                     d¦  «        }/|.                     |dd¦  «        |/                     |dd¦  «        }/}.t          j        |d‰Z‰ j        ¬¦  «        }3|)|*|.                     ‰Z¦  «        |/                     ‰Z¦  «        |3dœŠ[|dk    rx|-d         \  }.}/|.                     |dd¦  «        |/                     |dd¦  «        }/}.‰[                     |.                     ‰Z¦  «        |/                     ‰Z¦  «        |3dœ¦  «         |�|‰[                     t9          ‰‰	t          |d ¬!¦  «        ‰Z¦  «        ¦  «         t;          ‰ j        |d                              ‰‰	ft@          j!        j"        ¬"¦  «        g¦  «        \  ‰[d#<   }4|�mt          |¦  «        r^t;          ‰ j        |¦  «        \  }5}6|5                     |dd¦  «        |6                     |dd¦  «        }6}5‰[                     |5|6d$œ¦  «         dŠ\‰ j#        r#tI          |‰[d%         j        d         ‰Z¦  «        }7n"tK          |‰[d%         j        d         ‰Z¦  «        }7ˆ[ˆ fd&„}8g }9d }:�nc|"p|#p|%};d'}<|€g n	|d d …         }|#r(t          |¦  «        dk    rd(nd)Š]ˆ]fd*„|D ¦   «         }d }<na|%r_tM          |¦  «        D ]\  }=})tO          |)¦  «        ||=<   Œ‰  (                    ||d+|v rd,nd-¦  «        }|d.d/…         }tS          |¦  «         d }<g }9d0|v �rt          |¦  «        dk    rü|"r0d1|v r|}9g }n't          |¦  «        dk    r|dd …         }9|d d…         }|;rŸ|<sœtU          t          |¦  «        ¦  «        D ]}=||=         j+        \  }>}?tY          t          ‰	|z  d2z  ¦  «        t          ‰|z  d2z  ¦  «        |?|>d¦  «        \  }@}A||=                              |A|@ft@          j!        j"        ¬"¦  «        ||=<   Œ€n>|d         }B|dd …         D ]}Ct[          |B|C¦  «        }BŒ|Bg}n|�t          |¦  «        g}nd }|€d nt          |d ¬!¦  «        }:|$r‰ j.        j/        ndŠ\|$r‰ j.        j0        nd}D|;r*tc          ‰ j        |‰‰	||‰Z|"p|#|%rd3nd4|%|%¬5¦  «        \  Š[Š	Šn"te          ‰ j        |‰‰	||‰Z|:‰\|D¬6¦
  «
        \  Š[Š	ŠˆZˆ fd7„}+tg          |th          ¦  «        r|gn|}E|dk    r$tg          |th          ¦  «        st          |E¦  «        n|}F| €|dk    rtg          |th          ¦  «        r|gn|ng }G‰ j                             |+|E|Gz   ‰Z¬¦  «        }-|-d t          |E¦  «        …         |-t          |E¦  «        d …         }I}Ht          j        d8„ |HD ¦   «         d¬¦  «        }Jt          j        d9„ |HD ¦   «         d¬¦  «        }3|Jj        d         dk    r3|Fdk    r-|J 5                    |Fdd¦  «        }J|3 5                    |Fd¦  «        }3| ��|Jj        d         }2tg          |th          ¦  «        r|gn|}K|dk    r$tg          |th          ¦  «        st          |K¦  «        n|}L|I}Mt          j        d:„ |MD ¦   «         d¬¦  «        }N|Nj        d         dk    r|Ldk    r|N 5                    |Ldd¦  «        }N |!|N|2¦  «        }N|Nj        d         dk    r3|Jj        d         dk    r"|N 5                    |Jj        d         dd¦  «        }Nt          j        |J|Ngd¬¦  «        }J|2| d<   t          j        |Jj        d         |Jj        d         d;‰Z¬¦  «        }/‰[                     |J                     ‰Z¦  «        |/                     ‰Z¦  «        |3                     ‰Z¦  «        d<œ¦  «         |dk    �rAtg          |th          ¦  «        r|gn|}K|dk    r$tg          |th          ¦  «        st          |K¦  «        n|}L|I}Mt          j        d=„ |MD ¦   «         d¬¦  «        }Nt          j        d>„ |MD ¦   «         d¬¦  «        }O|Nj        d         dk    r3|Ldk    r-|N 5                    |Ldd¦  «        }N|O 5                    |Ld¦  «        }Ot          j        |L|Nj        d         d;‰Z¬¦  «        }P‰[                     |N                     ‰Z¦  «        |P                     ‰Z¦  «        |O                     ‰Z¦  «        dœ¦  «         tm          |‰[d%         j        d         ‰ j        d?k    ‰Z¬@¦  «        }7ˆ fdA„|9D ¦   «         }9‰ j7        �¥|9�£t          |9¦  «        dk    r�‰ j8        �‰ts          dB¦  «         ˆ fdC„|9D ¦   «         }Qt          j        ˆ fdD„|QD ¦   «         d¬¦  «        }Qt          j        |Qj        d         |Qj        d         d;‰Z¬¦  «        }R|Q‰[dE<   |R‰[dF<   | �|Qj        d         | dG<   |$rˆ	ˆ\ˆfdH„}8nˆ	ˆfdI„}8~-tu          ‰ j.        fi ‰[¤i dJ|7“dK|
“dL|“dM‰ j#        rdnd “dN|“dO‰ “dP|“dQ|8“dR|“dS|“dT|“d|“dU‰	“dV‰“dWdX“dY| “¤Ž}S|Sd k    rd S |r=‰�;t          j        tw          |S‰[dZ         ¦  «        ¦  «         <                    d¦  «        nd }T |8|S¦  «        }S‰ j        ��~|S}U|T�|Tn|U}Vt          j=        ‰Zt          j        ¬[¦  «        5  ‰ j         >                    |U¦  «        }Sd d d ¦  «         n# 1 swxY w Y   tg          ‰[t~          ¦  «        r‰[                     d\¦  «        nd }W|W�½|s|dk    rµ|s³d })|�)| <                    d¦  «                             d¦  «        })nc|�at          |¦  «        dk    rNt�          |d                              ‰‰	ft@          j!        j"        ¬"¦  «        ¦  «                             d¦  «        })|)�!|)d|Wz
  z  |S                     |)¦  «        |Wz  z   }S‰�7 |d ¦  «         |Sg|Vg}Y}Xd x}S}V‰ A                    |X|Y||ˆ fd]„|¬^¦  «        }S|S€d S |Sj        t          jB        k    r|S C                    dd¦  «         D                    d¦  «         E                    d_¦  «         F                    ¦   «          C                    dd`¦  «                             t          jB        ¦  «        }S|S G                    dd¦  «        }S|SS )bNrX   Ú
model_modec                 óú   •— t          ‰¦  «        rjt          ‰dd¦  «        }|�|€ ‰|› d�¦  «         d S t          |¦  «        }t          t          |¦  «        dz   |¦  «        } ‰|› d|› d|› d�¦  «         d S d S )NÚprogress_labelzVAE Spatial Upsamplingz in Progressr	   z in Progress (ú/ú))Úcallabler�   r5   Úmin)Ú_phaseÚcurrent_stepÚtotal_stepsrú   Ústep_noÚset_progress_statusÚvae_upsamplers        €€rD   Ú_vae_upsampler_progressz7model_factory.generate.<locals>._vae_upsampler_progress  s¹   ø€ ÝÐ/Ñ0Ô0ð gÝ%,¨]Ð<LÐNfÑ%gÔ%g�NØ#Ð+¨{Ð/BØ+Ð+¨~Ð,KÐ,KÐ,KÑLÔLÐLÐLÐLå&)¨+Ñ&6Ô&6˜Ý"%¥c¨,Ñ&7Ô&7¸!Ñ&;¸[Ñ"IÔ"I˜Ø+Ð+¨~Ð,eÐ,eÈWÐ,eÐ,eÐWbÐ,eÐ,eÐ,eÑfÔfÐfÐfÐfðgð grF   )r2   é   é   é   r	   r   zrlow quality, ugly, unfinished, out of focus, deformed, disfigure, blurry, smudged, restricted palette, flat colorsÚ	NAG_scalerñ   ÚNAG_taug      @Ú	NAG_alphag      à?)ÚscaleÚtauÚalphaÚ
prefix_lenc                 ó¤  — | €| S |                       ¦   «         dk    rdnd}| j        |         }||k    r| S ||k     r||z
  }|dk    r6| dd …                              |d¦  «        }t          j        | |gd¬¦  «        S | d d …dd …d d …f                              d|d¦  «        }t          j        | |gd¬¦  «        S |                      |d|¦  «        S )Nr2   r   r	   éÿÿÿÿ©Údim)r  ÚshapeÚrepeatr‚   ÚcatÚnarrow)ÚtensorÚ
target_lenÚseq_dimÚcur_lenÚpad_lenÚpads         rD   Ú_align_seq_lenz.model_factory.generate.<locals>._align_seq_len3  sô   € Ø�>Ø!�MØ%Ÿzšz™|œ|¨qÒ0Ð0˜!˜!°a�Ø œ, wÔ/�Ø˜jÒ(Ð(Ø!�MØ˜ZÒ'Ð'Ø(¨7Ñ2�GØ !’|�|Ø$ R S Sœk×0Ò0°¸!Ñ<Ô<˜Ý$œy¨&°#¨¸AÐ>Ñ>Ô>Ð>Ø     B C C¨¨¨ Ô+×2Ò2°1°g¸qÑAÔA�CÝ œ9 f¨c ]¸Ð:Ñ:Ô:Ð:Ø—}’} W¨a°Ñ<Ô<Ð<rF   )rn   )zflux-dev-umo)zflux-chroma-radiancerx   é€   r1   rl   )Ú	generatorr…   rm   c           	      óª   •— t          t          t          ‰                     | ¦  «                             t
          j        ¦  «        ¦  «        Ž ¦  «        S rÒ   )ÚlistrÝ   r(   r˜   r¢   r‚   Úbfloat16)Úpromptsr±   s    €rD   ú<lambda>z(model_factory.generate.<locals>.<lambda>O  s;   ø€ ­DµµoÀdÇlÂlÐSZÑF[ÔF[×F^ÒF^Õ_dÔ_mÑFnÔFnÑ6oÔ6oÐ1pÑ,qÔ,q€ rF   r2   r  Úcap_embed_lenr  )rm   r…   )ÚimgÚimg_idsÚtxtÚtxt_idsÚvec)Úneg_txtÚneg_txt_idsÚneg_vecT)Úmask_levelsr/   Úoriginal_image_latents)Úimg_cond_seqÚimg_cond_seq_idsr'  c           	      óª   •— ‰j                              t          j        t	          | ‰d         ¦  «        ¦  «                             d¦  «        ¦  «        S )Nr(  r2   )rš   Ú
pre_decoder‚   r  r&   Úsqueeze)ÚxÚinpr±   s    €€rD   r%  z(model_factory.generate.<locals>.<lambda>z  sB   ø€ ¨4¬8×+>Ò+>½u¼yÍÐUVÐX[Ð\eÔXfÑIgÔIgÑ?hÔ?h×?pÒ?pÐqrÑ?sÔ?sÑ+tÔ+t€ rF   Fr+   i@  c                 ó0   •— g | ]}t          |‰¦  «        ‘ŒS rÙ   )rE   )rÓ   r'  Úref_long_sides     €rD   rÖ   z*model_factory.generate.<locals>.<listcomp>„  s#   ø€ Ð'gÐ'gÐ'gÈs­°s¸MÑ(JÔ(JÐ'gÐ'gÐ'grF   ÚKz It is editing task.z It is generation task.é   iùÿÿÿÚIÚJrð   ÚwÚd)ÚaeÚimg_cond_listÚtarget_widthÚtarget_heightÚbsrò   rm   Úres_match_outputÚpeÚset_cond_indexÚconditions_zero_start)
r@  rA  rB  rC  rD  rò   rm   Úimg_maskÚ
patch_sizeÚnoise_channelsc                 ó"   •— ˆˆfd„| D ¦   «         S )Nc           	      óL   •— g | ] }t          ‰j        ‰j        d |‰¬¦  «        ‘Œ!S )r	   rl   )r   r�   rŒ   )rÓ   Úpromptrm   r±   s     €€rD   rÖ   z<model_factory.generate.<locals>.<lambda>.<locals>.<listcomp>Ë  sF   ø€ ð  -Að  -Að  -AÐnt­^¸D¼GÀTÄYÐPQÐSYÐbhÐ-iÑ-iÔ-ið  -Að  -Að  -ArF   rÙ   )r$  rm   r±   s    €€rD   r%  z(model_factory.generate.<locals>.<lambda>Ë  s8   ø€ ð  -Að  -Að  -Að  -Að  -AÐxð  -Añ  -Aô  -A€ rF   c                 ó   — g | ]
}|d          ‘ŒS ©r)  rÙ   ©rÓ   Úctxs     rD   rÖ   z*model_factory.generate.<locals>.<listcomp>Ñ  ó   € Ð GÐ GÐ G°  U¤Ð GÐ GÐ GrF   c                 ó   — g | ]
}|d          ‘ŒS ©r+  rÙ   rQ  s     rD   rÖ   z*model_factory.generate.<locals>.<listcomp>Ò  rS  rF   c                 ó   — g | ]
}|d          ‘ŒS rP  rÙ   rQ  s     rD   rÖ   z*model_factory.generate.<locals>.<listcomp>Û  ó   € Ð(LÐ(LÐ(L¸¨¨U¬Ð(LÐ(LÐ(LrF   r  )r)  r*  r+  c                 ó   — g | ]
}|d          ‘ŒS rP  rÙ   rQ  s     rD   rÖ   z*model_factory.generate.<locals>.<listcomp>é  rW  rF   c                 ó   — g | ]
}|d          ‘ŒS rU  rÙ   rQ  s     rD   rÖ   z*model_factory.generate.<locals>.<listcomp>ê  rW  rF   zflux-schnell)Úshiftrm   c                 ón   •— g | ]1}‰                      |d ¬¦  «                             ‰j        ¦  «        ‘Œ2S )rË   )rÎ   )r¥   r¢   rm   )rÓ   r'  r±   s     €rD   rÖ   z*model_factory.generate.<locals>.<listcomp>ó  sR   ø€ ð  "Eð  "Eð  "EÐnq $×"?Ò"?ÀÐTXÐ"?Ñ"YÔ"Y×"\Ò"\Ð]aÔ]hÑ"iÔ"ið  "Eð  "Eð  "ErF   zEncoding Image Featuresc                 ó2   •— g | ]} ‰j         di |¤d di¤Ž‘ŒS )Úoutput_hidden_statesTrÙ   )rŽ   ©rÓ   Úembr±   s     €rD   rÖ   z*model_factory.generate.<locals>.<listcomp>÷  s:   ø€ Ð'xÐ'xÐ'xÐbeÐ(;¨Ô(;Ð(]Ð(]¸cÐ(]Ð(]ÐX\Ð(]Ð(]Ð(]Ð'xÐ'xÐ'xrF   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS rÙ   )r¦   r^  s     €rD   rÖ   z*model_factory.generate.<locals>.<listcomp>ø  s(   ø€ Ð1iÐ1iÐ1iÐQT°$×2GÒ2GÈÑ2LÔ2LÐ1iÐ1iÐ1irF   Úsiglip_embeddingÚsiglip_embedding_idsr  c                 óL   •— t          |                      ¦   «         ‰‰‰¦  «        S rÒ   )r   Úfloat)r6  ÚheightÚnoise_patch_sizeÚwidths    €€€rD   Úunpack_latentz-model_factory.generate.<locals>.unpack_latent   s    ø€ Ý/°·²±	´	¸6À5ÐJZÑ[Ô[Ð[rF   c                 óJ   •— t          |                      ¦   «         ‰‰¦  «        S rÒ   )r   rd  )r6  re  rg  s    €€rD   rh  z-model_factory.generate.<locals>.unpack_latent  s   ø€ Ý% a§g¢g¡i¤i°¸Ñ?Ô?Ð?rF   Ú	timestepsÚguidanceÚreal_guidance_scaleÚfinal_step_size_scaleÚcallbackÚpipelineÚloras_slistsrh  Ú
joint_passÚdenoising_strengthÚmasking_strengthre  rg  rœ   ri   ÚNAGr(  )Údevice_typer…   Úimg_msk_rebuiltc                  ó   •— ‰ j         S rÒ   )rƒ   )r±   s   €rD   r%  z(model_factory.generate.<locals>.<lambda>;  s	   ø€ ¨t¬€ rF   )rN  rò   Úabort_callbackÚprogress_callbackg     à_@éÿ   )NN)Hrƒ   rŠ   r‡   r5   Ú	TypeErrorÚ
ValueErrorrZ   r£   r   r   r‚   Ú	GeneratorÚmanual_seedÚrandnr#  r'   r‹   Úencoderm   r  Ú	unsqueezer  r  ÚexpandÚzerosr…   r¢   Úupdater   r)   rš   r6   r*   rH   r7   rˆ   r   r   Ú	enumerater   ré   ÚprintÚranger4   r   rT   r�   rJ  Úout_channelsr   r   Ú
isinstanceÚstrr  r   r¦   rŽ   r   r
   r&   r5  ÚautocastÚdecodeÚdictr   Údecode_inputsÚuint8Úclamp_Úadd_Úmul_Úround_Ú	transpose)^r±   rò   ró   rô   rõ   Úinput_ref_imagesÚinput_framesÚinput_masksrg  re  rö   Úguide_scaleÚfit_into_canvasrn  rp  Ú
batch_sizeÚvideo_prompt_typerq  Úimage_refs_relative_sizerr  rs  r  r  Úbbargsr[   rø   r  Úmodel_mode_intÚlanpaint_enabledÚ	nag_scaleÚnag_tauÚ	nag_alphart  r  Úflux_dev_usoÚflux_dev_umork   Úflux_kontext_dreamomni2r  r   r  r'  r(  Ú	encode_fnÚprompts_to_encodeÚcontextsÚ
txt_embedsr*  Ú
neg_embedsÚneg_idsÚpos_lenr+  Ú_Úcond_latentsÚcond_idsrj  rh  Úref_style_imgsÚ
image_maskÚlatent_stichingÚlock_dimensionsÚir>  ÚhÚimage_heightÚimage_widthÚstichedÚnew_imgrK  Úprompt_listÚ	prompt_bsÚnegative_listÚprompt_contextsÚnegative_contextsr)  Úneg_listÚneg_bsÚneg_contextsr,  r.  r-  ra  rb  r6  Úvae_upsampler_lq_latentÚ
vae_latentÚ	lq_latentrv  Úx_refÚlq_latent_refrm   r7  rf  r9  s^   `       ``           ``                                                                   @@@@rD   rÜ   zmodel_factory.generateû   sò  øøøøøøøøø€ ð6 Œð Ø�tØˆFØ”MˆEØŸš L°$Ñ7Ô7ˆJðgð gð gð gð gð gð gð "ˆNØÐ%ð*Ý%(¨¡_¤_�N�NøÝ!¥:Ð.ð *ð *ð *Ø%)�N�N�Nð*øøøà-°Ð=ÐØÔ'¨!Ò+Ð+¸1¨[ØÐ¥3 x¡=¤=°AÒ#5Ð#5ð  Cw°xØŸ
š
 ;°Ñ4Ô4ˆIØ—j’j ¨CÑ0Ô0ˆGØŸ
š
 ;°Ñ4Ô4ˆIØˆCØ˜1Š}ˆ} °Ò!1Ð!1Ø )°'ÀIÐ]^Ð_Ð_�ð=ð =ð =ð  œ9Ð(8Ð8ˆLØœ9Ð(8Ð8ˆLØ”yÐ$<Ð<ˆHØ&*¤iÐ3RÐ&RÐ#àñ }@ØÐ+Ý(?ÀÑ(MÔ(MÐ'OÐScÐSiÐgiÑ'jÐ$à# S¨&°B©,¸À¹ÐD�Ý!œO°6Ð:Ñ:Ô:×FÒFÀtÑLÔL�	Ýœ E°YÅeÄnÐ]cÐdÑdÔd�Ý.¨uÑ5Ô5‘��WØqÐqÐqÐq�	Ø@CÀÐS^ÐbcÒScÐSc \°8Ð$<Ð$<ÐjvÐiwÐ!ØÔ2×9Ò9¸)ÐEVÐ_cÔ_jÐ9ÑkÔk�Ø&.¨q¤kÑ#�
˜GØ�?Ø*2°1¬+Ñ'�J Ø!—~’~Ñ'Ô'¨1Ò,Ð,Ø%/×%9Ò%9¸!Ñ%<Ô%<˜
Ø")×"3Ò"3°AÑ"6Ô"6˜Ø!—~’~Ñ'Ô'¨1Ò,Ð,Ø%/×%9Ò%9¸!Ñ%<Ô%<˜
Ø")×"3Ò"3°AÑ"6Ô"6˜Ø(Ô.¨qÔ1�GØ!/ °
¸GÑ!DÔ!D�JØ,˜n¨W°gÑ>Ô>�GÝ!&¤¨J¸
Ð+CÈÐ!KÑ!KÔ!K�JÝ#œi¨°'Ð(:ÀÐBÑBÔB�GØ+2�C˜Ñ(Ø—>’>Ñ#Ô# qÒ(Ð(Ø!+×!5Ò!5°aÑ!8Ô!8�JØ%×/Ò/°Ñ2Ô2�GØ&0×&7Ò&7¸
ÀBÈÑ&KÔ&KÈWÏ^Ê^Ð\fÐhjÐlnÑMoÔMo˜G�
Ý”k *¨a¸ÀdÄjÐQÑQÔQ�Ø"¨w¸z¿}º}ÈVÑ?TÔ?TÐah×akÒakÐlrÑasÔasÐ|ð  Bð  B�Ø !Ò#Ð#Ø*2°1¬+Ñ'�J Ø*4×*;Ò*;¸JÈÈBÑ*OÔ*OÐQX×Q_ÒQ_Ð`jÐlnÐprÑQsÔQs �JØ—J’J¨J¯MªM¸&Ñ,AÔ,AÐRY×R\ÒR\Ð]cÑRdÔRdÐqtÐvÐvÑwÔwÐwàÐ*Ø—J’J¥
¨5°&Õ:QÐR]ÐlpÐ:qÑ:qÔ:qÐsyÑ zÔ zÑ{Ô{Ð{Ý7HÈÌÐTdÐefÔTg×TnÒTnÐpuÐw}Ðo~õ  JOô  JZô  JbÐTnñ  Ucô  Ucð  Tdñ  8eô  8eÑ4�CÐ0Ñ1°1à#Ð/µCÐ8HÑ4IÔ4IÐ/Ý->¸t¼xÐIYÑ-ZÔ-ZÑ*�L (Ø-9×-@Ò-@ÀÈRÐQSÑ-TÔ-TÐV^×VeÒVeÐfpÐrtÐvxÑVyÔVy (�LØ—J’J°ÐRZÐ[Ð[Ñ\Ô\Ð\à#$Ð Ø”?ð `Ý 4°^ÀSÈÄZÔEUÐVWÔEXÐZ`Ñ aÔ a�I�Iå 2°>À3ÀuÄ:ÔCSÐTUÔCVÐX^Ñ _Ô _�IØ tÐ tÐ tÐ tÐ t�Ø!#�Ø!�
‘
ð #/Ð"Z°<Ð"ZÐCZ�Ø"'�Ø)9Ð)A 2 2ÐGWÐXYÐXYÐXYÔGZÐ Øð +Ý+.Ð/?Ñ+@Ô+@ÀAÒ+EÐ+E C CÈ3�MØ'gÐ'gÐ'gÐ'gÐVfÐ'gÑ'gÔ'gÐ$Ø&*�O�Oà,ð +Ý"+Ð,<Ñ"=Ô"=ð ?ð ?™˜˜3Ý.9¸#Ñ.>Ô.>Ð(¨Ñ+Ð+Ø"&§.¢.Ð1AÀ,Ðjmð  sDð  kDð  kDÐPfÐPfð  Jcñ  #eô  #e�LØ#/°°"°Ô#5�LÝ˜,Ñ'Ô'Ð'Ø&*�Oà!#�ØÐ+Ð+Ñ+µÐ4DÑ0EÔ0EÈÒ0IÐ0IØ#ð EØÐ"3Ð3Ð3Ø-=˜NØ/1Ð,Ð,Ý Ð!1Ñ2Ô2°QÒ6Ð6Ø-=¸b¸c¸cÔ-B˜NØ/?ÀÀÀÔ/DÐ,à&ð 6à.ð QÝ%*­3Ð/?Ñ+@Ô+@Ñ%AÔ%Að Qð Q Ø'7¸Ô':Ô'?¡  1Ý<TÕUXÐY_Ð`xÑYxÐy|ÑY|ÑU}ÔU}õ  @Cð  DIð  Jbñ  Dbð  cfñ  Dfñ  @gô  @gð  ijð  lmð  opñ  =qô  =qÑ 9 ¨kØ6FÀqÔ6I×6PÒ6PÐR]Ð_kÐQlÕw|ô  xHô  xPÐ6Pñ  7Qô  7QÐ 0°Ñ 3Ð 3øð #3°1Ô"5˜Ø'7¸¸¸Ô';ð Fð F˜GÝ&3°G¸WÑ&EÔ&E˜G˜GØ-4¨IÐ(Ð(Ø!Ð-Ý(?ÀÑ(MÔ(MÐ'OÐ$Ð$à'+Ð$Ø%0Ð%8˜T˜TÕ>UÐVaÐptÐ>uÑ>uÔ>u�
à<DÐ#K 4¤:Ô#8Ð#8È!Ð Ø<DÐ!L ¤Ô!8Ð!8È"�à"ð Ý)9Øœ8Ø&6Ø%*Ø&,Ø%Ø!Ø%Ø*6Ð*F¸,Ø$;ÐD˜S˜SÀØ)@Ø/Fð*ñ *ô *Ñ&�C˜  õ *9Øœ8Ø&6Ø%*Ø&,Ø%Ø!Ø%Ø!+Ø#3Ø'5ð*ñ *ô *Ñ&�C˜ ð Að  Að  Að  Að  A�	Ý0:¸<ÍÑ0MÔ0MÐ_˜|˜n˜nÐS_�Ø0:¸a²°Í
ÐS_ÕadÑHeÔHe°�C Ñ,Ô,Ð,Ðku�	Ø[^Ð[jÐnyÐ}~Òn~Ðn~­z¸(ÅCÑ/HÔ/HÐ!V (  ÈhÈhð  EG�ØÔ2×9Ò9¸)À[ÐS`ÑE`ÐioÐ9ÑpÔp�Ø5=Ð>O½sÀ;Ñ?OÔ?OÐ>OÔ5PÐRZÕ[^Ð_jÑ[kÔ[kÐ[lÐ[lÔRmÐ!2�Ý”iÐ GÐ G°Ð GÑ GÔ GÈQÐOÑOÔO�Ý”iÐ GÐ G°Ð GÑ GÔ GÈQÐOÑOÔO�Ø”9˜Q”< 1Ò$Ð$¨°Qª¨ØŸ*š* Y°°1Ñ5Ô5�CØŸ*š* Y°Ñ2Ô2�CØ‘?Ø!œi¨œl�GÝ-7¸Å#Ñ-FÔ-FÐT ˜z˜zÈH�HØ.8¸Aªo¨oÅjÐQYÕ[^ÑF_ÔF_¨o�S ™]œ]˜]Ðeo�FØ#4�LÝ#œiÐ(LÐ(L¸|Ð(LÑ(LÔ(LÐRSÐTÑTÔT�GØ”} QÔ'¨1Ò,Ð,°¸!²°Ø")§.¢.°¸¸AÑ">Ô">˜Ø,˜n¨W°gÑ>Ô>�GØ”} QÔ'¨1Ò,Ð,°´¸1´ÀÒ1AÐ1AØ")§.¢.°´¸1´¸qÀ!Ñ"DÔ"D˜Ýœ) S¨' N¸Ð:Ñ:Ô:�CØ+2�C˜Ñ(Ýœ+ c¤i°¤l°C´I¸a´LÀ!ÈFÐSÑSÔS�Ø—
’
 3§6¢6¨&¡>¤>¸g¿jºjÈÑ>PÔ>PÐY\×Y_ÒY_Ð`fÑYgÔYgÐhÐhÑiÔiÐiØ !Ò#Ñ#Ý-7¸Å#Ñ-FÔ-FÐT ˜z˜zÈH�HØ.8¸Aªo¨oÅjÐQYÕ[^ÑF_ÔF_¨o�S ™]œ]˜]Ðeo�FØ#4�LÝ#œiÐ(LÐ(L¸|Ð(LÑ(LÔ(LÐRSÐTÑTÔT�GÝ#œiÐ(LÐ(L¸|Ð(LÑ(LÔ(LÐRSÐTÑTÔT�GØ”} QÔ'¨1Ò,Ð,°¸!²°Ø")§.¢.°¸¸AÑ">Ô">˜Ø")§.¢.°¸Ñ";Ô";˜Ý"'¤+¨f°g´mÀAÔ6FÈÐRXÐ"YÑ"YÔ"Y�KØ—J’J¨7¯:ª:°fÑ+=Ô+=ÈkÏnÊnÐ]cÑNdÔNdÐqx×q{Òq{ð  }Cñ  rDô  rDð   Eð   Eñ  Fô  Fð  Få(¨¸¸U¼Ô9IÈ!Ô9LÐUYÔU^ÐbpÒUpð  {Að  Bñ  Bô  B�	ð "Eð  "Eð  "Eð  "Eð  vDð  "Eñ  "Eô  "E�ØÔ(Ð4¸Ð9SÕX[Ð\jÑXkÔXkÐnoÒXoÐXoÐtxô  uHð  uTå$Ð%>Ñ?Ô?Ð?Ø'xÐ'xÐ'xÐ'xÐiwÐ'xÑ'xÔ'xÐ$Ý',¤yÐ1iÐ1iÐ1iÐ1iÐXhÐ1iÑ1iÔ1iÐopÐ'qÑ'qÔ'qÐ$Ý+0¬;Ð8HÔ8NÈqÔ8QÐScÔSiÐjkÔSlÐnoÐx~Ð+Ñ+Ô+Ð(Ø.>�CÐ*Ñ+Ø2F�CÐ.Ñ/Ø�Ø,<Ô,BÀ1Ô,E˜˜LÑ)àð @ð\ð \ð \ð \ð \ð \ð \ð \ð@ð @ð @ð @ð @ð @ð åØ”
ðð àðð ð ð $˜)ðð 1Ð0ð	ð
 %0 Kðð .2¬_Ð&F c cÀ$øðð "˜ðð ˜ðð *˜\ðð ,˜mðð &˜:ðð $6Ð#5ðð "2Ð!1ðð &˜:ðð �vðð  �eð!ð" "# ð#ð$ �Cð%ð ˆAð( �$Šwˆw˜t˜tà^cð  'LÐhuð  iB¥e¤iµ¸A¸sÀ9¼~Ñ0NÔ0NÑ&OÔ&O×&WÒ&WÐXYÑ&ZÔ&ZÐ&Zð  HLÐ#Ø�˜aÑ Ô ˆAØŒxÑ#Ø�
Ø7NÐ7ZÐ3Ð3Ð`j�	Ý”^°½e¼nÐMÑMÔMð 4ð 4ØœŸš¨
Ñ3Ô3�Að4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4õ AKÈ3ÕPTÑ@UÔ@UÐ"_ #§'¢'Ð*;Ñ"<Ô"<Ð"<Ð[_�Ø"Ð.Ð4DÐ.ÐIYÐ]^ÒI^ÐI^ÐglÐI^Ø�CØ#Ð/Ø*×2Ò2°1Ñ5Ô5×?Ò?ÀÑBÔB˜˜Ø)Ð5½#Ð>NÑ:OÔ:OÐRSÒ:SÐ:SÝ5Ø,¨QÔ/×6Ò6¸¸v°ÕQVÔQaÔQiÐ6ÑjÔjñô ç#š) A™,œ,ð ð �Ø 1 Ñ#6Ñ7¸!¿$º$¸s¹)¼)ÀoÑ:UÑU˜à Ð,Ø+Ð+¨DÑ1Ô1Ð1Ø,-¨3°°˜=�EØ$(Ð(�A˜	Ø%×3Ò3ØØ%Ø+Ø!Ø'>Ð'>Ð'>Ð'>Ø*Að 4ñ ô �Að �yØ#˜tàŒw�%œ+Ò%Ð%Ø—H’H˜R ‘O”O×(Ò(¨Ñ+Ô+×0Ò0°Ñ7Ô7×>Ò>Ñ@Ô@×GÒGÈÈ3ÑOÔO×RÒRÕSXÔS^Ñ_Ô_�Ø—’˜A˜qÑ!Ô!ˆAØˆHs#   ¾A ÁA$Á#A$õ0vövövc                 ó   — dt           dt           fd„} ||d¦  «        }| j        r,t          |¦  «        dk     rg g fS  ||d         ¦  «        gdgfS |dk    rg g fS t          |¦  «        dk     rg g fS d	|v } |||rdnd         ¦  «        gdgfS )
NÚlora_refÚreturnc                 óÒ   — t          j        | d¬¦  «        }|€1t          j        t          j                             | ¦  «        ¦  «        }t          j                             |¦  «        S )NF)Úerror_if_none)r•   r–   r’   r“   ÚbasenameÚabspath)rÈ  Úresolveds     rD   Úresolve_preload_lorazAmodel_factory.get_loras_transformer.<locals>.resolve_preload_loraG  sO   € Ý”~ h¸eÐDÑDÔDˆHØÐÝœ>­"¬'×*:Ò*:¸8Ñ*DÔ*DÑEÔE�Ý”7—?’? 8Ñ,Ô,Ð,rF   Úpreload_URLsr	   r   Úflux_dev_kontext_dreamomni2r2   r:  )rŠ  rˆ   r£   )	r±   Úget_model_recursive_propr´   rø   r›  ÚkwargsrÏ  ÚpreloadURLsÚedits	            rD   Úget_loras_transformerz#model_factory.get_loras_transformerF  sâ   € ð	-­3ð 	-µ3ð 	-ð 	-ð 	-ð 	-ð /Ð.¨z¸NÑKÔKˆØŒ?ð 	?Ý�;ÑÔ !Ò#Ð#Ø˜2�v�Ø(Ð(¨°Q¬Ñ8Ô8Ð9¸A¸3Ð>Ð>àÐ6Ò6Ð6Ø�r�6ˆMåˆ{ÑÔ˜aÒÐØ�r�6ˆMØÐ'Ð'ˆØ$Ð$ [°dÐ1A°°ÀÔ%BÑCÔCÐDÀqÀcÐIÐIrF   )Nrê   Nrë   NNNrì   rí   rî   rî   NNNr	   rï   Frð   rñ   rñ   NN)Ú__name__Ú
__module__Ú__qualname__r‚   r#  Úfloat32rÁ   ré   r   r5   rŠ  rd  rÜ   rÖ  rÙ   rF   rD   rV   rV   J   s"  € € € € € ð ØØØØ $Ø#ØØ”Ø”MØ&+ðGOð GOð GOð GOðR$ð $ð $ðN ð  $Ø TØ Ø"$Ø#ØØØØØ-0ØØ"ØØØØ "ØØ'*Ø!#Ø!Ø Ø $ð/Hð Hà˜‘*ðHð ðHð ð	Hð
  ðHð &+ðHð Hð Hñ ÔðHðT
Jð Jð Jð Jð JrF   rV   )r+   )EÚshared.utils.phase_progressr   r   r’   ÚreÚtimeÚdataclassesr   Úglobr   Úmmgpr   r‚   Úshared.utils.utilsr   Úsamplingr
   r   r   r   r   r   r   r   r   r   r   r¤   r   Útransformersr   r   Ú!torchvision.transforms.functionalÚ
transformsÚ
functionalÚTVFÚmathr   r   Úshared.utilsr   r•   r   r   Úmodules.autoencoder_flux2r   r   Úshared.qtypesr   r­   Úshared.utils.text_encoder_cacher    Úutilr!   r"   r#   r$   r%   Úflux2_adapterr&   r'   r(   r)   ÚPILr*   r5   rE   rT   rV   rÙ   rF   rD   ú<module>rð     sû  ðØ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ 	€	€	€	Ø 	€	€	€	Ø €€€Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø €€€Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7ð |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |ð  |Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø €€€Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø <Ð <Ð <Ð <Ð <Ð <à ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ Zðð ð ð ð ð ð ð ð ð ð ð ð :Ð 9Ð 9Ð 9Ð 9Ð 9à Ð Ð Ð Ð Ð ðð ˜eœkð °cð ð ð ð ð<
ð 
ð 
ðOJð OJð OJð OJð OJñ OJô OJð OJð OJð OJrF   