o
    9i                     @   sJ   d dl Z d dlmZ d dlmZ dZG dd dejZG dd deZdS )    N)versionz3sgm.modules.diffusionmodules.wrappers.OpenAIWrapperc                       s,   e Zd Zddef fddZdd Z  ZS )IdentityWrapperFcompile_modelc                    s@   t    ttjtdkr|rtjndd }||| _d S )Nz2.0.0c                 S   s   | S N )xr   r   O/data/cameron/vidgen/generative-models/sgm/modules/diffusionmodules/wrappers.py<lambda>   s    z*IdentityWrapper.__init__.<locals>.<lambda>)super__init__r   parsetorch__version__compilediffusion_model)selfr   r   r   	__class__r   r   r   	   s   
zIdentityWrapper.__init__c                 O   s   | j |i |S r   )r   )r   argskwargsr   r   r   forward   s   zIdentityWrapper.forward)F)__name__
__module____qualname__boolr   r   __classcell__r   r   r   r   r      s    
r   c                   @   s,   e Zd ZdejdejdedejfddZdS )OpenAIWrapperr   tcreturnc              
   K   s   t j||dt g |fdd}d|v r6| j|f||dd |dd |dd |dd d|S | j|f||dd |dd d	|S )
Nconcat   )dim	cond_view	crossattnvectorcond_motion)	timestepscontextyr#   r&   )r'   r(   r)   )r   catgetTensortype_asr   )r   r   r   r   r   r   r   r   r      s,   &






zOpenAIWrapper.forwardN)r   r   r   r   r,   dictr   r   r   r   r   r      s    r   )	r   torch.nnnn	packagingr   OPENAIUNETWRAPPERModuler   r   r   r   r   r   <module>   s    