(self, latent, ref_images_pil=None, pose_cond_fea=None)
| 38 | |
| 39 | @torch.no_grad() |
| 40 | def ddim_loop(self, latent, ref_images_pil=None, pose_cond_fea=None): |
| 41 | cond_embeddings = self.emb_im |
| 42 | all_latent = [latent] |
| 43 | latent = latent.clone().detach() |
| 44 | print('DDIM Inversion:') |
| 45 | for i in tqdm(range(self.NUM_DDIM_STEPS)): |
| 46 | t = self.scheduler.timesteps[len(self.scheduler.timesteps) - i - 1] |
| 47 | noise_pred = self.get_noise_pred_single(latent, t, cond_embeddings, ref_images_pil=ref_images_pil, pose_cond_fea=pose_cond_fea) |
| 48 | latent = self.next_step(noise_pred, t, latent) |
| 49 | all_latent.append(latent) |
| 50 | |
| 51 | return all_latent |
| 52 | |
| 53 | def invert(self, ddim_latents, clip_emb_im=None, ref_images_pil=None, pose_cond_fea=None): |
| 54 | self.init_emb_img(clip_emb_im=clip_emb_im) |
no test coverage detected