|
|
|
@ -37,12 +37,13 @@ class Latent2RGBPreviewer(LatentPreviewer):
|
|
|
|
|
self.latent_rgb_factors = torch.tensor(latent_rgb_factors, device="cpu")
|
|
|
|
|
|
|
|
|
|
def decode_latent_to_preview(self, x0):
|
|
|
|
|
latent_image = x0[0].permute(1, 2, 0).cpu() @ self.latent_rgb_factors
|
|
|
|
|
self.latent_rgb_factors = self.latent_rgb_factors.to(dtype=x0.dtype, device=x0.device)
|
|
|
|
|
latent_image = x0[0].permute(1, 2, 0) @ self.latent_rgb_factors
|
|
|
|
|
|
|
|
|
|
latents_ubyte = (((latent_image + 1) / 2)
|
|
|
|
|
.clamp(0, 1) # change scale from -1..1 to 0..1
|
|
|
|
|
.mul(0xFF) # to 0..255
|
|
|
|
|
.byte()).cpu()
|
|
|
|
|
).to(device="cpu", dtype=torch.uint8, non_blocking=True)
|
|
|
|
|
|
|
|
|
|
return Image.fromarray(latents_ubyte.numpy())
|
|
|
|
|
|
|
|
|
|