Barak1 commited on
Commit
f04fc45
·
1 Parent(s): 9f85dcb

moving pipe_inversion to cpu after first inversion to save memory

Browse files
Files changed (1) hide show
  1. src/editor.py +8 -4
src/editor.py CHANGED
@@ -47,22 +47,26 @@ class ImageEditorDemo:
47
  noise = [randn_tensor(latents_size, dtype=torch.float16, device=torch.device(device), generator=g_cpu) for i
48
  in range(cfg.num_inversion_steps)]
49
  pipe_inversion.scheduler.set_noise_list(noise)
50
- pipe_inference.scheduler.set_noise_list(noise)
51
  pipe_inversion.scheduler_inference.set_noise_list(noise)
52
  pipe_inversion.set_progress_bar_config(disable=True)
53
- pipe_inference.set_progress_bar_config(disable=True)
54
  self.cfg = cfg
55
  self.pipe_inversion.cfg = cfg
56
  self.pipe_inference.cfg = cfg
57
  self.inv_hp = inv_hp # [2, 0.1, 0.2]
58
  self.edit_cfg = cfg.edit_guidance_scale
59
 
60
- self.pipe_inference.to(device)
61
  self.pipe_inversion.to(device)
62
-
63
  self.last_latent = self.invert(self.original_image, description_prompt)
64
  self.original_latent = self.last_latent
65
 
 
 
 
 
 
 
 
 
66
  def invert(self, init_image, base_prompt):
67
  res = self.pipe_inversion(prompt=base_prompt,
68
  num_inversion_steps=self.cfg.num_inversion_steps,
 
47
  noise = [randn_tensor(latents_size, dtype=torch.float16, device=torch.device(device), generator=g_cpu) for i
48
  in range(cfg.num_inversion_steps)]
49
  pipe_inversion.scheduler.set_noise_list(noise)
 
50
  pipe_inversion.scheduler_inference.set_noise_list(noise)
51
  pipe_inversion.set_progress_bar_config(disable=True)
 
52
  self.cfg = cfg
53
  self.pipe_inversion.cfg = cfg
54
  self.pipe_inference.cfg = cfg
55
  self.inv_hp = inv_hp # [2, 0.1, 0.2]
56
  self.edit_cfg = cfg.edit_guidance_scale
57
 
 
58
  self.pipe_inversion.to(device)
 
59
  self.last_latent = self.invert(self.original_image, description_prompt)
60
  self.original_latent = self.last_latent
61
 
62
+ if device == 'cuda':
63
+ # after the inversion, we can move the inversion model to the CPU
64
+ self.pipe_inversion.to('cpu')
65
+
66
+ pipe_inference.scheduler.set_noise_list(noise)
67
+ pipe_inference.set_progress_bar_config(disable=True)
68
+ self.pipe_inference.to(device)
69
+
70
  def invert(self, init_image, base_prompt):
71
  res = self.pipe_inversion(prompt=base_prompt,
72
  num_inversion_steps=self.cfg.num_inversion_steps,