openai / guided-diffusion

MIT License
6.03k stars 803 forks source link

The generated image is too dark from official 256x256_diffusion_uncond.pt #61

Closed fido20160817 closed 2 years ago

fido20160817 commented 2 years ago

The generated image is too dark from official 256x256_diffusion_uncond.pt, anybody know about this?

20220811-214840

specifically, in 'image_sample.py': copy sample before doing transformation on sample

sample_copy = sample
sample = ((sample + 1) * 127.5).clamp(0, 255).to(th.uint8)
sample = sample.permute(0, 2, 3, 1)
sample = sample.contiguous() # 4, 64, 64, 3

and save the sample_copy at last:

for i in range(sample_copy.shape[0]):
        image_tensor = sample_copy[i].unsqueeze(0)
        if i == 0:
            image_tensor_last = image_tensor
            continue
        image_tensor_last = th.cat((image_tensor_last, image_tensor), 0)
images_tensor = image_tensor_last
vutils.save_image(images_tensor.float(), out_path, nrow=args.num_samples, padding=0, normalize=False)
fido20160817 commented 2 years ago

The following will generate normal rgb images:

for i in range(sample_copy.shape[0]):
        image_tensor = sample_copy[i].unsqueeze(0)
        if i == 0:
            image_tensor_last = image_tensor
            continue
        image_tensor_last = th.cat((image_tensor_last, image_tensor), 0)
images_tensor = (image_tensor_last + 1) / 2
vutils.save_image(images_tensor.float(), out_path, nrow=args.num_samples, padding=0, normalize=False)
huanranchen commented 11 months ago

The following will generate normal rgb images:

for i in range(sample_copy.shape[0]):
        image_tensor = sample_copy[i].unsqueeze(0)
        if i == 0:
            image_tensor_last = image_tensor
            continue
        image_tensor_last = th.cat((image_tensor_last, image_tensor), 0)
images_tensor = (image_tensor_last + 1) / 2
vutils.save_image(images_tensor.float(), out_path, nrow=args.num_samples, padding=0, normalize=False)

What's the difference?