|
- import cv2
- import numpy as np
-
- from facex import FaceX
- from facex.model_zoo import get_model
- from facex.face_align import norm_crop
-
-
- app = FaceX(
- tasks=[
- "detection",
- ],
- providers=[
- 'CUDAExecutionProvider',
- 'CPUExecutionProvider',
- ],
- )
-
- app.prepare(ctx_id=0, det_size=(640, 640))
- # face_restore = get_model("restoration")
- # image = cv2.imread("/root/liangaiqi/054101015F9F928104CD82AAE49D6993.jpg")
- # face = app.get(image)[0]
- # image = norm_crop(image, landmark=face.kps, image_size=512)
- # image = face_restore(image)
- # cv2.imwrite("restoreformer.jpg", image)
- # exit()
- non_makeup = cv2.imread("/root/flight-attendants-photo-normal-2.jpg")
- face = app.get(non_makeup)[0]
- non_makeup_face = norm_crop(non_makeup, landmark=face.kps, image_size=512)
- # cv2.imwrite("non_makeup_face.jpg", non_makeup_face)
-
- makeup = cv2.imread("/root/4b8eec18c43602daacd95a9a1292d069.jpg")
- face = app.get(makeup)[0]
- makeup_face = norm_crop(makeup, landmark=face.kps, image_size=512)
- # cv2.imwrite("makeup_face.jpg", makeup_face)
-
- face_makeup = get_model("makeup_transfer")
- makeup_result = face_makeup(non_makeup_face, makeup_face)
-
- face_restore = get_model("restoration")
- makeup_result = face_restore(makeup_result)
-
- cv2.imwrite("makeup.jpg", np.concatenate([non_makeup_face, makeup_face, makeup_result], axis=1))
|