Merge pull request #615 from saleweaver/experimental

Adding headless parameter to arguments to run from the cli, reenabling macOS compatibility
pull/626/head
Kenneth Estanislao 1 year ago committed by GitHub
commit 91884eebf7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -164,6 +164,8 @@ options:
--max-memory MAX_MEMORY maximum amount of RAM in GB --max-memory MAX_MEMORY maximum amount of RAM in GB
--execution-provider {cpu} [{cpu} ...] available execution provider (choices: cpu, ...) --execution-provider {cpu} [{cpu} ...] available execution provider (choices: cpu, ...)
--execution-threads EXECUTION_THREADS number of execution threads --execution-threads EXECUTION_THREADS number of execution threads
--headless run in headless mode
--enhancer-upscale-factor Sets the upscale factor for the enhancer. Only applies if `face_enhancer` is set as a frame-processor
-v, --version show program's version number and exit -v, --version show program's version number and exit
``` ```

@ -70,6 +70,10 @@ def parse_args() -> None:
choices=suggest_execution_providers(), nargs='+') choices=suggest_execution_providers(), nargs='+')
program.add_argument('--execution-threads', help='Number of execution threads', dest='execution_threads', type=int, program.add_argument('--execution-threads', help='Number of execution threads', dest='execution_threads', type=int,
default=suggest_execution_threads()) default=suggest_execution_threads())
program.add_argument('--headless', help='Run in headless mode', dest='headless', default=False, action='store_true')
program.add_argument('--enhancer-upscale-factor',
help='Sets the upscale factor for the enhancer. Only applies if `face_enhancer` is set as a frame-processor',
dest='enhancer_upscale_factor', type=int, default=1)
program.add_argument('-v', '--version', action='version', program.add_argument('-v', '--version', action='version',
version=f'{modules.metadata.name} {modules.metadata.version}') version=f'{modules.metadata.name} {modules.metadata.version}')
@ -98,7 +102,8 @@ def parse_args() -> None:
modules.globals.max_memory = args.max_memory modules.globals.max_memory = args.max_memory
modules.globals.execution_providers = decode_execution_providers(args.execution_provider) modules.globals.execution_providers = decode_execution_providers(args.execution_provider)
modules.globals.execution_threads = args.execution_threads modules.globals.execution_threads = args.execution_threads
modules.globals.headless = args.headless
modules.globals.enhancer_upscale_factor = args.enhancer_upscale_factor
# Handle face enhancer tumbler # Handle face enhancer tumbler
modules.globals.fp_ui['face_enhancer'] = 'face_enhancer' in args.frame_processor modules.globals.fp_ui['face_enhancer'] = 'face_enhancer' in args.frame_processor

@ -29,4 +29,5 @@ log_level = 'error'
fp_ui: Dict[str, bool] = {} fp_ui: Dict[str, bool] = {}
nsfw = None nsfw = None
camera_input_combobox = None camera_input_combobox = None
webcam_preview_running = False webcam_preview_running = False
enhancer_upscale_factor = 1

@ -33,7 +33,10 @@ def get_face_enhancer() -> Any:
with THREAD_LOCK: with THREAD_LOCK:
if FACE_ENHANCER is None: if FACE_ENHANCER is None:
model_path = resolve_relative_path('../models/GFPGANv1.4.pth') model_path = resolve_relative_path('../models/GFPGANv1.4.pth')
FACE_ENHANCER = gfpgan.GFPGANer(model_path=model_path, upscale=1) # type: ignore[attr-defined] FACE_ENHANCER = gfpgan.GFPGANer(
model_path=model_path,
upscale=modules.globals.enhancer_upscale_factor
) # type: ignore[attr-defined]
return FACE_ENHANCER return FACE_ENHANCER
def enhance_face(temp_frame: Frame) -> Frame: def enhance_face(temp_frame: Frame) -> Frame:

@ -6,15 +6,17 @@ from typing import Callable, Tuple, List, Any
from types import ModuleType from types import ModuleType
import cv2 import cv2
from PIL import Image, ImageOps from PIL import Image, ImageOps
from pygrabber.dshow_graph import FilterGraph
import pyvirtualcam import pyvirtualcam
# Import OS-specific modules only when necessary # Import OS-specific modules only when necessary
if platform.system() == 'Darwin': # macOS if platform.system() == 'Darwin': # macOS
import objc
from Foundation import NSObject
import AVFoundation import AVFoundation
# Import Windows specific modules only when on windows platform
if platform.system() == 'Windows' or platform.system() == 'Linux': # Windows or Linux
from pygrabber.dshow_graph import FilterGraph
import modules.globals import modules.globals
import modules.metadata import modules.metadata
from modules.face_analyser import get_one_face from modules.face_analyser import get_one_face

@ -23,4 +23,5 @@ tqdm==4.66.4
gfpgan==1.3.8 gfpgan==1.3.8
pyobjc==9.1; sys_platform == 'darwin' pyobjc==9.1; sys_platform == 'darwin'
pygrabber==0.2 pygrabber==0.2
pyvirtualcam==0.12.0 pyvirtualcam==0.12.0
pyobjc-framework-AVFoundation==10.3.1; sys_platform == 'darwin'
Loading…
Cancel
Save