Upload 37 files
Browse files- FaceSwapping/roop/__pycache__/__init__.cpython-310.pyc +0 -0
- FaceSwapping/roop/__pycache__/core.cpython-310.pyc +0 -0
- FaceSwapping/roop/__pycache__/face_analyser.cpython-310.pyc +0 -0
- FaceSwapping/roop/__pycache__/face_reference.cpython-310.pyc +0 -0
- FaceSwapping/roop/__pycache__/globals.cpython-310.pyc +0 -0
- FaceSwapping/roop/__pycache__/metadata.cpython-310.pyc +0 -0
- FaceSwapping/roop/__pycache__/predictor.cpython-310.pyc +0 -0
- FaceSwapping/roop/__pycache__/typing.cpython-310.pyc +0 -0
- FaceSwapping/roop/__pycache__/utilities.cpython-310.pyc +0 -0
- FaceSwapping/roop/globals.py +1 -1
- FaceSwapping/roop/processors/__pycache__/__init__.cpython-310.pyc +0 -0
- FaceSwapping/roop/processors/frame/__pycache__/__init__.cpython-310.pyc +0 -0
- FaceSwapping/roop/processors/frame/__pycache__/core.cpython-310.pyc +0 -0
- FaceSwapping/roop/processors/frame/__pycache__/face_swapper.cpython-310.pyc +0 -0
- FaceSwapping/roop/processors/frame/face_swapper.py +13 -10
- FaceSwapping/run.py +4 -3
FaceSwapping/roop/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (150 Bytes). View file
|
|
|
FaceSwapping/roop/__pycache__/core.cpython-310.pyc
ADDED
|
Binary file (9.91 kB). View file
|
|
|
FaceSwapping/roop/__pycache__/face_analyser.cpython-310.pyc
ADDED
|
Binary file (1.72 kB). View file
|
|
|
FaceSwapping/roop/__pycache__/face_reference.cpython-310.pyc
ADDED
|
Binary file (656 Bytes). View file
|
|
|
FaceSwapping/roop/__pycache__/globals.cpython-310.pyc
ADDED
|
Binary file (1.09 kB). View file
|
|
|
FaceSwapping/roop/__pycache__/metadata.cpython-310.pyc
ADDED
|
Binary file (185 Bytes). View file
|
|
|
FaceSwapping/roop/__pycache__/predictor.cpython-310.pyc
ADDED
|
Binary file (1.67 kB). View file
|
|
|
FaceSwapping/roop/__pycache__/typing.cpython-310.pyc
ADDED
|
Binary file (288 Bytes). View file
|
|
|
FaceSwapping/roop/__pycache__/utilities.cpython-310.pyc
ADDED
|
Binary file (6 kB). View file
|
|
|
FaceSwapping/roop/globals.py
CHANGED
|
@@ -18,6 +18,6 @@ temp_frame_quality: Optional[int] = None
|
|
| 18 |
output_video_encoder: Optional[str] = None
|
| 19 |
output_video_quality: Optional[int] = None
|
| 20 |
max_memory: Optional[int] = None
|
| 21 |
-
execution_providers
|
| 22 |
execution_threads: Optional[int] = None
|
| 23 |
log_level: str = 'error'
|
|
|
|
| 18 |
output_video_encoder: Optional[str] = None
|
| 19 |
output_video_quality: Optional[int] = None
|
| 20 |
max_memory: Optional[int] = None
|
| 21 |
+
execution_providers = ["CUDAExecutionProvider", "CPUExecutionProvider"]
|
| 22 |
execution_threads: Optional[int] = None
|
| 23 |
log_level: str = 'error'
|
FaceSwapping/roop/processors/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (161 Bytes). View file
|
|
|
FaceSwapping/roop/processors/frame/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (167 Bytes). View file
|
|
|
FaceSwapping/roop/processors/frame/__pycache__/core.cpython-310.pyc
ADDED
|
Binary file (3.44 kB). View file
|
|
|
FaceSwapping/roop/processors/frame/__pycache__/face_swapper.cpython-310.pyc
ADDED
|
Binary file (4.23 kB). View file
|
|
|
FaceSwapping/roop/processors/frame/face_swapper.py
CHANGED
|
@@ -2,10 +2,10 @@ from typing import Any, List, Callable
|
|
| 2 |
import cv2
|
| 3 |
import insightface
|
| 4 |
import threading
|
| 5 |
-
import
|
|
|
|
| 6 |
import roop.globals
|
| 7 |
import roop.processors.frame.core
|
| 8 |
-
import os
|
| 9 |
from roop.core import update_status
|
| 10 |
from roop.face_analyser import get_one_face, get_many_faces, find_similar_face
|
| 11 |
from roop.face_reference import get_face_reference, set_face_reference, clear_face_reference
|
|
@@ -22,22 +22,25 @@ def get_face_swapper() -> Any:
|
|
| 22 |
|
| 23 |
with THREAD_LOCK:
|
| 24 |
if FACE_SWAPPER is None:
|
| 25 |
-
#
|
| 26 |
model_path = (
|
| 27 |
roop.globals.model_path
|
| 28 |
-
if
|
| 29 |
else resolve_relative_path("../models/inswapper_128.onnx")
|
| 30 |
)
|
| 31 |
print(f"[FACE_SWAPPER] Đang tải mô hình face swapper từ: {model_path}")
|
| 32 |
try:
|
| 33 |
-
# Chỉ định rõ ràng nhà cung cấp thực thi
|
| 34 |
providers = (
|
| 35 |
roop.globals.execution_providers
|
| 36 |
-
if
|
| 37 |
else ["CPUExecutionProvider"]
|
| 38 |
)
|
| 39 |
-
FACE_SWAPPER = insightface.model_zoo.get_model(
|
| 40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
except Exception as e:
|
| 42 |
print(f"[FACE_SWAPPER] Lỗi khi tải mô hình {model_path}: {str(e)}")
|
| 43 |
raise
|
|
@@ -46,14 +49,14 @@ def get_face_swapper() -> Any:
|
|
| 46 |
|
| 47 |
def clear_face_swapper() -> None:
|
| 48 |
global FACE_SWAPPER
|
| 49 |
-
|
| 50 |
FACE_SWAPPER = None
|
| 51 |
|
| 52 |
|
| 53 |
def pre_check() -> bool:
|
| 54 |
download_directory_path = resolve_relative_path("../models/inswapper")
|
| 55 |
conditional_download(
|
| 56 |
-
download_directory_path,
|
|
|
|
| 57 |
)
|
| 58 |
return True
|
| 59 |
|
|
|
|
| 2 |
import cv2
|
| 3 |
import insightface
|
| 4 |
import threading
|
| 5 |
+
import os
|
| 6 |
+
|
| 7 |
import roop.globals
|
| 8 |
import roop.processors.frame.core
|
|
|
|
| 9 |
from roop.core import update_status
|
| 10 |
from roop.face_analyser import get_one_face, get_many_faces, find_similar_face
|
| 11 |
from roop.face_reference import get_face_reference, set_face_reference, clear_face_reference
|
|
|
|
| 22 |
|
| 23 |
with THREAD_LOCK:
|
| 24 |
if FACE_SWAPPER is None:
|
| 25 |
+
# Ưu tiên model_path trong globals, fallback sang models mặc định
|
| 26 |
model_path = (
|
| 27 |
roop.globals.model_path
|
| 28 |
+
if roop.globals.model_path and os.path.exists(roop.globals.model_path)
|
| 29 |
else resolve_relative_path("../models/inswapper_128.onnx")
|
| 30 |
)
|
| 31 |
print(f"[FACE_SWAPPER] Đang tải mô hình face swapper từ: {model_path}")
|
| 32 |
try:
|
|
|
|
| 33 |
providers = (
|
| 34 |
roop.globals.execution_providers
|
| 35 |
+
if roop.globals.execution_providers
|
| 36 |
else ["CPUExecutionProvider"]
|
| 37 |
)
|
| 38 |
+
FACE_SWAPPER = insightface.model_zoo.get_model(
|
| 39 |
+
model_path,
|
| 40 |
+
providers=providers
|
| 41 |
+
)
|
| 42 |
+
print(f"[FACE_SWAPPER] Tải mô hình thành công: {model_path} "
|
| 43 |
+
f"với nhà cung cấp: {FACE_SWAPPER.session.get_providers()}")
|
| 44 |
except Exception as e:
|
| 45 |
print(f"[FACE_SWAPPER] Lỗi khi tải mô hình {model_path}: {str(e)}")
|
| 46 |
raise
|
|
|
|
| 49 |
|
| 50 |
def clear_face_swapper() -> None:
|
| 51 |
global FACE_SWAPPER
|
|
|
|
| 52 |
FACE_SWAPPER = None
|
| 53 |
|
| 54 |
|
| 55 |
def pre_check() -> bool:
|
| 56 |
download_directory_path = resolve_relative_path("../models/inswapper")
|
| 57 |
conditional_download(
|
| 58 |
+
download_directory_path,
|
| 59 |
+
["https://huggingface.co/deepinsight/inswapper/resolve/main/inswapper_128.onnx"]
|
| 60 |
)
|
| 61 |
return True
|
| 62 |
|
FaceSwapping/run.py
CHANGED
|
@@ -1,8 +1,9 @@
|
|
| 1 |
-
|
| 2 |
from FaceSwapping.roop import core
|
| 3 |
|
| 4 |
-
|
| 5 |
-
|
|
|
|
| 6 |
|
| 7 |
if __name__ == "__main__":
|
| 8 |
core.run()
|
|
|
|
| 1 |
+
import os
|
| 2 |
from FaceSwapping.roop import core
|
| 3 |
|
| 4 |
+
# ép dùng GPU 0
|
| 5 |
+
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
|
| 6 |
+
os.environ["INSIGHTFACE_EXECUTION_PROVIDERS"] = "CUDAExecutionProvider,CPUExecutionProvider"
|
| 7 |
|
| 8 |
if __name__ == "__main__":
|
| 9 |
core.run()
|