
    qi                         d Z ddlmZ ddlZddlmc mc mZ ddl	m
Z
 ddlmZmZmZmZ ddlmZ ddlmZ dd	lmZmZ  G d
 de      ZdgZy)z-
Video processor class for InstructBLIPVideo
    )OptionalN   )BatchFeature)OPENAI_CLIP_MEANOPENAI_CLIP_STDPILImageResamplingSizeDict)
TensorType)BaseVideoProcessor)group_videos_by_shapereorder_videosc                       e Zd Zej                  ZeZeZ	dddZ
dZdZdZdZdZdZdgZ	 dded   d	ed
ededed   dedededededeee   z  dz  deee   z  dz  deez  dz  defdZy)InstructBlipVideoVideoProcessori  )heightwidthTFpixel_valuesNvideosztorch.Tensordo_convert_rgb	do_resizesizeinterpolationztvF.InterpolationModedo_center_crop	crop_size
do_rescalerescale_factordo_normalize
image_mean	image_stdreturn_tensorsreturnc           	         t        |      \  }}i }|j                         D ]3  \  }}|r| j                  |      }|r| j                  |||      }|||<   5 t	        ||      }t        |      \  }}i }|j                         D ]4  \  }}|r| j                  ||      }| j                  |||	|
||      }|||<   6 t	        ||      }t        d|i|      S )N)r   r   r   )datatensor_type)r   itemsconvert_to_rgbresizer   center_croprescale_and_normalizer   )selfr   r   r   r   r   r   r   r   r   r   r   r   r   kwargsgrouped_videosgrouped_videos_indexresized_videos_groupedshapestacked_videosresized_videosprocessed_videos_groupedprocessed_videoss                          z/opt/pipecat/venv/lib/python3.12/site-packages/transformers/models/instructblipvideo/video_processing_instructblipvideo.py_preprocessz+InstructBlipVideoVideoProcessor._preprocess,   s   $ 0EV/L,,!#%3%9%9%; 	;!E>!%!4!4^!D!%^$Vc!d,:"5)	; ((>@TU 0E^/T,,#% %3%9%9%; 	=!E>!%!1!1.)!L!77
NL*V_N /=$U+	= **BDXY.2B!CQ_``    )N)__name__
__module____qualname__r   BICUBICresampler   r   r   r   r   default_to_squarer   r   r   r   do_sample_framesmodel_input_nameslistboolr	   r   floatstrr
   r   r4    r5   r3   r   r      s   !))H!JIC(DIJLN'(  37+a^$+a +a 	+a
 +a   78+a +a +a +a +a +a DK'$.+a 4;&-+a j(4/+a  
!+ar5   r   )__doc__typingr   torch$torchvision.transforms.v2.functional
transformsv2
functionaltvFimage_processing_utilsr   image_utilsr   r   r   r	   utilsr
   video_processing_utilsr   video_utilsr   r   r   __all__rB   r5   r3   <module>rQ      sD      2 2 2 Z Z  8 @8a&8 8av -
-r5   