
    bCiK                        % S r SSKrSSKrSSKrSSKrSSKJr  SSKJrJ	r	J
r
  SSKJr  SSKJrJr  SSKJrJrJrJrJr  SS	KJr  SS
KJr  SSKJr  SSKJrJrJrJ r   \RB                  " \"5      r#\(       a  \" 5       r$\\%\&\	\%   \	\%   4   4   \'S'   O
\" / SQ5      r$\$RQ                  5        H  u  r)r*\*r+\" 5       (       d  Sr+\+\$\)'   M     \" \\$5      r,S\%4S jr-       S S\
\%\R\                  4   S\	\
\%\R\                  4      S\/S\	\/   S\	\0\%\%4      S\	\
\/\%4      S\	\%   S\/4S jjr1\" SS9 " S S5      5       r2SS/r3g)!zAutoVideoProcessor class.    N)OrderedDict)TYPE_CHECKINGOptionalUnion   )PretrainedConfig)get_class_from_dynamic_moduleresolve_trust_remote_code)CONFIG_NAMEVIDEO_PROCESSOR_NAMEcached_fileis_torchvision_availablelogging)requires)BaseVideoProcessor   )_LazyAutoMapping)CONFIG_MAPPING_NAMES
AutoConfigmodel_type_to_module_name!replace_list_option_in_docstringsVIDEO_PROCESSOR_MAPPING_NAMES))glm4vGlm4vVideoProcessor)instructblipInstructBlipVideoVideoProcessor)instructblipvideor   )internvlInternVLVideoProcessor)llava_next_videoLlavaNextVideoVideoProcessor)llava_onevisionLlavaOnevisionVideoProcessor)perception_lmPerceptionLMVideoProcessor)qwen2_5_omniQwen2VLVideoProcessor)
qwen2_5_vlr'   )qwen2_vlr'   )qwen3_omni_moer'   )qwen3_vlQwen3VLVideoProcessor)qwen3_vl_moer,   )
sam2_videoSam2VideoVideoProcessor)smolvlmSmolVLMVideoProcessor)video_llavaVideoLlavaVideoProcessor)vjepa2VJEPA2VideoProcessor
class_namec                    [         R                  5        H=  u  pX;   d  M  [        U5      n[        R                  " SU 3S5      n [        X05      s  $    [        R                  R                  5        H  n[        USS 5      U :X  d  M  Us  $    [        R                  " S5      n[        XP5      (       a  [        XP5      $ g ! [         a     M  f = f)N.ztransformers.models__name__transformers)r   itemsr   	importlibimport_modulegetattrAttributeErrorVIDEO_PROCESSOR_MAPPING_extra_contentvalueshasattr)r6   module_name
extractorsmodule	extractormain_modules         h/home/james-whalen/.local/lib/python3.13/site-packages/transformers/models/auto/video_processing_auto.pyvideo_processor_class_from_namerJ   Q   s    #@#F#F#H#3K@K,,q->@UVFv22 $I -;;BBD	9j$/:= E )).9K{''{// " s   
C
CCpretrained_model_name_or_path	cache_dirforce_downloadresume_downloadproxiestokenrevisionlocal_files_onlyc                 V   UR                  SS5      n	U	b+  [        R                  " S[        5        Ub  [	        S5      eU	n[        U [        UUUUUUUS9	n
U
c  [        R                  S5        0 $ [        U
SS9 n[        R                  " U5      sSSS5        $ ! , (       d  f       g= f)	a
  
Loads the video processor configuration from a pretrained model video processor configuration.

Args:
    pretrained_model_name_or_path (`str` or `os.PathLike`):
        This can be either:

        - a string, the *model id* of a pretrained model configuration hosted inside a model repo on
          huggingface.co.
        - a path to a *directory* containing a configuration file saved using the
          [`~PreTrainedTokenizer.save_pretrained`] method, e.g., `./my_model_directory/`.

    cache_dir (`str` or `os.PathLike`, *optional*):
        Path to a directory in which a downloaded pretrained model configuration should be cached if the standard
        cache should not be used.
    force_download (`bool`, *optional*, defaults to `False`):
        Whether or not to force to (re-)download the configuration files and override the cached versions if they
        exist.
    resume_download:
        Deprecated and ignored. All downloads are now resumed by default when possible.
        Will be removed in v5 of Transformers.
    proxies (`dict[str, str]`, *optional*):
        A dictionary of proxy servers to use by protocol or endpoint, e.g., `{'http': 'foo.bar:3128',
        'http://hostname': 'foo.bar:4012'}.` The proxies are used on each request.
    token (`str` or *bool*, *optional*):
        The token to use as HTTP bearer authorization for remote files. If `True`, will use the token generated
        when running `hf auth login` (stored in `~/.huggingface`).
    revision (`str`, *optional*, defaults to `"main"`):
        The specific model version to use. It can be a branch name, a tag name, or a commit id, since we use a
        git-based system for storing models and other artifacts on huggingface.co, so `revision` can be any
        identifier allowed by git.
    local_files_only (`bool`, *optional*, defaults to `False`):
        If `True`, will only try to load the video processor configuration from local files.

<Tip>

Passing `token=True` is required when you want to use a private model.

</Tip>

Returns:
    `Dict`: The configuration of the video processor.

Examples:

```python
# Download configuration from huggingface.co and cache.
video_processor_config = get_video_processor_config("llava-hf/llava-onevision-qwen2-0.5b-ov-hf")
# This model does not have a video processor config so the result will be an empty dict.
video_processor_config = get_video_processor_config("FacebookAI/xlm-roberta-base")

# Save a pretrained video processor locally and you can reload its config
from transformers import AutoVideoProcessor

video_processor = AutoVideoProcessor.from_pretrained("llava-hf/llava-onevision-qwen2-0.5b-ov-hf")
video_processor.save_pretrained("video-processor-test")
video_processor = get_video_processor_config("video-processor-test")
```use_auth_tokenNrThe `use_auth_token` argument is deprecated and will be removed in v5 of Transformers. Please use `token` instead.V`token` and `use_auth_token` are both specified. Please set only the argument `token`.)rL   rM   rN   rO   rP   rQ   rR   zbCould not locate the video processor configuration file, will try to use the model config instead.zutf-8)encoding)popwarningswarnFutureWarning
ValueErrorr   r   loggerinfoopenjsonload)rK   rL   rM   rN   rO   rP   rQ   rR   kwargsrT   resolved_config_filereaders               rI   get_video_processor_configre   i   s    J ZZ 0$7N! A	
 uvv&%%')
 #p	
 		"W	5yy  
6	5	5s   :B
B()visiontorchvision)backendsc                   Z    \ rS rSrSrS r\\" \5      S 5       5       r	\
 SS j5       rSrg)	AutoVideoProcessor   a  
This is a generic video processor class that will be instantiated as one of the video processor classes of the
library when created with the [`AutoVideoProcessor.from_pretrained`] class method.

This class cannot be instantiated directly using `__init__()` (throws an error).
c                     [        S5      e)NzAutoVideoProcessor is designed to be instantiated using the `AutoVideoProcessor.from_pretrained(pretrained_model_name_or_path)` method.)OSError)selfs    rI   __init__AutoVideoProcessor.__init__   s    d
 	
    c                    UR                  SS5      nUb<  [        R                  " S[        5        UR	                  S5      b  [        S5      eXCS'   UR                  SS5      nUR                  SS5      nSUS	'   [        R                  " U40 UD6u  pxUR	                  S
S5      n	Sn
SUR	                  S0 5      ;   a  US   S   n
U	ct  U
cq  UR                  SS5      nUb,  UR                  SS5      nU[        R                  5       ;   a  Un	SUR	                  S0 5      ;   a  US   S   nUR                  SS5      n
U	cn  U
ck  [        U[        5      (       d  [        R                  " U4SU0UD6n[        US
S5      n	[!        US5      (       a  SUR"                  ;   a  UR"                  S   n
U	b  [%        U	5      n	U
SLnU	SL=(       d    ['        U5      [(        ;   n[+        XaX5      nU(       aK  U(       aD  U
n[-        UU40 UD6n	UR                  SS5      nU	R/                  5         U	R0                  " U40 UD6$ U	b  U	R0                  " U40 UD6$ ['        U5      [(        ;   a6  [(        ['        U5         n	U	b  U	R                  " U/UQ70 UD6$ [        S5      e[        SU S[2         S[4         S[4         SSR7                  S [         5       5       3
5      e)a  
Instantiate one of the video processor classes of the library from a pretrained model vocabulary.

The video processor class to instantiate is selected based on the `model_type` property of the config object
(either passed as an argument or loaded from `pretrained_model_name_or_path` if possible), or when it's
missing, by falling back to using pattern matching on `pretrained_model_name_or_path`:

List options

Params:
    pretrained_model_name_or_path (`str` or `os.PathLike`):
        This can be either:

        - a string, the *model id* of a pretrained video_processor hosted inside a model repo on
          huggingface.co.
        - a path to a *directory* containing a video processor file saved using the
          [`~video_processing_utils.BaseVideoProcessor.save_pretrained`] method, e.g.,
          `./my_model_directory/`.
        - a path or url to a saved video processor JSON *file*, e.g.,
          `./my_model_directory/preprocessor_config.json`.
    cache_dir (`str` or `os.PathLike`, *optional*):
        Path to a directory in which a downloaded pretrained model video processor should be cached if the
        standard cache should not be used.
    force_download (`bool`, *optional*, defaults to `False`):
        Whether or not to force to (re-)download the video processor files and override the cached versions if
        they exist.
    resume_download:
        Deprecated and ignored. All downloads are now resumed by default when possible.
        Will be removed in v5 of Transformers.
    proxies (`dict[str, str]`, *optional*):
        A dictionary of proxy servers to use by protocol or endpoint, e.g., `{'http': 'foo.bar:3128',
        'http://hostname': 'foo.bar:4012'}.` The proxies are used on each request.
    token (`str` or *bool*, *optional*):
        The token to use as HTTP bearer authorization for remote files. If `True`, will use the token generated
        when running `hf auth login` (stored in `~/.huggingface`).
    revision (`str`, *optional*, defaults to `"main"`):
        The specific model version to use. It can be a branch name, a tag name, or a commit id, since we use a
        git-based system for storing models and other artifacts on huggingface.co, so `revision` can be any
        identifier allowed by git.
    return_unused_kwargs (`bool`, *optional*, defaults to `False`):
        If `False`, then this function returns just the final video processor object. If `True`, then this
        functions returns a `Tuple(video_processor, unused_kwargs)` where *unused_kwargs* is a dictionary
        consisting of the key/value pairs whose keys are not video processor attributes: i.e., the part of
        `kwargs` which has not been used to update `video_processor` and is otherwise ignored.
    trust_remote_code (`bool`, *optional*, defaults to `False`):
        Whether or not to allow for custom models defined on the Hub in their own modeling files. This option
        should only be set to `True` for repositories you trust and in which you have read the code, as it will
        execute code present on the Hub on your local machine.
    kwargs (`dict[str, Any]`, *optional*):
        The values in kwargs of any keys which are video processor attributes will be used to override the
        loaded values. Behavior concerning key/value pairs whose keys are *not* video processor attributes is
        controlled by the `return_unused_kwargs` keyword parameter.

<Tip>

Passing `token=True` is required when you want to use a private model.

</Tip>

Examples:

```python
>>> from transformers import AutoVideoProcessor

>>> # Download video processor from huggingface.co and cache.
>>> video_processor = AutoVideoProcessor.from_pretrained("llava-hf/llava-onevision-qwen2-0.5b-ov-hf")

>>> # If video processor files are in a directory (e.g. video processor was saved using *save_pretrained('./test/saved_model/')*)
>>> # video_processor = AutoVideoProcessor.from_pretrained("./test/saved_model/")
```rT   NrU   rP   rV   configtrust_remote_codeT
_from_autovideo_processor_typerj   auto_mapimage_processor_typeImageProcessorVideoProcessorAutoImageProcessorcode_revisionz_This video processor cannot be instantiated. Please make sure you have `torchvision` installed.z Unrecognized video processor in z2. Should have a `video_processor_type` key in its z of z3, or one of the following `model_type` keys in its z: z, c              3   $   #    U  H  ov   M     g 7f)N ).0cs     rI   	<genexpr>5AutoVideoProcessor.from_pretrained.<locals>.<genexpr>t  s     @jLiqLis   )rX   rY   rZ   r[   getr\   r   get_video_processor_dictreplacer   rB   
isinstancer   r   from_pretrainedr>   rC   rw   rJ   typer@   r
   r	   register_for_auto_class	from_dictr   r   join)clsrK   inputsrb   rT   rs   rt   config_dict_video_processor_classvideo_processor_auto_mapimage_processor_classvideo_processor_class_inferredimage_processor_auto_maphas_remote_codehas_local_code	class_refs                    rI   r   "AutoVideoProcessor.from_pretrained   s:   R  $4d;%MM E zz'". l  -7OHd+"JJ':DA#|+DDEbmflm +0F M#' ;??:r#BB'2:'>?S'T$ !(-E-M$/OO4JD$Q!$01F1N1NO_aq1r. 25R5Y5Y5[[,J)#{z2'FF+6z+BCW+X(+C+K+KL\^n+o( !(-E-Mf&677#331EVZ` %,F4JD$Q!vz**/Cv/V+1??;O+P( ,$CDY$Z!2$>.d:ed6lNe>e5n
 00I$A)Mj$unt$u!

?D1A!99;(22;I&II".(22;I&II&\44$;DL$I!$0,<<=Zn]cngmnn u  ./L.M N11E0Fd;- X((3}Btyy@jLi@j7j6km
 	
rq   c                 ,    [         R                  XUS9  g)z
Register a new video processor for this class.

Args:
    config_class ([`PretrainedConfig`]):
        The configuration corresponding to the model to register.
    video_processor_class ([`BaseVideoProcessor`]):
        The video processor to register.
)exist_okN)r@   register)config_classr   r   s      rI   r   AutoVideoProcessor.registerw  s     	 ((W_(`rq   r~   N)F)r9   
__module____qualname____firstlineno____doc__ro   classmethodr   r   r   staticmethodr   __static_attributes__r~   rq   rI   rj   rj      sM    
 &'DEW
 F W
r  a arq   rj   r@   )NFNNNNF)4r   r<   r`   osrY   collectionsr   typingr   r   r   configuration_utilsr   dynamic_module_utilsr	   r
   utilsr   r   r   r   r   utils.import_utilsr   video_processing_utilsr   auto_factoryr   configuration_autor   r   r   r   
get_loggerr9   r]   r   strtuple__annotations__r;   
model_typevideo_processorsfast_video_processor_classr@   rJ   PathLikebooldictre   rj   __all__r~   rq   rI   <module>r      s       	  # 1 1 4 \ f f * 8 *  
		H	%  \g[h!;sE(3-RU:V4W/W#Xh$/	
%!, %B$G$G$I J !1 $%%%)"0J!*- %J ++?A^_  4 48 &*(,(,""a!#(bkk)9#:a!c2;;./0a! a! d^	a!
 d38n%a! E$)$%a! sma! a!H 
,-xa xa .xav %&:
;rq   