Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 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)
Ejemplo n.º 4
0
#!/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)