Skip to content

v1.7.4

Choose a tag to compare

@PawelPeczek-Roboflow PawelPeczek-Roboflow released this 09 Oct 20:51
· 46 commits to main since this release
9f67071

🚀 Added

🎬 V-JEPA 2.1 watches the whole clip

Action recognition gets a second brain next to Cosmos. Packages trained at any square frame size load through the existing endpoint, window planner and Workflow block. Ask for scored candidates and sweep thresholds without re-running the video. A 64-frame 384 px window scores in 173 ms on an L40S, author's numbers. A 2 FPS source feeding a 4 FPS model no longer skips every window (@mkaic, #3016; @dkosowski87, #3158).

📡 MQTT Writer stops holding the frame hostage

mqtt_writer_sink@v2 adds fire_and_forget. v1 waits for the broker's acknowledgement on every frame, so a broker outage drags a 10 FPS pipeline down to 2 FPS. With the switch on, the pipeline held 9.9 FPS through an 8 s outage and every QoS 1 message arrived after reconnect. Off by default; v1 untouched (@rvirani1, #3151).

🧠 Mistral Large 4 gets its own block

Through the generic OpenRouter block, Mistral Large 4 scored 8.7 mAP@50 on the vlm-exam detection set because reasoning ate the token budget before any JSON appeared. The dedicated mistral_vlm@v1 block scores 53.4 with a 0 to 999 box grid, now also selectable on openrouter@v3. Claude Haiku 5.5 joins anthropic_claude@v5 (@SkalskiP, #3140; @PawelPeczek-Roboflow, #3147).

🍎 Cosmos 3 Edge runs on the Mac GPU

Set DEFAULT_DEVICE=mps and Cosmos 3 Edge loads in about 2 s instead of segfaulting. First token on a 64-frame window: 2.8 s on an M4 Max, versus 23.5 s on the CPU path. The crash was four loader threads corrupting a shared Metal cache; weights now load on CPU and move over in one step (@digaobarbosa, #3141).

🩻 Anomaly maps without the 300 MB JSON

FoundAD and PatchCore heatmaps used to be upsampled to the photo and serialized as nested float lists. An 18 MP photo meant several hundred MB and 23 s of serialization. The map now ships at network resolution as base64 float32 bytes, 1.07 MB at 448 px, and the SDK decodes it to a NumPy array. Wire-format change for include_anomaly_map=true (@probicheaux, #3144).

🧩 Masks at the resolution you asked for

mask_decode_mode and tradeoff_factor were silently ignored on the inference-models backend. They work now behind an explicit allow_reduced_mask_resolution=true; the response carries mask_metadata with the grid and its mapping to image coordinates, and boxes share that grid. Default requests keep full-resolution masks. RF-DETR's Triton post-processor handles reduced grids too, 12 to 40 percent faster warm at factor 0.25, with a one-off ~9 s kernel compile on first use (@MTaraszewski, #3123, #3156; @dkosowski87, #3154).

⏱️ A frame now knows how long the film is

VideoMetadata.total_frames carries the source file's frame count, so frame_number / total_frames is playback progress for timeline overlays. None for live streams (@Erol444, #3122).

🔧 Fixed

  • A slow disk no longer stalls your stream — usage tracking saved its SQLite queue while holding the lock every model call needs; on a Jetson with btrfs that fsync took 30 s. The save now happens outside the lock (@shntu, #3139).
  • SAM3 on serverless runs frames in parallel — 1.96× more images per second from CPU workers, and the server reuses the model's compressed masks for RLE responses, 5.71× on an L40S (@rafel-roboflow, #3098).
  • Detections Stitch stops inflating every mask to full frame — a sliced segmentation preview that OOM-killed an 8 GiB worker now completes at a 5.9 GiB peak (@rafel-roboflow, #3073).
  • RF-DETR works in a read-only x86 GPU container — Triton's cache goes to /tmp in the gpu, gpu-cu13 and gpu-slim images, so the documented --read-only run no longer returns 500 (@JeremyGracey-AI, #3119).
  • Dataset uploads retry like everything else — image and annotation POSTs follow the existing opt-in backoff settings, rebuilding the multipart body each attempt (@sberan, #3101).
  • Workflow routes accept source and source_info — usage is attributed and aggregated per caller origin, as the model endpoints already do (@joaomarcoscrs, #3134).
  • WebRTC worker starts on Modal again — a pydantic circular import at boot is gone, and workers get a startup time limit separate from the processing one (@grzegorz-roboflow, #3120).
  • Two dead links — Slack token and Llama 3.2 license, in the block descriptions (@Erol444, #3132, #3136).

⚙️ Execution Engine v1.16.1

Stays at 1.16.1. VideoMetadata gained total_frames; existing workflows need no migration. Details in workflows/CHANGELOG.md.

🚧 Maintenance

  • Versions — inference 1.7.4, inference-models 0.39.3, roboflow-workflows 0.2.6, streamvision 0.1.1 (#3160, #3162).
  • Security refresh — dependency patches (#3155).
  • CI — tensor-native Workflow integration tests moved to an 8-core runner (@bigbitbus, #3125), hosted end-to-end tests for the newest VLM blocks (@MTaraszewski, #3133), CodeRabbit reviews on request only (#3152, #3153), the bounding-rect test survives supervision 0.30.8's vertex rounding (@alexnorell, #3131), plus a thread leak, a flaky test, a dropped cv2 test dependency and two timeouts (#3116, #3159, #3157, #3117, #3118).

🏅 New Contributors

Full Changelog: v1.7.3...v1.7.4