def upscale_image(cfg, src, scale_model, alpha_model=None): dst, alpha = split_alpha(src, scale_model) for i in range(int(np.ceil(np.log2(cfg.scale_ratio)))): six.print_('2.0x upscaling...', end=' ', flush=True) model = scale_model if i == 0 or alpha_model is None else alpha_model if model.inner_scale == 1: dst = iproc.nn_scaling(dst, 2) # Nearest neighbor 2x scaling alpha = iproc.nn_scaling(alpha, 2) # Nearest neighbor 2x scaling if cfg.tta: dst = reconstruct.image_tta(dst, model, cfg.tta_level, cfg.block_size, cfg.batch_size) else: dst = reconstruct.image(dst, model, cfg.block_size, cfg.batch_size) if alpha_model is None: alpha = reconstruct.image(alpha, scale_model, cfg.block_size, cfg.batch_size) else: alpha = reconstruct.image(alpha, alpha_model, cfg.block_size, cfg.batch_size) six.print_('OK') dst_w = int(np.round(src.size[0] * cfg.scale_ratio)) dst_h = int(np.round(src.size[1] * cfg.scale_ratio)) if dst_w != dst.size[0] or dst_h != dst.size[1]: six.print_('Resizing...', end=' ', flush=True) dst = dst.resize((dst_w, dst_h), Image.LANCZOS) six.print_('OK') if alpha is not None: if alpha.size[0] != dst_w or alpha.size[1] != dst_h: alpha = alpha.resize((dst_w, dst_h), Image.LANCZOS) dst.putalpha(alpha) return dst
def denoise_image(src, model, cfg): six.print_('Level %d denoising...' % cfg.noise_level, end=' ', flush=True) if cfg.tta: dst = reconstruct.image_tta(src, model, cfg.tta_level, cfg.block_size, cfg.batch_size) else: dst = reconstruct.image(src, model, cfg.block_size, cfg.batch_size) six.print_('OK') return dst
def upscale_image(cfg, src, model): dst = src.copy() six.print_('2.0x scaling...', end=' ', flush=True) if model.inner_scale == 1: dst = iproc.nn_scaling(dst, 2) # Nearest neighbor 2x scaling if cfg.tta: dst = reconstruct.image_tta(dst, model, cfg.tta_level, cfg.block_size, cfg.batch_size) else: dst = reconstruct.image(dst, model, cfg.block_size, cfg.batch_size) six.print_('OK') return dst
def denoise_image(cfg, src, model): dst = src.copy() six.print_('Level {} denoising...'.format(cfg.noise_level), end=' ', flush=True) if cfg.tta: dst = reconstruct.image_tta(dst, model, cfg.tta_level, cfg.block_size, cfg.batch_size) else: dst = reconstruct.image(dst, model, cfg.block_size, cfg.batch_size) if model.inner_scale != 1: dst = dst.resize((src.size[0], src.size[1]), Image.LANCZOS) six.print_('OK') return dst
def denoise_image(src, model, cfg): dst, alpha = split_alpha(src, model.offset) six.print_('Level %d denoising...' % cfg.noise_level, end=' ', flush=True) if cfg.tta: dst = reconstruct.image_tta(dst, model, cfg.tta_level, cfg.block_size, cfg.batch_size) else: dst = reconstruct.image(dst, model, cfg.block_size, cfg.batch_size) if model.inner_scale != 1: dst = dst.resize((src.size[0], src.size[1]), Image.LANCZOS) six.print_('OK') if alpha is not None: dst.putalpha(alpha) return dst
def upscale_image(src, model, cfg): dst = src if model.inner_scale == 1: dst = src.resize((src.size[0] * 2, src.size[1] * 2), Image.NEAREST) log_scale = np.log2(cfg.scale_factor) for _ in range(int(np.ceil(log_scale))): six.print_('2.0x upscaling...', end=' ', flush=True) if cfg.tta: dst = reconstruct.image_tta(dst, model, cfg.tta_level, cfg.block_size, cfg.batch_size) else: dst = reconstruct.image(dst, model, cfg.block_size, cfg.batch_size) six.print_('OK') if np.round(log_scale % 1.0, 6) != 0: six.print_('Resizing...', end=' ', flush=True) dst_w = int(np.round(src.size[0] * cfg.scale_factor)) dst_h = int(np.round(src.size[1] * cfg.scale_factor)) dst = dst.resize((dst_w, dst_h), Image.ANTIALIAS) six.print_('OK') return dst