wjs0725 commited on
Commit
58c38c2
·
verified ·
1 Parent(s): aca4c0c

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +2 -24
app.py CHANGED
@@ -62,17 +62,12 @@ class FluxEditor:
62
  # init all components
63
  self.t5 = load_t5(self.device, max_length=256 if self.name == "flux-schnell" else 512)
64
  self.clip = load_clip(self.device)
65
- self.model = load_flow_model(self.name, device="cpu" if self.offload else self.device)
66
- self.ae = load_ae(self.name, device="cpu" if self.offload else self.device)
67
  self.t5.eval()
68
  self.clip.eval()
69
  self.ae.eval()
70
  self.model.eval()
71
-
72
- if self.offload:
73
- self.model.cpu()
74
- torch.cuda.empty_cache()
75
- self.ae.encoder.to(self.device)
76
 
77
  @torch.inference_mode()
78
  @spaces.GPU(duration=30)
@@ -111,11 +106,6 @@ class FluxEditor:
111
  t0 = time.perf_counter()
112
 
113
  opts.seed = None
114
- if self.offload:
115
- self.ae = self.ae.cpu()
116
- torch.cuda.empty_cache()
117
- self.t5, self.clip = self.t5.to(self.device), self.clip.to(self.device)
118
-
119
  #############inverse#######################
120
  info = {}
121
  info['feature'] = {}
@@ -129,12 +119,6 @@ class FluxEditor:
129
  inp_target = prepare(self.t5, self.clip, init_image, prompt=opts.target_prompt)
130
  timesteps = get_schedule(opts.num_steps, inp["img"].shape[1], shift=(self.name != "flux-schnell"))
131
 
132
- # offload TEs to CPU, load model to gpu
133
- if self.offload:
134
- self.t5, self.clip = self.t5.cpu(), self.clip.cpu()
135
- torch.cuda.empty_cache()
136
- self.model = self.model.to(self.device)
137
-
138
  # inversion initial noise
139
  with torch.no_grad():
140
  z, info = denoise(self.model, **inp, timesteps=timesteps, guidance=1, inverse=True, info=info)
@@ -146,12 +130,6 @@ class FluxEditor:
146
  # denoise initial noise
147
  x, _ = denoise(self.model, **inp_target, timesteps=timesteps, guidance=guidance, inverse=False, info=info)
148
 
149
- # offload model, load autoencoder to gpu
150
- if self.offload:
151
- self.model.cpu()
152
- torch.cuda.empty_cache()
153
- self.ae.decoder.to(x.device)
154
-
155
  # decode latents to pixel space
156
  x = unpack(x.float(), opts.width, opts.height)
157
 
 
62
  # init all components
63
  self.t5 = load_t5(self.device, max_length=256 if self.name == "flux-schnell" else 512)
64
  self.clip = load_clip(self.device)
65
+ self.model = load_flow_model(self.name, device='cuda')
66
+ self.ae = load_ae(self.name, device='cuda' if self.offload else self.device)
67
  self.t5.eval()
68
  self.clip.eval()
69
  self.ae.eval()
70
  self.model.eval()
 
 
 
 
 
71
 
72
  @torch.inference_mode()
73
  @spaces.GPU(duration=30)
 
106
  t0 = time.perf_counter()
107
 
108
  opts.seed = None
 
 
 
 
 
109
  #############inverse#######################
110
  info = {}
111
  info['feature'] = {}
 
119
  inp_target = prepare(self.t5, self.clip, init_image, prompt=opts.target_prompt)
120
  timesteps = get_schedule(opts.num_steps, inp["img"].shape[1], shift=(self.name != "flux-schnell"))
121
 
 
 
 
 
 
 
122
  # inversion initial noise
123
  with torch.no_grad():
124
  z, info = denoise(self.model, **inp, timesteps=timesteps, guidance=1, inverse=True, info=info)
 
130
  # denoise initial noise
131
  x, _ = denoise(self.model, **inp_target, timesteps=timesteps, guidance=guidance, inverse=False, info=info)
132
 
 
 
 
 
 
 
133
  # decode latents to pixel space
134
  x = unpack(x.float(), opts.width, opts.height)
135