Merge pull request #4371 from hotdogee/master
Fixes #800 #1562 #2075 #2304 #2931 LDSR upscaler producing black bars
This commit is contained in:
commit
ea5b90b3b3
1 changed files with 11 additions and 3 deletions
|
@ -101,8 +101,8 @@ class LDSR:
|
||||||
down_sample_rate = target_scale / 4
|
down_sample_rate = target_scale / 4
|
||||||
wd = width_og * down_sample_rate
|
wd = width_og * down_sample_rate
|
||||||
hd = height_og * down_sample_rate
|
hd = height_og * down_sample_rate
|
||||||
width_downsampled_pre = int(wd)
|
width_downsampled_pre = int(np.ceil(wd))
|
||||||
height_downsampled_pre = int(hd)
|
height_downsampled_pre = int(np.ceil(hd))
|
||||||
|
|
||||||
if down_sample_rate != 1:
|
if down_sample_rate != 1:
|
||||||
print(
|
print(
|
||||||
|
@ -110,7 +110,12 @@ class LDSR:
|
||||||
im_og = im_og.resize((width_downsampled_pre, height_downsampled_pre), Image.LANCZOS)
|
im_og = im_og.resize((width_downsampled_pre, height_downsampled_pre), Image.LANCZOS)
|
||||||
else:
|
else:
|
||||||
print(f"Down sample rate is 1 from {target_scale} / 4 (Not downsampling)")
|
print(f"Down sample rate is 1 from {target_scale} / 4 (Not downsampling)")
|
||||||
logs = self.run(model["model"], im_og, diffusion_steps, eta)
|
|
||||||
|
# pad width and height to multiples of 64, pads with the edge values of image to avoid artifacts
|
||||||
|
pad_w, pad_h = np.max(((2, 2), np.ceil(np.array(im_og.size) / 64).astype(int)), axis=0) * 64 - im_og.size
|
||||||
|
im_padded = Image.fromarray(np.pad(np.array(im_og), ((0, pad_h), (0, pad_w), (0, 0)), mode='edge'))
|
||||||
|
|
||||||
|
logs = self.run(model["model"], im_padded, diffusion_steps, eta)
|
||||||
|
|
||||||
sample = logs["sample"]
|
sample = logs["sample"]
|
||||||
sample = sample.detach().cpu()
|
sample = sample.detach().cpu()
|
||||||
|
@ -120,6 +125,9 @@ class LDSR:
|
||||||
sample = np.transpose(sample, (0, 2, 3, 1))
|
sample = np.transpose(sample, (0, 2, 3, 1))
|
||||||
a = Image.fromarray(sample[0])
|
a = Image.fromarray(sample[0])
|
||||||
|
|
||||||
|
# remove padding
|
||||||
|
a = a.crop((0, 0) + tuple(np.array(im_og.size) * 4))
|
||||||
|
|
||||||
del model
|
del model
|
||||||
gc.collect()
|
gc.collect()
|
||||||
torch.cuda.empty_cache()
|
torch.cuda.empty_cache()
|
||||||
|
|
Loading…
Reference in a new issue