Spaces:
Running
on
Zero
Running
on
Zero
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) | |