o
    i                     @   s   d Z ddlZddlmZ ee jd Zeeej	vr%ej	
dee ddlmZmZmZ dZd ZZdd	ed
efddZdd ZdS )uQ   DINO encoder: single-frame → 32x32 patch features. Delegates to dino_vid_model.    N)Path   )	load_dinoextract_patch_featuresDinoNormalizei       Tkeygrip_rootfreezec                 C   s"   t t| |d}ttd}||fS )uX   Load DINO and return (dino_module, norm_module). Single frame in → (B, D, 32, 32) out.)r	   )Z	dino_size)r   r   r   	DINO_SIZE)r   r	   dinonorm r   3/data/cameron/vidgen/diffusion_dino/dino_encoder.pyload_dino_encoder   s   
r   c                 C   s   ||}t | |ddS )zAframe: (B, 3, H, W) in [-1, 1] or [0, 1]. Returns (B, D, 32, 32).N)r   )r   r   framexr   r   r   encode_frame   s   r   )T)__doc__syspathlibr   __file__resolveparentsZ_vidgenstrpathinsertZdino_vid_model.dino_loaderr   r   r   r
   ZPATCH_HZPATCH_Wboolr   r   r   r   r   r   <module>   s    