|
from model.utils import get_config, tensor2im |
|
from model.inference_handler import InferenceHandler |
|
from model.dataset import Image_Editing_Dataset |
|
|
|
import torch |
|
import cv2 |
|
|
|
from torch.utils.data import DataLoader |
|
|
|
def get_cfg(): |
|
cfg = get_config("checkpoints/config.yaml") |
|
|
|
cfg['lab_dim'] = 151 |
|
cfg['max_epoch'] = 500 |
|
cfg['test_freq'] = 20 |
|
|
|
cfg["is_train"] = False |
|
cfg["dataset_name"] = "flickr-landscape" |
|
return cfg |
|
|
|
def get_inference_handler(cfg): |
|
inference_handler = InferenceHandler(cfg) |
|
inference_handler.eval() |
|
inference_handler.load_checkpoint(ckpt_filename="checkpoints/best.pth") |
|
return inference_handler |
|
|
|
def get_dataloader(cfg): |
|
dataset_root = "gradio_files/samples" |
|
dataset = Image_Editing_Dataset(cfg, dataset_root, split='test', dataset_name="flickr-landscape") |
|
return DataLoader(dataset=dataset, batch_size=1, shuffle=False) |
|
|
|
def start_inference(): |
|
cfg = get_cfg() |
|
inference_handler = get_inference_handler(cfg) |
|
dataloader = get_dataloader(cfg) |
|
cached_codes = torch.load("checkpoints/style_codes.pt", map_location=torch.device("cpu")) |
|
save_path = 'gradio_files/samples/synthesized_image/result.png' |
|
with torch.no_grad(): |
|
cfg['mask_type'] = '0' |
|
for i, data in enumerate(dataloader): |
|
inference_handler.set_input(data) |
|
inference_handler.forward(cached_codes) |
|
result = inference_handler.get_results() |
|
cv2.imwrite(save_path, tensor2im(result)) |
|
return save_path |
|
|
|
if __name__ == "__main__": |
|
start_inference() |
|
|