コード例 #1
0
class FaceSwapInterface:
  def __init__(self):
    self._parser = FullHelpArgumentParser()
    self._subparser = self._parser.add_subparsers()

  def extract(self, input_dir, output_dir, filter_path, processes):
    extract = ExtractTrainingData(
      self._subparser, "extract", "Extract the faces from a pictures.")
    args_str = "extract --input-dir {} --output-dir {} --processes {} --detector cnn --filter {}"
    args_str = args_str.format(input_dir, output_dir, processes, filter_path)
    self._run_script(args_str)

  def train(self, input_a_dir, input_b_dir, model_dir, gan = False):
    model_type = "Original"
    if gan:
      model_type = "GAN"
    train = TrainingProcessor(
      self._subparser, "train", "This command trains the model for the two faces A and B.")
    args_str = "train --input-A {} --input-B {} --model-dir {} --trainer {} --batch-size {} --write-image"
    args_str = args_str.format(input_a_dir, input_b_dir, model_dir, model_type, 512)
    self._run_script(args_str)

  def _run_script(self, args_str):
    args = self._parser.parse_args(args_str.split(' '))
    args.func(args)
コード例 #2
0
class FaceSwapInterface:
    def __init__(self):
        self._parser = FullHelpArgumentParser()
        self._subparser = self._parser.add_subparsers()

    def extract(self, input_dir, output_dir, filter_path):
        extract = ExtractTrainingData(self._subparser, "extract",
                                      "Extract the faces from a pictures.")
        args_str = "extract --input-dir {} --output-dir {} --processes 1 --detector cnn --filter {}"
        args_str = args_str.format(input_dir, output_dir, filter_path)
        self._run_script(args_str)

    def train(self,
              input_a_dir,
              input_b_dir,
              model_dir,
              gpus,
              gan=False,
              preview=True,
              stop_threshold=0,
              stop_iternum=float('inf')):

        # --------------------------
        # ORIGINAL IMPLEMENTATION:
        # --------------------------

        # model_type = "Original"
        # if gan:
        #     model_type = "GAN"

        # train = TrainingProcessor(
        #     self._subparser, "train", "This command trains the model for the two faces A and B.")

        # args_str = "train --input-A {} --input-B {} --model-dir {} --trainer {} --batch-size {} --gpus {} --write-image"
        # if preview:
        #     args_str += " -p"
        # args_str = args_str.format(input_a_dir, input_b_dir, model_dir, model_type, 512, gpus)

        # self._run_script(args_str)

        myswap = MyFaceSwap()
        myswap.train(input_A=input_a_dir,
                     input_B=input_b_dir,
                     model_dir=model_dir,
                     gpus=gpus,
                     preview=preview,
                     stop_threshold=stop_threshold,
                     stop_iternum=stop_iternum)

    def _run_script(self, args_str):
        args = self._parser.parse_args(args_str.split(' '))
        # print('\n\nARGS: {}\n\n'.format(args))
        args.func(args)
コード例 #3
0
import sys
if  sys.version_info[0] < 3:
    raise Exception("This program requires at least python3.2")
if sys.version_info[0] == 3 and sys.version_info[1] < 2:
    raise Exception("This program requires at least python3.2")

from lib.utils import FullHelpArgumentParser

from scripts.extract import ExtractTrainingData
from scripts.train import TrainingProcessor
from scripts.convert import ConvertImage

from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession

config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)

if __name__ == "__main__":
    parser = FullHelpArgumentParser()
    subparser = parser.add_subparsers()
    extract = ExtractTrainingData(
        subparser, "extract", "Extract the faces from a pictures.")
    train = TrainingProcessor(
        subparser, "train", "This command trains the model for the two faces A and B.")
    convert = ConvertImage(
        subparser, "convert", "Convert a source image to a new one with the face swapped.")
    arguments = parser.parse_args()
    arguments.func(arguments)
コード例 #4
0
ファイル: faceswap.py プロジェクト: Southuhnboi/faceswap
#!/usr/bin/env python3
import sys
if  sys.version_info[0] < 3:
    raise Exception("This program requires at least python3.2")
if sys.version_info[0] == 3 and sys.version_info[1] < 2:
    raise Exception("This program requires at least python3.2")

from lib.utils import FullHelpArgumentParser

from scripts.extract import ExtractTrainingData
from scripts.train import TrainingProcessor
from scripts.convert import ConvertImage

def bad_args(args):
    parser.print_help()
    exit(0)

if __name__ == "__main__":
    parser = FullHelpArgumentParser()
    subparser = parser.add_subparsers()
    extract = ExtractTrainingData(
        subparser, "extract", "Extract the faces from a pictures.")
    train = TrainingProcessor(
        subparser, "train", "This command trains the model for the two faces A and B.")
    convert = ConvertImage(
        subparser, "convert", "Convert a source image to a new one with the face swapped.")
    parser.set_defaults(func=bad_args)
    arguments = parser.parse_args()
    arguments.func(arguments)