+
    œ°³jo²  ã                   óR  € ^ RI Ht ^ RIHt ^ RIt^ RIHu Ht ^ RI	H
t
 ^ RI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Ht ^RIHt ^RIHtHtHt ^RIH t H!t! ^RI"H#t# ^RI$H%t%H&t&H't'H(t(H)t) ^RI*H+t+H,t,H-t- ^RI.H/t/ ^RI0H1t1 ^RI2H3t3H4t4H5t5H6t6H7t7 ^RI8H9t9H:t: ^RI;H<t< ^RI=H>t> ^RI?H@t@HAtAHBtB ](P†                  ! ]D4      tE]&! RR7      ]
 ! R R]>4      4       4       tF]&! RR7      ]
 ! R R]14      4       4       tG]&! RR7      ]
 ! R R]4      4       4       tH]& ! R  R!]!4      4       tI]&! R"R#7      ] ! R$ R%]4      4       4       tJ ! R& R']94      tK ! R( R)]:4      tL ! R* R+]B4      tM ! R, R-]Pœ                  4      tO ! R. R/]Pœ                  4      tP ! R0 R1]A4      tQ ! R2 R3]@4      tR ! R4 R5]/4      tS ! R6 R7]Pœ                  4      tT ! R8 R9]74      tU ! R: R;]64      tV ! R< R=]44      tW ! R> R?]54      tX ! R@ RA]Pœ                  4      tY ! RB RC]Pœ                  4      tZ ! RD RE]Pœ                  4      t[ ! RF RG]Pœ                  4      t\ ! RH RI]34      t] ! RJ RK]Pœ                  4      t^ ! RL RM]Pœ                  4      t_]&! RNR#7       ! RO RP]I4      4       t` ! RQ RR]I]4      ta. RSOtbR# )Té    )ÚCallable)Ú	dataclassN)Ústrict)Únn)Úinitialization)ÚACT2FN)ÚCache)ÚPreTrainedConfig)Ú%ClassifierFreeGuidanceLogitsProcessorÚGenerationMixinÚGenerationModeÚLogitsProcessorList)ÚGenerateDecoderOnlyOutput)ÚBaseModelOutputÚBaseModelOutputWithPoolingÚModelOutput)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚloggingÚtorch_compilable_check)ÚCONFIG_MAPPINGÚ
AutoConfigÚ	AutoModel)ÚBlip2VisionModel)ÚChameleonVQVAEConfig)ÚChameleonVQVAEÚChameleonVQVAEEncoderAttnBlockÚ#ChameleonVQVAEEncoderConvDownsampleÚ ChameleonVQVAEEncoderResnetBlockÚChameleonVQVAEVectorQuantizer)ÚIdeficsBaseModelOutputWithPastÚIdeficsCausalLMOutputWithPast)Úeager_attention_forward)ÚSiglipVisionConfig)ÚSiglipEncoderÚSiglipEncoderLayerÚSiglipVisionEmbeddingszdeepseek-community/Janus-Pro-1B)Ú
checkpointc                   óv   a € ] tR t^<t o RtRt^t^tRtRt	Rt
RtRtRtRtR	tR
t^tRt]! 4       tV 3R ltRtV tR# )ÚJanusVisionConfigzÁ
projection_dropout (`float`, *optional*, defaults to 0.0):
    Dropout probability for the projection layer.
num_image_tokens (`int`, *optional*, defaults to 576):
    Number of image tokens.
i   i€  Úgelug      @Tç        é   Fç{®Gáz”?i@  c                ó8  <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[ S[S[ ,          ,          S[S[ S[ 3,          ,          ;R&   S[;R&   S[S[ ,          ;R&   S[;R&   S[S[ ,          ;R&   S[ ;R	&   S[S[ ,          ;R
&   S[;R&   S[;R&   S[ ;R&   S[ ;R&   # )é   Úhidden_sizeÚnum_hidden_layersÚnum_attention_headsÚ
image_sizeÚ
hidden_actÚ	mlp_ratioÚattention_biasÚhidden_dropout_rateÚprojection_dimÚprojection_dropoutÚuse_qk_normÚinitializer_rangeÚdepthÚnum_image_tokens)ÚintÚlistÚtupleÚstrÚfloatÚbool)ÚformatÚ__classdict__s   "€Úh/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/janus/modular_janus.pyÚ__annotate__ÚJanusVisionConfig.__annotate__<   sÛ   ø‡ ‚ ñ Ññ ñ Ññ ñ Ñ!ñ ñ ‘d™3•i•¡%©©S¨¥/Õ1Ñ7ñ ñ Ññ ñ ‘s�{Ñ ñ ñ  Ññ! ñ" ¡�Ñ*ñ# ñ$ Ññ% ñ& ¡�Ñ)ñ' ñ( Ññ) ñ* Ñ#ñ+ ñ, �Nñ- ñ. Ñò/ ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   ÚAttributeErrorÚintermediate_sizeÚ__annotate_func__Ú__static_attributes__Ú__classdictcell__©rJ   s   @rK   r.   r.   <   sh   ø‡ € ñð €KØÐØ!ÐØ47€JØ€JØ €IØ€NØ'*ÐØ€NØ&)ÐØ€KØ#ÐØ€EØÐÙ&Ó(Ð÷1 ƒ rN   r.   c                   óš   a € ] tR t^Wt o Rt^tRtRtRt^ t	^t
^t^€tRt^tRtRtRt^tRtRt]! 4       t]! 4       t]! 4       tV 3R	 ltR
tV tR# )ÚJanusVQVAEConfigal  
base_channels (`int`, *optional*, defaults to 128):
    Base channel count.
channel_multiplier (`list[int]`, *optional*, defaults to `[1, 1, 2, 2, 4]`):
    Channel multipliers for each resolution.
num_res_blocks (`int`, *optional*, defaults to 2):
    Number of residual blocks.
num_patches (`int`, *optional*, defaults to 32):
    Num of patches the input images can be divided into.
out_channels (`int`, *optional*, defaults to 3):
    Number of out channels.
image_token_embed_dim (`int`, *optional*, defaults to 2048):
    Dimension of image embeddings. It should be same as the dimensionality of text embeddings.
i @  Fé   r0   r2   r1   r/   c                ó  <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[;R&   S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   S[ ;R&   S[S[ ,          S[S[ R	3,          ,          ;R
&   S[ ;R&   S[S[ ,          ;R&   S[;R&   S[ ;R&   S[ ;R&   S[;R&   S[ ;R&   # )r4   Ú	embed_dimÚnum_embeddingsÚdouble_latentÚlatent_channelsÚnum_patchesÚin_channelsÚout_channelsÚbase_channels.Úchannel_multiplierÚnum_res_blocksÚdropoutr@   r=   r6   r9   Úimage_token_embed_dim)rC   rH   rD   rE   rG   rF   )rI   rJ   s   "€rK   rL   ÚJanusVQVAEConfig.__annotate__W   sî   ø‡ ‚ ñ$ Ññ% ñ& Ññ' ñ( Ññ) ñ* Ññ+ ñ, Ññ- ñ. Ññ/ ñ0 Ññ1 ñ2 Ññ3 ñ4 ™S�	¡E©#¨s¨(¥OÕ3ÑEñ5 ñ6 Ññ7 ñ8 ‘S�[Ññ9 ñ: Ñ#ñ; ñ< Ññ= ñ> Ññ? ñ@ ÑñA ñB Ñ%òC rN   rO   N)é   rl   r4   r4   é   )rP   rQ   rR   rS   rT   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   r@   r=   r6   r9   rj   rU   Ú
resolutionÚattn_resolutionsÚ	attn_typerW   rX   rY   rZ   s   @rK   r\   r\   W   s�   ø‡ € ñð €IØ€NØ€MØ€OØ€KØ€KØ€LØ€MØ6EÐØ€NØ€GØ#ÐØ€NØÐØ€JØ!%ÐáÓ!€JÙ%Ó'ÐÙÓ €I÷K ƒ rN   r\   c                   ój   a a€ ] tR t^t oRtRtR]R]R]/t	Rt
RtRtRtRtV 3R	 ltV3R
 ltRtVtV ;t# )ÚJanusConfigaÕ  
Example:

```python
>>> from transformers import JanusForConditionalGeneration, JanusConfig, JanusVisionConfig, JanusVQVAEConfig, LlamaConfig

>>> # Initializing a Janus vision config
>>> vision_config = JanusVisionConfig()

>>> # Initializing a Llama config
>>> text_config = LlamaConfig()

>>> # Initializing a VQ config
>>> vq_config = JanusVQVAEConfig()

>>> # Initializing a Janus Pro 1B style configuration
>>> configuration = JanusConfig(vision_config=vision_config, text_config=text_config, vq_config=vq_config)

>>> # Initializing a model from the Janus Pro 1B style configuration
>>> model = JanusForConditionalGeneration(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```ÚjanusÚtext_configÚvision_configÚ	vq_configNiåˆ Tc                óÊ  <€ \        V P                  \        4      '       d^   V P                  P                  R R4      V P                  R &   \        V P                  R ,          ,          ! R/ V P                  B V n        M:V P                  f-   \
        P                  R4       \        R,          ! 4       V n        V P                  f&   \
        P                  R4       \        4       V n        M:\        V P                  \        4      '       d   \        R/ V P                  B V n        V P                  f&   \
        P                  R4       \        4       V n	        M:\        V P                  \        4      '       d   \        R/ V P                  B V n	        V P                  P                  V P                  P                  ,          V P                  n        \        SV `<  ! R/ VB  R# )Ú
model_typeÚllamaNz7`text_config` is None. Initializing with default valueszK`vision_config` is None. Initializing with default JanusVisionConfig valueszF`vq_config` is None. Initializing with default JanusVQVAEConfig valuesrO   )Ú
isinstancert   ÚdictÚgetr   ÚloggerÚinforu   r.   rv   r\   r8   Ú
patch_sizerc   ÚsuperÚ__post_init__)ÚselfÚkwargsÚ	__class__s   &,€rK   r�   ÚJanusConfig.__post_init__¨   sW  ø€ Ü�d×&Ñ&¬×-Ò-Ø-1×-=Ñ-=×-AÑ-AÀ,ÐPWÓ-XˆD×Ñ˜\Ñ*Ü-¨d×.>Ñ.>¸|Õ.LÖMÑaÐPT×P`ÑP`ÑaˆDÕØ×ÑÒ%Ü�K‰KÐQÔRÜ-¨gÖ6Ó8ˆDÔà×ÑÒ%Ü�K‰KÐeÔfÜ!2Ó!4ˆDÕÜ˜×*Ñ*¬D×1Ò1Ü!2Ñ!H°T×5GÑ5GÑ!HˆDÔà�>‰>Ò!Ü�K‰KÐ`ÔaÜ-Ó/ˆD�NÜ˜Ÿ™¬×-Ò-Ü-Ñ?°·±Ñ?ˆDŒNð &*×%7Ñ%7×%BÑ%BÀd×FXÑFX×FcÑFcÕ%cˆ�‰Ô"Ü‰ÒÑ' Ô'rN   c                ó°   <€ V ^8„  d   Qh/ S[ S[,          R,          ;R&   S[ S[,          R,          ;R&   S[ S[,          R,          ;R&   S[;R&   S[;R&   # )r4   Nrt   ru   rv   Úimage_token_idÚtie_word_embeddings)r{   r
   rC   rH   )rI   rJ   s   "€rK   rL   ÚJanusConfig.__annotate__   sq   ø‡ ‚ ñF Ñ(Õ(¨4Õ/Ñ6ñG ñH Ñ*Õ*¨TÕ1Ñ8ñI ñJ Ñ&Õ&¨Õ-Ñ4ñK ñL Ñ ñM ñN Ñ$òO rN   )rt   ru   rv   )rP   rQ   rR   rS   rT   rx   r   r.   r\   Úsub_configsrt   ru   rv   r‡   rˆ   r�   rW   rX   rY   Ú__classcell__©r„   rJ   s   @@rK   rr   rr      sR   ù‡ € ñð2 €Jà�zØÐ*ØÐ%ð€Kð 37€KØ48€MØ04€IØ €NØ $Ðõ(÷S … rN   rr   c                   ód   a a€ ] tR t^Át oRtR	tRtR.tRR.tRt	Rt
RtV 3R ltV3R ltRtVtV ;t# )
ÚJanusPreTrainedModelÚmodelTÚJanusVisionEncoderLayerÚpast_key_valuesÚcausal_maskc                ó  <€ \         SV `  V4       \        V\        4      '       db   \        P
                  ! VP                  \        P                  ! VP                  P                  R,          4      P                  R4      4       R# R# )rl   Néÿÿÿÿ©rl   r”   )r€   Ú_init_weightsrz   ÚJanusVisionEmbeddingsÚinitÚcopy_Úposition_idsÚtorchÚarangeÚshapeÚexpand)r‚   Úmoduler„   s   &&€rK   r–   Ú"JanusPreTrainedModel._init_weightsÎ   s^   ø€ Ü‰Ñ˜fÔ%Ü�fÔ3×4Ò4Ü�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÕ9VÓ,W×,^Ñ,^Ð_fÓ,gÖhñ 5rN   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # ©r4   Úconfig©rr   )rI   rJ   s   "€rK   rL   Ú!JanusPreTrainedModel.__annotate__Á   s   ø‡ ‚ áÑò rN   rO   ©ÚimageÚtext)rP   rQ   rR   rS   Úbase_model_prefixÚinput_modalitiesÚsupports_gradient_checkpointingÚ_no_split_modulesÚ_skip_keys_device_placementÚ_supports_flash_attnÚ_supports_sdpaÚ_can_compile_fullgraphr–   rW   rX   rY   r‹   rŒ   s   @@rK   rŽ   rŽ   Á   sK   ù‡ € ð  ÐØ(ÐØ&*Ð#Ø2Ð3ÐØ#4°mÐ"DÐØÐØ€Nà!Ðõi÷ … rN   rŽ   z9
    Base class for Janus VQ-VAE mode model outputs.
    )Úcustom_introc                   ó8   a € ] tR t^Ôt o RtRtRtV 3R ltRtV t	R# )ÚJanusVQVAEOutputzë
decoded_pixel_values (`torch.FloatTensor` of shape `(batch_size, num_channels, image_size, image_size)`):
    Reconstructed pixel values after encoding and decoding the input.
embedding_loss (`torch.FloatTensor`):
    Embedding loss.
Nc                óv   <€ V ^8„  d   Qh/ S[ P                  R,          ;R&   S[ P                  R,          ;R&   # )r4   NÚdecoded_pixel_valuesÚembedding_loss©r›   ÚFloatTensor)rI   rJ   s   "€rK   rL   ÚJanusVQVAEOutput.__annotate__Ô   s5   ø‡ ‚ ñ  ×+Ñ+¨dÕ2Ñ9ñ ñ ×%Ñ%¨Õ,Ñ3ò rN   rO   )
rP   rQ   rR   rS   rT   rµ   r¶   rW   rX   rY   rZ   s   @rK   r³   r³   Ô   s   ø‡ € ñð 6:ÐØ/3€N÷ ƒ rN   r³   c                   ó   € ] tR t^ætRtR# )ÚJanusBaseModelOutputWithPastrO   N©rP   rQ   rR   rS   rX   rO   rN   rK   r»   r»   æ   ó   † ÛrN   r»   c                   ó   € ] tR t^êtRtR# )ÚJanusCausalLMOutputWithPastrO   Nr¼   rO   rN   rK   r¿   r¿   ê   r½   rN   r¿   c                   ó6   a € ] tR t^ît o RV 3R lR lltRtV tR# )r—   c                óT   <€ V ^8„  d   QhRS[ P                  RS[RS[ P                  /# )r4   Úpixel_valuesÚinterpolate_pos_encodingÚreturn)r›   ÚTensorrH   )rI   rJ   s   "€rK   rL   Ú"JanusVisionEmbeddings.__annotate__ï   s-   ø€ ÷ ñ ¡E§L¡Lð ÉDð Ñ]b×]iÑ]iñ rN   c                óf  € VP                   w   r4pV P                  P                  P                  pV P                  VP	                  VR 7      4      pVP                  ^4      P                  ^^4      pV'       d   V P                  W„V4      p	MV P                  V P                  4      p	W‰,           pV# ))Údtype)
r�   Úpatch_embeddingÚweightrÈ   ÚtoÚflattenÚ	transposerÃ   Úposition_embeddingrš   )
r‚   rÂ   rÃ   Ú_ÚheightÚwidthÚtarget_dtypeÚpatch_embedsÚ
embeddingsÚ
pos_embedss
   &&&       rK   ÚforwardÚJanusVisionEmbeddings.forwardï   sœ   € Ø*×0Ñ0Ñˆˆ1�eØ×+Ñ+×2Ñ2×8Ñ8ˆØ×+Ñ+¨L¯O©OÀ,¨OÓ,OÓPˆØ!×)Ñ)¨!Ó,×6Ñ6°q¸!Ó<ˆ
ç#Ø×6Ñ6°zÈ5ÓQ‰Jà×0Ñ0°×1BÑ1BÓCˆJàÕ,ˆ
àÐrN   rO   N)F)rP   rQ   rR   rS   rÖ   rX   rY   rZ   s   @rK   r—   r—   î   s   ø‡ € ÷÷ ð rN   r—   c                   óX   a a€ ] tR t^ÿt oRtV3R lV 3R lltRV3R lR lltRtVtV ;t	# )ÚJanusVisionAttentionz(Attention Class for Janus Vision Encoderc                ó    <€ V ^8„  d   QhRS[ /# r¢   ©r.   )rI   rJ   s   "€rK   rL   Ú!JanusVisionAttention.__annotate__  s   ø€ ÷ Qñ QÑ0ñ QrN   c                ó¬  <€ \         SV `  4        Wn        VP                  V n        VP
                  V n        V P                  V P                  ,          V n        V P                  V P                  ,          V P                  8w  d'   \        R V P                   RV P                   R24      hV P                  R,          V n	        VP                  V n
        VP                  pVP                  pRV n        ^V n        \        P                   ! V P                  V P                  V P                  ,          VP"                  R7      V n        \        P                   ! V P                  V P                  V P                  ,          VP"                  R7      V n        \        P                   ! V P                  V P                  V P                  ,          VP"                  R7      V n        \        P                   ! V P                  V P                  4      V n        V^ 8”  d   \        P,                  ! V4      M\        P.                  ! 4       V n        V'       d!   \        P0                  ! V P                  4      M\        P.                  ! 4       V n        V'       d(   \        P0                  ! V P                  4      V n        R# \        P.                  ! 4       V n        R# )z;embed_dim must be divisible by num_heads (got `embed_dim`: z and `num_heads`: z).F©ÚbiasNg      à¿)r€   Ú__init__r£   r5   r_   r7   Ú	num_headsÚhead_dimÚ
ValueErrorÚscaleÚattention_dropoutr>   r?   Ú	is_causalÚnum_key_value_groupsr   ÚLinearr;   Úq_projÚk_projÚv_projÚprojection_layerÚDropoutÚIdentityÚ	LayerNormÚq_normÚk_norm)r‚   r£   Úproj_dropoutÚqk_normr„   s   &&  €rK   rà   ÚJanusVisionAttention.__init__  sÔ  ø€ Ü‰ÑÔØŒØ×+Ñ+ˆŒØ×3Ñ3ˆŒØŸ™¨$¯.©.Õ8ˆŒØ�=‰=˜4Ÿ>™>Õ)¨T¯^©^Ô;ÜØMÈdÏnÉnÐM]ð ^Ø—N‘NÐ# 2ð'óð ð —]‘] DÕ(ˆŒ
Ø!'×!9Ñ!9ˆÔØ×0Ñ0ˆØ×$Ñ$ˆØˆŒð %&ˆÔ!ä—i’i §¡°·±ÀÇÁÕ0NÐU[×UjÑUjÔkˆŒÜ—i’i §¡°·±ÀÇÁÕ0NÐU[×UjÑUjÔkˆŒÜ—i’i §¡°·±ÀÇÁÕ0NÐU[×UjÑUjÔkˆŒÜ "§	¢	¨$¯.©.¸$¿.¹.Ó IˆÔØ>JÈQÔ>N¤"§*¢*¨\Ô":ÔTV×T_ÒT_ÓTaˆÔç6=”b—l’l 4§>¡>Ô2Ä2Ç;Â;Ã=ˆŒß6=”b—l’l 4§>¡>Ó2ˆŽÄ2Ç;Â;Ã=ˆŽrN   c                ór   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[S[,          /# )r4   Úhidden_statesÚattention_maskNrƒ   )r›   rÅ   r   r   )rI   rJ   s   "€rK   rL   rÜ     s<   ø€ ÷ )$ñ )$á—|‘|ð)$ñ Ÿ™ tÕ+ð)$ñ Ñ+Õ,ñ	)$rN   c           	     ó&  € VP                  4       w  rEpV P                  V4      pV P                  V4      pV P                  V4      p	VP	                  RV P
                  V P                  4      pV P                  V4      pVP	                  RV P
                  V P                  4      pV P                  V4      pVP	                  WEV P
                  V P                  4      P                  ^^4      pVP	                  WEV P
                  V P                  4      P                  ^^4      pV	P                  WEV P
                  V P                  4      P                  ^^4      p	\        P                  ! V P                  P                  \        4      p
T
! V VVV	V3RV P                   '       g   RMV P"                  RV P$                  RV P&                  /VB w  r¼VP	                  WEV P(                  4      pV P+                  V4      pV P-                  V4      pWÜ3# )rl   ri   r0   Úscalingræ   r”   )Úsizeré   rê   rë   Úreshaperá   râ   rð   rñ   rÍ   Úviewr   Úget_interfacer£   Ú_attn_implementationr'   Útrainingrå   rä   ræ   r_   rì   r>   )r‚   rö   r÷   rƒ   Ú
batch_sizeÚseq_lenrÏ   Úquery_statesÚ
key_statesÚvalue_statesÚattention_interfaceÚattn_outputÚattn_weightsÚoutputs   &&&,          rK   rÖ   ÚJanusVisionAttention.forward  sÙ  € ð "/×!3Ñ!3Ó!5Ñˆ
˜Qà—{‘{ =Ó1ˆØ—[‘[ Ó/ˆ
Ø—{‘{ =Ó1ˆà#×+Ñ+¨B°·±ÀÇÁÓNˆØ—{‘{ <Ó0ˆà×'Ñ'¨¨D¯N©N¸D¿M¹MÓJˆ
Ø—[‘[ Ó,ˆ
à#×+Ñ+¨JÀÇÁÐQU×Q^ÑQ^Ó_×iÑiÐjkÐmnÓoˆØ×'Ñ'¨
¸T¿^¹^ÈTÏ]É]Ó[×eÑeÐfgÐijÓkˆ
Ø#×(Ñ(¨¸d¿n¹nÈdÏmÉmÓ\×fÑfÐghÐjkÓlˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØñ
%
ð  $Ÿ}Ÿ}˜}‘C°$×2HÑ2Hð
%
ð —J‘Jð
%
ð —n‘nð
%
ð ñ
%
Ñ!ˆð "×)Ñ)¨*¸t¿~¹~ÓNˆà×&Ñ& {Ó3ˆØ×(Ñ(¨Ó0ˆØÐ#Ð#rN   )rå   r£   r_   râ   ræ   rñ   rê   rá   rç   r>   rì   rð   ré   rä   rë   ©N©
rP   rQ   rR   rS   rT   rà   rÖ   rX   rY   r‹   rŒ   s   @@rK   rÙ   rÙ   ÿ   s#   ù‡ € Ù2÷Qó Q÷:)$÷ )$ò )$rN   rÙ   c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚJanusVisionMLPiK  c                ó    <€ V ^8„  d   QhRS[ /# r¢   rÛ   )rI   rJ   s   "€rK   rL   ÚJanusVisionMLP.__annotate__L  s   ø€ ÷ ?ñ ?Ñ0ñ ?rN   c                ó  <€ \         SV `  4        Wn        \        VP                  VP
                  ,          4      V n        \        VP                  ,          V n	        \        P                  ! VP                  V P                  4      V n        \        P                  ! V P                  VP                  4      V n        \        P                  ! VP                  4      V n        \        P                  ! VP                  4      V n        R # r
  )r€   rà   r£   rC   r5   r:   rV   r   r9   Úactivation_fnr   rè   Úfc1Úfc2rí   r<   Údropout1Údropout2©r‚   r£   r„   s   &&€rK   rà   ÚJanusVisionMLP.__init__L  s¬   ø€ Ü‰ÑÔØŒÜ!$ V×%7Ñ%7¸&×:JÑ:JÕ%JÓ!KˆÔÜ# F×$5Ñ$5Õ6ˆÔÜ—9’9˜V×/Ñ/°×1GÑ1GÓHˆŒÜ—9’9˜T×3Ñ3°V×5GÑ5GÓHˆŒÜŸ
š
 6×#=Ñ#=Ó>ˆŒÜŸ
š
 6×#=Ñ#=Ó>ˆŽrN   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r4   rö   rÄ   ©r›   rÅ   )rI   rJ   s   "€rK   rL   r  V  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ rN   c                ó°   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV P	                  V4      pV# r
  )r  r  r  r  r  ©r‚   rö   s   &&rK   rÖ   ÚJanusVisionMLP.forwardV  sP   € ØŸ™ Ó/ˆØ×*Ñ*¨=Ó9ˆØŸ™ mÓ4ˆØŸ™ Ó/ˆØŸ™ mÓ4ˆØÐrN   )r  r£   r  r  r  r  rV   ©	rP   rQ   rR   rS   rà   rÖ   rX   rY   r‹   rŒ   s   @@rK   r  r  K  s   ù‡ € ÷?ó ?÷÷ ð rN   r  c                   ó>   a a€ ] tR tRt oV3R lV 3R lltRtVtV ;t# )r�   i_  c                ó    <€ V ^8„  d   QhRS[ /# r¢   rÛ   )rI   rJ   s   "€rK   rL   Ú$JanusVisionEncoderLayer.__annotate__`  s   ø€ ÷ *ñ *Ñ0ñ *rN   c                óX  <€ \         SV `  V4       Wn        VP                  V n        \        V4      V n        \        P                  ! V P                  VP                  R 7      V n
        \        P                  ! V P                  VP                  R 7      V n        \        V4      V n        R# ))ÚepsN)r€   rà   r£   r5   r_   rÙ   Ú	self_attnr   rï   Úlayer_norm_epsÚlayer_norm1Úlayer_norm2r  Úmlpr  s   &&€rK   rà   Ú JanusVisionEncoderLayer.__init__`  st   ø€ Ü‰Ñ˜Ô ØŒØ×+Ñ+ˆŒÜ-¨fÓ5ˆŒÜŸ<š<¨¯©¸F×<QÑ<QÔRˆÔÜŸ<š<¨¯©¸F×<QÑ<QÔRˆÔÜ! &Ó)ˆŽrN   )r£   r_   r&  r'  r(  r$  ©rP   rQ   rR   rS   rà   rX   rY   r‹   rŒ   s   @@rK   r�   r�   _  s   ù‡ € ÷*÷ *ó *rN   r�   c                   ó>   a a€ ] tR tRt oV3R lV 3R lltRtVtV ;t# )ÚJanusVisionEncoderij  c                ó    <€ V ^8„  d   QhRS[ /# r¢   rÛ   )rI   rJ   s   "€rK   rL   ÚJanusVisionEncoder.__annotate__k  s   ø€ ÷ pñ pÑ0ñ prN   c                ó¾   <€ \         SV `  V4       \        P                  ! \	        VP
                  4       Uu. uF  p\        V4      NK  	  up4      V n        R # u upi r
  )r€   rà   r   Ú
ModuleListÚranger6   r�   Úlayers©r‚   r£   rÏ   r„   s   && €rK   rà   ÚJanusVisionEncoder.__init__k  sF   ø€ Ü‰Ñ˜Ô Ü—m’mÌeÐTZ×TlÑTlÔNmÓ$nÑNmÈÔ%<¸VÖ%DÑNmÑ$nÓoˆŽùÒ$ns   ¸A)r2  r*  rŒ   s   @@rK   r,  r,  j  s   ù‡ € ÷p÷ pó prN   r,  c                   ó`   a a€ ] tR tRt oR]R]/tV3R lV 3R lltR	V3R lR lltRt	Vt
V ;t# )
ÚJanusVisionModelip  rö   Ú
attentionsc                ó    <€ V ^8„  d   QhRS[ /# r¢   rÛ   )rI   rJ   s   "€rK   rL   ÚJanusVisionModel.__annotate__v  s   ø€ ÷ 2ñ 2Ñ0ñ 2rN   c                óF   <€ \         SV `  V4       \        V4      V n        R # r
  )r€   rà   r,  Úencoderr  s   &&€rK   rà   ÚJanusVisionModel.__init__v  s   ø€ Ü‰Ñ˜Ô Ü)¨&Ó1ˆŽrN   c          	      ót   <€ V ^8„  d   QhRS[ P                  R,          RS[RS[S[,          RS[S[,          /# )r4   rÂ   NrÃ   rƒ   rÄ   )r›   r¸   rH   r   r   rE   r   )rI   rJ   s   "€rK   rL   r9  z  sJ   ø€ ÷ 
ñ 
á×'Ñ'¨$Õ.ð
ñ #'ð
ñ Ñ+Õ,ð	
ñ
 
Ñ+Õ	+ñ
rN   c                óô   € Vf   \        R4      hV P                  WR7      pV P                  ! RRV/VB pVP                  pV P	                  V4      pVR,          pV P	                  V4      p\        VVR7      # )Nz You have to specify pixel_values)rÃ   Úinputs_embeds)Úlast_hidden_stateÚpooler_outputrO   )ºNNNr   rB  )rã   rÔ   r;  r@  Úpost_layernormr   )r‚   rÂ   rÃ   rƒ   rö   Úencoder_outputsr@  Úpooled_outputs   &&&,    rK   rÖ   ÚJanusVisionModel.forwardz  s‘   € ð ÒÜÐ?Ó@Ð@àŸ™¨˜Óhˆà+/¯<ª<ñ ,
Ø'ð,
àñ,
ˆð
 ,×=Ñ=ÐØ ×/Ñ/Ð0AÓBÐà)¨'Õ2ˆØ×+Ñ+¨MÓ:ˆä)Ø/Ø'ô
ð 	
rN   )r;  )NF)rP   rQ   rR   rS   r�   rÙ   Ú_can_record_outputsrà   rÖ   rX   rY   r‹   rŒ   s   @@rK   r6  r6  p  s2   ù‡ € àÐ0ØÐ*ðÐ÷
2ó 2÷
÷ 
ò 
rN   r6  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚJanusVisionAlignerMLPi–  c                ó    <€ V ^8„  d   QhRS[ /# r¢   rÛ   )rI   rJ   s   "€rK   rL   Ú"JanusVisionAlignerMLP.__annotate__—  s   ø€ ÷ 7ñ 7Ñ0ñ 7rN   c           	     ó–  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        P                  ! \        ^VP                  4       Uu. uF.  p\        P                  ! VP
                  VP
                  4      NK0  	  up4      V n
        \        VP                  ,          V n        R# u upi ©rl   N)r€   rà   r   rè   r5   r=   r  r0  r1  rA   Úhidden_layersr   r9   r  r3  s   && €rK   rà   ÚJanusVisionAlignerMLP.__init__—  s’   ø€ Ü‰ÑÔä—9’9˜V×/Ñ/°×1FÑ1FÓGˆŒÜŸ]š]ÜNSÐTUÐW]×WcÑWcÔNdÓeÑNdÈŒR�YŠY�v×,Ñ,¨f×.CÑ.CÖDÑNdÑeó
ˆÔô $ F×$5Ñ$5Õ6ˆÖùò fó   Á(4Cc                ó€   € V P                  V4      pV P                   F  pV P                  V4      pV! V4      pK  	  V# r
  ©r  rN  r  ©r‚   rö   Úlayers   && rK   rÖ   ÚJanusVisionAlignerMLP.forward   óB   € ØŸ™ Ó/ˆØ×'Ô'ˆEØ ×.Ñ.¨}Ó=ˆMÙ! -Ó0ŠMñ (ð ÐrN   ©r  r  rN  r  rŒ   s   @@rK   rI  rI  –  ó   ù‡ € ÷7ó 7÷ò rN   rI  c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚJanusVQVAEVectorQuantizeri¨  c                ó    <€ V ^8„  d   QhRS[ /# r¢   ©r\   )rI   rJ   s   "€rK   rL   Ú&JanusVQVAEVectorQuantizer.__annotate__©  s   ø€ ÷ 9ñ 9Ñ/ñ 9rN   c                óX   <€ \         SV `  V4       VP                  .^,          V n        R# )r4   N)r€   rà   rc   Úquant_state_dimsr  s   &&€rK   rà   Ú"JanusVQVAEVectorQuantizer.__init__©  s&   ø€ Ü‰Ñ˜Ô Ø!'×!3Ñ!3Ð 4°qÕ 8ˆÖrN   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©r4   Úimage_tokensrÄ   ©r›   Ú
LongTensorr¸   )rI   rJ   s   "€rK   rL   r]  ­  s'   ø€ ÷ "ñ "©u×/?Ñ/?ð "ÁE×DUÑDUñ "rN   c                óT  € VP                   ^ ,          pV P                  P                  P                   R,          pV P                  V4      p\        P                  ! V^RR7      pVP                  V.V P                  OVN54      pVP                  ^ ^^^4      P                  4       pV# )r   )ÚpÚdimr”   )	r�   Ú	embeddingrÊ   ÚFÚ	normalizerü   r_  ÚpermuteÚ
contiguous)r‚   rc  r   Úemb_dimÚhidden_state_quants   &&   rK   Úget_codebook_entryÚ,JanusVQVAEVectorQuantizer.get_codebook_entry­  sž   € Ø!×'Ñ'¨Õ*ˆ
Ø—~‘~×,Ñ,×2Ñ2°2Õ6ˆð "Ÿ^™^¨LÓ9ÐäŸ[š[Ð);¸qÀbÔIÐð 0×4Ñ4°jÐ5bÀ4×CXÑCXÐ5bÐZaÑ5bÓcÐØ/×7Ñ7¸¸1¸aÀÓC×NÑNÓPÐà!Ð!rN   )r_  )	rP   rQ   rR   rS   rà   rp  rX   rY   r‹   rŒ   s   @@rK   rZ  rZ  ¨  s   ù‡ € ÷9ó 9÷"÷ "ð "rN   rZ  c                   ó   € ] tR tRtRtR# )ÚJanusVQVAEResnetBlocki½  rO   Nr¼   rO   rN   rK   rs  rs  ½  r½   rN   rs  c                   ó   € ] tR tRtRtR# )ÚJanusVQVAEAttnBlockiÁ  rO   Nr¼   rO   rN   rK   ru  ru  Á  r½   rN   ru  c                   ó   € ] tR tRtRtR# )ÚJanusVQVAEConvDownsampleiÅ  rO   Nr¼   rO   rN   rK   rw  rw  Å  r½   rN   rw  c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚJanusVQVAEConvUpsampleiÉ  c                ót   <€ \         SV `  4        \        P                  P	                  W^^^R7      V n        R# )é   ©Úkernel_sizeÚstrideÚpaddingN)r€   rà   r›   r   ÚConv2dÚconv)r‚   rd   r„   s   &&€rK   rà   ÚJanusVQVAEConvUpsample.__init__Ê  s,   ø€ Ü‰ÑÔÜ—H‘H—O‘O KÈ!ÐTUÐ_`�OÓaˆŽ	rN   c                óZ   € \         P                  ! VR RR7      pV P                  V4      pV# )g       @Únearest)Úscale_factorÚmode)rj  Úinterpolater�  r  s   &&rK   rÖ   ÚJanusVQVAEConvUpsample.forwardÎ  s(   € ÜŸš mÀ#ÈIÔVˆØŸ	™	 -Ó0ˆØÐrN   )r�  r  rŒ   s   @@rK   ry  ry  É  s   ù‡ € õb÷ò rN   ry  c                   óP   a a€ ] tR tRt oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚJanusVQVAEMidBlockiÔ  c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r4   r£   Úchannels)r\   rC   )rI   rJ   s   "€rK   rL   ÚJanusVQVAEMidBlock.__annotate__Õ  s   ø€ ÷ 
ñ 
Ñ/ð 
¹3ñ 
rN   c                ó�   <€ \         SV `  4        \        VVVR 7      V n        \	        V4      V n        \        VVVR 7      V n        R# )©r£   rd   re   N)r€   rà   rs  Úblock_1ru  Úattn_1Úblock_2)r‚   r£   rŒ  r„   s   &&&€rK   rà   ÚJanusVQVAEMidBlock.__init__Õ  sF   ø€ Ü‰ÑÔÜ,ØØ Ø!ô
ˆŒô
 *¨(Ó3ˆŒÜ,ØØ Ø!ô
ˆŽrN   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r  r  )rI   rJ   s   "€rK   rL   r�  ã  ó#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ rN   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# r
  )r�  r‘  r’  r  s   &&rK   rÖ   ÚJanusVQVAEMidBlock.forwardã  s2   € ØŸ™ ]Ó3ˆØŸ™ MÓ2ˆØŸ™ ]Ó3ˆØÐrN   )r‘  r�  r’  r  rŒ   s   @@rK   rŠ  rŠ  Ô  s   ù‡ € ÷
ó 
÷÷ ð rN   rŠ  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚJanusVQVAEEncoderiê  c           
     óú  <€ \         SV `  4        \        VP                  4      V n        VP
                  V n        VP                  pVP                  pVP                  pVP                  pVP                  p\        P                  P                  W2^^^R7      V n        R\        V4      ,           pWpn        \        P                   ! 4       V n        \%        V P                  4       EF  p\        P                   ! 4       p	\        P                   ! 4       p
W'V,          ,          pW&V,          ,          p\%        V P
                  4       FU  pV	P'                  \)        VVVR7      4       TpW€P                  ^,
          8X  g   K;  V
P'                  \+        V4      4       KW  	  \        P,                  ! 4       pWžn        W®n        W€P                  ^,
          8w  d   \3        V4      Vn        V P"                  P'                  V4       EK   	  \7        VX4      V n        \        P                  P;                  ^ VRRR7      V n        \        P                  P                  TV'       d
   ^V,          MT^^^R7      V n        R# )r{  r|  r�  ç�íµ ÷Æ°>T©Ú
num_groupsÚnum_channelsr#  ÚaffineN©rl   ) r€   rà   Úlenrg   Únum_resolutionsrh   rf   rd   ra   rb   r›   r   r€  Úconv_inrE   Úin_channel_multiplierr0  Údownr1  Úappendrs  ru  ÚModuleÚblockÚattnrw  Ú
downsamplerŠ  ÚmidÚ	GroupNormÚnorm_outÚconv_out)r‚   r£   rf   rd   ra   rb   rg   r¤  Úi_levelr¨  r©  Úblock_inÚ	block_outÚi_blockr¥  r„   s   &&             €rK   rà   ÚJanusVQVAEEncoder.__init__ë  sò  ø€ Ü‰ÑÔä" 6×#<Ñ#<Ó=ˆÔØ$×3Ñ3ˆÔØ×,Ñ,ˆØ×(Ñ(ˆØ×,Ñ,ˆØ ×0Ñ0ˆØ#×6Ñ6Ðä—x‘x—‘ {ÈqÐYZÐde�ÓfˆŒà $¤uÐ-?Ó'@Õ @ÐØ%:Ô"Ü—M’M“OˆŒ	Ü˜T×1Ñ1×2ˆGÜ—M’M“OˆEÜ—=’=“?ˆDØ$¸WÕ'EÕEˆHØ%¸7Õ(CÕCˆIÜ  ×!4Ñ!4Ö5�Ø—‘Ü)Ø%Ø$,Ø%.ôôð %�Ø×2Ñ2°QÕ6Ö6Ø—K‘KÔ 3°HÓ =Ö>ñ 6ô —9’9“;ˆDØŒJØŒIØ×.Ñ.°Õ2Ô2Ü":¸8Ó"D�”Ø�I‰I×Ñ˜T×"ñ- 3ô0 & f¨hÓ7ˆŒäŸ™×*Ñ*°bÀxÐUYÐbfÐ*ÓgˆŒÜŸ™Ÿ™Øß#0ˆA�Ö°oØØØð (ó 
ˆŽrN   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r4   rÂ   )r›   re  )rI   rJ   s   "€rK   rL   ÚJanusVQVAEEncoder.__annotate__  s   ø€ ÷ !ñ !¡E×$4Ñ$4ñ !rN   c                ó   € V P                  V4      .p\        V P                  4       EF  p\        V P                  4       Fš  pV P                  V,          P
                  V,          ! VR,          4      p\        V P                  V,          P                  4      ^ 8”  d+   V P                  V,          P                  V,          ! V4      pVP                  V4       Kœ  	  W0P                  ^,
          8w  g   KÐ  VP                  V P                  V,          P                  VR,          4      4       EK  	  VR,          pV P                  V4      pV P                  V4      pV\        P                  ! V4      ,          pV P                  V4      pV# r•   )r£  r1  r¢  rh   r¥  r¨  r¡  r©  r¦  rª  r«  r­  r›   Úsigmoidr®  )r‚   rÂ   rö   r¯  r²  Úhidden_stater@  s   &&     rK   rÖ   ÚJanusVQVAEEncoder.forward  sB  € àŸ™ lÓ3Ð4ˆÜ˜T×1Ñ1×2ˆGÜ  ×!4Ñ!4Ö5�Ø#Ÿy™y¨Õ1×7Ñ7¸Ö@Ø! "Õ%ó �ô �t—y‘y Õ)×.Ñ.Ó/°!Ô3Ø#'§9¡9¨WÕ#5×#:Ñ#:¸7Ö#CÀLÓ#Q�LØ×$Ñ$ \Ö2ñ 6ð ×.Ñ.°Õ2Ö2Ø×$Ñ$ T§Y¡Y¨wÕ%7×%BÑ%BÀ=ÐQSÕCTÓ%U×Vñ 3ð *¨"Õ-ÐØ ŸH™HÐ%6Ó7Ðð !ŸM™MÐ*;Ó<ÐØœUŸ]š]Ð+<Ó=Õ=ÐØ ŸM™MÐ*;Ó<ÐØ Ð rN   )r£  r®  r¥  r¤  r«  r­  rh   r¢  r  rŒ   s   @@rK   r™  r™  ê  s   ù‡ € õ1
÷f!÷ !ð !rN   r™  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚJanusVQVAEDecoderi7  c           
     ó¾  <€ \         SV `  4        \        VP                  4      V n        VP
                  V n        VP                  pVP                  pVP                  pW!P                  V P                  ^,
          ,          ,          p\        P                  P                  W5^^^R7      V n        \        W4      V n        \        P                  ! 4       V n        \#        \%        V P                  4      4       EF  p\        P                  ! 4       p\        P                  ! 4       pW!P                  V,          ,          p	\%        V P
                  ^,           4       FU  p
VP'                  \)        VVV	R7      4       T	pW`P                  ^,
          8X  g   K;  VP'                  \+        V4      4       KW  	  \        P,                  ! 4       pW{n        W‹n        V^ 8w  d   \3        V4      Vn        V P                   P'                  V4       EK  	  \        P                  P7                  ^ VRRR7      V n        \        P                  P                  WT^^^R7      V n        R# )rl   r|  r�  r›  Trœ  N)r€   rà   r¡  rg   r¢  rh   rf   rb   re   r›   r   r€  r£  rŠ  r«  r0  ÚupÚreversedr1  r¦  rs  ru  r§  r¨  r©  ry  Úupsampler¬  r­  r®  )r‚   r£   rf   rb   re   r°  r¯  r¨  r©  r±  r²  r½  r„   s   &&          €rK   rà   ÚJanusVQVAEDecoder.__init__8  sÍ  ø€ Ü‰ÑÔä" 6×#<Ñ#<Ó=ˆÔØ$×3Ñ3ˆÔØ×,Ñ,ˆØ ×0Ñ0ˆØ×*Ñ*ˆð !×#<Ñ#<¸T×=QÑ=QÐTUÕ=UÕ#VÕVˆô —x‘x—‘ ÈaÐXYÐcd�ÓeˆŒô & fÓ7ˆŒô —-’-“/ˆŒÜ¤ d×&:Ñ&:Ó ;×<ˆGÜ—M’M“OˆEÜ—=’=“?ˆDØ%×(AÑ(AÀ'Õ(JÕJˆIÜ  ×!4Ñ!4°qÕ!8Ö9�Ø—‘Ü)Ø%Ø$,Ø%.ôôð %�Ø×2Ñ2°QÕ6Ö6Ø—K‘KÔ 3°HÓ =Ö>ñ :ô —’“ˆBØŒHØŒGØ˜!Œ|Ü4°XÓ>�”Ø�G‰G�N‰N˜2×ñ) =ô. Ÿ™×*Ñ*°bÀxÐUYÐbfÐ*ÓgˆŒÜŸ™Ÿ™¨ÈAÐVWÐab˜ÓcˆŽrN   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r4   r¸  rÄ   r·   )rI   rJ   s   "€rK   rL   ÚJanusVQVAEDecoder.__annotate__f  s'   ø€ ÷ ñ ¡E×$5Ñ$5ð ¹%×:KÑ:Kñ rN   c                ó¾  € V P                  V4      pV P                  V4      p\        V P                  4       Fâ  p\        V P                  ^,           4       F„  pV P
                  V,          P                  V,          ! V4      p\        V P
                  V,          P                  4      ^ 8”  g   KZ  V P
                  V,          P                  V,          ! V4      pK†  	  W P                  ^,
          8w  g   KÀ  V P
                  V,          P                  V4      pKä  	  V P                  V4      pV\        P                  ! V4      ,          pV P                  V4      pV# r   )r£  r«  r1  r¢  rh   r½  r¨  r¡  r©  r¿  r­  r›   r·  r®  )r‚   r¸  r¯  r²  s   &&  rK   rÖ   ÚJanusVQVAEDecoder.forwardf  s  € Ø—|‘| LÓ1ˆð —x‘x Ó-ˆô ˜T×1Ñ1Ö2ˆGÜ  ×!4Ñ!4°qÕ!8Ö9�Ø#Ÿw™w wÕ/×5Ñ5°gÖ>¸|ÓL�Ü�t—w‘w˜wÕ'×,Ñ,Ó-°Ö1Ø#'§7¡7¨7Õ#3×#8Ñ#8¸Ö#AÀ,Ó#O’Lñ :ð ×.Ñ.°Õ2Ö2Ø#Ÿw™w wÕ/×8Ñ8¸ÓF’ñ 3ð —}‘} \Ó2ˆØœŸš lÓ3Õ3ˆØ—}‘} \Ó2ˆØÐrN   )r£  r®  r«  r­  rh   r¢  r½  r  rŒ   s   @@rK   r»  r»  7  s   ù‡ € õ,d÷\÷ ð rN   r»  c                   óŽ   a a€ ] tR tRt o. ROtR]R]/tRtV3R lV 3R llt	V3R lR lt
]]V3R	 lR
 l4       4       tRtVtV ;t# )Ú
JanusVQVAEi{  rö   r7  rÂ   c                ó    <€ V ^8„  d   QhRS[ /# r¢   r\  )rI   rJ   s   "€rK   rL   ÚJanusVQVAE.__annotate__‡  s   ø€ ÷ ñ Ñ/ñ rN   c                ót   <€ \         SV `  V4       \        V4      V n        R V n        V P                  4        R# )FN)r€   rà   r»  ÚdecoderÚgradient_checkpointingÚ	post_initr  s   &&€rK   rà   ÚJanusVQVAE.__init__‡  s0   ø€ Ü‰Ñ˜Ô Ü(¨Ó0ˆŒØ&+ˆÔ#ð 	�‰ÖrN   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rb  rd  )rI   rJ   s   "€rK   rL   rÈ  �  s'   ø€ ÷ ñ ¡5×#3Ñ#3ð ¹×8IÑ8Iñ rN   c                óÜ  € VP                   ^,          V P                  P                  ^ ,          V P                  P                  ^,          ,          8w  dZ   \        RV P                  P                  ^ ,          V P                  P                  ^,          ,           RVP                    R24      hV P                  P	                  V4      pV P                  V4      pV P                  V4      pV# )a  
Decodes quantized token IDs into pixel values.
Args:
    image_tokens (torch.LongTensor): Batch of token IDs.
Returns:
    pixel_values (`torch.FloatTensor` of shape `(batch_size, num_channels, image_size, image_size)`):
        Pixel values decoded from the token IDs.
z4Expected `image_tokens` to have shape `(batch_size, z)`, but got shape `z`.)r�   Úquantizer_  rã   rp  Úpost_quant_convrÊ  )r‚   rc  Úcodebook_entryrö   rÂ   s   &&   rK   ÚdecodeÚJanusVQVAE.decode�  sã   € ð ×Ñ˜aÕ  D§M¡M×$BÑ$BÀ1Õ$EÈÏÉ×HfÑHfÐghÕHiÕ$iÔiÜØFÀtÇ}Á}×GeÑGeÐfgÕGhÐko×kxÑkx÷  lJñ  lJð  KLõ  lMõ  HMð  GNð N"Ø".×"4Ñ"4Ð!5°Rð9óð ð Ÿ™×9Ñ9¸,ÓGˆØ×,Ñ,¨^Ó<ˆØ—|‘| MÓ2ˆØÐrN   c                óx   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  S[ P                  3,          /# )r4   rÂ   rÄ   )r›   r¸   rE   )rI   rJ   s   "€rK   rL   rÈ  ¤  s?   ø€ ÷ 	Uñ 	Uá×'Ñ'ð	Uñ 
‰u× Ñ ¡%×"3Ñ"3Ð3Õ	4ñ		UrN   c                óÒ   € VP                   ^ ,          pV P                  ! V3RR/VB pV P                  VP                  P	                  VR4      4      p\        WTP                  4      # )r   Úreturn_dictTr”   )r�   ÚencoderÓ  rc  rü   r³   r¶   )r‚   rÂ   rƒ   r   Úencode_outputsrµ   s   &&,   rK   rÖ   ÚJanusVQVAE.forward¢  sa   € ð "×'Ñ'¨Õ*ˆ
ØŸš \ÑN¸tÐNÀvÑNˆØ#Ÿ{™{¨>×+FÑ+F×+KÑ+KÈJÐXZÓ+[Ó\ÐäÐ 4×6SÑ6SÓTÐTrN   )rÊ  rË  )ru  rs  rZ  )rP   rQ   rR   rS   r¬   rs  ru  rG  Úmain_input_namerà   rÓ  r   r   rÖ   rX   rY   r‹   rŒ   s   @@rK   rÆ  rÆ  {  sb   ù‡ € òÐð 	Ð.ØÐ)ðÐð %€O÷ó ÷ð ð& Ø÷	Uó ó ÷	Uð 	UrN   rÆ  c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚJanusVQVAEAlignerMLPi°  c                ó    <€ V ^8„  d   QhRS[ /# r¢   r\  )rI   rJ   s   "€rK   rL   Ú!JanusVQVAEAlignerMLP.__annotate__±  s   ø€ ÷ 7ñ 7Ñ/ñ 7rN   c           	     ó–  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        P                  ! \        ^VP                  4       Uu. uF.  p\        P                  ! VP
                  VP
                  4      NK0  	  up4      V n
        \        VP                  ,          V n        R# u upi rM  )r€   rà   r   rè   r_   r=   r  r0  r1  r6   rN  r   r9   r  r3  s   && €rK   rà   ÚJanusVQVAEAlignerMLP.__init__±  s’   ø€ Ü‰ÑÔä—9’9˜V×-Ñ-¨v×/DÑ/DÓEˆŒÜŸ]š]ÜNSÐTUÐW]×WoÑWoÔNpÓqÑNpÈŒR�YŠY�v×,Ñ,¨f×.CÑ.CÖDÑNpÑqó
ˆÔô $ F×$5Ñ$5Õ6ˆÖùò rrP  c                ó€   € V P                  V4      pV P                   F  pV P                  V4      pV! V4      pK  	  V# r
  rR  rS  s   && rK   rÖ   ÚJanusVQVAEAlignerMLP.forwardº  rV  rN   rW  r  rŒ   s   @@rK   rÝ  rÝ  °  rX  rN   rÝ  c                   óT   a a€ ] tR tRt oRtV3R lV 3R lltV3R lR ltRtVtV ;t	# )ÚJanusVQVAEHeadiÂ  zOHead used for sampling tokens in image generation, replacing the usual lm head.c                ó    <€ V ^8„  d   QhRS[ /# r¢   r\  )rI   rJ   s   "€rK   rL   ÚJanusVQVAEHead.__annotate__Å  s   ø€ ÷ Sñ SÑ/ñ SrN   c                ó  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        VP                  ,          V n	        \        P                  ! VP
                  VP                  4      V n        R # r
  )r€   rà   r   rè   rj   r=   Úproj_outr   r9   r  r`   Úvision_headr  s   &&€rK   rà   ÚJanusVQVAEHead.__init__Å  s^   ø€ Ü‰ÑÔÜŸ	š	 &×">Ñ">À×@UÑ@UÓVˆŒÜ# F×$5Ñ$5Õ6ˆÔÜŸ9š9 V×%:Ñ%:¸F×<QÑ<QÓRˆÖrN   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# r  )r›   rÅ   Útensor)rI   rJ   s   "€rK   rL   rç  Ë  r•  rN   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# r
  )ré  r  rê  r  s   &&rK   rÖ   ÚJanusVQVAEHead.forwardË  s6   € ØŸ™ mÓ4ˆØ×*Ñ*¨=Ó9ˆØ×(Ñ(¨Ó7ˆØÐrN   )r  ré  rê  r  rŒ   s   @@rK   rå  rå  Â  s#   ù‡ € ÙY÷Só S÷÷ ð rN   rå  zl
    The Janus model which consists of a siglip vision backbone, a Llama language model and a VQ model.
    c                   ó    a a€ ] tR tRt oV3R lV 3R llt]]V3R lR l4       4       tV3R lR lt]]RV3R lR	 ll4       4       t	R
t
VtV ;t# )Ú
JanusModeliÒ  c                ó    <€ V ^8„  d   QhRS[ /# r¢   r¤   )rI   rJ   s   "€rK   rL   ÚJanusModel.__annotate__Ø  s   ø€ ÷ ñ ™{ñ rN   c                óÄ  <€ \         SV `  V4       Wn        \        P	                  VP
                  4      V n        \        V P                  P                  4      V n        \        P	                  VP                  4      V n        \        P                  ! V P                  P                  P                  V P                  P                  P                  4      V n        \#        V P                  P                  4      V n        \'        V P                  P                  4      V n        \*        P,                  ! VP.                  R 7      V n        RV n        V P5                  4        R# ))r£   FN)r€   rà   r£   r6  Ú_from_configru   Úvision_modelrI  ÚalignerrÆ  rv   Úvqmodelr   Ú	Embeddingr`   r_   Úgeneration_embeddingsrÝ  Úgeneration_alignerrå  Úgeneration_headr   Úfrom_configrt   Úlanguage_modelrË  rÌ  r  s   &&€rK   rà   ÚJanusModel.__init__Ø  sï   ø€ Ü‰Ñ˜Ô ØŒä,×9Ñ9¸&×:NÑ:NÓOˆÔÜ,¨T×->Ñ->×-EÑ-EÓFˆŒä!×.Ñ.¨v×/?Ñ/?Ó@ˆŒô &(§\¢\°$·,±,×2EÑ2E×2TÑ2TÐVZ×VbÑVb×ViÑVi×VsÑVsÓ%tˆÔ"Ü"6°t·|±|×7JÑ7JÓ"KˆÔÜ-¨d¯l©l×.AÑ.AÓBˆÔä'×3Ò3¸6×;MÑ;MÔNˆÔà&+ˆÔ#à�‰ÖrN   c                ó`   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[,          /# )r4   rÂ   rƒ   rÄ   )r›   r¸   r   r   rE   r   )rI   rJ   s   "€rK   rL   ró  ï  s7   ø€ ÷ ñ Ù!×-Ñ-ðÙ9?Ñ@RÕ9Sðá	Ñ+Õ	+ñrN   c                óp   € V P                   ! V3R R/VB pV P                  VP                  4      Vn        V# )r×  T)rö  r÷  r@  rA  )r‚   rÂ   rƒ   Úvision_outputss   &&, rK   Úget_image_featuresÚJanusModel.get_image_featuresí  s;   € ð
 ×*Ò*¨<ÑTÀTÐTÈVÑTˆØ'+§|¡|°N×4TÑ4TÓ'UˆÔ$àÐrN   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# )r4   Ú	input_idsr?  Úimage_featuresrd  )rI   rJ   s   "€rK   rL   ró  ÷  s7   ø€ ÷ "ñ "Ù×)Ñ)ð"Ù:?×:KÑ:Kð"Ù]b×]nÑ]nñ"rN   c           
     óX  € Vfo   W P                  4       ! \        P                  ! RV P                  P                  \        P
                  VP                  R7      4      8H  pVP                  R4      pMWP                  P                  8H  pVP                  4       pVP                  ^ ,          VP                  ^,          ,          pVP                  R4      P                  VP                  4      p\        WRP                  R,          ,          VP                  4       8H  RV RV 24       V# )z×
Obtains multimodal placeholder mask from `input_ids` or `inputs_embeds`, and checks that the placeholder token count is
equal to the length of multimodal features. If the lengths are different, an error is raised.
©rÈ   Údevicez6Image features and image tokens do not match, tokens: z, features: rO   r”   )Úget_input_embeddingsr›   Úfullr£   r‡   Úlongr
  ÚallÚsumr�   Ú	unsqueezerË   r   Únumel)r‚   r  r?  r  Úspecial_image_maskÚn_image_tokensÚn_image_featuress   &&&&   rK   Úget_placeholder_maskÚJanusModel.get_placeholder_mask÷  s  € ð ÒØ!.×2KÑ2KÔ2MÜ—
’
˜2˜tŸ{™{×9Ñ9ÄÇÁÐTa×ThÑThÔió3ñ "Ðð "4×!7Ñ!7¸Ó!;Ñà!*¯k©k×.HÑ.HÑ!HÐà+×/Ñ/Ó1ˆØ)×/Ñ/°Õ2°^×5IÑ5IÈ!Õ5LÕLÐØ/×9Ñ9¸"Ó=×@Ñ@À×AUÑAUÓVÐÜØ×0Ñ0°Õ4Õ4¸×8LÑ8LÓ8NÑNØDÀ^ÐDTÐT`ÐaqÐ`rÐsô	
ð "Ð!rN   c                ó:  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          RS[R,          R	S[S[ P                  ,          R
S[/	# )r4   r  NrÂ   r÷   rš   r‘   r?  Ú	use_cacheÚlogits_to_keeprÄ   )r›   re  r¸   rÅ   r	   rH   rC   r»   )rI   rJ   s   "€rK   rL   ró    s«   ø€ ÷ ,
ñ ,
á×#Ñ# dÕ*ð,
ñ ×'Ñ'¨$Õ.ð,
ñ Ÿ™ tÕ+ð	,
ñ
 ×&Ñ&¨Õ-ð,
ñ  �ð,
ñ ×(Ñ(¨4Õ/ð,
ñ ˜$•;ð,
ñ ™eŸl™lÕ*ð,
ñ 
&ñ,
rN   c	                óP  € VR J VR J,          '       d   \        R4      hVf   V P                  4       ! V4      pVe‹   V P                  VRR7      P                  p
V
P	                  RVP
                  R,          4      pVP                  VP                  VP                  4      pV P                  WVR7      pVP                  WË4      pV P                  ! RRVRVRVRVR	VR
V/V	B p\        VP                  VP                  VP                  VP                   Ve   X
R7      # R R7      # )NzaYou cannot specify both input_ids and inputs_embeds at the same time, and must specify either oneT)r×  )r?  r  r?  r÷   rš   r‘   r  r  )r@  r‘   rö   r7  Úimage_hidden_statesr”   rO   )rã   r  r  rA  rû   r�   rË   r
  rÈ   r  Úmasked_scatterrþ  r»   r@  r‘   rö   r7  )r‚   r  rÂ   r÷   rš   r‘   r?  r  r  rƒ   Úimage_embedsr  Úimage_attention_maskÚ	lm_outputs   &&&&&&&&&,    rK   rÖ   ÚJanusModel.forward  sl  € ð ˜Ð -°tÐ";×<Ô<ÜØsóð ð Ò Ø ×5Ñ5Ô7¸	ÓBˆMàÒ#Ø×2Ñ2°<ÈTÐ2ÓR×`Ñ`ˆLØ)×1Ñ1°"°m×6IÑ6IÈ"Õ6MÓNˆNØ+×.Ñ.¨}×/CÑ/CÀ]×EXÑEXÓYˆNØ#'×#<Ñ#<ØÀ~ð $=ó $Ð ð *×8Ñ8Ð9MÓ^ˆMà×'Ò'ñ 
Ø'ð
à)ð
ð &ð
ð ,ð	
ð
  ð
ð *ð
ð ñ
ˆ	ô ,Ø'×9Ñ9Ø%×5Ñ5Ø#×1Ñ1Ø ×+Ñ+Ø0<Ò0H ô
ð 	
ð
 OSô
ð 	
rN   )	r÷  r£   rû  rú  rü  rË  rþ  rö  rø  )NNNNNNNr   )rP   rQ   rR   rS   rà   r   r   r  r  rÖ   rX   rY   r‹   rŒ   s   @@rK   rñ  rñ  Ò  s[   ù‡ € ÷ó ð* Ø÷ó ó ð÷"ð "ð0 Ø÷,
ñ ,
ó ó ÷,
ð ,
rN   rñ  c                   óà   a a€ ] tR tRt oRR/tRtRtV3R lV 3R lltV3R lR lt]	]
RV3R	 lR
 ll4       4       tV3R lR lt]P                  ! 4       RV3R lV 3R lll4       tRtVtV ;t# )ÚJanusForConditionalGenerationi@  zlm_head.weightz(model.language_model.embed_tokens.weightTc                ó    <€ V ^8„  d   QhRS[ /# r¢   r¤   )rI   rJ   s   "€rK   rL   Ú*JanusForConditionalGeneration.__annotate__E  s   ø€ ÷ ñ ™{ñ rN   c                óþ   <€ \         SV `  V4       Wn        \        V4      V n        \
        P                  ! VP                  P                  VP                  P                  R R7      V n
        V P                  4        R# )FrÞ   N)r€   rà   r£   rñ  r�   r   rè   rt   r5   Ú
vocab_sizeÚlm_headrÌ  r  s   &&€rK   rà   Ú&JanusForConditionalGeneration.__init__E  sZ   ø€ Ü‰Ñ˜Ô ØŒÜ Ó'ˆŒ
Ü—y’y ×!3Ñ!3×!?Ñ!?À×ASÑAS×A^ÑA^ÐejÔkˆŒð 	�‰ÖrN   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r4   ÚinputsrÄ   r  )rI   rJ   s   "€rK   rL   r$  N  s#   ø€ ÷ ñ ¹e¿l¹lð ÉuÏ|É|ñ rN   c                ór   € V P                   P                  V4      pV P                   P                  V4      pV# r
  )r�   rú  rû  )r‚   r*  r¸  s   && rK   Ú'prepare_embeddings_for_image_generationÚEJanusForConditionalGeneration.prepare_embeddings_for_image_generationN  s0   € Ø—z‘z×7Ñ7¸Ó?ˆØ—z‘z×4Ñ4°\ÓBˆØÐrN   c                óx  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          RS[ P                  R,          R	S[R,          R
S[S[ P                  ,          RS[S[,          RS[	/# )r4   r  NrÂ   r÷   rš   r‘   r?  Úlabelsr  r  rƒ   rÄ   )
r›   re  r¸   rÅ   r	   rH   rC   r   r   r¿   )rI   rJ   s   "€rK   rL   r$  U  sÐ   ø€ ÷ /
ñ /
á×#Ñ# dÕ*ð/
ñ ×'Ñ'¨$Õ.ð/
ñ Ÿ™ tÕ+ð	/
ñ
 ×&Ñ&¨Õ-ð/
ñ  �ð/
ñ ×(Ñ(¨4Õ/ð/
ñ × Ñ  4Õ'ð/
ñ ˜$•;ð/
ñ ™eŸl™lÕ*ð/
ñ Ñ+Õ,ð/
ñ 
%ñ/
rN   c
                óÄ  € V P                   ! RRVRVRVRVRVRVRV/V
B pVP                  p\        V	\        4      '       d   \	        V	) R4      MT	pV P                  VR	VR	3,          4      pRpVe7   V P                  ! RR
VRVRV P                  P                  P                  /V
B p\        VVVP                  VP                  VP                  VP                  R7      # )a…  
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,
    config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored
    (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.
r  rÂ   r÷   rš   r‘   r?  r  NrB  Úlogitsr/  r&  )Úlossr1  r‘   rö   r7  r  rO   )r�   r@  rz   rC   Úslicer'  Úloss_functionr£   rt   r&  r¿   r‘   rö   r7  r  )r‚   r  rÂ   r÷   rš   r‘   r?  r/  r  r  rƒ   Úoutputsrö   Úslice_indicesr1  r2  s   &&&&&&&&&&,     rK   rÖ   Ú%JanusForConditionalGeneration.forwardS  s'  € ð* —*’*ñ 	
Øð	
à%ð	
ð *ð	
ð &ð		
ð
 ,ð	
ð (ð	
ð  ð	
ð ñ	
ˆð  ×1Ñ1ˆä8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@ÓAˆàˆØÒØ×%Ò%ñ ØðØ&,ðØ9=¿¹×9PÑ9P×9[Ñ9[ðØ_eñˆDô +ØØØ#×3Ñ3Ø!×/Ñ/Ø×)Ñ)Ø '× ;Ñ ;ô
ð 	
rN   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r4   rc  r  )rI   rJ   s   "€rK   rL   r$  †  s   ø€ ÷ 
ñ 
±·±ñ 
rN   c                óx   € V P                   P                  P                  V4      pVP                  ^ ^^^4      pV# )zü
Decodes generated image tokens from language model to continuous pixel values
with VQGAN module via upsampling.
Args:
    image_tokens (`torch.LongTensor` of shape `(batch_size, num_of_tokens)`):
        The tensors corresponding to the input images.
)r�   rø  rÓ  rl  )r‚   rc  Údecoded_images   && rK   Údecode_image_tokensÚ1JanusForConditionalGeneration.decode_image_tokens†  s:   € ð Ÿ
™
×*Ñ*×1Ñ1°,Ó?ˆØ%×-Ñ-¨a°°A°qÓ9ˆØÐrN   c                ó~   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[R,          /# )r4   r*  Nr÷   Úlogits_processor)r›   rÅ   re  r   )rI   rJ   s   "€rK   rL   r$  “  sG   ø€ ÷ $ñ $á—‘˜tÕ#ð$ñ ×(Ñ(¨4Õ/ð$ñ .°Õ4ñ	$rN   c                óz  <€ VP                  R R4      pV P                  ! VP                  RR4      3/ VB w  rgVR8X  d   \        S%V `  ! RRVRVRVRR/VB # VP	                  4       \
        P                  \
        P                  39  d   \        R4      hVP                  4        V P                  VP                  4       4       Ve   TM	\        4       pRVR	&   VP                  f   \        P                  R
4       ^Vn        VP                  VR&   V P!                  WP"                  V4      w  r‰pVP$                  VP&                  rº\)        VP*                  4      ^8w  d   \        RVP*                   R24      hVRJpV P-                  WlVP&                  R7       VP                  '       d=   VP                  ^8”  d,   VP/                  \1        VP                  4      4       RVn        V P3                  VVP*                  ^,          VRVVR7      pV P4                  ! RRVRVRVP6                  /VB w  r‡V P8                  P:                  P<                  P>                  pVP*                  w  rïVPA                  ^^4      pVP                  RR4      pVPA                  ^^4      pW'R&   VVR1R3,          VP"                  8g  VVR1R3,          VPB                  R,          8g  ,          pVVR1R3,          PE                  VVPF                  4       V PI                  4       ! V4      pVPK                  RR4      fN   T PM                  VPN                  ;'       g    RV^,          \Q        VPR                  Wß,           4      VR7      VR&   \T        PV                  ! Wí3W«R7      pVPX                  pVPZ                  pVP\                  pVP^                  pVP`                  pV'       d   V'       d   RMRpV'       d   V'       d   RMRpV'       d   V'       d   RMRpV'       d   V'       d   RMRp\c        V4       EFl  pV Pd                  ! RRVRVRR/VB pRV9   d&   VR,          Pg                  VP&                  4      VR&   V P8                  Ph                  ! R/ VBRVRV/B pV Pk                  VV4      pVPl                  R ,          Po                  4       p V P8                  Pq                  V 4      p!V! VV!4      p"VPr                  '       dA   \T        Pt                  ! V"RR7      p#\T        Pv                  ! V#^R7      Py                  R4      p$M\T        Pz                  ! V"RR7      p$V$VRV3&   \T        P|                  ! V$V$.4      p$V$P                  R4      p$V P�                  V$4      pEKo  	  V'       di   V'       d   VX!3,          pV'       d   VX Pƒ                  4       3,          pV'       d   VXP„                  ,          pV'       d   VXP†                  ,          pV'       d   \‰        VX!VVVXPŠ                  R7      # V# )!Úgeneration_moder¨   Úgeneration_configNr*  r÷   Úguidance_scalez’Got incompatible mode for Image Generation, should be one of greedy or sampling. Ensure that beam search is de-activated by setting `num_beams=1`.Tr  zU`guidance_scale` is required for CFG but not provided. Setting to default value of 5.z;Expected input ids of shape (batch_size, seq_len), but got z3Passing `inputs embeds` is not supported currently.)r
  )rA  Úinput_ids_seq_lengthÚencoder_input_idsÚprefix_allowed_tokens_fnr>  r
  r  Úexpand_sizerB  Úboi_token_idr‘   Ústatic)Úcache_implementationr   Úmax_cache_lenÚmodel_kwargsr	  r?  Úis_first_iterationÚoutput_attentionsÚoutput_hidden_states)rh  )Únum_samples)Ú	sequencesÚscoresr1  r7  rö   r‘   rO   r”   )rB  r”   rB  )FÚpopÚ_prepare_generation_configr€   ÚgenerateÚget_generation_moder   ÚSAMPLEÚGREEDY_SEARCHrã   ÚvalidateÚ_validate_model_kwargsÚcopyr   rB  r}   ÚwarningÚ_prepare_model_inputsÚbos_token_idrÈ   r
  r¡  r�   Ú_prepare_special_tokensr¦  r   Ú_get_logits_processorÚ_expand_inputs_for_generationÚnum_return_sequencesr�   rö  r£   rB   ÚrepeatÚgeneration_kwargsÚmasked_fill_Úpad_token_idr  r|   Ú_prepare_static_cacherI  ÚmaxÚ
max_lengthr›   ÚzerosrM  rN  Úoutput_scoresÚoutput_logitsÚreturn_dict_in_generater1  Úprepare_inputs_for_generationrË   rþ  Ú#_update_model_kwargs_for_generationr@  Úclonerü  Ú	do_sampleÚsoftmaxÚmultinomialÚsqueezeÚargmaxÚcatr  r,  rG   r7  rö   r   r‘   )&r‚   r*  r÷   r>  rƒ   r@  rA  rK  r  Úmodel_input_namerÈ   r
  Úkwargs_has_attention_maskrB   r   r  Úinput_tokensÚmaskr?  Úgenerated_tokensrM  rN  rj  rk  rl  Ú
raw_scoresÚ
raw_logitsÚdecoder_hidden_statesÚdecoder_attentionsÚiÚmodel_inputsr5  r¸  rQ  Únext_token_scoresÚprobsÚ
next_tokenr„   s&   &&&&,                                €rK   rT  Ú&JanusForConditionalGeneration.generate’  sL  ø€ ð !Ÿ*™*Ð%6¸Ó?ˆØ*.×*IÒ*IØ�J‰JÐ*¨DÓ1ñ+
Ø5;ñ+
Ñ'Ðð
 ˜fÔ$ä‘7Ò#ñ Øðà-ðð #4ðð  $ð	ð
 ñð ð ×0Ñ0Ó2¼>×;PÑ;PÔR`×RnÑRnÐ:oÔoÜðTóð ð 	×"Ñ"Ô$Ø×#Ñ# L×$5Ñ$5Ó$7Ô8ð 0@Ò/KÑ+ÔQdÓQfÐð %)ˆ�[Ñ!à×+Ñ+Ò3Ü�N‰NÐrÔsØ/0ÐÔ,Ø):×)IÑ)IˆÐ%Ñ&ð 59×4NÑ4NØ×2Ñ2°Ló5
Ñ1ˆ	 \ð "Ÿ™¨×)9Ñ)9ˆväˆy�‰Ó 1Ô$ÜØMÈiÏoÉoÐM^ØEðFóð ð %3¸$Ð$>Ð!Ø×$Ñ$Ð%6ÐZc×ZjÑZjÐ$Ôkð ×+×+Ð+Ð0A×0PÑ0PÐSTÔ0TØ×#Ñ#Ô$IÐJ[×JjÑJjÓ$kÔlØ/3ÐÔ,ð  ×5Ñ5Ø/Ø!*§¡°Õ!3Ø'Ø%)Ø-Øð 6ó 
Ðð #'×"DÒ"Dñ #
Øð#
à)ð#
ð *×>Ñ>ð#
ð ñ	#
Ñˆ	ð  Ÿ:™:×2Ñ2×9Ñ9×JÑJÐØ'Ÿo™oÑˆ
à ×'Ñ'¨¨1Ó-ˆØ%×)Ñ)Ð*:¸DÓAˆØ'×.Ñ.¨q°!Ó4ˆØ)7Ð%Ñ&ð ˜Z™[¨!˜^Õ,Ð0A×0NÑ0NÑNØ˜™ a˜Õ(Ð,=×,OÑ,OÐP^Õ,_Ñ_õ
ˆð 	�Z‘[ !�^Õ$×1Ñ1°$Ð8I×8VÑ8VÔWà×1Ñ1Ô3°LÓAˆà×ÑÐ-¨tÓ4Ò<à.2×.HÑ.HØ%6×%KÑ%K×%WÐ%WÈxà%¨�>ä!Ð"3×">Ñ">Ð@PÕ@ZÓ[Ø)ð /Ió /ˆLÐ*Ñ+ô !Ÿ;š;¨
Ð'EÈUÔbÐð .×?Ñ?ÐØ0×EÑEÐØ)×7Ñ7ˆØ)×7Ñ7ˆØ"3×"KÑ"KÐç3¿‘RÈDˆ
ß3¿‘RÈDˆ
ß'>×CW¡Ð^bÐß$;×@Q™RÐX\ÐäÐ'×(ˆAð  ×=Ò=ñ Ø+ðØ7CðØX\ðØ`lñˆLð   <Ô/Ø1=Ð>NÕ1O×1RÑ1RÐS`×SgÑSgÓ1h�Ð-Ñ.à—j‘j×/Ò/ñ Øñà"3ðð &:òˆGð  ×CÑCÀGÈ\ÓZˆLØ"×4Ñ4°XÕ>×DÑDÓFˆLð —Z‘Z×/Ñ/°Ó=ˆFÙ 0°¸FÓ CÐð !×*×*Ð*ÜŸšÐ&7¸RÔ@�Ü"×.Ò.¨uÀ!ÔD×LÑLÈRÓP‘
ä"Ÿ\š\Ð*;ÀÔD�
à%/Ð˜Q ˜TÑ"ô Ÿš J°
Ð#;Ó<ˆJØ#×-Ñ-¨bÓ1ˆJà ×HÑHÈÓT‹MñQ )÷T #ßØ˜v˜iÕ'�
ßØ˜|×1Ñ1Ó3Ð5Õ5�
ß Ø" g×&8Ñ&8Õ8Ð"ß#Ø%¨×)>Ñ)>Õ>Ð%ç"Ü,Ø*ØØ!Ø-Ø3Ø '× 7Ñ 7ôð ð $Ð#rN   )r£   r'  r�   r¦   )	NNNNNNNNr   )NNN)rP   rQ   rR   rS   Ú_tied_weights_keysÚoutput_modalitiesr°   rà   r,  r   r   rÖ   r;  r›   Úno_gradrT  rX   rY   r‹   rŒ   s   @@rK   r"  r"  @  s…   ù‡ € Ø*Ð,VÐWÐØ)ÐØ!Ð÷ó ÷ð ð
 Ø÷/
ñ /
ó ó ð/
÷b
ð 
ð ‡]‚]ƒ_÷$ô $ó ÷$ð $rN   r"  )rŽ   r"  rñ  rÆ  r6  r\   r.   rr   )cÚcollections.abcr   Údataclassesr   r›   Útorch.nn.functionalr   Ú
functionalrj  Úhuggingface_hub.dataclassesr   Ú r   r˜   Úactivationsr   Úcache_utilsr	   Úconfiguration_utilsr
   Ú
generationr   r   r   r   Úgeneration.utilsr   Úmodeling_outputsr   r   r   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   r   Úautor   r   r   Úblip_2.modeling_blip_2r   Ú!chameleon.configuration_chameleonr   Úchameleon.modeling_chameleonr    r!   r"   r#   r$   Úidefics.modeling_ideficsr%   r&   Úllama.modeling_llamar'   Úsiglip.configuration_siglipr(   Úsiglip.modeling_siglipr)   r*   r+   Ú
get_loggerrP   r}   r.   r\   rr   rŽ   r³   r»   r¿   r—   r§  rÙ   r  r�   r,  r6  rI  rZ  rs  ru  rw  ry  rŠ  r™  r»  rÆ  rÝ  rå  rñ  r"  Ú__all__rO   rN   rK   Ú<module>r¡     s¿  ðõ %Ý !ã ß Ð Ý .Ý å &Ý !Ý  Ý 3ß uÓ uÝ 9ß XÑ Xß FÝ &÷õ ÷ 9Ñ 8Ý 5Ý D÷õ ÷ eÝ :Ý <ß ^Ñ ^ð 
×	Ò	˜HÓ	%€ñ
 Ð<Ô=Øô)Ð*ó )ó ó >ð)ñ2 Ð<Ô=Øô#!Ð+ó #!ó ó >ð#!ñL Ð<Ô=Øô=(Ð"ó =(ó ó >ð=(ð@ ôi˜?ó ió ðiñ$ ðôð
 ô	4�{ó 	4ó óð	4ô	Ð#Aô 	ô	Ð"?ô 	ôÐ2ô ô"I$˜2Ÿ9™9ô I$ôX�R—Y‘Yô ô(*Ð0ô *ôp˜ô pô#
Ð'ô #
ôL˜BŸI™Iô ô$"Ð =ô "ô*	Ð<ô 	ô	Ð8ô 	ô	ÐBô 	ô˜RŸY™Yô ô˜Ÿ™ô ô,J!˜Ÿ	™	ô J!ôZA˜Ÿ	™	ô AôH2U�ô 2Uôj˜2Ÿ9™9ô ô$�R—Y‘Yô ñ  ðôô
f
Ð%ó f
óð
f
ôRR$Ð$8¸/ô R$òj	‚rN   