
    bi
                     r    d dl mZ d dlmZ d dlmZ ddlmZ  ej                  e	      Z
 G d deee      Zy)	   )WanLoraLoaderMixin)StableDiffusionMixin)logging   )ModularPipelinec                       e Zd ZdZed        Zed        Zed        Zed        Zed        Z	ed        Z
ed        Zed	        Zed
        Zed        Zy)WanModularPipelinez
    A ModularPipeline for Wan.

    <Tip warning={true}>

        This is an experimental feature and is likely to change in the future.

    </Tip>
    c                 4    | j                   | j                  z  S N)default_sample_heightvae_scale_factor_spatialselfs    k/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/diffusers/modular_pipelines/wan/modular_pipeline.pydefault_heightz!WanModularPipeline.default_height(   s    ))D,I,III    c                 4    | j                   | j                  z  S r   )default_sample_widthr   r   s    r   default_widthz WanModularPipeline.default_width,   s    ((4+H+HHHr   c                 @    | j                   dz
  | j                  z  dz   S )N   )default_sample_num_framesvae_scale_factor_temporalr   s    r   default_num_framesz%WanModularPipeline.default_num_frames0   s$    ..2d6T6TTWXXXr   c                      y)N<    r   s    r   r   z(WanModularPipeline.default_sample_height4       r   c                      y)Nh   r   r   s    r   r   z'WanModularPipeline.default_sample_width8   s    r   c                      y)N   r   r   s    r   r   z,WanModularPipeline.default_sample_num_frames<   r   r   c                 ~    d}t        | d      r.| j                  "dt        | j                  j                        z  }|S )N   vaer   )hasattrr%   lentemperal_downsampler   vae_scale_factors     r   r   z+WanModularPipeline.vae_scale_factor_spatial@   ;    4DHH$8 C(D(D$EEr   c                 ~    d}t        | d      r.| j                  "dt        | j                  j                        z  }|S )N   r%   r   )r&   r%   sumr(   r)   s     r   r   z,WanModularPipeline.vae_scale_factor_temporalG   r+   r   c                 z    d}t        | d      r,| j                   | j                  j                  j                  }|S )N   transformer)r&   r1   configin_channels)r   num_channels_transformers     r   r4   z+WanModularPipeline.num_channels_transformerN   s;    #% 4'D,<,<,H'+'7'7'>'>'J'J$''r   c                 z    d}t        | d      r,| j                   | j                  j                  j                  }|S )Nr0   r%   )r&   r%   r2   z_dim)r   num_channels_latentss     r   r7   z'WanModularPipeline.num_channels_latentsU   s5    !4DHH$8#'88??#8#8 ##r   N)__name__
__module____qualname____doc__propertyr   r   r   r   r   r   r   r   r4   r7   r   r   r   r	   r	      s    
 J J I I Y Y               ( ( $ $r   r	   N)loadersr   pipelines.pipeline_utilsr   utilsr   modular_pipeliner   
get_loggerr8   loggerr	   r   r   r   <module>rC      s<     * <  . 
		H	%A$A$r   