From bfddf681dee2d8f2c6ec2b2641aceb0900e0f127 Mon Sep 17 00:00:00 2001 From: Bingsu Date: Wed, 20 Sep 2023 00:26:32 +0900 Subject: [PATCH] fix: lazy import --- adetailer/mediapipe.py | 7 ++++++- adetailer/ultralytics.py | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/adetailer/mediapipe.py b/adetailer/mediapipe.py index e52b620..17fb2cc 100644 --- a/adetailer/mediapipe.py +++ b/adetailer/mediapipe.py @@ -2,7 +2,6 @@ from __future__ import annotations from functools import partial -import mediapipe as mp import numpy as np from PIL import Image, ImageDraw @@ -29,6 +28,8 @@ def mediapipe_predict( def mediapipe_face_detection( model_type: int, image: Image.Image, confidence: float = 0.3 ) -> PredictOutput: + import mediapipe as mp + img_width, img_height = image.size mp_face_detection = mp.solutions.face_detection @@ -84,6 +85,8 @@ def get_convexhull(points: np.ndarray) -> list[tuple[int, int]]: def mediapipe_face_mesh(image: Image.Image, confidence: float = 0.3) -> PredictOutput: + import mediapipe as mp + mp_face_mesh = mp.solutions.face_mesh draw_util = mp.solutions.drawing_utils drawing_styles = mp.solutions.drawing_styles @@ -127,6 +130,8 @@ def mediapipe_face_mesh(image: Image.Image, confidence: float = 0.3) -> PredictO def mediapipe_face_mesh_eyes_only( image: Image.Image, confidence: float = 0.3 ) -> PredictOutput: + import mediapipe as mp + mp_face_mesh = mp.solutions.face_mesh left_idx = np.array(list(mp_face_mesh.FACEMESH_LEFT_EYE)).flatten() diff --git a/adetailer/ultralytics.py b/adetailer/ultralytics.py index addd0f5..36062b7 100644 --- a/adetailer/ultralytics.py +++ b/adetailer/ultralytics.py @@ -5,7 +5,6 @@ from pathlib import Path import cv2 from PIL import Image from torchvision.transforms.functional import to_pil_image -from ultralytics import YOLO from adetailer import PredictOutput from adetailer.common import create_mask_from_bbox @@ -17,6 +16,8 @@ def ultralytics_predict( confidence: float = 0.3, device: str = "", ) -> PredictOutput: + from ultralytics import YOLO + model = YOLO(model_path) pred = model(image, conf=confidence, device=device)