Spaces:
Sleeping
Sleeping
clean up format in postprocessing
Browse files
gradio_dualvision/gradio_patches/imageslider.py
CHANGED
|
@@ -28,8 +28,9 @@ from pathlib import Path
|
|
| 28 |
from typing import Union, Tuple, Optional
|
| 29 |
|
| 30 |
import gradio
|
|
|
|
| 31 |
from PIL import Image
|
| 32 |
-
from gradio import image_utils
|
| 33 |
from gradio_client import utils as client_utils
|
| 34 |
from gradio.components.imageslider import image_tuple
|
| 35 |
from gradio.data_classes import GradioRootModel, JsonData, ImageData
|
|
@@ -46,24 +47,6 @@ class ImageSliderPlusData(GradioRootModel):
|
|
| 46 |
class ImageSlider(gradio.ImageSlider):
|
| 47 |
data_model = ImageSliderPlusData
|
| 48 |
|
| 49 |
-
# def _postprocess_image(self, y: np.ndarray | PIL.Image.Image | str | Path | None):
|
| 50 |
-
# if isinstance(y, np.ndarray):
|
| 51 |
-
# format = "png" if y.dtype == np.uint16 and y.squeeze().ndim == 2 else "webp"
|
| 52 |
-
# path = processing_utils.save_img_array_to_cache(
|
| 53 |
-
# y, cache_dir=self.GRADIO_CACHE, format=format
|
| 54 |
-
# )
|
| 55 |
-
# elif isinstance(y, Image.Image):
|
| 56 |
-
# format = "png" if y.mode == "I;16" else "webp"
|
| 57 |
-
# path = processing_utils.save_pil_to_cache(
|
| 58 |
-
# y, cache_dir=self.GRADIO_CACHE, format=format
|
| 59 |
-
# )
|
| 60 |
-
# elif isinstance(y, (str, Path)):
|
| 61 |
-
# path = y if isinstance(y, str) else str(utils.abspath(y))
|
| 62 |
-
# else:
|
| 63 |
-
# raise ValueError("Cannot process this value as an Image")
|
| 64 |
-
#
|
| 65 |
-
# return path
|
| 66 |
-
|
| 67 |
def postprocess(
|
| 68 |
self,
|
| 69 |
value: image_tuple,
|
|
@@ -78,13 +61,17 @@ class ImageSlider(gradio.ImageSlider):
|
|
| 78 |
with open(settings_candidate_path, "r") as fp:
|
| 79 |
settings = json.load(fp)
|
| 80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
return ImageSliderPlusData(
|
| 82 |
root=(
|
| 83 |
image_utils.postprocess_image(
|
| 84 |
-
value[0], cache_dir=self.GRADIO_CACHE, format=
|
| 85 |
),
|
| 86 |
image_utils.postprocess_image(
|
| 87 |
-
value[1], cache_dir=self.GRADIO_CACHE, format=
|
| 88 |
),
|
| 89 |
JsonData(settings),
|
| 90 |
),
|
|
|
|
| 28 |
from typing import Union, Tuple, Optional
|
| 29 |
|
| 30 |
import gradio
|
| 31 |
+
import numpy as np
|
| 32 |
from PIL import Image
|
| 33 |
+
from gradio import image_utils
|
| 34 |
from gradio_client import utils as client_utils
|
| 35 |
from gradio.components.imageslider import image_tuple
|
| 36 |
from gradio.data_classes import GradioRootModel, JsonData, ImageData
|
|
|
|
| 47 |
class ImageSlider(gradio.ImageSlider):
|
| 48 |
data_model = ImageSliderPlusData
|
| 49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
def postprocess(
|
| 51 |
self,
|
| 52 |
value: image_tuple,
|
|
|
|
| 61 |
with open(settings_candidate_path, "r") as fp:
|
| 62 |
settings = json.load(fp)
|
| 63 |
|
| 64 |
+
fn_format_selector = lambda x: "png" if (isinstance(x, np.ndarray) and x.dtype == np.uint16 and x.squeeze().ndim == 2) or (isinstance(x, Image.Image) and x.mode == "I;16") else self.format
|
| 65 |
+
format_0 = fn_format_selector(value[0])
|
| 66 |
+
format_1 = fn_format_selector(value[1])
|
| 67 |
+
|
| 68 |
return ImageSliderPlusData(
|
| 69 |
root=(
|
| 70 |
image_utils.postprocess_image(
|
| 71 |
+
value[0], cache_dir=self.GRADIO_CACHE, format=format_0
|
| 72 |
),
|
| 73 |
image_utils.postprocess_image(
|
| 74 |
+
value[1], cache_dir=self.GRADIO_CACHE, format=format_1
|
| 75 |
),
|
| 76 |
JsonData(settings),
|
| 77 |
),
|