"""Standalone Transformers processor for quicksviewer_8b (one conversation).
pixel_values stays CPU uint8 [sum_frames,3,980,980]. image_spans identify only
64 content embeddings, excluding /. timestamp_spans identify
ordinary digit-token slots to patch after the model determines cube boundaries.
"""
import json
import os
from pathlib import Path
import re
import shutil
import numpy as np
import torch
from transformers import AutoTokenizer
from transformers.feature_extraction_utils import BatchFeature
from transformers.processing_utils import ProcessorMixin
from transformers.utils.hub import cached_file
from .image_processing_quicksviewer import QuicksviewerImageProcessor, SIGLIP_SIZE
from .video_processing_quicksviewer import (
QuicksviewerVideoProcessor,
frame_temporal_ids,
num_video_cubes,
timestamp_placeholder_ids,
timestamp_token_count,
video_list,
)
VISUAL_START_ID = 151669
VISUAL_END_ID = 151670
VISUAL_CONTENT_ID = 128244
NQ = 64
_MEDIA_PATTERN = re.compile(r"|