Spaces:
Build error
Build error
More examples + cache
Browse files- app.py +16 -6
- examples/images/dogs.jpg +3 -0
- examples/images/nascar.jpg +3 -0
- examples/images/tennis.jpg +3 -0
- examples/videos/dogs_running.mp4 +3 -0
app.py
CHANGED
|
@@ -43,6 +43,9 @@ TORCH_DTYPE = torch.float32
|
|
| 43 |
|
| 44 |
# Image
|
| 45 |
IMAGE_EXAMPLES = [
|
|
|
|
|
|
|
|
|
|
| 46 |
{"path": "./examples/images/crossroad.jpg", "use_url": False, "url": "", "label": "Local Image"},
|
| 47 |
{
|
| 48 |
"path": None,
|
|
@@ -59,6 +62,7 @@ ALLOWED_VIDEO_EXTENSIONS = {".mp4", ".avi", ".mov"}
|
|
| 59 |
VIDEO_OUTPUT_DIR = Path("static/videos")
|
| 60 |
VIDEO_OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
|
| 61 |
VIDEO_EXAMPLES = [
|
|
|
|
| 62 |
{"path": "./examples/videos/traffic.mp4", "label": "Local Video"},
|
| 63 |
{"path": "./examples/videos/fast_and_furious.mp4", "label": "Local Video"},
|
| 64 |
{"path": "./examples/videos/break_dance.mp4", "label": "Local Video"},
|
|
@@ -129,8 +133,11 @@ def process_image(
|
|
| 129 |
checkpoint: str = DEFAULT_CHECKPOINT,
|
| 130 |
image: Optional[Image.Image] = None,
|
| 131 |
url: Optional[str] = None,
|
|
|
|
| 132 |
confidence_threshold: float = DEFAULT_CONFIDENCE_THRESHOLD,
|
| 133 |
):
|
|
|
|
|
|
|
| 134 |
|
| 135 |
if (image is None) ^ bool(url):
|
| 136 |
raise ValueError(f"Either image or url must be provided, but not both.")
|
|
@@ -344,25 +351,26 @@ with gr.Blocks(theme=gr.themes.Ocean()) as demo:
|
|
| 344 |
gr.Examples(
|
| 345 |
examples=[
|
| 346 |
[
|
|
|
|
| 347 |
example["path"],
|
| 348 |
-
example["use_url"],
|
| 349 |
example["url"],
|
| 350 |
-
|
| 351 |
DEFAULT_CONFIDENCE_THRESHOLD,
|
| 352 |
]
|
| 353 |
for example in IMAGE_EXAMPLES
|
| 354 |
],
|
| 355 |
inputs=[
|
|
|
|
| 356 |
image_input,
|
| 357 |
-
use_url,
|
| 358 |
url_input,
|
| 359 |
-
|
| 360 |
image_confidence_threshold,
|
| 361 |
],
|
| 362 |
outputs=[image_output],
|
| 363 |
fn=process_image,
|
| 364 |
-
cache_examples=False,
|
| 365 |
label="Select an image example to populate inputs",
|
|
|
|
|
|
|
| 366 |
)
|
| 367 |
|
| 368 |
with gr.Tab("Video"):
|
|
@@ -389,7 +397,8 @@ with gr.Blocks(theme=gr.themes.Ocean()) as demo:
|
|
| 389 |
inputs=[video_input, video_checkpoint, video_confidence_threshold],
|
| 390 |
outputs=[video_output],
|
| 391 |
fn=process_video,
|
| 392 |
-
cache_examples=
|
|
|
|
| 393 |
label="Select a video example to populate inputs",
|
| 394 |
)
|
| 395 |
|
|
@@ -443,6 +452,7 @@ with gr.Blocks(theme=gr.themes.Ocean()) as demo:
|
|
| 443 |
image_model_checkpoint,
|
| 444 |
image_input,
|
| 445 |
url_input,
|
|
|
|
| 446 |
image_confidence_threshold,
|
| 447 |
],
|
| 448 |
outputs=[image_output],
|
|
|
|
| 43 |
|
| 44 |
# Image
|
| 45 |
IMAGE_EXAMPLES = [
|
| 46 |
+
{"path": "./examples/images/tennis.jpg", "use_url": False, "url": "", "label": "Local Image"},
|
| 47 |
+
{"path": "./examples/images/dogs.jpg", "use_url": False, "url": "", "label": "Local Image"},
|
| 48 |
+
{"path": "./examples/images/nascar.jpg", "use_url": False, "url": "", "label": "Local Image"},
|
| 49 |
{"path": "./examples/images/crossroad.jpg", "use_url": False, "url": "", "label": "Local Image"},
|
| 50 |
{
|
| 51 |
"path": None,
|
|
|
|
| 62 |
VIDEO_OUTPUT_DIR = Path("static/videos")
|
| 63 |
VIDEO_OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
|
| 64 |
VIDEO_EXAMPLES = [
|
| 65 |
+
{"path": "./examples/videos/dogs_running.mp4", "label": "Local Video"},
|
| 66 |
{"path": "./examples/videos/traffic.mp4", "label": "Local Video"},
|
| 67 |
{"path": "./examples/videos/fast_and_furious.mp4", "label": "Local Video"},
|
| 68 |
{"path": "./examples/videos/break_dance.mp4", "label": "Local Video"},
|
|
|
|
| 133 |
checkpoint: str = DEFAULT_CHECKPOINT,
|
| 134 |
image: Optional[Image.Image] = None,
|
| 135 |
url: Optional[str] = None,
|
| 136 |
+
use_url: bool = False,
|
| 137 |
confidence_threshold: float = DEFAULT_CONFIDENCE_THRESHOLD,
|
| 138 |
):
|
| 139 |
+
if not use_url:
|
| 140 |
+
url = None
|
| 141 |
|
| 142 |
if (image is None) ^ bool(url):
|
| 143 |
raise ValueError(f"Either image or url must be provided, but not both.")
|
|
|
|
| 351 |
gr.Examples(
|
| 352 |
examples=[
|
| 353 |
[
|
| 354 |
+
DEFAULT_CHECKPOINT,
|
| 355 |
example["path"],
|
|
|
|
| 356 |
example["url"],
|
| 357 |
+
example["use_url"],
|
| 358 |
DEFAULT_CONFIDENCE_THRESHOLD,
|
| 359 |
]
|
| 360 |
for example in IMAGE_EXAMPLES
|
| 361 |
],
|
| 362 |
inputs=[
|
| 363 |
+
image_model_checkpoint,
|
| 364 |
image_input,
|
|
|
|
| 365 |
url_input,
|
| 366 |
+
use_url,
|
| 367 |
image_confidence_threshold,
|
| 368 |
],
|
| 369 |
outputs=[image_output],
|
| 370 |
fn=process_image,
|
|
|
|
| 371 |
label="Select an image example to populate inputs",
|
| 372 |
+
cache_examples=True,
|
| 373 |
+
cache_mode="lazy",
|
| 374 |
)
|
| 375 |
|
| 376 |
with gr.Tab("Video"):
|
|
|
|
| 397 |
inputs=[video_input, video_checkpoint, video_confidence_threshold],
|
| 398 |
outputs=[video_output],
|
| 399 |
fn=process_video,
|
| 400 |
+
cache_examples=True,
|
| 401 |
+
cache_mode="lazy",
|
| 402 |
label="Select a video example to populate inputs",
|
| 403 |
)
|
| 404 |
|
|
|
|
| 452 |
image_model_checkpoint,
|
| 453 |
image_input,
|
| 454 |
url_input,
|
| 455 |
+
use_url,
|
| 456 |
image_confidence_threshold,
|
| 457 |
],
|
| 458 |
outputs=[image_output],
|
examples/images/dogs.jpg
ADDED
|
Git LFS Details
|
examples/images/nascar.jpg
ADDED
|
Git LFS Details
|
examples/images/tennis.jpg
ADDED
|
Git LFS Details
|
examples/videos/dogs_running.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:043c1a28bddcd9beeddbab946c38d1a91de2a18da3ae114d307cd01b30b64ca2
|
| 3 |
+
size 22119043
|