mirror of
https://github.com/iperov/DeepFaceLab.git
synced 2025-07-06 13:02:15 -07:00
修正小問題與加上設定檔機制。
This commit is contained in:
parent
cd83f6fedf
commit
a50ea84b3d
5 changed files with 82 additions and 6 deletions
54
.vscode/launch.json
vendored
54
.vscode/launch.json
vendored
|
@ -4,6 +4,7 @@
|
||||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
"name": "DFL train TEST",
|
"name": "DFL train TEST",
|
||||||
|
@ -21,6 +22,59 @@
|
||||||
"--model-dir", "${env:WORKSPACE}\\model",
|
"--model-dir", "${env:WORKSPACE}\\model",
|
||||||
"--model", "TEST"
|
"--model", "TEST"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DFL train",
|
||||||
|
"subProcess": true,
|
||||||
|
"justMyCode": true,
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "D:\\DeepFaceLab\\_internal\\DeepFaceLab\\main.py",
|
||||||
|
"python": "D:\\DeepFaceLab\\_internal\\python-3.6.8\\python.exe",
|
||||||
|
"cwd": "D:\\DeepFaceLab\\workspace",
|
||||||
|
"console": "integratedTerminal",
|
||||||
|
"gevent": true,
|
||||||
|
"args": ["train",
|
||||||
|
"--training-data-src-dir", "D:\\DeepFaceLab\\workspace\\data_src\\aligned",
|
||||||
|
"--training-data-dst-dir", "D:\\DeepFaceLab\\workspace\\data_dst\\aligned",
|
||||||
|
"--model-dir", "D:\\DeepFaceLab\\workspace\\model",
|
||||||
|
"--model", "SAEHD"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "DFL merge",
|
||||||
|
"subProcess": true,
|
||||||
|
"justMyCode": true,
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "D:\\DeepFaceLab\\_internal\\DeepFaceLab\\main.py",
|
||||||
|
"python": "D:\\DeepFaceLab\\_internal\\python-3.6.8\\python.exe",
|
||||||
|
"cwd": "D:\\DeepFaceLab\\workspace",
|
||||||
|
"console": "integratedTerminal",
|
||||||
|
"gevent": true,
|
||||||
|
"args": ["merge",
|
||||||
|
"--input-dir", "data_dst",
|
||||||
|
"--output-dir", "data_dst\\merged",
|
||||||
|
"--output-mask-dir", "..\\_internal\\__delete",
|
||||||
|
"--aligned-dir", "data_dst\\aligned",
|
||||||
|
"--model-dir", "model",
|
||||||
|
"--model", "SAEHD",
|
||||||
|
"--force-model-name", "df-ud",
|
||||||
|
"--force-gpu-idxs", "0"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Auto DFL",
|
||||||
|
"subProcess": true,
|
||||||
|
"justMyCode": true,
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "D:\\DeepFaceLab\\_internal\\DeepFaceLab\\autodfl.py",
|
||||||
|
"python": "D:\\DeepFaceLab\\_internal\\python-3.6.8\\python.exe",
|
||||||
|
"cwd": "D:\\DeepFaceLab\\_internal\\DeepFaceLab",
|
||||||
|
"console": "integratedTerminal",
|
||||||
|
"gevent": true,
|
||||||
|
"args": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
10
autodfl.py
Normal file
10
autodfl.py
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import ymauto.MergeDefault as MD
|
||||||
|
|
||||||
|
md = MD.MergeArgs("config.json")
|
||||||
|
|
||||||
|
print(md.g("sandy", "name"))
|
||||||
|
print(md.g("beauty", "deep", "gender"))
|
||||||
|
# print(md.g("version1"))
|
||||||
|
# print(md.g("deep", "method"))
|
||||||
|
# print(md.g("deep", "methoda", "PP"))
|
||||||
|
# print([v + '真神' for v in md.g("array")])
|
2
main.py
2
main.py
|
@ -173,7 +173,7 @@ if __name__ == "__main__":
|
||||||
output_path = Path(arguments.output_dir),
|
output_path = Path(arguments.output_dir),
|
||||||
output_mask_path = Path(arguments.output_mask_dir),
|
output_mask_path = Path(arguments.output_mask_dir),
|
||||||
aligned_path = Path(arguments.aligned_dir) if arguments.aligned_dir is not None else None,
|
aligned_path = Path(arguments.aligned_dir) if arguments.aligned_dir is not None else None,
|
||||||
force_gpu_idxs = arguments.force_gpu_idxs,
|
force_gpu_idxs = [ int(x) for x in arguments.force_gpu_idxs.split(',') ] if arguments.force_gpu_idxs is not None else None,
|
||||||
cpu_only = arguments.cpu_only)
|
cpu_only = arguments.cpu_only)
|
||||||
|
|
||||||
p = subparsers.add_parser( "merge", help="Merger")
|
p = subparsers.add_parser( "merge", help="Merger")
|
||||||
|
|
|
@ -16,6 +16,8 @@ from DFLIMG import DFLIMG
|
||||||
from facelib import FaceEnhancer, FaceType, LandmarksProcessor, XSegNet
|
from facelib import FaceEnhancer, FaceType, LandmarksProcessor, XSegNet
|
||||||
from merger import FrameInfo, InteractiveMergerSubprocessor, MergerConfig
|
from merger import FrameInfo, InteractiveMergerSubprocessor, MergerConfig
|
||||||
|
|
||||||
|
import ymauto.MergeDefault as MD
|
||||||
|
md = MD.MergeArgs('config.json')
|
||||||
|
|
||||||
def main (model_class_name=None,
|
def main (model_class_name=None,
|
||||||
saved_models_path=None,
|
saved_models_path=None,
|
||||||
|
@ -69,13 +71,19 @@ def main (model_class_name=None,
|
||||||
place_model_on_cpu=True,
|
place_model_on_cpu=True,
|
||||||
run_on_cpu=run_on_cpu)
|
run_on_cpu=run_on_cpu)
|
||||||
|
|
||||||
is_interactive = io.input_bool ("Use interactive merger?", True) if not io.is_colab() else False
|
if md.g(None, "interactive") is None:
|
||||||
|
is_interactive = io.input_bool ("Use interactive merger?", True) if not io.is_colab() else False
|
||||||
|
else:
|
||||||
|
is_interactive = md.g(None, "interactive")
|
||||||
|
|
||||||
if not is_interactive:
|
if not is_interactive:
|
||||||
cfg.ask_settings()
|
cfg.ask_settings()
|
||||||
|
|
||||||
subprocess_count = io.input_int("Number of workers?", max(8, multiprocessing.cpu_count()),
|
if md.g(None, "subprocess_count") is None:
|
||||||
|
subprocess_count = io.input_int("Number of workers?", max(8, multiprocessing.cpu_count()),
|
||||||
valid_range=[1, multiprocessing.cpu_count()], help_message="Specify the number of threads to process. A low value may affect performance. A high value may result in memory error. The value may not be greater than CPU cores." )
|
valid_range=[1, multiprocessing.cpu_count()], help_message="Specify the number of threads to process. A low value may affect performance. A high value may result in memory error. The value may not be greater than CPU cores." )
|
||||||
|
else:
|
||||||
|
subprocess_count = md.g(4, "subprocess_count")
|
||||||
|
|
||||||
input_path_image_paths = pathex.get_image_paths(input_path)
|
input_path_image_paths = pathex.get_image_paths(input_path)
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,8 @@ import copy
|
||||||
from facelib import FaceType
|
from facelib import FaceType
|
||||||
from core.interact import interact as io
|
from core.interact import interact as io
|
||||||
|
|
||||||
|
import ymauto.MergeDefault as MD
|
||||||
|
md = MD.MergeArgs('config.json')
|
||||||
|
|
||||||
class MergerConfig(object):
|
class MergerConfig(object):
|
||||||
TYPE_NONE = 0
|
TYPE_NONE = 0
|
||||||
|
@ -189,6 +191,8 @@ class MergerConfigMasked(MergerConfig):
|
||||||
self.bicubic_degrade_power = np.clip ( self.bicubic_degrade_power+diff, 0, 100)
|
self.bicubic_degrade_power = np.clip ( self.bicubic_degrade_power+diff, 0, 100)
|
||||||
|
|
||||||
def ask_settings(self):
|
def ask_settings(self):
|
||||||
|
print("mode: " + md.g('mode'))
|
||||||
|
|
||||||
s = """Choose mode: \n"""
|
s = """Choose mode: \n"""
|
||||||
for key in mode_dict.keys():
|
for key in mode_dict.keys():
|
||||||
s += f"""({key}) {mode_dict[key]}\n"""
|
s += f"""({key}) {mode_dict[key]}\n"""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue