feng2022's picture
Time_TravelRephotography
47c46ea
raw
history blame
2.74 kB
import os
from argparse import (
ArgumentParser,
Namespace,
)
from models.degrade import DegradeArguments
from tools.initialize import InitializerArguments
from losses.joint_loss import LossArguments
from utils.optimize import OptimizerArguments
from .misc import (
optional_string,
iterable_to_str,
)
class ProjectorArguments:
def __init__(self):
parser = ArgumentParser("Project image into stylegan2")
self.add_arguments(parser)
self.parser = parser
@classmethod
def add_arguments(cls, parser: ArgumentParser):
parser.add_argument('--rand_seed', type=int, default=None,
help="random seed")
cls.add_io_args(parser)
cls.add_preprocess_args(parser)
cls.add_stylegan_args(parser)
InitializerArguments.add_arguments(parser)
LossArguments.add_arguments(parser)
OptimizerArguments.add_arguments(parser)
DegradeArguments.add_arguments(parser)
@staticmethod
def add_stylegan_args(parser: ArgumentParser):
parser.add_argument('--ckpt', type=str, default="checkpoint/stylegan2-ffhq-config-f.pt",
help="stylegan2 checkpoint")
parser.add_argument('--generator_size', type=int, default=1024,
help="output size of the generator")
@staticmethod
def add_io_args(parser: ArgumentParser) -> ArgumentParser:
parser.add_argument('input', type=str, help="input image path")
parser.add_argument('--results_dir', default="results/projector", help="directory to save results.")
@staticmethod
def add_preprocess_args(parser: ArgumentParser):
# parser.add_argument("--match_histogram", action='store_true', help="match the histogram of the input image to the sibling")
pass
def parse(self, args=None, namespace=None) -> Namespace:
args = self.parser.parse_args(args, namespace=namespace)
self.print(args)
return args
@staticmethod
def print(args: Namespace):
print("------------ Parameters -------------")
args = vars(args)
for k, v in sorted(args.items()):
print(f"{k}: {v}")
print("-------------------------------------")
@staticmethod
def to_string(args: Namespace) -> str:
return "-".join([
#+ optional_string(args.no_camera_response, "-noCR")
#+ optional_string(args.match_histogram, "-MH")
DegradeArguments.to_string(args),
InitializerArguments.to_string(args),
LossArguments.to_string(args),
OptimizerArguments.to_string(args),
]) + optional_string(args.rand_seed is not None, f"-S{args.rand_seed}")