
    rh                     @   d Z ddlmZmZ ddlmZ ddlmZmZm	Z	 ddl
mZmZ ddlmZ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mZ  e       rddlmZ  e       r e       rddlmZ nddlmZ  e       rddl Z  G d de      Z! ed       G d de             Z"dgZ#y)z-
Video processor class for InstructBLIPVideo
    )OptionalUnion   )BatchFeature)OPENAI_CLIP_MEANOPENAI_CLIP_STDSizeDict)UnpackVideosKwargs)
TensorTypeis_torch_availableis_torchvision_availableis_torchvision_v2_availableis_vision_available)requires)BaseVideoProcessor)VideoMetadatagroup_videos_by_shapereorder_videos)PILImageResampling)
functionalNc                       e Zd Zy))InstructBlipVideoVideoProcessorInitKwargsN)__name__
__module____qualname__     /var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/transformers/models/instructblipvideo/video_processing_instructblipvideo.pyr   r   7   s    r   r   )torchvision)backendsc            +       \    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eZdgZdee   f fdZ	 	 	 	 d ded	   d
eee   ee   f   dedededee   ded   dedededededededeeeee   f      deeeee   f      deeeef      dee   deeee f      ded	   de!f*dZ" xZ#S )!InstructBlipVideoVideoProcessori  )heightwidthTFpixel_valueskwargsc                 $    t        |   di | y )Nr   )super__init__)selfr'   	__class__s     r   r*   z(InstructBlipVideoVideoProcessor.__init__I   s    "6"r   videosztorch.Tensorvideo_metadatado_convert_rgb	do_resizesizesize_divisorinterpolationzF.InterpolationModedo_center_crop	crop_size
do_rescaledo_padrescale_factordo_normalizedo_sample_frames
image_mean	image_stdfps
num_framesreturn_tensorsdevicereturnc           
         |r0t        ||      D cg c]  \  }}| j                  ||||       }}}||D cg c]  }|j                  |       }}t        |      \  }}i }|j	                         D ]4  \  }}|r| j                  |      }|r| j                  ||||      }|||<   6 t        ||      }t        |      \  }}i }|j	                         D ]4  \  }}|r| j                  ||	      }| j                  ||
||||      }|||<   6 t        ||      }|rt        j                  |d      n|}t        d|i|      S c c}}w c c}w )N)r1   r2   r3   r   )dimr&   )datatensor_type)zipsample_framestor   itemsconvert_to_rgbresizer   center_croprescale_and_normalizetorchstackr   )r+   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   videometadatagrouped_videosgrouped_videos_indexresized_videos_groupedshapestacked_videosresized_videosprocessed_videos_groupedprocessed_videoss                                  r   _preprocessz+InstructBlipVideoVideoProcessor._preprocessL   s   . \_`fhv\wIXPX""5(JDF  4:;5ehhv&;F; 0EV/L,,!#%3%9%9%; 	;!E>!%!4!4^!D!%"LXe "- " -;"5)	; ((>@TU 0E^/T,,#% %3%9%9%; 	=!E>!%!1!1.)!L!77
NL*V_N /=$U+	= **BDXYCQ5;;'7Q?Wg.2B!CQ_``M <s
   EE	)NNNN)$r   r   r   r   BICUBICresampler   r;   r   r<   r1   default_to_squarer0   r6   r9   r/   r:   r   valid_kwargsmodel_input_namesr
   r*   listr   r   dictboolr	   r   intfloatstrr   r   rZ   __classcell__)r,   s   @r   r#   r#   :   s   !))H!JIC(DIJLN<L'(#(Q!R #* ,0$(;?+/+>a^$>a d=14:=>>a 	>a
 >a >a sm>a   56>a >a >a >a >a >a >a >a  U5$u+#567!>a" E%e"456#>a$ eCJ'(%>a& SM'>a( !sJ!78)>a* (+>a, 
->ar   r#   )$__doc__typingr   r   image_processing_utilsr   image_utilsr   r   r	   processing_utilsr
   r   utilsr   r   r   r   r   utils.import_utilsr   video_processing_utilsr   video_utilsr   r   r   r   torchvision.transforms.v2r   Ftorchvision.transformsrN   r   r#   __all__r   r   r   <module>rt      s     # 2 
 5  + 8 O O 1"$=:  C B 
#$Oa&8 Oa %Oad -
-r   