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()