Merge pull request #167 from s0md3v/feat/lint-within-pipeline

Introduce lint pipeline
This commit is contained in:
Henry Ruhs 2023-05-31 11:15:17 +02:00 committed by GitHub
commit 2c9631e156
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 26 additions and 9 deletions

2
.flake8 Normal file
View File

@ -0,0 +1,2 @@
[flake8]
select = E3, E4, F

16
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,16 @@
name: ci
on: [ push, pull_request ]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- run: pip install flake8
- run: flake8 run.py core

View File

@ -1,4 +1,3 @@
import torch
import onnxruntime import onnxruntime
use_gpu = False use_gpu = False

View File

@ -3,7 +3,6 @@ import os
import cv2 import cv2
import insightface import insightface
from core.config import get_face from core.config import get_face
from core.utils import rreplace
FACE_SWAPPER = None FACE_SWAPPER = None
@ -28,7 +27,7 @@ def process_video(source_img, frame_paths):
print('.', end='', flush=True) print('.', end='', flush=True)
else: else:
print('S', end='', flush=True) print('S', end='', flush=True)
except Exception as e: except Exception:
print('E', end='', flush=True) print('E', end='', flush=True)
pass pass

View File

@ -47,11 +47,11 @@ def extract_frames(input_path, output_dir):
def add_audio(output_dir, target_path, keep_frames, output_file): def add_audio(output_dir, target_path, keep_frames, output_file):
video = target_path.split("/")[-1] video = target_path.split("/")[-1]
video_name = video.split(".")[0] video_name = video.split(".")[0]
save_to = output_file if output_file else output_dir + f"/swapped-" + video_name + ".mp4" save_to = output_file if output_file else output_dir + "/swapped-" + video_name + ".mp4"
save_to_ff, output_dir_ff = path(save_to), path(output_dir) save_to_ff, output_dir_ff = path(save_to), path(output_dir)
os.system(f'ffmpeg -i "{output_dir_ff}{sep}output.mp4" -i "{output_dir_ff}{sep}{video}" -c:v copy -map 0:v:0 -map 1:a:0 -y "{save_to_ff}"') os.system(f'ffmpeg -i "{output_dir_ff}{sep}output.mp4" -i "{output_dir_ff}{sep}{video}" -c:v copy -map 0:v:0 -map 1:a:0 -y "{save_to_ff}"')
if not os.path.isfile(save_to): if not os.path.isfile(save_to):
shutil.move(output_dir + f"/output.mp4", save_to) shutil.move(output_dir + "/output.mp4", save_to)
if not keep_frames: if not keep_frames:
shutil.rmtree(output_dir) shutil.rmtree(output_dir)

9
run.py Normal file → Executable file
View File

@ -58,7 +58,7 @@ def limit_resources():
def pre_check(): def pre_check():
if sys.version_info < (3, 8): if sys.version_info < (3, 8):
quit(f'Python version is not supported - please upgrade to 3.8 or higher') quit('Python version is not supported - please upgrade to 3.8 or higher')
if not shutil.which('ffmpeg'): if not shutil.which('ffmpeg'):
quit('ffmpeg is not installed!') quit('ffmpeg is not installed!')
model_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'inswapper_128.onnx') model_path = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'inswapper_128.onnx')
@ -72,7 +72,7 @@ def pre_check():
if not torch.cuda.is_available() or not CUDA_VERSION: if not torch.cuda.is_available() or not CUDA_VERSION:
quit("You are using --gpu flag but CUDA isn't available or properly installed on your system.") quit("You are using --gpu flag but CUDA isn't available or properly installed on your system.")
if CUDA_VERSION > '11.8': if CUDA_VERSION > '11.8':
quit(f"CUDA version {CUDA_VERSION} is not supported - please downgrade to 11.8.") quit(f"CUDA version {CUDA_VERSION} is not supported - please downgrade to 11.8")
if CUDA_VERSION < '11.4': if CUDA_VERSION < '11.4':
quit(f"CUDA version {CUDA_VERSION} is not supported - please upgrade to 11.8") quit(f"CUDA version {CUDA_VERSION} is not supported - please upgrade to 11.8")
if CUDNN_VERSION < 8220: if CUDNN_VERSION < 8220:
@ -179,7 +179,8 @@ def start():
print("\n[WARNING] Please select a video/image to swap face in.") print("\n[WARNING] Please select a video/image to swap face in.")
return return
if not args['output_file']: if not args['output_file']:
args['output_file'] = rreplace(args['target_path'], "/", "/swapped-", 1) if "/" in target_path else "swapped-"+target_path target_path = args['target_path']
args['output_file'] = rreplace(target_path, "/", "/swapped-", 1) if "/" in target_path else "swapped-" + target_path
global pool global pool
pool = mp.Pool(args['cores_count']) pool = mp.Pool(args['cores_count'])
target_path = args['target_path'] target_path = args['target_path']
@ -206,7 +207,7 @@ def start():
status("extracting frames...") status("extracting frames...")
extract_frames(target_path, output_dir) extract_frames(target_path, output_dir)
args['frame_paths'] = tuple(sorted( args['frame_paths'] = tuple(sorted(
glob.glob(output_dir + f"/*.png"), glob.glob(output_dir + "/*.png"),
key=lambda x: int(x.split(sep)[-1].replace(".png", "")) key=lambda x: int(x.split(sep)[-1].replace(".png", ""))
)) ))
status("swapping in progress...") status("swapping in progress...")