toshas commited on
Commit
b303828
·
1 Parent(s): 7067431

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, processing_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=self.format
85
  ),
86
  image_utils.postprocess_image(
87
- value[1], cache_dir=self.GRADIO_CACHE, format=self.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
  ),