a / inference.py
Raid41's picture
Upload 33 files
0654ee4
Raw
History Blame Contribute Delete
2.74 kB
import os
import argparse
import sys
import numpy as np
import matplotlib.pyplot as plt
from colorizator import MangaColorizator
def process_image(image, colorizator, args):
colorizator.set_image(image, args.size, args.denoiser, args.denoiser_sigma)
return colorizator.colorize()
def colorize_single_image(image_path, save_path, colorizator, args):
image = plt.imread(image_path)
colorization = process_image(image, colorizator, args)
plt.imsave(save_path, colorization)
return True
def colorize_images(target_path, colorizator, args):
images = os.listdir(args.path)
for image_name in images:
file_path = os.path.join(args.path, image_name)
if os.path.isdir(file_path):
continue
name, ext = os.path.splitext(image_name)
if (ext != '.png'):
image_name = name + '.png'
print(file_path)
save_path = os.path.join(target_path, image_name)
colorize_single_image(file_path, save_path, colorizator, args)
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument("-p", "--path", required=True)
parser.add_argument("-gen", "--generator", default = 'networks/generator.zip')
parser.add_argument("-ext", "--extractor", default = 'networks/extractor.pth')
parser.add_argument('-g', '--gpu', dest = 'gpu', action = 'store_true')
parser.add_argument('-nd', '--no_denoise', dest = 'denoiser', action = 'store_false')
parser.add_argument("-ds", "--denoiser_sigma", type = int, default = 25)
parser.add_argument("-s", "--size", type = int, default = 576)
parser.set_defaults(gpu = False)
parser.set_defaults(denoiser = True)
args = parser.parse_args()
return args
if __name__ == "__main__":
args = parse_args()
if args.gpu:
device = 'cuda'
else:
device = 'cpu'
colorizer = MangaColorizator(device, args.generator, args.extractor)
if os.path.isdir(args.path):
colorization_path = os.path.join(args.path, 'colorization')
if not os.path.exists(colorization_path):
os.makedirs(colorization_path)
colorize_images(colorization_path, colorizer, args)
elif os.path.isfile(args.path):
split = os.path.splitext(args.path)
if split[1].lower() in ('.jpg', '.png', ',jpeg'):
new_image_path = split[0] + '_colorized' + '.png'
colorize_single_image(args.path, new_image_path, colorizer, args)
else:
print('Wrong format')
else:
print('Wrong path')