Next (#144)
* Improve typing for our callbacks * Return 0 for get_download_size * Introduce ONNX powered face enhancer * Introduce ONNX powered face enhancer * Introduce ONNX powered face enhancer * Remove tile processing from frame enhancer * Fix video compress translation for libvpx-vp9 * Allow zero values for video compression * Develop (#134) * Introduce model options to the frame processors * Finish UI to select frame processors models * Simplify frame processors options * Fix lint in CI * Rename all kind of settings to options * Add blend to enhancers * Simplify webcam mode naming * Bypass SSL issues under Windows * Fix blend of frame enhancer * Massive CLI refactoring, Register and apply ARGS via the frame processors * Refine UI theme and introduce donate button * Update dependencies and fix cpu only torch * Update dependencies and fix cpu only torch * Fix theme, Fix frame_processors in headless mode * Remove useless astype * Disable CoreML for the ONNX face enhancer * Disable CoreML for the ONNX face enhancer * Predict webcam too * Improve resize of preview * Change output quality defaults, Move options to the right * Support for codeformer model * Update the typo * Add GPEN and GFPGAN 1.2 * Extract blend_frame methods * Extend the installer * Revert broken Gradio * Rework on ui components * Move output path selector to the output options * Remove tons of pointless component updates * Reset more base theme styling * Use latest Gradio * Fix the sliders * More styles * Update torch to 2.1.0 * Add RealESRNet_x4plus * Fix that button * Use latest onnxruntime-silicon * Looks stable to me * Lowercase model keys, Update preview and readme
This commit is contained in:
@@ -1,9 +1,6 @@
|
||||
from typing import Dict, Tuple
|
||||
import argparse
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
import tempfile
|
||||
from argparse import ArgumentParser, HelpFormatter
|
||||
|
||||
subprocess.call([ 'pip', 'install' , 'inquirer', '-q' ])
|
||||
|
||||
@@ -11,55 +8,61 @@ import inquirer
|
||||
|
||||
from facefusion import metadata, wording
|
||||
|
||||
TORCH : Dict[str, str] =\
|
||||
{
|
||||
'cpu': 'https://download.pytorch.org/whl/cpu',
|
||||
'cuda': 'https://download.pytorch.org/whl/cu118',
|
||||
'rocm': 'https://download.pytorch.org/whl/rocm5.6'
|
||||
}
|
||||
ONNXRUNTIMES : Dict[str, Tuple[str, str]] =\
|
||||
{
|
||||
'cpu': ('onnxruntime', '1.16.0 '),
|
||||
'cuda': ('onnxruntime-gpu', '1.16.0'),
|
||||
'coreml-legacy': ('onnxruntime-coreml', '1.13.1'),
|
||||
'coreml-silicon': ('onnxruntime-silicon', '1.14.2'),
|
||||
'coreml-silicon': ('onnxruntime-silicon', '1.16.0'),
|
||||
'directml': ('onnxruntime-directml', '1.16.0'),
|
||||
'openvino': ('onnxruntime-openvino', '1.15.0')
|
||||
}
|
||||
|
||||
|
||||
def run() -> None:
|
||||
program = argparse.ArgumentParser(formatter_class = lambda prog: argparse.HelpFormatter(prog, max_help_position = 120))
|
||||
program.add_argument('--onnxruntime', help = wording.get('onnxruntime_help'), dest = 'onnxruntime', choices = ONNXRUNTIMES.keys())
|
||||
def cli() -> None:
|
||||
program = ArgumentParser(formatter_class = lambda prog: HelpFormatter(prog, max_help_position = 120))
|
||||
program.add_argument('--torch', help = wording.get('install_dependency_help').format(dependency = 'torch'), dest = 'torch', choices = TORCH.keys())
|
||||
program.add_argument('--onnxruntime', help = wording.get('install_dependency_help').format(dependency = 'onnxruntime'), dest = 'onnxruntime', choices = ONNXRUNTIMES.keys())
|
||||
program.add_argument('-v', '--version', version = metadata.get('name') + ' ' + metadata.get('version'), action = 'version')
|
||||
run(program)
|
||||
|
||||
|
||||
def run(program : ArgumentParser) -> None:
|
||||
args = program.parse_args()
|
||||
|
||||
if args.onnxruntime:
|
||||
answers =\
|
||||
{
|
||||
'torch': args.torch,
|
||||
'onnxruntime': args.onnxruntime
|
||||
}
|
||||
else:
|
||||
answers = inquirer.prompt(
|
||||
[
|
||||
inquirer.List(
|
||||
'torch',
|
||||
message = wording.get('install_dependency_help').format(dependency = 'torch'),
|
||||
choices = list(TORCH.keys())
|
||||
),
|
||||
inquirer.List(
|
||||
'onnxruntime',
|
||||
message = wording.get('onnxruntime_help'),
|
||||
message = wording.get('install_dependency_help').format(dependency = 'onnxruntime'),
|
||||
choices = list(ONNXRUNTIMES.keys())
|
||||
)
|
||||
])
|
||||
|
||||
if answers is not None:
|
||||
torch = answers['torch']
|
||||
torch_url = TORCH[torch]
|
||||
onnxruntime = answers['onnxruntime']
|
||||
onnxruntime_name, onnxruntime_version = ONNXRUNTIMES[onnxruntime]
|
||||
python_id = 'cp' + str(sys.version_info.major) + str(sys.version_info.minor)
|
||||
subprocess.call([ 'pip', 'uninstall', 'torch', '-y' ])
|
||||
if onnxruntime == 'cuda':
|
||||
subprocess.call([ 'pip', 'install', '-r', 'requirements.txt', '--extra-index-url', 'https://download.pytorch.org/whl/cu118' ])
|
||||
else:
|
||||
subprocess.call([ 'pip', 'install', '-r', 'requirements.txt' ])
|
||||
subprocess.call([ 'pip', 'install', '-r', 'requirements.txt', '--extra-index-url', torch_url ])
|
||||
if onnxruntime != 'cpu':
|
||||
subprocess.call([ 'pip', 'uninstall', 'onnxruntime', onnxruntime_name, '-y' ])
|
||||
if onnxruntime != 'coreml-silicon':
|
||||
subprocess.call([ 'pip', 'install', onnxruntime_name + '==' + onnxruntime_version ])
|
||||
elif python_id in [ 'cp39', 'cp310', 'cp311' ]:
|
||||
wheel_name = '-'.join([ 'onnxruntime_silicon', onnxruntime_version, python_id, python_id, 'macosx_12_0_arm64.whl' ])
|
||||
wheel_path = os.path.join(tempfile.gettempdir(), wheel_name)
|
||||
wheel_url = 'https://github.com/cansik/onnxruntime-silicon/releases/download/v' + onnxruntime_version + '/' + wheel_name
|
||||
subprocess.call([ 'curl', '--silent', '--location', '--continue-at', '-', '--output', wheel_path, wheel_url ])
|
||||
subprocess.call([ 'pip', 'install', wheel_path ])
|
||||
os.remove(wheel_path)
|
||||
subprocess.call([ 'pip', 'install', onnxruntime_name + '==' + onnxruntime_version ])
|
||||
|
||||
Reference in New Issue
Block a user