def post_update_opt(opt): """ Post update the configurations based on the results of preprocessing. Args: opt: Returns: """ meta_src_proc = opt.meta_data["meta_src"] valid_meta_src_proc = [] cur_num_source = 1 for meta_proc in meta_src_proc: process_info = ProcessInfo(meta_proc) process_info.deserialize() # check it has been processed successfully if process_info.check_has_been_processed(process_info.vid_infos, verbose=False): valid_meta_src_proc.append(meta_proc) num_source = process_info.num_sources() cur_num_source = max(cur_num_source, num_source) else: # otherwise, clean this inputs process_info.declare() meta_ref_proc = opt.meta_data["meta_ref"] valid_meta_ref_proc = [] for meta_proc in meta_ref_proc: if meta_proc.check_has_been_processed(verbose=False): valid_meta_ref_proc.append(meta_proc) ## 3.1 update the personalization.txt checkpoints_dir = opt.meta_data["checkpoints_dir"] with open(os.path.join(checkpoints_dir, "personalization.txt"), "w") as writer: for meta_src in valid_meta_src_proc: writer.write(meta_src.primitives_dir + "\n") # update the number sources print(f"the current number of sources are {cur_num_source}, " f"while the pre-defined number of sources are {opt.num_source}. ") opt.num_source = min(cur_num_source, opt.num_source) # update the source information opt.meta_data["meta_src"] = valid_meta_src_proc # update the reference information opt.meta_data["meta_ref"] = valid_meta_ref_proc return opt
def merge_all_source_processed_info(opt, meta_src_proc): # merge all source processed information vid_info_list = [] for i, meta_src in enumerate(meta_src_proc): """ meta_input: path: /p300/tpami/neuralAvatar/sources/fange_1/fange_1_ns=2 bg_path: /p300/tpami/neuralAvatar/sources/fange_1/IMG_7225.JPG name: fange_1 primitives_dir: ../tests/debug/primitives/fange_1 processed_dir: ../tests/debug/primitives/fange_1/processed vid_info_path: ../tests/debug/primitives/fange_1/processed/vid_info.pkl """ src_proc_info = ProcessInfo(meta_src) src_proc_info.deserialize() src_info = src_proc_info.convert_to_src_info(num_source=src_proc_info.num_sources()) vid_info_list.append(src_info) src_info_for_inference = get_src_info_for_swapper_inference(opt, vid_info_list) # return src_info_for_inference return src_info_for_inference