def generate(model_name, anchor_image=None, direction=None, transfer=None, noise_solutions=None, factor=0.25, base=None, insert_limit=4): #direction = 'L, R, T, B' parser = get_arguments() parser.add_argument('--input_dir', help='input image dir', default='Input/Images') parser.add_argument('--mode', help='random_samples | random_samples_arbitrary_sizes', default='random_samples') # for random_samples: parser.add_argument('--gen_start_scale', type=int, help='generation start scale', default=0) opt = parser.parse_args("") opt.input_name = model_name if model_name == 'islands2_basis_2.jpg': #HARDCODED opt.scale_factor = 0.6 opt = functions.post_config(opt) Gs = [] Zs = [] reals = [] NoiseAmp = [] real = functions.read_image(opt) #opt.input_name = anchor #CHANGE TO ANCHOR HERE anchor = functions.read_image(opt) functions.adjust_scales2image(real, opt) Gs, Zs, reals, NoiseAmp = functions.load_trained_pyramid(opt) in_s = functions.generate_in2coarsest(reals, 1, 1, opt) array = SinGAN_anchor_generate(Gs, Zs, reals, NoiseAmp, opt, gen_start_scale=opt.gen_start_scale, anchor_image=anchor_image, direction=direction, transfer=transfer, noise_solutions=noise_solutions, factor=factor, base=base, insert_limit=insert_limit) return array
elif opt.mode == 'random_samples_arbitrary_sizes': print( 'random samples for image %s at size: scale_h=%f, scale_v=%f, already exist' % (opt.input_name, opt.scale_h, opt.scale_v)) else: try: os.makedirs(dir2save) except OSError: pass if opt.mode == 'random_samples': real = functions.read_image(opt) functions.adjust_scales2image(real, opt) Gs, Zs, reals, NoiseAmp = functions.load_trained_pyramid(opt) # 生成最粗糙的图像 in_s = functions.generate_in2coarsest(reals, 1, 1, opt) SinGAN_generate(Gs, Zs, reals, NoiseAmp, opt, gen_start_scale=opt.gen_start_scale) # elif opt.mode == 'random_samples_arbitrary_sizes': # real = functions.read_image(opt) # functions.adjust_scales2image(real, opt) # Gs, Zs, reals, NoiseAmp = functions.load_trained_pyramid(opt) # # 传入scale_v, scale_h 生成任意尺寸的图像 scale 1:1.5 # in_s = functions.generate_in2coarsest(reals, opt.scale_v, opt.scale_h, opt) # SinGAN_generate(Gs, Zs, reals, NoiseAmp, opt, in_s, scale_v=opt.scale_v, scale_h=opt.scale_h)
Zs = [] reals = [] NoiseAmp = [] dir2save = functions.generate_dir2save(opt) if dir2save is None: print('task does not exist') elif (os.path.exists(dir2save)): if opt.mode == 'random_samples': print('random samples for image %s, start scale=%d, already exist' % (opt.input_name, opt.gen_start_scale)) elif opt.mode == 'random_samples_arbitrary_sizes': print('random samples for image %s at size: scale_h=%f, scale_v=%f, already exist' % ( opt.input_name, opt.scale_h, opt.scale_v)) else: try: os.makedirs(dir2save) except OSError: pass if opt.mode == 'random_samples': real = functions.read_image(opt) functions.adjust_scales2image(real, opt) Gs, Zs, reals, NoiseAmp = functions.load_trained_pyramid(opt) in_s = functions.generate_in2coarsest(reals, 1, 1, opt) SinGAN_generate(Gs, Zs, reals, NoiseAmp, opt, gen_start_scale=opt.gen_start_scale) elif opt.mode == 'random_samples_arbitrary_sizes': real = functions.read_image(opt) functions.adjust_scales2image(real, opt) Gs, Zs, reals, NoiseAmp = functions.load_trained_pyramid(opt) in_s = functions.generate_in2coarsest(reals, opt.scale_v, opt.scale_h, opt) SinGAN_generate(Gs, Zs, reals, NoiseAmp, opt, in_s, scale_v=opt.scale_v, scale_h=opt.scale_h)
def test_generate(model_name, anchor_image=None, direction=None, transfer=None, noise_solutions=None, factor=0.25, base=None, insert_limit=4): #direction = 'L, R, T, B' parser = get_arguments() parser.add_argument('--input_dir', help='input image dir', default='Input/Images') parser.add_argument('--mode', help='random_samples | random_samples_arbitrary_sizes', default='random_samples') # for random_samples: parser.add_argument('--gen_start_scale', type=int, help='generation start scale', default=0) opt = parser.parse_args("") opt.input_name = model_name opt = functions.post_config(opt) Gs = [] Zs = [] reals = [] NoiseAmp = [] opt.input_name = 'island_basis_0.jpg' #grabbing image that exists... real = functions.read_image(opt) #opt.input_name = anchor #CHANGE TO ANCHOR HERE #anchor = functions.read_image(opt) functions.adjust_scales2image(real, opt) opt.input_name = 'test1.jpg' #grabbing model that we want Gs, Zs, reals, NoiseAmp = functions.load_trained_pyramid(opt) #dummy stuff for dimensions reals = [] real_ = real real = imresize(real_, opt.scale1, opt) reals = functions.creat_reals_pyramid(real, reals, opt) in_s = functions.generate_in2coarsest(reals, 1, 1, opt) array = SinGAN_anchor_generate(Gs, Zs, reals, NoiseAmp, opt, gen_start_scale=opt.gen_start_scale, anchor_image=anchor_image, direction=direction, transfer=transfer, noise_solutions=noise_solutions, factor=factor, base=base, insert_limit=insert_limit) return array