Spaces:
Sleeping
Sleeping
Update src/components/faceswap.py
Browse files
src/components/faceswap.py
CHANGED
@@ -10,18 +10,16 @@ from src.components.face_enhancer import load_face_enhancer_model
|
|
10 |
|
11 |
warnings.filterwarnings("ignore", category=FutureWarning)
|
12 |
|
13 |
-
|
14 |
class FaceSwapper:
|
15 |
def __init__(self, app_name='buffalo_l', det_size=(640, 640), device="cpu"):
|
16 |
-
model_dir = "/
|
17 |
os.makedirs(model_dir, exist_ok=True)
|
18 |
self.device = device
|
19 |
self.app = FaceAnalysis(name=app_name, root=model_dir)
|
20 |
-
self.app.prepare(ctx_id=0 if device ==
|
21 |
self.swapper = None
|
22 |
self.enhancer_model = None
|
23 |
self.model_runner = None
|
24 |
-
|
25 |
logger.info('FaceSwapper initialized')
|
26 |
|
27 |
def load_enhancer_model(self, enhancer, device):
|
@@ -33,7 +31,7 @@ class FaceSwapper:
|
|
33 |
|
34 |
def load_swapper_model(self, model_url, model_path):
|
35 |
# Set up the gdown cache directory
|
36 |
-
gdown_cache_dir = "/
|
37 |
os.makedirs(gdown_cache_dir, exist_ok=True)
|
38 |
os.environ['XDG_CACHE_HOME'] = gdown_cache_dir
|
39 |
|
@@ -43,7 +41,8 @@ class FaceSwapper:
|
|
43 |
# Ensure cookies.txt exists
|
44 |
cookie_path = os.path.join(gdown_cache_dir, "cookies.txt")
|
45 |
if not os.path.exists(cookie_path):
|
46 |
-
with open(cookie_path, 'w') as f:
|
|
|
47 |
pass
|
48 |
logger.info(f"Ensured cookies.txt exists at: {cookie_path}")
|
49 |
|
@@ -56,10 +55,8 @@ class FaceSwapper:
|
|
56 |
logger.info('Swapper model loaded')
|
57 |
|
58 |
def face_swap(self, img1, img2, enhance=False):
|
59 |
-
|
60 |
face1 = self.app.get(img1)[0]
|
61 |
face2 = self.app.get(img2)[0]
|
62 |
-
|
63 |
img1_ = img1.copy()
|
64 |
img1_ = self.swapper.get(img1_, face1, face2, paste_back=True)
|
65 |
if enhance:
|
|
|
10 |
|
11 |
warnings.filterwarnings("ignore", category=FutureWarning)
|
12 |
|
|
|
13 |
class FaceSwapper:
|
14 |
def __init__(self, app_name='buffalo_l', det_size=(640, 640), device="cpu"):
|
15 |
+
model_dir = "/tmp/.insightface/models"
|
16 |
os.makedirs(model_dir, exist_ok=True)
|
17 |
self.device = device
|
18 |
self.app = FaceAnalysis(name=app_name, root=model_dir)
|
19 |
+
self.app.prepare(ctx_id=0 if device == "cuda" else -1, det_size=det_size)
|
20 |
self.swapper = None
|
21 |
self.enhancer_model = None
|
22 |
self.model_runner = None
|
|
|
23 |
logger.info('FaceSwapper initialized')
|
24 |
|
25 |
def load_enhancer_model(self, enhancer, device):
|
|
|
31 |
|
32 |
def load_swapper_model(self, model_url, model_path):
|
33 |
# Set up the gdown cache directory
|
34 |
+
gdown_cache_dir = "/tmp/.cache/gdown"
|
35 |
os.makedirs(gdown_cache_dir, exist_ok=True)
|
36 |
os.environ['XDG_CACHE_HOME'] = gdown_cache_dir
|
37 |
|
|
|
41 |
# Ensure cookies.txt exists
|
42 |
cookie_path = os.path.join(gdown_cache_dir, "cookies.txt")
|
43 |
if not os.path.exists(cookie_path):
|
44 |
+
with open(cookie_path, 'w') as f:
|
45 |
+
# Create an empty cookies.txt file
|
46 |
pass
|
47 |
logger.info(f"Ensured cookies.txt exists at: {cookie_path}")
|
48 |
|
|
|
55 |
logger.info('Swapper model loaded')
|
56 |
|
57 |
def face_swap(self, img1, img2, enhance=False):
|
|
|
58 |
face1 = self.app.get(img1)[0]
|
59 |
face2 = self.app.get(img2)[0]
|
|
|
60 |
img1_ = img1.copy()
|
61 |
img1_ = self.swapper.get(img1_, face1, face2, paste_back=True)
|
62 |
if enhance:
|