Skip to content

v1.3.7

Choose a tag to compare

@PawelPeczek-Roboflow PawelPeczek-Roboflow released this 27 Jul 17:07
ea448cc

πŸš€ Added

✈️ OFFLINE_MODE β€” air-gapped deployments

Inference servers can now run fully air-gapped (@alexnorell, #2263). The supported flow is deliberately simple:

  1. Warm a mounted cache while network access and a Roboflow API key are available.
  2. Restart the same deployment with the same cache, OFFLINE_MODE=True, and no API key.
  3. Cached model metadata, weights, and Workflow specifications load with no built-in Roboflow API calls, no retries, and no cache-expiration failures.

πŸ“ YOLO26 depth estimation

Public-pretrained YOLO26 depth estimation lands end-to-end as a drop-in alternative to Depth Anything (@leeclemnet,
#2691): inference_models backends for ONNX, TorchScript, and TensorRT (Ultralytics -depth pretrains, 768Γ—768, metric log-depth head), public aliases yolo26{n,s,m,l,x}-depth-768, and the same five variants selectable in the roboflow_core/depth_estimation@v1 Workflow block. Outputs are normalized to Depth Anything's disparity-style convention (larger = closer), so downstream tooling is interchangeable; the block's default model is unchanged.

Alongside it, depth maps got dramatically cheaper on the wire (@leeclemnet, #2693): the SDK now requests the normalized depth map as a base64 PNG16 (uint16 quantization of the normalized map) instead of a JSON list of floats β€” roughly 17 MB β†’ ~1 MB for a typical single-image response, with matching decode-time wins.
Raw HTTP callers are unaffected (the server-side default response format is still json), and the SDK decoder transparently accepts responses from older servers.

πŸ”₯ New workflow blocks

  • Detections Nearest Neighbor (roboflow_core/detections_nearest_neighbor@v1) β€” a nearest-neighbor spatial join between two detection sets: for each query detection it finds the closest target detection(s) by 2D pixel distance between configurable anchor points (bbox corners/edges/center, or a named keypoint), with tie-awareness, self-match exclusion, and an optional max_distance cutoff (@bczifra, #2698). Emits enriched query predictions (nearest_target_distance) plus index-aligned matched-query/matched-target sets ready for standard downstream blocks.
  • Grid Visualization now accepts multiple image inputs directly (@leeclemnet, #2694).

πŸŽ›οΈ Execution & operations

  • Per-run workflow sink disabling β€” a disable_sinks API parameter, delivered to sink blocks through the existing dependency-injection system, turns off built-in sink side effects for a single run while the rest of the workflow executes normally; all 22 built-in side-effect sinks honor it with no manifest or spec changes (@joaomarcoscrs, #2697).
  • TensorRT engine builds announce themselves β€” with the TRT execution provider and a cold engine cache, the first inference silently compiles an engine (measured ~9.5 minutes for a single COCO object-detection model on an Orin 16 GB) while requests time out. The server now logs an explicit warning at session-configuration time, pointing at the mitigation: persist MODEL_CACHE_DIR (@sberan, #2703).
  • Billable and errored usage are aggregated separately β€” usage records now partition by billability, request outcome, structured error_type, and bounded HTTP error_status_code (400–599), so a failed request can no longer blend into a billable aggregate; billing intent is preserved and policy stays with the Roboflow backend. Payload schema is additive-only (@hansent, #2692).
  • Roboflow API calls now default to a 120-second timeout (ROBOFLOW_API_REQUEST_TIMEOUT) instead of waiting indefinitely (@sberan, #2702).

πŸ”§ Fixed

  • Instance-segmentation dense-mask post-processing memory bounded β€” mask upscaling now runs in fixed-size chunks and RF-DETR segmentation applies the standard max_detections cap (default 300, overridable via INFERENCE_MODELS_RFDETR_DEFAULT_MAX_DETECTIONS) before the expensive full-resolution work. Peak CUDA memory on a dense-instance workload dropped 17.1 GiB β†’ 4.2 GiB with no wall-time regression (@bigbitbus, #2682).
  • Model-access failures keep their real HTTP statuses β€” Execution Engine v1.12.1 propagates upstream model-access errors (401/402/403/404…) through workflow runs instead of collapsing them into generic 500s (@hansent, #2690; @dkosowski87, #2709).
  • PP-OCR β€” authorization fixed on Serverless (@Erol444, #2646), and the route now returns a clean 404 when the inference_models stack is disabled instead of an internal error (@dkosowski87, #2707).
  • Phantom keypoints eliminated β€” padded keypoint slots are no longer emitted as real keypoints in predictions (@kounelisagis,
    #2677).
  • detections_overlaps kind round-trips β€” serializer and deserializer registered, so the kind survives workflow JSON output/input (@kounelisagis, #2638).
  • Grounding DINO accepts both canonical and legacy BERT cache layouts, so existing warmed caches keep working after the cache-layout changes (@dkosowski87, #2716).
  • SAM3 package load no longer requires sam_configuration.json (@grzegorz-roboflow, #2678).
  • Local package imports no longer write .pyc bytecode during module execution, keeping mounted/read-only caches byte-stable (@dkosowski87, #2713).
  • Pre-release security patches β€” landing-page npm dependency chain moved to patched versions and Python dependency bumps rolled up ahead of the release (@PawelPeczek-Roboflow, #2715).

🚧 Maintenance


πŸ“¦ Side note: dual GPU build for Cosmos 3

There is still no released transformers version that ships the NVIDIA Cosmos 3 model code, so this release again publishes two GPU server builds:

  • roboflow/roboflow-inference-server-gpu:1.3.7 β€” the standard build, with the regular dependency stack (no Cosmos 3).

  • roboflow/roboflow-inference-server-gpu:1.3.7-cosmos3 β€” identical server, but with the custom transformers dependency set required by NVIDIA Cosmos 3 Edge:

    docker pull roboflow/roboflow-inference-server-gpu:1.3.7-cosmos3

Use the -cosmos3 tag only if you need the Cosmos 3 Edge preview self-hosted; all other images are single-build.


Full changelog: v1.3.6...v1.3.7