Merge pull request #615 from saleweaver/experimental
Adding headless parameter to arguments to run from the cli, reenabling macOS compatibilitypull/626/head
commit
91884eebf7
|
@ -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…
Reference in New Issue