Jacobmadwed commited on
Commit
8dd27f8
·
verified ·
1 Parent(s): 4382839

Update handler.py

Browse files
Files changed (1) hide show
  1. handler.py +10 -7
handler.py CHANGED
@@ -13,6 +13,8 @@ from insightface.app import FaceAnalysis
13
  from style_template import styles
14
  from pipeline_stable_diffusion_xl_instantid_full import StableDiffusionXLInstantIDPipeline, draw_kps
15
  from controlnet_aux import OpenposeDetector
 
 
16
  import os
17
  from huggingface_hub import hf_hub_download
18
  import base64
@@ -56,13 +58,14 @@ class EndpointHandler:
56
  controlnet_model = hf_hub_download(repo_id="InstantX/InstantID", filename="ControlNetModel/diffusion_pytorch_model.safetensors", local_dir=os.path.join(model_dir, "checkpoints"))
57
  face_adapter = hf_hub_download(repo_id="InstantX/InstantID", filename="ip-adapter.bin", local_dir=os.path.join(model_dir, "checkpoints"))
58
 
59
- # Load face detection model
60
- self.face_net = cv2.dnn.readNet(os.path.join(model_dir, "models", "face_detection_yunet_2023mar_int8.onnx"))
61
-
62
- # Initialize InsightFace for face analysis with a model available for commercial use
63
- self.face_analyzer = FaceAnalysis(name='model', root=model_dir, providers=['CUDAExecutionProvider', 'CPUExecutionProvider'])
64
- self.face_analyzer.prepare(ctx_id=0, det_size=(640, 640))
65
 
 
 
66
  openpose = OpenposeDetector.from_pretrained("lllyasviel/ControlNet")
67
 
68
  # Path to InstantID models
@@ -259,7 +262,7 @@ class EndpointHandler:
259
  face_kps = draw_kps(face_image, np.array([[x, y], [x1, y1]])) # Placeholder keypoints
260
 
261
  # Analyze the face using InsightFace
262
- face_info = self.face_analyzer.get(face_image_cv2)
263
 
264
  if not face_info:
265
  return {"error": "Face analysis failed."}
 
13
  from style_template import styles
14
  from pipeline_stable_diffusion_xl_instantid_full import StableDiffusionXLInstantIDPipeline, draw_kps
15
  from controlnet_aux import OpenposeDetector
16
+ import torch.nn.functional as F
17
+ from torchvision.transforms import Compose
18
  import os
19
  from huggingface_hub import hf_hub_download
20
  import base64
 
58
  controlnet_model = hf_hub_download(repo_id="InstantX/InstantID", filename="ControlNetModel/diffusion_pytorch_model.safetensors", local_dir=os.path.join(model_dir, "checkpoints"))
59
  face_adapter = hf_hub_download(repo_id="InstantX/InstantID", filename="ip-adapter.bin", local_dir=os.path.join(model_dir, "checkpoints"))
60
 
61
+ dir_path = os.path.join(model_dir, "models", "face_detection_yunet_2023mar_int8.onnx")
62
+ if not os.path.exists(dir_path):
63
+ raise RuntimeError(f"Model path {dir_path} does not exist.")
64
+ else:
65
+ self.face_net = cv2.dnn.readNet(dir_path)
 
66
 
67
+ self.app = FaceAnalysis(name='model', root=model_dir, providers=['CUDAExecutionProvider', 'CPUExecutionProvider'])
68
+ self.app.prepare(ctx_id=0, det_size=(640, 640))
69
  openpose = OpenposeDetector.from_pretrained("lllyasviel/ControlNet")
70
 
71
  # Path to InstantID models
 
262
  face_kps = draw_kps(face_image, np.array([[x, y], [x1, y1]])) # Placeholder keypoints
263
 
264
  # Analyze the face using InsightFace
265
+ face_info = self.app.get(face_image_cv2)
266
 
267
  if not face_info:
268
  return {"error": "Face analysis failed."}