Spaces:
Running
on
Zero
Running
on
Zero
reedmayhew
commited on
Commit
•
ce069dd
1
Parent(s):
80950c2
Update app.py
Browse files
app.py
CHANGED
@@ -44,9 +44,11 @@ def upscale_chunk(chunk, model, processor, device):
|
|
44 |
output_image = (output * 255.0).round().astype(np.uint8)
|
45 |
return Image.fromarray(output_image)
|
46 |
|
|
|
|
|
|
|
47 |
@spaces.GPU
|
48 |
def main(image, original_filename, model_choice, save_as_jpg=True, use_tiling=True):
|
49 |
-
# Resize the input image
|
50 |
image = resize_image(image)
|
51 |
|
52 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
@@ -60,25 +62,18 @@ def main(image, original_filename, model_choice, save_as_jpg=True, use_tiling=Tr
|
|
60 |
model = Swin2SRForImageSuperResolution.from_pretrained(model_paths[model_choice]).to(device)
|
61 |
|
62 |
if use_tiling:
|
63 |
-
# Split the image into chunks
|
64 |
chunks = split_image(image)
|
65 |
-
|
66 |
-
# Process each chunk
|
67 |
upscaled_chunks = []
|
68 |
for chunk, x, y in chunks:
|
69 |
upscaled_chunk = upscale_chunk(chunk, model, processor, device)
|
70 |
-
|
71 |
-
|
72 |
-
upscaled_chunks.append((upscaled_chunk, x * 4, y * 4)) # Multiply coordinates by 4 due to 4x upscaling
|
73 |
|
74 |
-
|
75 |
-
final_size = (image.width * 4 - 32, image.height * 4 - 32) # Adjust for removed pixels
|
76 |
-
upscaled_image = stitch_image(upscaled_chunks, final_size)
|
77 |
else:
|
78 |
-
# Process the entire image at once
|
79 |
upscaled_image = upscale_chunk(image, model, processor, device)
|
|
|
80 |
|
81 |
-
# Generate output filename
|
82 |
original_basename = os.path.splitext(original_filename)[0] if original_filename else "image"
|
83 |
output_filename = f"{original_basename}_upscaled"
|
84 |
|
|
|
44 |
output_image = (output * 255.0).round().astype(np.uint8)
|
45 |
return Image.fromarray(output_image)
|
46 |
|
47 |
+
def remove_boundary(image, boundary=32):
|
48 |
+
return image.crop((0, 0, image.width - boundary, image.height - boundary))
|
49 |
+
|
50 |
@spaces.GPU
|
51 |
def main(image, original_filename, model_choice, save_as_jpg=True, use_tiling=True):
|
|
|
52 |
image = resize_image(image)
|
53 |
|
54 |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
|
|
62 |
model = Swin2SRForImageSuperResolution.from_pretrained(model_paths[model_choice]).to(device)
|
63 |
|
64 |
if use_tiling:
|
|
|
65 |
chunks = split_image(image)
|
|
|
|
|
66 |
upscaled_chunks = []
|
67 |
for chunk, x, y in chunks:
|
68 |
upscaled_chunk = upscale_chunk(chunk, model, processor, device)
|
69 |
+
upscaled_chunk = remove_boundary(upscaled_chunk)
|
70 |
+
upscaled_chunks.append((upscaled_chunk, x * 4, y * 4))
|
|
|
71 |
|
72 |
+
upscaled_image = stitch_image(upscaled_chunks, (image.width * 4, image.height * 4))
|
|
|
|
|
73 |
else:
|
|
|
74 |
upscaled_image = upscale_chunk(image, model, processor, device)
|
75 |
+
upscaled_image = remove_boundary(upscaled_image)
|
76 |
|
|
|
77 |
original_basename = os.path.splitext(original_filename)[0] if original_filename else "image"
|
78 |
output_filename = f"{original_basename}_upscaled"
|
79 |
|