| from inference.core.env import API_KEY, API_KEY_ENV_NAMES | |
| from inference.core.exceptions import MissingApiKeyError | |
| from inference.core.models.stubs import ( | |
| ClassificationModelStub, | |
| InstanceSegmentationModelStub, | |
| KeypointsDetectionModelStub, | |
| ObjectDetectionModelStub, | |
| ) | |
| from inference.core.registries.roboflow import get_model_type | |
| from inference.models import ( | |
| YOLACT, | |
| VitClassification, | |
| YOLONASObjectDetection, | |
| YOLOv5InstanceSegmentation, | |
| YOLOv5ObjectDetection, | |
| YOLOv7InstanceSegmentation, | |
| YOLOv8Classification, | |
| YOLOv8InstanceSegmentation, | |
| YOLOv8ObjectDetection, | |
| ) | |
| from inference.models.yolov8.yolov8_keypoints_detection import YOLOv8KeypointsDetection | |
| ROBOFLOW_MODEL_TYPES = { | |
| ("classification", "stub"): ClassificationModelStub, | |
| ("classification", "vit"): VitClassification, | |
| ("classification", "yolov8n"): YOLOv8Classification, | |
| ("classification", "yolov8s"): YOLOv8Classification, | |
| ("classification", "yolov8m"): YOLOv8Classification, | |
| ("classification", "yolov8l"): YOLOv8Classification, | |
| ("classification", "yolov8x"): YOLOv8Classification, | |
| ("object-detection", "stub"): ObjectDetectionModelStub, | |
| ("object-detection", "yolov5"): YOLOv5ObjectDetection, | |
| ("object-detection", "yolov5v2s"): YOLOv5ObjectDetection, | |
| ("object-detection", "yolov5v6n"): YOLOv5ObjectDetection, | |
| ("object-detection", "yolov5v6s"): YOLOv5ObjectDetection, | |
| ("object-detection", "yolov5v6m"): YOLOv5ObjectDetection, | |
| ("object-detection", "yolov5v6l"): YOLOv5ObjectDetection, | |
| ("object-detection", "yolov5v6x"): YOLOv5ObjectDetection, | |
| ("object-detection", "yolov8"): YOLOv8ObjectDetection, | |
| ("object-detection", "yolov8s"): YOLOv8ObjectDetection, | |
| ("object-detection", "yolov8n"): YOLOv8ObjectDetection, | |
| ("object-detection", "yolov8s"): YOLOv8ObjectDetection, | |
| ("object-detection", "yolov8m"): YOLOv8ObjectDetection, | |
| ("object-detection", "yolov8l"): YOLOv8ObjectDetection, | |
| ("object-detection", "yolov8x"): YOLOv8ObjectDetection, | |
| ("object-detection", "yolo_nas_s"): YOLONASObjectDetection, | |
| ("object-detection", "yolo_nas_m"): YOLONASObjectDetection, | |
| ("object-detection", "yolo_nas_l"): YOLONASObjectDetection, | |
| ("instance-segmentation", "stub"): InstanceSegmentationModelStub, | |
| ( | |
| "instance-segmentation", | |
| "yolov5-seg", | |
| ): YOLOv5InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov5n-seg", | |
| ): YOLOv5InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov5s-seg", | |
| ): YOLOv5InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov5m-seg", | |
| ): YOLOv5InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov5l-seg", | |
| ): YOLOv5InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov5x-seg", | |
| ): YOLOv5InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolact", | |
| ): YOLACT, | |
| ( | |
| "instance-segmentation", | |
| "yolov7-seg", | |
| ): YOLOv7InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov8n", | |
| ): YOLOv8InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov8s", | |
| ): YOLOv8InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov8m", | |
| ): YOLOv8InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov8l", | |
| ): YOLOv8InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov8x", | |
| ): YOLOv8InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov8n-seg", | |
| ): YOLOv8InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov8s-seg", | |
| ): YOLOv8InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov8m-seg", | |
| ): YOLOv8InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov8l-seg", | |
| ): YOLOv8InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov8x-seg", | |
| ): YOLOv8InstanceSegmentation, | |
| ( | |
| "instance-segmentation", | |
| "yolov8-seg", | |
| ): YOLOv8InstanceSegmentation, | |
| ("keypoint-detection", "stub"): KeypointsDetectionModelStub, | |
| ("keypoint-detection", "yolov8n"): YOLOv8KeypointsDetection, | |
| ("keypoint-detection", "yolov8s"): YOLOv8KeypointsDetection, | |
| ("keypoint-detection", "yolov8m"): YOLOv8KeypointsDetection, | |
| ("keypoint-detection", "yolov8l"): YOLOv8KeypointsDetection, | |
| ("keypoint-detection", "yolov8x"): YOLOv8KeypointsDetection, | |
| ("keypoint-detection", "yolov8n-pose"): YOLOv8KeypointsDetection, | |
| ("keypoint-detection", "yolov8s-pose"): YOLOv8KeypointsDetection, | |
| ("keypoint-detection", "yolov8m-pose"): YOLOv8KeypointsDetection, | |
| ("keypoint-detection", "yolov8l-pose"): YOLOv8KeypointsDetection, | |
| ("keypoint-detection", "yolov8x-pose"): YOLOv8KeypointsDetection, | |
| } | |
| try: | |
| from inference.models import SegmentAnything | |
| ROBOFLOW_MODEL_TYPES[("embed", "sam")] = SegmentAnything | |
| except: | |
| pass | |
| try: | |
| from inference.models import Clip | |
| ROBOFLOW_MODEL_TYPES[("embed", "clip")] = Clip | |
| except: | |
| pass | |
| try: | |
| from inference.models import Gaze | |
| ROBOFLOW_MODEL_TYPES[("gaze", "l2cs")] = Gaze | |
| except: | |
| pass | |
| try: | |
| from inference.models import DocTR | |
| ROBOFLOW_MODEL_TYPES[("ocr", "doctr")] = DocTR | |
| except: | |
| pass | |
| try: | |
| from inference.models import GroundingDINO | |
| ROBOFLOW_MODEL_TYPES[("object-detection", "grounding-dino")] = GroundingDINO | |
| except: | |
| pass | |
| try: | |
| from inference.models import CogVLM | |
| ROBOFLOW_MODEL_TYPES[("llm", "cogvlm")] = CogVLM | |
| except: | |
| pass | |
| try: | |
| from inference.models import YOLOWorld | |
| ROBOFLOW_MODEL_TYPES[("object-detection", "yolo-world")] = YOLOWorld | |
| except: | |
| pass | |
| def get_roboflow_model(model_id, api_key=API_KEY, **kwargs): | |
| task, model = get_model_type(model_id, api_key=api_key) | |
| return ROBOFLOW_MODEL_TYPES[(task, model)](model_id, api_key=api_key, **kwargs) | |