[VLM] replace deprecated image processor use_fast (#34175)

This commit is contained in:
Mick
2026-08-12 00:14:07 +08:00
committed by GitHub
parent b20c375c10
commit 8267d76c2c
21 changed files with 281 additions and 98 deletions
@@ -39,6 +39,72 @@ register_cpu_ci(est_time=6, suite="base-a-test-cpu")
class TestGetProcessor(unittest.TestCase):
def test_does_not_forward_backend_to_auto_processor(self):
config = SimpleNamespace(model_type="test_vlm", auto_map={})
loaded_processor = MagicMock()
loaded_processor.image_processor.backend = "torchvision"
loaded_processor.tokenizer.chat_template = "template"
auto_config = MagicMock()
auto_config.from_pretrained.return_value = config
auto_processor = MagicMock()
auto_processor.from_pretrained.return_value = loaded_processor
auto_image_processor = MagicMock()
with patch.multiple(
processor_utils,
AutoConfig=auto_config,
AutoProcessor=auto_processor,
AutoImageProcessor=auto_image_processor,
):
processor_utils.get_processor(
"test-model", image_processor_backend="torchvision"
)
call_kwargs = auto_processor.from_pretrained.call_args.kwargs
self.assertNotIn("backend", call_kwargs)
self.assertNotIn("use_fast", call_kwargs)
auto_image_processor.from_pretrained.assert_not_called()
def test_applies_pil_backend_only_to_image_processor(self):
config = SimpleNamespace(model_type="test_vlm", auto_map={})
for processor_kwargs in (
{"image_processor_backend": "pil"},
{"use_fast": False},
):
with self.subTest(processor_kwargs=processor_kwargs):
loaded_processor = MagicMock()
loaded_processor.image_processor.backend = "torchvision"
loaded_processor.tokenizer.chat_template = "template"
pil_processor = MagicMock(backend="pil")
auto_config = MagicMock()
auto_config.from_pretrained.return_value = config
auto_processor = MagicMock()
auto_processor.from_pretrained.return_value = loaded_processor
auto_image_processor = MagicMock()
auto_image_processor.from_pretrained.return_value = pil_processor
with patch.multiple(
processor_utils,
AutoConfig=auto_config,
AutoProcessor=auto_processor,
AutoImageProcessor=auto_image_processor,
):
processor = processor_utils.get_processor(
"test-model", **processor_kwargs
)
call_kwargs = auto_processor.from_pretrained.call_args.kwargs
self.assertNotIn("backend", call_kwargs)
self.assertNotIn("use_fast", call_kwargs)
auto_image_processor.from_pretrained.assert_called_once_with(
"test-model",
trust_remote_code=False,
revision=None,
backend="pil",
)
self.assertIs(processor.image_processor, pil_processor)
def test_resolves_model_name_before_loading_config(self):
remote_model = "s3://bucket/model"
local_model = "/cache/model"