o
    پi,                     @   sd   d dl Z d dlmZmZ d dlmZmZ d dlmZ d dl	m
Z
mZ d dlmZ G dd de
ZdS )	    N)ListUnion)ModalityMultimodalDataItem)#InternS1ProForConditionalGeneration)QwenVLImageProcessorpreprocess_video)loggerc                   @   s4   e Zd ZegZdd Zdeeee	f  fddZ
dS )InternS1_1ImageProcessorc                 C   sF   |  ||\}}ttj||dg}||| j| j| jj| jj| jj	dS )N)modalityoffsetsprecomputed_embeddings	input_idsmm_itemsim_start_id	im_end_idim_token_idvideo_token_idaudio_token_id)
build_input_idsr   r   IMAGEIM_START_TOKEN_IDIM_END_TOKEN_ID	mm_tokensimage_token_idr   r   )selfprompt
embeddingsimg_grid_thwr   r   r    r    `/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/multimodal/processors/interns1pro.pyget_mm_data   s   	z$InternS1_1ImageProcessor.get_mm_data
image_datac                    s  t  } j|||j|j jd}t  }t|dd}	d }
|jr8 fdd|jD I d H }tt	t
| \|_}
t  } j| j|
dd\}}}t|dd }|d u rYt|d	d }t  }| }d }t|d
rk|j}|d u r|rt|d tr|d d
}d }t|dr|j}|d u r|jr|jd }t|tr|d}t  }td|	d|| d dd|| d dd|| d dd|| d dd|| d dd | | j j jj jj jjdS )N)r   r#   
video_data
audio_datamultimodal_tokensridanonymous_ridc                    s"   g | ]}t | jd I dH qS ))video_configN)r   r)   ).0videor   r    r!   
<listcomp><   s
    zBInternS1_1ImageProcessor.process_mm_data_async.<locals>.<listcomp>F)video_metadatado_sample_framessecond_per_grid_tsvideo_second_per_gridimage_grid_thwr   video_grid_thwz[QwenVLProcessor Perf] rid=z, load_time: i  z.2fz ms, preprocess_time: z ms, process_time: z ms, get_rope_index_time: z ms, total_time: z msr   )timeperf_counterload_mm_datar$   r%   r   getattrvideosmaplistzipprocess_and_combine_mm_dataflattenhasattrr2   
isinstancedictgetr3   r	   debugtolistvision_start_token_idvision_end_token_idr   r   r   )r   r#   
input_textrequest_objargskwargs
entry_timebase_output	load_timer'   r.   videos_processedpreprocess_timer   r   retr0   process_timer2   r3   first_videoget_rope_index_timer    r,   r!   process_mm_data_async'   s~   






z.InternS1_1ImageProcessor.process_mm_data_asyncN)__name__
__module____qualname__r   modelsr"   r   r   strbytesrS   r    r    r    r!   r
      s    r
   )r4   typingr   r   "sglang.srt.managers.schedule_batchr   r   sglang.srt.models.interns1pror   (sglang.srt.multimodal.processors.qwen_vlr   r   sglang.utilsr	   r
   r    r    r    r!   <module>   s    