diff --git a/tests/models/paddleocr_vl/test_modeling_paddleocr_vl.py b/tests/models/paddleocr_vl/test_modeling_paddleocr_vl.py index 1e95ea4741f4..7ccd2056bff7 100644 --- a/tests/models/paddleocr_vl/test_modeling_paddleocr_vl.py +++ b/tests/models/paddleocr_vl/test_modeling_paddleocr_vl.py @@ -43,6 +43,7 @@ ids_tensor, ) from ...test_pipeline_mixin import PipelineTesterMixin +from ...test_processing_common import url_to_local_path if is_torch_available(): @@ -360,7 +361,9 @@ def setUp(self): "content": [ { "type": "image", - "url": "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/ocr_demo2.jpg", + "url": url_to_local_path( + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/ocr_demo2.jpg" + ), }, {"type": "text", "text": "OCR:"}, ], diff --git a/tests/models/pp_chart2table/test_modeling_pp_chart2table.py b/tests/models/pp_chart2table/test_modeling_pp_chart2table.py index b573723c4d13..799da10492ea 100644 --- a/tests/models/pp_chart2table/test_modeling_pp_chart2table.py +++ b/tests/models/pp_chart2table/test_modeling_pp_chart2table.py @@ -18,6 +18,8 @@ from transformers import AutoModelForImageTextToText, AutoProcessor from transformers.testing_utils import cleanup, require_torch, require_vision, slow, torch_device +from ...test_processing_common import url_to_local_path + @slow @require_vision @@ -33,7 +35,9 @@ def setUp(self): "content": [ { "type": "image", - "url": "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/chart_parsing_02.png", + "url": url_to_local_path( + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/chart_parsing_02.png" + ), }, ], }, diff --git a/tests/models/pp_doclayout_v2/test_modeling_pp_doclayout_v2.py b/tests/models/pp_doclayout_v2/test_modeling_pp_doclayout_v2.py index 941e676bb1fd..c2b4b3cf0d66 100644 --- a/tests/models/pp_doclayout_v2/test_modeling_pp_doclayout_v2.py +++ b/tests/models/pp_doclayout_v2/test_modeling_pp_doclayout_v2.py @@ -19,7 +19,6 @@ import tempfile import unittest -import requests from parameterized import parameterized from transformers import ( @@ -27,8 +26,8 @@ PPDocLayoutV2ForObjectDetection, PPDocLayoutV2ImageProcessor, is_torch_available, - is_vision_available, ) +from transformers.image_utils import load_image from transformers.testing_utils import ( cleanup, require_torch, @@ -41,14 +40,12 @@ from ...test_configuration_common import ConfigTester from ...test_modeling_common import ModelTesterMixin, floats_tensor from ...test_pipeline_mixin import PipelineTesterMixin +from ...test_processing_common import url_to_local_path if is_torch_available(): import torch -if is_vision_available(): - from PIL import Image - class PPDocLayoutV2ModelTester: def __init__( @@ -583,8 +580,10 @@ def setUp(self): model_path = "PaddlePaddle/PP-DocLayoutV2_safetensors" self.model = PPDocLayoutV2ForObjectDetection.from_pretrained(model_path).to(torch_device) self.image_processor = PPDocLayoutV2ImageProcessor.from_pretrained(model_path) - url = "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg" - self.image = Image.open(requests.get(url, stream=True).raw) + img_url = url_to_local_path( + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg" + ) + self.image = load_image(img_url) def tearDown(self): cleanup(torch_device, gc_collect=True) diff --git a/tests/models/pp_doclayout_v3/test_modeling_pp_doclayout_v3.py b/tests/models/pp_doclayout_v3/test_modeling_pp_doclayout_v3.py index f20518bfb0fc..d44e01dce40d 100644 --- a/tests/models/pp_doclayout_v3/test_modeling_pp_doclayout_v3.py +++ b/tests/models/pp_doclayout_v3/test_modeling_pp_doclayout_v3.py @@ -18,7 +18,6 @@ import math import unittest -import requests from parameterized import parameterized from transformers import ( @@ -28,6 +27,7 @@ is_torch_available, is_vision_available, ) +from transformers.image_utils import load_image from transformers.testing_utils import ( require_torch, require_torch_accelerator, @@ -39,14 +39,12 @@ from ...test_configuration_common import ConfigTester from ...test_modeling_common import ModelTesterMixin, floats_tensor from ...test_pipeline_mixin import PipelineTesterMixin +from ...test_processing_common import url_to_local_path if is_torch_available(): import torch -if is_vision_available(): - from PIL import Image - class PPDocLayoutV3ModelTester: def __init__( @@ -457,8 +455,10 @@ def setUp(self): self.image_processor = ( PPDocLayoutV3ImageProcessor.from_pretrained(model_path) if is_vision_available() else None ) - url = "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg" - self.image = Image.open(requests.get(url, stream=True).raw) + img_url = url_to_local_path( + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg" + ) + self.image = load_image(img_url) def test_inference_object_detection_head(self): inputs = self.image_processor(images=self.image, return_tensors="pt").to(torch_device) diff --git a/tests/models/pp_lcnet/test_modeling_pp_lcnet.py b/tests/models/pp_lcnet/test_modeling_pp_lcnet.py index c7f31f43129e..f404d682dd40 100644 --- a/tests/models/pp_lcnet/test_modeling_pp_lcnet.py +++ b/tests/models/pp_lcnet/test_modeling_pp_lcnet.py @@ -17,7 +17,6 @@ import inspect import unittest -import requests from parameterized import parameterized from transformers import ( @@ -28,6 +27,7 @@ is_torch_available, is_vision_available, ) +from transformers.image_utils import load_image from transformers.testing_utils import ( require_torch, require_torch_accelerator, @@ -40,14 +40,12 @@ from ...test_configuration_common import ConfigTester from ...test_modeling_common import ModelTesterMixin, floats_tensor from ...test_pipeline_mixin import PipelineTesterMixin +from ...test_processing_common import url_to_local_path if is_torch_available(): import torch -if is_vision_available(): - from PIL import Image - class PPLCNetModelTester: def __init__( @@ -282,8 +280,10 @@ def setUp(self): model_path = "PaddlePaddle/PP-LCNet_x1_0_doc_ori_safetensors" self.model = PPLCNetForImageClassification.from_pretrained(model_path).to(torch_device) self.image_processor = PPLCNetImageProcessor.from_pretrained(model_path) if is_vision_available() else None - url = "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/img_rot180_demo.jpg" - self.image = Image.open(requests.get(url, stream=True).raw) + img_url = url_to_local_path( + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/img_rot180_demo.jpg" + ) + self.image = load_image(img_url) def test_inference_image_classification_head(self): inputs = self.image_processor(images=self.image, return_tensors="pt").to(torch_device) diff --git a/tests/models/pp_ocrv5_mobile_det/test_modeling_pp_ocrv5_mobile_det.py b/tests/models/pp_ocrv5_mobile_det/test_modeling_pp_ocrv5_mobile_det.py index a26243fb416d..2f044d78eab2 100644 --- a/tests/models/pp_ocrv5_mobile_det/test_modeling_pp_ocrv5_mobile_det.py +++ b/tests/models/pp_ocrv5_mobile_det/test_modeling_pp_ocrv5_mobile_det.py @@ -17,7 +17,6 @@ import inspect import unittest -import requests from parameterized import parameterized from transformers import ( @@ -27,6 +26,7 @@ is_torch_available, is_vision_available, ) +from transformers.image_utils import load_image from transformers.testing_utils import ( require_cv2, require_torch, @@ -38,14 +38,12 @@ from ...test_configuration_common import ConfigTester from ...test_modeling_common import ModelTesterMixin, floats_tensor +from ...test_processing_common import url_to_local_path if is_torch_available(): import torch -if is_vision_available(): - from PIL import Image - class PPOCRV5MobileDetModelTester: def __init__( @@ -242,8 +240,10 @@ def setUp(self): self.image_processor = ( PPOCRV5ServerDetImageProcessor.from_pretrained(model_path) if is_vision_available() else None ) - url = "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_001.png" - self.image = Image.open(requests.get(url, stream=True).raw) + img_url = url_to_local_path( + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_001.png" + ) + self.image = load_image(img_url) def test_inference_object_detection_head(self): inputs = self.image_processor(images=self.image, return_tensors="pt").to(torch_device) diff --git a/tests/models/pp_ocrv5_mobile_rec/test_modeling_pp_ocrv5_mobile_rec.py b/tests/models/pp_ocrv5_mobile_rec/test_modeling_pp_ocrv5_mobile_rec.py index dc530860d3a5..5d91b67a6412 100644 --- a/tests/models/pp_ocrv5_mobile_rec/test_modeling_pp_ocrv5_mobile_rec.py +++ b/tests/models/pp_ocrv5_mobile_rec/test_modeling_pp_ocrv5_mobile_rec.py @@ -17,7 +17,6 @@ import inspect import unittest -import requests from parameterized import parameterized from transformers import ( @@ -28,6 +27,7 @@ is_torch_available, is_vision_available, ) +from transformers.image_utils import load_image from transformers.testing_utils import ( require_torch, require_torch_accelerator, @@ -39,14 +39,12 @@ from ...test_configuration_common import ConfigTester from ...test_modeling_common import ModelTesterMixin, floats_tensor from ...test_pipeline_mixin import PipelineTesterMixin +from ...test_processing_common import url_to_local_path if is_torch_available(): import torch -if is_vision_available(): - from PIL import Image - class PPOCRV5MobileRecModelTester: def __init__( @@ -245,8 +243,10 @@ def setUp(self): self.image_processor = ( AutoImageProcessor.from_pretrained(model_path, return_tensors="pt") if is_vision_available() else None ) - url = "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_rec_001.png" - self.image = Image.open(requests.get(url, stream=True).raw).convert("RGB") + img_url = url_to_local_path( + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_rec_001.png" + ) + self.image = load_image(img_url) def test_inference_text_recognition_head(self): inputs = self.image_processor(images=self.image, return_tensors="pt").to(torch_device) diff --git a/tests/models/pp_ocrv5_server_det/test_modeling_pp_ocrv5_server_det.py b/tests/models/pp_ocrv5_server_det/test_modeling_pp_ocrv5_server_det.py index 4f41dbb7a31f..9ce449d1f602 100644 --- a/tests/models/pp_ocrv5_server_det/test_modeling_pp_ocrv5_server_det.py +++ b/tests/models/pp_ocrv5_server_det/test_modeling_pp_ocrv5_server_det.py @@ -17,7 +17,6 @@ import inspect import unittest -import requests from parameterized import parameterized from transformers import ( @@ -28,6 +27,7 @@ is_torch_available, is_vision_available, ) +from transformers.image_utils import load_image from transformers.testing_utils import ( require_cv2, require_torch, @@ -40,14 +40,12 @@ from ...test_configuration_common import ConfigTester from ...test_modeling_common import ModelTesterMixin, floats_tensor from ...test_pipeline_mixin import PipelineTesterMixin +from ...test_processing_common import url_to_local_path if is_torch_available(): import torch -if is_vision_available(): - from PIL import Image - class PPOCRV5ServerDetModelTester: def __init__( @@ -263,11 +261,10 @@ def setUp(self): self.image_processor = ( PPOCRV5ServerDetImageProcessor.from_pretrained(model_path) if is_vision_available() else None ) - self.image = Image.open( - requests.get( - "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_001.png", stream=True - ).raw - ).convert("RGB") + img_url = url_to_local_path( + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_001.png" + ) + self.image = load_image(img_url) def test_inference_object_detection_head(self): inputs = self.image_processor(images=self.image, return_tensors="pt").to(torch_device) diff --git a/tests/models/pp_ocrv5_server_rec/test_modeling_pp_ocrv5_server_rec.py b/tests/models/pp_ocrv5_server_rec/test_modeling_pp_ocrv5_server_rec.py index e23e28b65c8b..c6efa3877228 100644 --- a/tests/models/pp_ocrv5_server_rec/test_modeling_pp_ocrv5_server_rec.py +++ b/tests/models/pp_ocrv5_server_rec/test_modeling_pp_ocrv5_server_rec.py @@ -17,7 +17,6 @@ import inspect import unittest -import requests from parameterized import parameterized from transformers import ( @@ -28,6 +27,7 @@ is_torch_available, is_vision_available, ) +from transformers.image_utils import load_image from transformers.testing_utils import ( require_torch, require_torch_accelerator, @@ -39,14 +39,12 @@ from ...test_configuration_common import ConfigTester from ...test_modeling_common import ModelTesterMixin, floats_tensor from ...test_pipeline_mixin import PipelineTesterMixin +from ...test_processing_common import url_to_local_path if is_torch_available(): import torch -if is_vision_available(): - from PIL import Image - class PPOCRV5ServerRecModelTester: def __init__( @@ -251,8 +249,10 @@ def setUp(self): self.image_processor = ( AutoImageProcessor.from_pretrained(model_path, return_tensors="pt") if is_vision_available() else None ) - url = "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_rec_001.png" - self.image = Image.open(requests.get(url, stream=True).raw).convert("RGB") + img_url = url_to_local_path( + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_rec_001.png" + ) + self.image = load_image(img_url) def test_inference_text_recognition_head(self): inputs = self.image_processor(images=self.image, return_tensors="pt").to(torch_device) diff --git a/tests/models/slanext/test_modeling_slanext.py b/tests/models/slanext/test_modeling_slanext.py index 759073a5ec6b..1de896fe27e3 100644 --- a/tests/models/slanext/test_modeling_slanext.py +++ b/tests/models/slanext/test_modeling_slanext.py @@ -19,7 +19,6 @@ import tempfile import unittest -import requests from parameterized import parameterized from transformers import ( @@ -28,8 +27,8 @@ SLANeXtConfig, SLANeXtForTableRecognition, is_torch_available, - is_vision_available, ) +from transformers.image_utils import load_image from transformers.testing_utils import ( require_torch, require_torch_accelerator, @@ -41,14 +40,12 @@ from ...test_configuration_common import ConfigTester from ...test_modeling_common import ModelTesterMixin, floats_tensor from ...test_pipeline_mixin import PipelineTesterMixin +from ...test_processing_common import url_to_local_path if is_torch_available(): import torch -if is_vision_available(): - from PIL import Image - class SLANeXtModelTester: def __init__( @@ -295,8 +292,10 @@ def setUp(self): model_path = "PaddlePaddle/SLANeXt_wired_safetensors" self.model = AutoModelForTableRecognition.from_pretrained(model_path, dtype=torch.float32).to(torch_device) self.image_processor = AutoImageProcessor.from_pretrained(model_path) - url = "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/table_recognition.jpg" - self.image = Image.open(requests.get(url, stream=True).raw) + img_url = url_to_local_path( + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/table_recognition.jpg" + ) + self.image = load_image(img_url) def test_inference_table_recognition_head(self): inputs = self.image_processor(images=self.image, return_tensors="pt").to(torch_device) diff --git a/tests/models/uvdoc/test_modeling_uvdoc.py b/tests/models/uvdoc/test_modeling_uvdoc.py index 4b4c6ae960ca..358593a0d3c1 100644 --- a/tests/models/uvdoc/test_modeling_uvdoc.py +++ b/tests/models/uvdoc/test_modeling_uvdoc.py @@ -17,7 +17,6 @@ import inspect import unittest -import requests from parameterized import parameterized from transformers import ( @@ -28,8 +27,8 @@ UVDocImageProcessor, UVDocModel, is_torch_available, - is_vision_available, ) +from transformers.image_utils import load_image from transformers.testing_utils import ( require_torch, require_torch_accelerator, @@ -41,14 +40,12 @@ from ...test_backbone_common import BackboneTesterMixin from ...test_configuration_common import ConfigTester from ...test_modeling_common import ModelTesterMixin, floats_tensor +from ...test_processing_common import url_to_local_path if is_torch_available(): import torch -if is_vision_available(): - from PIL import Image - class UVDocModelTester: def __init__( @@ -310,11 +307,8 @@ def setUp(self): model_path = "PaddlePaddle/UVDoc_safetensors" self.model = AutoModel.from_pretrained(model_path).to(torch_device) self.image_processor = UVDocImageProcessor() - self.image = Image.open( - requests.get( - "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/doc_test.jpg", stream=True - ).raw - ) + img_url = url_to_local_path("https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/doc_test.jpg") + self.image = load_image(img_url) def test_inference_document_rectification(self): inputs = self.image_processor(images=self.image, return_tensors="pt").to(torch_device) diff --git a/utils/fetch_hub_objects_for_ci.py b/utils/fetch_hub_objects_for_ci.py index 3b3609d21ce3..0869847a8518 100644 --- a/utils/fetch_hub_objects_for_ci.py +++ b/utils/fetch_hub_objects_for_ci.py @@ -39,6 +39,13 @@ URLS_FOR_TESTING_DATA = [ # TODO: copy those to our hf-internal-testing dataset and fix all tests using them + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/ocr_demo2.jpg", + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/doc_test.jpg", + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/chart_parsing_02.png", + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/layout_demo.jpg", + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/img_rot180_demo.jpg", + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_rec_001.png", + "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_001.png", "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/table_recognition.jpg", "http://images.cocodataset.org/val2017/000000000139.jpg", "http://images.cocodataset.org/val2017/000000000285.jpg",