def process_extract(arguments): from mainscripts import Extractor Extractor.main(arguments.input_dir, arguments.output_dir, arguments.debug_dir, arguments.detector, arguments.manual_fix, arguments.manual_output_debug_fix, arguments.manual_window_size, face_type=arguments.face_type, device_args={ 'cpu_only': arguments.cpu_only, 'multi_gpu': arguments.multi_gpu, })
def process_extract(arguments): osex.set_process_lowest_prio() from mainscripts import Extractor Extractor.main( detector = arguments.detector, input_path = Path(arguments.input_dir), output_path = Path(arguments.output_dir), output_debug = arguments.output_debug, manual_fix = arguments.manual_fix, manual_output_debug_fix = arguments.manual_output_debug_fix, manual_window_size = arguments.manual_window_size, face_type = arguments.face_type, cpu_only = arguments.cpu_only, force_gpu_idxs = [ int(x) for x in arguments.force_gpu_idxs.split(',') ] if arguments.force_gpu_idxs is not None else None, )
def process_extract(arguments): os_utils.set_process_lowest_prio() from mainscripts import Extractor Extractor.main(arguments.input_dir, arguments.output_dir, arguments.debug_dir, arguments.detector, arguments.manual_fix, arguments.manual_output_debug_fix, arguments.manual_window_size, face_type=arguments.face_type, device_args={ 'cpu_only': arguments.cpu_only, 'multi_gpu': arguments.multi_gpu, }, min_pixel=arguments.min_pixel)
def SPExtractFaceLab(context): args = context.args Extractor.main( args.inputData, args.outputData, debug_dir=None, detector=args.detector, manual_fix=False, manual_output_debug_fix=False, manual_window_size=1368, image_size=256, face_type=args.faceType, device_args={ "cpu_only": args.cpuOnly, "multi_gpu": args.multiGpu }, ) return args.outputData
def fanseg(align_dir): from mainscripts import Extractor Extractor.extract_fanseg(align_dir)
def extract(): import os import shutil from mainscripts import VideoEd from mainscripts import Extractor from interact import interact as io root_dir = get_root_path() extract_workspace = os.path.join(root_dir, "extract_workspace") target_dir = os.path.join(extract_workspace, "aligned_") valid_exts = [".mp4", ".avi", ".wmv", ".mkv"] fps = io.input_int( "Enter FPS ( ?:help skip:fullfps ) : ", 0, help_message= "How many frames of every second of the video will be extracted.") min_pixel = io.input_int("Enter Min Pixel ( ?:help skip: 512) : ", 512, help_message="Min Pixel") def file_filter(file): if os.path.isdir(os.path.join(extract_workspace, file)): return False ext = os.path.splitext(file)[-1] if ext not in valid_exts: return False return True files = list(filter(file_filter, os.listdir(extract_workspace))) files.sort() pos = 0 for file in files: pos += 1 io.log_info("@@@@@ Start Process %s, %d / %d" % (file, pos, len(files))) # 提取图片 input_file = os.path.join(extract_workspace, file) output_dir = os.path.join(extract_workspace, "extract_images") if not os.path.exists(output_dir): os.mkdir(output_dir) for f in os.listdir(output_dir): os.remove(os.path.join(output_dir, f)) VideoEd.extract_video(input_file, output_dir, output_ext="png", fps=fps) io.log_info("@@@@@ Start Extract %s, %d / %d" % (file, pos, len(files))) # 提取人脸 input_dir = output_dir output_dir = os.path.join(extract_workspace, "_current") debug_dir = os.path.join(extract_workspace, "debug") Extractor.main(input_dir, output_dir, debug_dir, "s3fd", min_pixel=min_pixel) # fanseg io.log_info("@@@@@ Start FanSeg %s, %d / %d" % (file, pos, len(files))) Extractor.extract_fanseg(output_dir) # 复制到结果集 io.log_info("@@@@@ Start Move %s, %d / %d" % (file, pos, len(files))) if not os.path.exists(target_dir): os.mkdir(target_dir) ts = get_time_str() for f in os.listdir(output_dir): src = os.path.join(output_dir, f) dst = os.path.join(target_dir, "%s_%s" % (ts, f)) shutil.move(src, dst) # 全部做完,删除该文件 io.log_info("@@@@@ Finish %s, %d / %d" % (file, pos, len(files))) os.remove(os.path.join(extract_workspace, file)) os.rmdir(output_dir)