v1.2.8
⚠️ Deprecated
🚫 Gaze (L2CS-Net / MediaPipe) detection
Gaze detection — the roboflow_core/gaze@v1 workflow block, the POST /gaze/gaze_detection HTTP route, and the InferenceHTTPClient.detect_gazes() / detect_gazes_async() SDK helpers — has been deprecated in this release. Calling any of these now raises a new FeatureDeprecatedError that surfaces as HTTP 410 Gone with error_type: "FeatureDeprecatedError".
The Gaze pipeline was built on top of MediaPipe, which has dropped support for parts of the hardware matrix Roboflow ships against (notably some Linux/aarch64 and Jetson configurations no longer have compatible wheels), and a transitive protobuf CVE2026-0994 meant we could no longer carry the dependency alongside the rest of the inference stack.
# Old (still loads, returns 410 at execute time):
from inference_sdk import InferenceHTTPClient
client = InferenceHTTPClient(api_url="...", api_key="...")
client.detect_gazes(inference_input="image.jpg")
# → raises inference_sdk.http.errors.FeatureDeprecatedErrorImportant
The last release supporting Gaze is v1.2.7. If you currently rely on Gaze detection locally — pin to inference==1.2.7 (or the matching Docker image tag) as a short-term bridge while you plan ahead, keeping in mind that vulnerability exists in the build.
Note
The POST /gaze/gaze_detection route remains registered as a 410-Gone stub through end of Q2 2026 so existing client integrations get a structured error rather than a 404. Set CORE_MODEL_GAZE_ENABLED=False to disable it immediately.
If Gaze is important to your workflow and you'd like to discuss bringing it back paired with a different face detector, reach out at support@roboflow.com — we're happy to chat.
PR: #2334
💪 Added
🖼️ Image Stack workflow block
A new Image Stack workflow block lets you accumulate frames across executions — useful for building temporal pipelines, sliding-window inference, or any flow that needs to reason over a buffer of recent images rather than a single frame.
PR: #2307
🤖 OpenAI-compatible LLM block for custom endpoints
A new workflow block that lets you point at any OpenAI-compatible HTTP endpoint — your own self-hosted vLLM/Ollama/LM Studio deployment, a private gateway, or a third-party provider that mirrors the OpenAI API. Combined with the extra_body follow-up, you can also pass provider-specific extensions (reasoning effort, sampling tweaks, custom routing flags) through to the upstream call.
🔐 Opt-in HTTPS for the inference server
The HTTP server now supports terminating TLS directly via SSL environment variables — no reverse proxy required for simple self-hosted setups. Off by default; opt in by setting the relevant SSL env vars.
PR: #2308
🔒 Security & Hardening
- 🚫 Block legacy fine-tuned SAM3 loads — tighten the SAM3 model loading boundary so legacy fine-tuned artefacts that no longer match the supported package shape are rejected up front. #2278
- 📦 OpenTelemetry stack bumped to
1.41.x/0.62b1to clear a transitiveprotobufCVE and unlock alignment with the newerinference-modelsrelease. #2335 - 🛡️ Additional security fixes across the stack. #2336
🚧 Maintenance
- Align rfdetr preproc/postproc to rf-detr-internal by @leeclemnet in #2298
- Fix workflow block display names for acronym segments by @SolomonLake in #2320
- Fix owlv2 / rf-instant forward for best/default confidence modes by @leeclemnet in #2324
- Drop default/best confidence parametrization from OWLv2HF test by @leeclemnet in #2337
- Fix import for Gaze model by @PawelPeczek-Roboflow in #2338
- Constraint
transformerson Jetson with JP5 by @PawelPeczek-Roboflow in #2339 - Update serverless docs to v2 and prune deprecated pages by @Erol444 in #2311
- chore(docs): add GEO/SEO schema, robots.txt, git-revision-date plugin by @Borda in #2312
👋 New Contributors
Full Changelog: v1.2.7...v1.2.8