o
    ۷i                     @   s  d dl mZ ddlmZmZmZ ddlmZmZm	Z	 dd Z
e	 r%dd Zi Ze r\d	ged
< dged< dged< dged< dged< e	 r\dged< g ded< dged< g ded< dged< eseere rddlmZ ddlmZ dd lmZ dd!lmZ dd"lmZ e	 rdd#lmZmZmZ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&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2 dd%l3m4Z4 dd&l5m6Z6 dd'l7m8Z8 d(S d d(l9Z9ee:e; d) ee<d*e9j=e:< d(S )+    )TYPE_CHECKING   )DIFFUSERS_SLOW_IMPORT_LazyModule	deprecate)is_peft_availableis_torch_availableis_transformers_availablec                 C   s   t ddd i }t| D ]\\}}|jj  D ]\}}||| d| < q|jj  D ]\}}||| d| < q.|jj  D ]\}}||| d| < qD|jj  D ]\}}||| d| < qZq|S )Nz(text_encoder_load_state_dict in `models`0.27.0`text_encoder_lora_state_dict` is deprecated and will be removed in 0.27.0. Make sure to retrieve the weights using `get_peft_model`. See https://huggingface.co/docs/peft/v0.6.2/en/quicktour#peftmodel for more information.z.q_proj.lora_linear_layer.z.k_proj.lora_linear_layer.z.v_proj.lora_linear_layer.z.out_proj.lora_linear_layer.)	r   text_encoder_attn_modulesq_projlora_linear_layer
state_dictitemsk_projv_projout_proj)text_encoderr   namemodulekv r   P/home/ubuntu/vllm_env/lib/python3.10/site-packages/diffusers/loaders/__init__.pytext_encoder_lora_state_dict   s"   r   c                 C   s|   t ddd ddlm}m} g }t| ||fr5t| jjjD ]\}}d| d}|j	}|
||f q|S td| jj )	Nz%text_encoder_attn_modules in `models`r
   r   r   )CLIPTextModelCLIPTextModelWithProjectionztext_model.encoder.layers.z
.self_attnz.do not know how to get attention modules for: )r   transformersr   r   
isinstance	enumerate
text_modelencoderlayers	self_attnappend
ValueError	__class____name__)r   r   r   attn_modulesilayerr   modr   r   r   r   !   s   r   FromOriginalModelMixinsingle_file_modelFluxTransformer2DLoadersMixintransformer_fluxSD3Transformer2DLoadersMixintransformer_sd3UNet2DConditionLoadersMixinunetAttnProcsLayersutilsFromSingleFileMixinsingle_file)AmusedLoraLoaderMixinStableDiffusionLoraLoaderMixinSD3LoraLoaderMixinAuraFlowLoraLoaderMixin StableDiffusionXLLoraLoaderMixinLTX2LoraLoaderMixinLTXVideoLoraLoaderMixinLoraLoaderMixinFluxLoraLoaderMixinCogVideoXLoraLoaderMixinCogView4LoraLoaderMixinMochi1LoraLoaderMixinHunyuanVideoLoraLoaderMixinSanaLoraLoaderMixinLumina2LoraLoaderMixinWanLoraLoaderMixinHeliosLoraLoaderMixinKandinskyLoraLoaderMixinHiDreamImageLoraLoaderMixinSkyReelsV2LoraLoaderMixinQwenImageLoraLoaderMixinZImageLoraLoaderMixinFlux2LoraLoaderMixinlora_pipelineTextualInversionLoaderMixintextual_inversion)IPAdapterMixinFluxIPAdapterMixinSD3IPAdapterMixinModularIPAdapterMixin
ip_adapterPeftAdapterMixinpeft   )r-   )r/   )r1   )r3   )r5   )rT   rS   rV   rU   )r9   r<   rB   rC   rO   rA   rI   rK   rE   rJ   r@   r>   r?   rG   rD   rM   rF   r;   rL   r:   r=   rH   rN   )r7   )rQ   )rX   N__file__)module_spec)>typingr   r6   r   r   r   utils.import_utilsr   r   r	   r   r   _import_structurer.   r-   r0   r/   r2   r1   r4   r3   r5   rW   rT   rS   rV   rU   rP   r9   r<   rB   rC   rO   rA   rI   rK   rE   rJ   r@   r>   r?   rG   rD   rM   rF   r;   rL   r:   r=   rH   rN   r8   r7   rR   rQ   rY   rX   sysr(   globals__spec__modulesr   r   r   r   <module>   sD    







d 