mirror of
https://github.com/gradio-app/gradio.git
synced 2025-03-25 12:10:31 +08:00
Fix cache examples for audio, video and image (#1459)
* image examples fix * fix image test * fix cache examples for audio and video * fix tests * fix audio test * fix restore flagged file * fix tests * reformat * tests fixes * fix test * reformat * format * fix test * reformat * fix image test * renamed video demo * removed redundant test that may have been causing rate limiting Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
This commit is contained in:
parent
ddd7fa13dc
commit
f374eec22d
@ -13,7 +13,10 @@ def reverse_audio(audio):
|
||||
demo = gr.Interface(fn=reverse_audio,
|
||||
inputs="microphone",
|
||||
outputs="audio",
|
||||
examples=os.path.join(os.path.dirname(__file__), "audio"))
|
||||
examples=[
|
||||
os.path.join(os.path.dirname(__file__), "audio/cantina.wav"),
|
||||
os.path.join(os.path.dirname(__file__), "audio/recording1.wav")
|
||||
], cache_examples=True)
|
||||
|
||||
if __name__ == "__main__":
|
||||
demo.launch()
|
||||
|
@ -1,11 +0,0 @@
|
||||
import gradio as gr
|
||||
|
||||
|
||||
def video_flip(video):
|
||||
return video
|
||||
|
||||
|
||||
demo = gr.Interface(video_flip, gr.Video(), "playable_video")
|
||||
|
||||
if __name__ == "__main__":
|
||||
demo.launch()
|
18
demo/video_identity/run.py
Normal file
18
demo/video_identity/run.py
Normal file
@ -0,0 +1,18 @@
|
||||
import gradio as gr
|
||||
import os
|
||||
|
||||
|
||||
def video_identity(video):
|
||||
return video
|
||||
|
||||
|
||||
demo = gr.Interface(video_identity,
|
||||
gr.Video(),
|
||||
"playable_video",
|
||||
examples=[
|
||||
os.path.join(os.path.dirname(__file__),
|
||||
"video/video_sample.mp4")],
|
||||
cache_examples=True)
|
||||
|
||||
if __name__ == "__main__":
|
||||
demo.launch()
|
Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 210 KiB |
BIN
demo/video_identity/video/video_sample.mp4
Normal file
BIN
demo/video_identity/video/video_sample.mp4
Normal file
Binary file not shown.
@ -147,14 +147,23 @@ class IOComponent(Component):
|
||||
dir: str,
|
||||
file: str,
|
||||
encryption_key: bool,
|
||||
as_data: bool = False,
|
||||
) -> Dict[str, Any]:
|
||||
"""
|
||||
Loads flagged data from file and returns it
|
||||
"""
|
||||
data = processing_utils.encode_file_to_base64(
|
||||
os.path.join(dir, file), encryption_key=encryption_key
|
||||
)
|
||||
return {"name": file, "data": data}
|
||||
if as_data:
|
||||
data = processing_utils.encode_file_to_base64(
|
||||
os.path.join(dir, file), encryption_key=encryption_key
|
||||
)
|
||||
return {"name": file, "data": data}
|
||||
else:
|
||||
return {
|
||||
"name": os.path.join(dir, file),
|
||||
"data": os.path.join(dir, file),
|
||||
"file_name": file,
|
||||
"is_example": True,
|
||||
}
|
||||
|
||||
# Input Functionalities
|
||||
def preprocess(self, x: Any) -> Any:
|
||||
@ -1547,7 +1556,9 @@ class Image(Editable, Clearable, Changeable, Streamable, IOComponent):
|
||||
return self.save_flagged_file(dir, label, data, encryption_key)
|
||||
|
||||
def restore_flagged(self, dir, data, encryption_key):
|
||||
return os.path.join(dir, data)
|
||||
return processing_utils.encode_file_to_base64(
|
||||
os.path.join(dir, data), encryption_key=encryption_key
|
||||
)
|
||||
|
||||
def generate_sample(self):
|
||||
return deepcopy(media_data.BASE64_IMAGE)
|
||||
@ -1580,8 +1591,7 @@ class Image(Editable, Clearable, Changeable, Streamable, IOComponent):
|
||||
return out_y
|
||||
|
||||
def deserialize(self, x):
|
||||
y = processing_utils.decode_base64_to_file(x).name
|
||||
return y
|
||||
return processing_utils.decode_base64_to_file(x).name
|
||||
|
||||
def style(
|
||||
self,
|
||||
@ -1618,7 +1628,7 @@ class Video(Changeable, Clearable, Playable, IOComponent):
|
||||
Preprocessing: passes the uploaded video as a {str} filepath whose extension can be set by `format`.
|
||||
Postprocessing: expects a {str} filepath to a video which is displayed.
|
||||
|
||||
Demos: video_flip
|
||||
Demos: video_identity
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
@ -1727,6 +1737,9 @@ class Video(Changeable, Clearable, Playable, IOComponent):
|
||||
dir, label, None if data is None else data["data"], encryption_key
|
||||
)
|
||||
|
||||
def restore_flagged(self, dir, data, encryption_key):
|
||||
return self.restore_flagged_file(dir, data, encryption_key)
|
||||
|
||||
def generate_sample(self):
|
||||
return deepcopy(media_data.BASE64_VIDEO)
|
||||
|
||||
@ -2016,9 +2029,11 @@ class Audio(Changeable, Clearable, Playable, Streamable, IOComponent):
|
||||
if is_example:
|
||||
file_obj = processing_utils.create_tmp_copy_of_file(data["name"])
|
||||
return self.save_file(file_obj, dir, label)
|
||||
|
||||
return self.save_flagged_file(dir, label, data_string, encryption_key)
|
||||
|
||||
def restore_flagged(self, dir, data, encryption_key):
|
||||
return self.restore_flagged_file(dir, data, encryption_key)
|
||||
|
||||
def generate_sample(self):
|
||||
return deepcopy(media_data.BASE64_AUDIO)
|
||||
|
||||
@ -3460,7 +3475,7 @@ class Model3D(Changeable, Editable, Clearable, IOComponent):
|
||||
return processing_utils.decode_base64_to_file(x).name
|
||||
|
||||
def restore_flagged(self, dir, data, encryption_key):
|
||||
return self.restore_flagged_file(dir, data, encryption_key)
|
||||
return self.restore_flagged_file(dir, data, encryption_key, as_data=True)
|
||||
|
||||
def style(
|
||||
self,
|
||||
|
@ -588,7 +588,7 @@ class TestImage(unittest.TestCase):
|
||||
to_save = image_input.save_flagged(tmpdirname, "image_input", img, None)
|
||||
self.assertEqual("image_input/1.png", to_save)
|
||||
restored = image_input.restore_flagged(tmpdirname, to_save, None)
|
||||
self.assertEqual(restored, os.path.join(tmpdirname, "image_input/1.png"))
|
||||
self.assertEqual(restored, media_data.BASE64_IMAGE)
|
||||
|
||||
self.assertIsInstance(image_input.generate_sample(), str)
|
||||
image_input = gr.Image(
|
||||
@ -779,7 +779,7 @@ class TestAudio(unittest.TestCase):
|
||||
to_save = audio_input.save_flagged(tmpdirname, "audio_input", x_wav, None)
|
||||
self.assertEqual("audio_input/1.wav", to_save)
|
||||
restored = audio_input.restore_flagged(tmpdirname, to_save, None)
|
||||
self.assertEqual(restored, "audio_input/1.wav")
|
||||
self.assertEqual(restored["file_name"], "audio_input/1.wav")
|
||||
|
||||
self.assertIsInstance(audio_input.generate_sample(), dict)
|
||||
audio_input = gr.Audio(label="Upload Your Audio")
|
||||
@ -920,7 +920,7 @@ class TestFile(unittest.TestCase):
|
||||
to_save = file_input.save_flagged(tmpdirname, "file_input", [x_file], None)
|
||||
self.assertEqual("file_input/1", to_save)
|
||||
restored = file_input.restore_flagged(tmpdirname, to_save, None)
|
||||
self.assertEqual(restored["name"], "file_input/1")
|
||||
self.assertEqual(restored["file_name"], "file_input/1")
|
||||
|
||||
self.assertIsInstance(file_input.generate_sample(), dict)
|
||||
file_input = gr.File(label="Upload Your File")
|
||||
@ -1154,7 +1154,7 @@ class TestVideo(unittest.TestCase):
|
||||
to_save = video_input.save_flagged(tmpdirname, "video_input", x_video, None)
|
||||
self.assertEqual("video_input/1.mp4", to_save)
|
||||
restored = video_input.restore_flagged(tmpdirname, to_save, None)
|
||||
self.assertEqual(restored, "video_input/1.mp4")
|
||||
self.assertEqual(restored["file_name"], "video_input/1.mp4")
|
||||
|
||||
self.assertIsInstance(video_input.generate_sample(), dict)
|
||||
video_input = gr.Video(label="Upload Your Video")
|
||||
|
@ -199,15 +199,6 @@ class TestLoadInterface(unittest.TestCase):
|
||||
filename = io("chest")
|
||||
self.assertTrue(filename.endswith(".jpg") or filename.endswith(".jpeg"))
|
||||
|
||||
def test_image_to_image_space(self):
|
||||
def assertIsFile(path):
|
||||
if not pathlib.Path(path).resolve().is_file():
|
||||
raise AssertionError("File does not exist: %s" % str(path))
|
||||
|
||||
io = gr.Interface.load("spaces/abidlabs/image-identity")
|
||||
output = io("gradio/test_data/lion.jpg")
|
||||
assertIsFile(output)
|
||||
|
||||
|
||||
class TestLoadFromPipeline(unittest.TestCase):
|
||||
def test_text_to_text_model_from_pipeline(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user