Fix on vulnerability report
https://github.com/hacksider/Deep-Live-Cam/issues/1695
This commit is contained in:
@@ -26,3 +26,4 @@ faceswap/
|
|||||||
.vscode/
|
.vscode/
|
||||||
switch_states.json
|
switch_states.json
|
||||||
/models
|
/models
|
||||||
|
install.bat
|
||||||
|
|||||||
@@ -17,8 +17,17 @@ FRAME_PROCESSORS_INTERFACE = [
|
|||||||
'process_video'
|
'process_video'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
ALLOWED_PROCESSORS = {
|
||||||
|
'face_swapper',
|
||||||
|
'face_enhancer',
|
||||||
|
'face_enhancer_gpen256',
|
||||||
|
'face_enhancer_gpen512'
|
||||||
|
}
|
||||||
|
|
||||||
def load_frame_processor_module(frame_processor: str) -> Any:
|
def load_frame_processor_module(frame_processor: str) -> Any:
|
||||||
|
if frame_processor not in ALLOWED_PROCESSORS:
|
||||||
|
print(f"Frame processor {frame_processor} is not allowed")
|
||||||
|
sys.exit()
|
||||||
try:
|
try:
|
||||||
frame_processor_module = importlib.import_module(f'modules.processors.frame.{frame_processor}')
|
frame_processor_module = importlib.import_module(f'modules.processors.frame.{frame_processor}')
|
||||||
for method_name in FRAME_PROCESSORS_INTERFACE:
|
for method_name in FRAME_PROCESSORS_INTERFACE:
|
||||||
|
|||||||
+16
-7
@@ -15,10 +15,6 @@ import modules.globals
|
|||||||
TEMP_FILE = "temp.mp4"
|
TEMP_FILE = "temp.mp4"
|
||||||
TEMP_DIRECTORY = "temp"
|
TEMP_DIRECTORY = "temp"
|
||||||
|
|
||||||
# monkey patch ssl for mac
|
|
||||||
if platform.system().lower() == "darwin":
|
|
||||||
ssl._create_default_https_context = ssl._create_unverified_context
|
|
||||||
|
|
||||||
|
|
||||||
def run_ffmpeg(args: List[str]) -> bool:
|
def run_ffmpeg(args: List[str]) -> bool:
|
||||||
"""Run ffmpeg with hardware acceleration and optimized settings."""
|
"""Run ffmpeg with hardware acceleration and optimized settings."""
|
||||||
@@ -286,8 +282,15 @@ def conditional_download(download_directory_path: str, urls: List[str]) -> None:
|
|||||||
download_directory_path, os.path.basename(url)
|
download_directory_path, os.path.basename(url)
|
||||||
)
|
)
|
||||||
if not os.path.exists(download_file_path):
|
if not os.path.exists(download_file_path):
|
||||||
request = urllib.request.urlopen(url) # type: ignore[attr-defined]
|
request = urllib.request.Request(url)
|
||||||
total = int(request.headers.get("Content-Length", 0))
|
|
||||||
|
# Create a specific SSL context for macOS to avoid globally disabling verification
|
||||||
|
ctx = None
|
||||||
|
if platform.system().lower() == "darwin":
|
||||||
|
ctx = ssl._create_unverified_context()
|
||||||
|
|
||||||
|
response = urllib.request.urlopen(request, context=ctx)
|
||||||
|
total = int(response.headers.get("Content-Length", 0))
|
||||||
with tqdm(
|
with tqdm(
|
||||||
total=total,
|
total=total,
|
||||||
desc="Downloading",
|
desc="Downloading",
|
||||||
@@ -295,7 +298,13 @@ def conditional_download(download_directory_path: str, urls: List[str]) -> None:
|
|||||||
unit_scale=True,
|
unit_scale=True,
|
||||||
unit_divisor=1024,
|
unit_divisor=1024,
|
||||||
) as progress:
|
) as progress:
|
||||||
urllib.request.urlretrieve(url, download_file_path, reporthook=lambda count, block_size, total_size: progress.update(block_size)) # type: ignore[attr-defined]
|
with open(download_file_path, "wb") as f:
|
||||||
|
while True:
|
||||||
|
buffer = response.read(8192)
|
||||||
|
if not buffer:
|
||||||
|
break
|
||||||
|
f.write(buffer)
|
||||||
|
progress.update(len(buffer))
|
||||||
|
|
||||||
|
|
||||||
def resolve_relative_path(path: str) -> str:
|
def resolve_relative_path(path: str) -> str:
|
||||||
|
|||||||
Reference in New Issue
Block a user