[Bugfix] Fix Cosmos3-Edge processor after transformers 5.15 release (#51989)
Signed-off-by: Bartosz Stefaniak <bstefaniak@nvidia.com>
bastefaniak committed
Aug 14, 2026 at 11:46 UTC
20405bfb15546bb988f425a3c95fef9ac59104c7
2 files changed
+20
-5
tests/models/registry.py
+8
-1
@@ -825,7 +825,14 @@ _MULTIMODAL_EXAMPLE_MODELS = {
825
"Cosmos3EdgeForConditionalGeneration": _HfExamplesInfo(
826
"nvidia/Cosmos3-Edge",
827
max_model_len=4096,
828
- is_available_online=False,
828
+ min_transformers_version="5.15",
829
+ use_original_num_layers=True,
830
+ hf_overrides={
831
+ "text_config": {
832
+ "num_hidden_layers": 2,
833
+ "hybrid_override_pattern": "*-",
834
+ }
835
+ },
836
),
837
"DeepseekVLV2ForCausalLM": _HfExamplesInfo(
838
"deepseek-ai/deepseek-vl2-tiny",
vllm/transformers_utils/processors/cosmos3_edge.py
+12
-4
@@ -8,12 +8,16 @@ import torch
8
from torchvision.transforms import InterpolationMode
9
from transformers import AutoTokenizer
10
from transformers.feature_extraction_utils import BatchFeature
11
-from transformers.image_utils import ChannelDimension, PILImageResampling, SizeDict
11
+from transformers.image_utils import (
12
+ ChannelDimension,
13
+ PILImageResampling,
14
+ SizeDict,
15
+ get_image_size,
16
+)
17
from transformers.models.qwen3_vl.processing_qwen3_vl import Qwen3VLProcessor
18
from transformers.models.qwen3_vl.video_processing_qwen3_vl import (
19
Qwen3VLVideoProcessor,
20
Qwen3VLVideoProcessorInitKwargs,
16
- get_image_size,
21
smart_resize,
22
)
23
from transformers.models.siglip2.image_processing_siglip2 import (
@@ -22,6 +26,7 @@ from transformers.models.siglip2.image_processing_siglip2 import (
26
)
27
from transformers.processing_utils import Unpack
28
from transformers.utils import TensorType
29
+from transformers.video_processing_utils import BaseVideoProcessor
30
from transformers.video_utils import group_videos_by_shape, reorder_videos
31
32
@@ -225,8 +230,11 @@ class Cosmos3EdgeVideoProcessor(Qwen3VLVideoProcessor):
230
max_pixels=size.longest_edge,
231
)
232
stacked_videos = stacked_videos.view(B * T, C, H, W)
228
- stacked_videos = self.resize(
229
- stacked_videos,
233
+ # The target size is already computed, so bypass Qwen3-VL's
234
+ # dynamic resize, which expects an unflattened video tensor.
235
+ stacked_videos = BaseVideoProcessor.resize(
236
+ self,
237
+ image=stacked_videos,
238
size=SizeDict(height=resized_height, width=resized_width),
239
resample=resample,
240
)