sample
Browse files- app.py +1 -1
- sgm/modules/diffusionmodules/sampling.py +5 -10
app.py
CHANGED
@@ -190,7 +190,7 @@ if __name__ == "__main__":
|
|
190 |
attn_map = gr.Image(show_label=False, show_download_button=False)
|
191 |
with gr.Tab(label="Segmentation Maps"):
|
192 |
gr.Markdown("### Character-level segmentation maps (using upscaled attention maps):")
|
193 |
-
seg_map = gr.AnnotatedImage(height=384, show_label=False
|
194 |
|
195 |
# examples
|
196 |
examples = []
|
|
|
190 |
attn_map = gr.Image(show_label=False, show_download_button=False)
|
191 |
with gr.Tab(label="Segmentation Maps"):
|
192 |
gr.Markdown("### Character-level segmentation maps (using upscaled attention maps):")
|
193 |
+
seg_map = gr.AnnotatedImage(height=384, show_label=False)
|
194 |
|
195 |
# examples
|
196 |
examples = []
|
sgm/modules/diffusionmodules/sampling.py
CHANGED
@@ -268,12 +268,10 @@ class EulerEDMSampler(EDMSampler):
|
|
268 |
|
269 |
return colormap
|
270 |
|
271 |
-
def save_segment_map(self,
|
272 |
|
273 |
colormap = self.create_pascal_label_colormap()
|
274 |
-
H, W = image.shape[-2:]
|
275 |
|
276 |
-
image_ = image*0.3
|
277 |
sections = []
|
278 |
for i in range(len(tokens)):
|
279 |
attn_map = attn_maps[i]
|
@@ -285,14 +283,11 @@ class EulerEDMSampler(EDMSampler):
|
|
285 |
colored_attn_map = attn_map_t * color
|
286 |
colored_attn_map = colored_attn_map.to(device=image_.device)
|
287 |
|
288 |
-
image_ += colored_attn_map*0.7
|
289 |
sections.append(attn_map)
|
290 |
|
291 |
section = np.stack(sections)
|
292 |
np.save(f"./temp/seg_map/seg_{save_name}.npy", section)
|
293 |
|
294 |
-
save_image(image_, f"./temp/seg_map/seg_{save_name}.png", normalize=True)
|
295 |
-
|
296 |
def get_init_noise(self, cfgs, model, cond, batch, uc=None):
|
297 |
|
298 |
H, W = batch["target_size_as_tuple"][0]
|
@@ -375,8 +370,8 @@ class EulerEDMSampler(EDMSampler):
|
|
375 |
local_loss = torch.zeros(1)
|
376 |
if save_attn:
|
377 |
attn_map = model.model.diffusion_model.save_attn_map(save_name=name, tokens=batch["label"][0])
|
378 |
-
|
379 |
-
self.save_segment_map(
|
380 |
|
381 |
d = to_d(x, sigma_hat, denoised)
|
382 |
dt = append_dims(next_sigma - sigma_hat, x.ndim)
|
@@ -557,8 +552,8 @@ class EulerEDMDualSampler(EulerEDMSampler):
|
|
557 |
local_loss = torch.zeros(1)
|
558 |
if save_attn:
|
559 |
attn_map = model.model.diffusion_model.save_attn_map(save_name=name, save_single=True)
|
560 |
-
|
561 |
-
self.save_segment_map(
|
562 |
|
563 |
d = to_d(x, sigma_hat, denoised)
|
564 |
dt = append_dims(next_sigma - sigma_hat, x.ndim)
|
|
|
268 |
|
269 |
return colormap
|
270 |
|
271 |
+
def save_segment_map(self, H, W, attn_maps, tokens=None, save_name=None):
|
272 |
|
273 |
colormap = self.create_pascal_label_colormap()
|
|
|
274 |
|
|
|
275 |
sections = []
|
276 |
for i in range(len(tokens)):
|
277 |
attn_map = attn_maps[i]
|
|
|
283 |
colored_attn_map = attn_map_t * color
|
284 |
colored_attn_map = colored_attn_map.to(device=image_.device)
|
285 |
|
|
|
286 |
sections.append(attn_map)
|
287 |
|
288 |
section = np.stack(sections)
|
289 |
np.save(f"./temp/seg_map/seg_{save_name}.npy", section)
|
290 |
|
|
|
|
|
291 |
def get_init_noise(self, cfgs, model, cond, batch, uc=None):
|
292 |
|
293 |
H, W = batch["target_size_as_tuple"][0]
|
|
|
370 |
local_loss = torch.zeros(1)
|
371 |
if save_attn:
|
372 |
attn_map = model.model.diffusion_model.save_attn_map(save_name=name, tokens=batch["label"][0])
|
373 |
+
H, W = batch["target_size_as_tuple"][0]
|
374 |
+
self.save_segment_map(H, W, attn_map, tokens=batch["label"][0], save_name=name)
|
375 |
|
376 |
d = to_d(x, sigma_hat, denoised)
|
377 |
dt = append_dims(next_sigma - sigma_hat, x.ndim)
|
|
|
552 |
local_loss = torch.zeros(1)
|
553 |
if save_attn:
|
554 |
attn_map = model.model.diffusion_model.save_attn_map(save_name=name, save_single=True)
|
555 |
+
H, W = batch["target_size_as_tuple"][0]
|
556 |
+
self.save_segment_map(H, W, attn_map, tokens=batch["label"][0], save_name=name)
|
557 |
|
558 |
d = to_d(x, sigma_hat, denoised)
|
559 |
dt = append_dims(next_sigma - sigma_hat, x.ndim)
|