(self, res_frame_queue, video_len, skip_save_images)
| 210 | torch.save(self.input_latent_list_cycle, os.path.join(self.latents_out_path)) |
| 211 | |
| 212 | def process_frames(self, res_frame_queue, video_len, skip_save_images): |
| 213 | print(video_len) |
| 214 | while True: |
| 215 | if self.idx >= video_len - 1: |
| 216 | break |
| 217 | try: |
| 218 | start = time.time() |
| 219 | res_frame = res_frame_queue.get(block=True, timeout=1) |
| 220 | except queue.Empty: |
| 221 | continue |
| 222 | |
| 223 | bbox = self.coord_list_cycle[self.idx % (len(self.coord_list_cycle))] |
| 224 | ori_frame = copy.deepcopy(self.frame_list_cycle[self.idx % (len(self.frame_list_cycle))]) |
| 225 | x1, y1, x2, y2 = bbox |
| 226 | try: |
| 227 | res_frame = cv2.resize(res_frame.astype(np.uint8), (x2 - x1, y2 - y1)) |
| 228 | except: |
| 229 | continue |
| 230 | mask = self.mask_list_cycle[self.idx % (len(self.mask_list_cycle))] |
| 231 | mask_crop_box = self.mask_coords_list_cycle[self.idx % (len(self.mask_coords_list_cycle))] |
| 232 | combine_frame = get_image_blending(ori_frame,res_frame,bbox,mask,mask_crop_box) |
| 233 | |
| 234 | if skip_save_images is False: |
| 235 | cv2.imwrite(f"{self.avatar_path}/tmp/{str(self.idx).zfill(8)}.png", combine_frame) |
| 236 | self.idx = self.idx + 1 |
| 237 | |
| 238 | @torch.no_grad() |
| 239 | def inference(self, audio_path, out_vid_name, fps, skip_save_images): |
nothing calls this directly
no test coverage detected