Recent Releases of inference

inference - v0.54.1

πŸ”§ Fixed

  • Fix bug with improper parsing multipart-request causing reading the request body stream twice by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1518

Full Changelog: https://github.com/roboflow/inference/compare/v0.54.0...v0.54.1

- Python
Published by PawelPeczek-Roboflow 9 months ago

inference - v0.54.0

πŸ’ͺ Added

inference server with non-blocking handlers

We redesigned request handling to eliminate event-loop blocking in FastAPI. The server now processes requests non-blocking, enabling higher concurrency and improved throughput while keeping latency about the same.

  • πŸ› οΈ Removed event-loop bottlenecks in the request pipeline
  • πŸ“ˆ Higher throughput under load
  • ⏱️ Comparable latency

ℹ️ No action required.

πŸ’» Discover server logs with ease

A fresh, at-a-glance dashboard for your Roboflow Inference serverβ€”status, metrics, and live logs in one place. All thanks to @digaobarbosa

  • 🟒 Health & Status: Server health badge, version, server ID, uptime, and memory usage.
  • πŸ“¦ Loaded Models: Clear empty state when no models are active.
  • πŸ“ˆ API Requests: Totals and success rate to monitor reliability.
  • πŸͺ΅ Live Logs: Real-time tailing with level filter, text search, auto-scroll, and β€œlatest” timestamp.
  • πŸ”„ Manual Refresh: Update metrics on demand (Refresh Data).

Where to find it: open the new Inference Dashboard from inference landing page

[!TIP] To get access to dashboard, start your inference server with the following environmental variables ENABLE_IN_MEMORY_LOGS=true and ENABLE_DASHBOARD=True

image

πŸ”§ Fixed

  • Fix copy paste in local builder by @yeldarby in https://github.com/roboflow/inference/pull/1513
  • Add missing page size parameter to list-ingest-details CLI command by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1516

Full Changelog: https://github.com/roboflow/inference/compare/v0.53.0...v0.54.0

- Python
Published by PawelPeczek-Roboflow 9 months ago

inference - v0.53.0

πŸ’ͺ Added

πŸŒ€ Execution Engine v1.6.0

No more wrestling with Batch[T] vs. scalar inputs! The engine now auto-magically wraps scalars into batches when needed, so those annoying compilation errors are history.

  • πŸͺ„ Auto Batch Casting: scalars become batches on the fly.

  • πŸ“¦ Smarter outputs: batches can expand or collapse consistently.

  • πŸ‘‰ Existing workflows keep running just fine. New workflows get all the power-ups. Only some new blocks will need to add additional manifest method to make use of new features

Please review our change log πŸ₯Ό which outlines all introduced changes.

🏷️ QR code generation in Workflows

Ever struggled to generate QR code? We have you covered now with Roboflow Workflows ✨ thanks to @Grantimus9. Visit πŸ“– docs to discover new feature.

image

🎨 Add icons to your visualisations

Bored with textual labels in your Computer Vision demos? From now on, thanks to @yeldarby you can boost your visualisations with icons. Visit πŸ“– docs to learn more.

image

βš™οΈ Maintanence

  • Claude Opus 4 and Claude Sonnet 4 added into roboflow_core/anthropic_claude@v1 block thanks to @brunopicinin in https://github.com/roboflow/inference/pull/1496
  • Refreshed model versions for Google Gemini block thanks to @brunopicinin in https://github.com/roboflow/inference/pull/1495
  • Enterprise/Industrial Integration Block Visibility by @NVergunst-ROBO in https://github.com/roboflow/inference/pull/1502

πŸ”§ Fixed

  • Add env variable to perform atomic cache writes by @sberan in https://github.com/roboflow/inference/pull/1503
  • Support max detections for OWLv2 models by @yeldarby in https://github.com/roboflow/inference/pull/1508
  • Add model-instance level thread lock on accessing ONNX session to avoid GPU execution concurrency issues by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1510

πŸ… New Contributors

  • @Grantimus9 made their first contribution in https://github.com/roboflow/inference/pull/1500
  • @NVergunst-ROBO made their first contribution in https://github.com/roboflow/inference/pull/1502

Full Changelog: https://github.com/roboflow/inference/compare/v0.52.1...v0.53.0

- Python
Published by PawelPeczek-Roboflow 9 months ago

inference - v0.52.1

Inference

  • Fault tolerant redis calls for model monitoring by @rvirani1 in https://github.com/roboflow/inference/pull/1482
  • use macos-14 for app bundle builder by @hansent in https://github.com/roboflow/inference/pull/1483
  • Update moondream2 endpoint by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1487
  • macos app inference improvements by @digaobarbosa in https://github.com/roboflow/inference/pull/1488
  • Fix nvidia T4 integration tests for moondream2 by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1490
  • Pin dockerfiles built on top of Python 3.9 to bookworm due to recent debian trixie release by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1491
  • Fix invalid batch_size string value in model registry response by @bigbitbus in https://github.com/roboflow/inference/pull/1486
  • Fix for code scanning alert no. 156: Workflow does not contain permissions by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1484
  • dashboard page by @digaobarbosa in https://github.com/roboflow/inference/pull/1489
  • Add x-goog-hash MD5 verification if MD5 is available in the header by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1492
  • Enable moondream CI by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1493

New Contributors

  • @rvirani1 made their first contribution in https://github.com/roboflow/inference/pull/1482

Full Changelog: https://github.com/roboflow/inference/compare/v0.52.0...v0.52.1

- Python
Published by grzegorz-roboflow 10 months ago

inference - v0.52.0

Inference:

  • Add line number and function name information to dynamic block errors by @brunopicinin in https://github.com/roboflow/inference/pull/1468
  • When version number is aa.bb.cc, script was not removing leading 'v' by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1470
  • Record exec time in serverless v2 when workflow results in exception by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1476
  • Removed noisy debug logline by @bigbitbus in https://github.com/roboflow/inference/pull/1478
  • Gpt 5 OpenAI block by @hansent in https://github.com/roboflow/inference/pull/1479
  • Install page with download the latest buttons by @digaobarbosa in https://github.com/roboflow/inference/pull/1475
  • Remove metlo waf by @bigbitbus in https://github.com/roboflow/inference/pull/1480

Inference experimental:

  • Run uv sync to fix inference-exp CI by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1469
  • publish inference experimental to pypi by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1472
  • Fix/inference exp pypi workflow filename by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1473
  • Lora for remaining transformer models to inference_exp by @hansent in https://github.com/roboflow/inference/pull/1462
  • Inference exp pypi publisher ci improvements by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1474
  • Fix testcliponnximagepredictionfornumpy by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1477
  • Moondream2 for inference_exp by @hansent in https://github.com/roboflow/inference/pull/1466

New Contributors

  • @digaobarbosa made their first contribution in https://github.com/roboflow/inference/pull/1475

Full Changelog: https://github.com/roboflow/inference/compare/v0.51.10...v0.52.0

- Python
Published by grzegorz-roboflow 10 months ago

inference - v0.51.10

Changes related to Inference

  • Use direct UNIX socket for container stats by @sberan in https://github.com/roboflow/inference/pull/1463
  • Fix Moondream2 by @capjamesg in https://github.com/roboflow/inference/pull/1445
  • Fix/nvidia t4 parallel by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1467

Changes related to Inference-Experimental

  • inference-exp docker builds CI refinements by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1451
  • fixes due to updates to Roboflow-GPU-VM-Runner by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1465
  • Add changes to align inference-exp with refrence RFDetr implementation by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1459

Full Changelog: https://github.com/roboflow/inference/compare/v0.51.9...v0.51.10

- Python
Published by grzegorz-roboflow 10 months ago

inference - v0.51.9

Inference

  • Expose processing time header by @stellasphere in https://github.com/roboflow/inference/pull/1449
  • Fix countinference issue by @bigbitbus in https://github.com/roboflow/inference/pull/1452
  • Fix rfdetr eps by @probicheaux in https://github.com/roboflow/inference/pull/1454
  • Install inference-cli before forcing numpy to prevent overwriting with numpy 2 by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1441
  • Fix/force numpy 1.26.4 on jetson dockers by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1457

inference-exp

  • Fix post-processing for instance-segmentation in inference-exp by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1440
  • Publish intefence exp dockers by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1443
  • inference-exp: Florence 2 LoRA by @hansent in https://github.com/roboflow/inference/pull/1442

Full Changelog: https://github.com/roboflow/inference/compare/v0.51.7...v0.51.9

- Python
Published by grzegorz-roboflow 10 months ago

inference - v0.51.7

What's Changed

  • Add new model size to rf-detr by @Matvezy in https://github.com/roboflow/inference/pull/1446

Full Changelog: https://github.com/roboflow/inference/compare/v0.51.6...v0.51.7

- Python
Published by grzegorz-roboflow 10 months ago

inference - v0.51.6

Changes to Inference:

  • Webrtc latency for heavy workflows by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1444
  • Export PYTHONPATH so inference is picked up correctly by inference-cli by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1439

Changes to Inference-Experimental:

  • Improve readme to nicely list registered models by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1437
  • Apply changes such that MPS is correctly supported for rfdetr, yet still remain non-default for MacOS by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1436

Full Changelog: https://github.com/roboflow/inference/compare/v0.51.5...v0.51.6

- Python
Published by grzegorz-roboflow 10 months ago

inference - v0.51.5

What's Changed

Changes to Inference:

  • Add inference cli to jetson dockers by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1429
  • Make inference API urls configurable for workflow remote execution by @bigbitbus in https://github.com/roboflow/inference/pull/1428
  • Set TTL for validated models to 1 hour by @bigbitbus in https://github.com/roboflow/inference/pull/1426

Changes to Inference-Experimental:

  • Fix issue with auto-loader, adjust project.toml to use new supervision and kick-off readme by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1423
  • rename from perception_encoder to perception-encoder by @hansent in https://github.com/roboflow/inference/pull/1427
  • add CLIP w/ TORCH backend to inference_experimental by @hansent in https://github.com/roboflow/inference/pull/1415
  • Improve README in terms of installation instructions and clarity by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1431
  • Fix/add cpu only tests marker by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1432
  • fix CUDA issue on inference-experimental GPU CI by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1419
  • Add improvements to auto-negotiation errors clarity by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1434

Full Changelog: https://github.com/roboflow/inference/compare/v0.51.4...v0.51.5

- Python
Published by grzegorz-roboflow 11 months ago

inference - v0.51.4

What's Changed

  • add upper bound on supervision version at 0.26.0 by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1424

Full Changelog: https://github.com/roboflow/inference/compare/v0.51.3...v0.51.4

- Python
Published by grzegorz-roboflow 11 months ago

inference - v0.51.3

What's Changed

  • Add webrtc data channel by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1406
  • Fix OSX app build / windows installer dependency issue introduced in 0.51 by @hansent in https://github.com/roboflow/inference/pull/1413
  • Add x-processing-time header to response when running on GCP_SERVERLESS by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1416
  • When wildcard output is specified, None is sent as stream output - pick first video output by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1414
  • Unit tests ci/inference v1 models by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1411
  • Test most current fastapi and typer pins by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1407
  • add perception encoder to inference_experimental by @hansent in https://github.com/roboflow/inference/pull/1399
  • Add first scratches of new interface by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1250

Full Changelog: https://github.com/roboflow/inference/compare/v0.51.2...v0.51.3

- Python
Published by grzegorz-roboflow 11 months ago

inference - v0.51.2

What's Changed

  • Improve artifact download reliability by @sberan in https://github.com/roboflow/inference/pull/1397
  • Add additional content length checks for file downloads by @sberan in https://github.com/roboflow/inference/pull/1405

Full Changelog: https://github.com/roboflow/inference/compare/v0.51.1...v0.51.2

- Python
Published by grzegorz-roboflow 11 months ago

inference - v0.51.1

⚑ Speed-ups (with https://github.com/codeflash-ai)

  • ⚑️ Speed up method RFDETRObjectDetection.postprocess by 257% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1381

πŸ’ͺ Added

  • Add variable speed simulation by @lou-roboflow in https://github.com/roboflow/inference/pull/1392
  • Add new Moondream2 model by @capjamesg in https://github.com/roboflow/inference/pull/1388
  • Allow dataset upload tags from list selector by @NickHerrig in https://github.com/roboflow/inference/pull/1364

πŸ§‘β€πŸ­ Maintanence

  • Add fix for the problem with JSON object as default vaule for WorkflowParameter by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1379
  • Bump peft with fixed dependencies by @probicheaux in https://github.com/roboflow/inference/pull/1387
  • Feat/pass countinference to serverless getweights by @bigbitbus in https://github.com/roboflow/inference/pull/1373
  • Add tests covering rfdetr sigmoid_stable by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1394
  • Install libsqlite3-dev before building python3.9 on jetson 4.6.1 by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1383
  • Suppress missing dependencies warnings when starting jetson 4.6.1 by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1389

Full Changelog: https://github.com/roboflow/inference/compare/v0.51.0...v0.51.1

- Python
Published by grzegorz-roboflow 11 months ago

inference - v0.51.0

What's Changed

  • Add perception encoder workflow blocks by @hansent in https://github.com/roboflow/inference/pull/1350
  • Feat/stability ai outpainting by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1367

  • Respect image parent_id property when deserializing by @brunopicinin in https://github.com/roboflow/inference/pull/1363

  • Fix zone filter anchor extraction for non-center detection reference points by @ryanjball in https://github.com/roboflow/inference/pull/1372

  • Fix 'Invalid date error' when creating new workflow by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1365

  • Fix velocity block - sv.Detections[data] items must be np.array elements by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1368

  • communicate failed pipeline over webrtc by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1376

  • Update owlv2.py by @stellasphere in https://github.com/roboflow/inference/pull/1375

  • docs: Add installation and a quickstart code snippet in the getting-started page in docs by @soumik12345 in https://github.com/roboflow/inference/pull/1362

  • Change ONVIF Block Name by @lou-roboflow in https://github.com/roboflow/inference/pull/1371

New Contributors

  • @soumik12345 made their first contribution in https://github.com/roboflow/inference/pull/1362

Full Changelog: https://github.com/roboflow/inference/compare/v0.50.5...v0.51.0

- Python
Published by grzegorz-roboflow 12 months ago

inference - v0.50.5

Onvif sink

Inference users can now control PTZ cameras! ONVIF block allows a workflow to control an ONVIF capable PTZ camera to follow a detected object.

Block can operate in two modes: * Follow: The object it follows is the maximum confidence prediction out of all predictions passed into it. To follow a specific object, use the appropriate filters on the predictiion object to specify the object you want to follow. Additionally if a tracker is used, the camera will follow the tracked object until it disappears. Additionally, zoom can be toggled to get the camera to zoom into a position. The tracking block uses the ONVIF continuous movement service. Tracking is adjusted on each successive workflow execution. If workflow execution stops, and the camera is currently moving, the camera will continue moving until it reaches the limits and will no longer be following an object. * Move to Preset: The camera can also move to a defined preset position. The camera must support the GotoPreset service.

PID tuning is necessary for this block to avoid having the camera overshoot and hunt. Having a significant lag between the camera movement and video (using a lazy buffer consumption strategy) can make tuning extremely difficult. Using an eager buffer consumption strategy is recommended. Increasing the dead zone can also help, but can affect zooming.

Change by @lou-roboflow in https://github.com/roboflow/inference/pull/1348

⚑ Speed-ups (with https://github.com/codeflash-ai)

  • ⚑️ Speed up function load_blocks by 409% in PR #1348 (ONVIF_Sink) by @codeflash-ai in https://github.com/roboflow/inference/pull/1349
  • ⚑️ Speed up function receive_socket_data by 16% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1177
  • ⚑️ Speed up method BlockManifest.describe_outputs by 1,091% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1181
  • ⚑️ 11% (0.11x) speedup for RFDETRObjectDetection.postprocess in inference/models/rfdetr/rfdetr.py by @aseembits93 in https://github.com/roboflow/inference/pull/1217

πŸ§‘β€πŸ­ Maintanence

  • Bump the pip group across 2 directories with 1 update by @dependabot in https://github.com/roboflow/inference/pull/1356
  • if DEVICEID env is set, store it in resourcedetails by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1358
  • Make model unsupported message more descriptive by @bigbitbus in https://github.com/roboflow/inference/pull/1357
  • add benchmark configuration and case for codeflash by @KRRT7 in https://github.com/roboflow/inference/pull/1254
  • Fix/add default fallback to class replacement by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1359

Documentation updates

  • Fix typo: prometeus -> prometheus by @iurisilvio in https://github.com/roboflow/inference/pull/1353
  • remove trailing space in hyperlink text by @afomi in https://github.com/roboflow/inference/pull/1346
  • fix small typo by @afomi in https://github.com/roboflow/inference/pull/1345

πŸ… New Contributors

  • @aseembits93 made their first contribution in https://github.com/roboflow/inference/pull/1217
  • @afomi made their first contribution in https://github.com/roboflow/inference/pull/1346

Full Changelog: https://github.com/roboflow/inference/compare/v0.50.4...v0.50.5

- Python
Published by grzegorz-roboflow 12 months ago

inference - v0.50.4

What's Changed

  • Introduce OpenAI API key kind by @hansent in https://github.com/roboflow/inference/pull/1303
  • ⚑️ Speed up function execute_gpt_4v_request by 100% in PR #1214 (openai-apikey-passthrough) by @codeflash-ai in https://github.com/roboflow/inference/pull/1280
  • API Key Passthrough by @yeldarby in https://github.com/roboflow/inference/pull/1316
  • Fix owlvit for torch 27 by @probicheaux in https://github.com/roboflow/inference/pull/1324
  • feat: add PerceptionEncoder model implementation with tests by @probicheaux in https://github.com/roboflow/inference/pull/1325
  • Revert "feat: add PerceptionEncoder model implementation with tests" by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1329
  • Add smolvlm train by @Matvezy in https://github.com/roboflow/inference/pull/1327
  • Add smolvlm256 by @Matvezy in https://github.com/roboflow/inference/pull/1337
  • version1 overview by @Azielll in https://github.com/roboflow/inference/pull/1333
  • include editor.html in app bundle builds by @hansent in https://github.com/roboflow/inference/pull/1334
  • Add serialisation error logs by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1331
  • Add fix for empty segmentations by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1339
  • Fix RTMP lack of smoothness by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1328
  • Fix/make logs json serializable by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1340
  • When dynamic zone was not found, return empty result by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1341
  • Revert "Revert "feat: add PerceptionEncoder model implementation with tests"" by @probicheaux in https://github.com/roboflow/inference/pull/1338
  • Try to fix gpu build by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1342
  • Fix default name by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1343
  • v3 openAI block with support for api key passthrough by @hansent in https://github.com/roboflow/inference/pull/1214
  • last by @Azielll in https://github.com/roboflow/inference/pull/1344

New Contributors

  • @Azielll made their first contribution in https://github.com/roboflow/inference/pull/1333

Full Changelog: https://github.com/roboflow/inference/compare/v0.50.3...v0.50.4

- Python
Published by PawelPeczek-Roboflow 12 months ago

inference - v0.50.3

What's Changed

  • Feat/handle segmentation models in detections consensus by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1321

Full Changelog: https://github.com/roboflow/inference/compare/v0.50.2...v0.50.3

- Python
Published by grzegorz-roboflow about 1 year ago

inference - v0.50.2

What's Changed

  • allow app bundle actions to write to release by @hansent in https://github.com/roboflow/inference/pull/1315
  • Fix JSON parser for direct strings by @hansent in https://github.com/roboflow/inference/pull/1306
  • Bump next from 15.2.4 to 15.3.2 in /inference/landing in the npmandyarn group across 1 directory by @dependabot in https://github.com/roboflow/inference/pull/1288
  • Rfdetr 0 index by @probicheaux in https://github.com/roboflow/inference/pull/1318
  • fix task name for instance seg api endpoint by @hansent in https://github.com/roboflow/inference/pull/1317
  • Fix OWLv2 numpy image unload by @balthazur in https://github.com/roboflow/inference/pull/1319
  • Fix OwlV2 test by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1320

Full Changelog: https://github.com/roboflow/inference/compare/v0.50.1...v0.50.2

- Python
Published by PawelPeczek-Roboflow about 1 year ago

inference - v0.50.1

What's Changed

  • Fix dynamic zones least squares fitting defect by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1314

Full Changelog: https://github.com/roboflow/inference/compare/v0.50.0...v0.50.1

- Python
Published by grzegorz-roboflow about 1 year ago

inference - v0.50.0

What's Changed

  • Fix documentation typo by @yeldarby in https://github.com/roboflow/inference/pull/1295
  • Fix stale rich requirement by @yeldarby in https://github.com/roboflow/inference/pull/1300
  • Add AGENTS.md guide by @yeldarby in https://github.com/roboflow/inference/pull/1299
  • Improve Workflows docs writing by @yeldarby in https://github.com/roboflow/inference/pull/1298
  • Fix compatibility typos by @yeldarby in https://github.com/roboflow/inference/pull/1297
  • Fix single return in getsysteminfo by @yeldarby in https://github.com/roboflow/inference/pull/1296
  • Document Codex Environment Config by @yeldarby in https://github.com/roboflow/inference/pull/1304
  • Add OSX and windows build scripts and github actions by @hansent in https://github.com/roboflow/inference/pull/1302
  • Recalculate perspective transformation matrix for each frame if extended by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1310
  • Extend dynamic zone block with dynamic zone fitting of edges produced by convex hull and approxPoly by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1311
  • Fix CodeQL scan by @hansent in https://github.com/roboflow/inference/pull/1309
  • Improvements to webrtc stability by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1305
  • silcence libav swscaler warnings by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1312
  • App Bundle fixes for inference repo build by @hansent in https://github.com/roboflow/inference/pull/1307
  • Accept static reference polygon as input in size measurement block by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1313

Full Changelog: https://github.com/roboflow/inference/compare/v0.49.5...v0.50.0

- Python
Published by grzegorz-roboflow about 1 year ago

inference - v0.49.5

What's Changed

  • Move call to buildroboflowapiheaders from payloadhelpers to collector by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1290
  • Fix collector by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1291
  • 0.49.5 by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1293

Full Changelog: https://github.com/roboflow/inference/compare/v0.49.3...v0.49.5

- Python
Published by PawelPeczek-Roboflow about 1 year ago

inference - v0.49.3

What's Changed

  • Fixing CLA for gemini models stuff by @abelriboulot in https://github.com/roboflow/inference/pull/1286
  • When extending perspective correction block, also extend transformed rect dimensions proportionally to original dimensions by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1287
  • Added retry to 504 status by @bigbitbus in https://github.com/roboflow/inference/pull/1289

Full Changelog: https://github.com/roboflow/inference/compare/v0.49.2...v0.49.3

- Python
Published by PawelPeczek-Roboflow about 1 year ago

inference - v0.49.2

What's Changed

  • Added 60s cache expiry for invalid models by @bigbitbus in https://github.com/roboflow/inference/pull/1252
  • Adding a floor of 100ms for GCP_SERVERLESS by @bigbitbus in https://github.com/roboflow/inference/pull/1253
  • Fix Moondream2 Workflow long_description. Should be string, not tuple. by @brunopicinin in https://github.com/roboflow/inference/pull/1267
  • Fix/scale sv detections data polygon by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1268

Full Changelog: https://github.com/roboflow/inference/compare/v0.49.1...v0.49.2

- Python
Published by grzegorz-roboflow about 1 year ago

inference - v0.49.1

What's Changed

  • Migrate to logger.warning usage by @emmanuel-ferdman in https://github.com/roboflow/inference/pull/1239
  • Extend e2e tests to cover roboflow-serverless by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1229
  • Fix e2e tests to work with serverless v2 by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1240
  • add type hinting for lazy loaded attributes by @KRRT7 in https://github.com/roboflow/inference/pull/1232
  • Adjust permissions for GHA workflows by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1242
  • Fix condition in if statement by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1243
  • Handle the case when vertices reduction algorithm results in too many vertices by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1241
  • Pass custom edges mapping to KeypointVisualizationBlockV1 by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1246
  • Handle core models when MODELSCACHEAUTH_ENABLED is set by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1244
  • Pass endpoint type to model manager add_model by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1249
  • serverless throws 404 when model was not found by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1251

Full Changelog: https://github.com/roboflow/inference/compare/v0.48.3...v0.49.1

- Python
Published by PawelPeczek-Roboflow about 1 year ago

inference - v0.48.3

What's Changed

  • Fix detections anchor for 'ALL' position by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1234
  • When serializing sv.Detections produced by segmentation model, use sv.Detections['polygon'] as vertices for points (if available) by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1236

Full Changelog: https://github.com/roboflow/inference/compare/v0.48.1...v0.48.3

- Python
Published by grzegorz-roboflow about 1 year ago

inference - v0.48.1

What's Changed

  • Add fully JSON-oriented logger with proper stacktrace formatting by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1225
  • Show pip install inference-sdk more prominently in README by @cdeil in https://github.com/roboflow/inference/pull/1228
  • Fix dynamic zones reduction by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1230
  • Resolve model alias before obtaining chunks by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1226
  • Add contour extension option to perspective converter by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1233

New Contributors

  • @cdeil made their first contribution in https://github.com/roboflow/inference/pull/1228

Full Changelog: https://github.com/roboflow/inference/compare/v0.48.0...v0.48.1

- Python
Published by grzegorz-roboflow about 1 year ago

inference - v0.48.0

What's Changed

  • Fix video pipeline race conditions by @brunopicinin in https://github.com/roboflow/inference/pull/1208
  • Add libvips dependency to CPU and GPU containers by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1209
  • Update list of supported OpenAI models by @brunopicinin in https://github.com/roboflow/inference/pull/1207
  • Add INTERNALWEIGHTSURL_SUFFIX by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1210
  • Remove stale data staging export by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1211
  • Add keypoint detection to byte tracker inputs by @lou-roboflow in https://github.com/roboflow/inference/pull/1206
  • WithFixedSizeCache memory pressure - prevent from attempts to remove from epty keyqueue by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1212
  • Improve batch processing docs by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1219
  • Improvements to GC for GPU memory by @bigbitbus in https://github.com/roboflow/inference/pull/1221
  • Add correlation ID to stack traces when running on GCP by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1218
  • Add authorized cache to WithFixedSizeCache model manager and to ModelManager by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1222
  • Fix qwen dedicated by @Matvezy in https://github.com/roboflow/inference/pull/1224

Full Changelog: https://github.com/roboflow/inference/compare/v0.47.0...v0.48.0

- Python
Published by PawelPeczek-Roboflow about 1 year ago

inference - v0.47.0

πŸ’ͺ Added

Depth Anything V2 🀝 inference

Depth estimation turns flat images into 3D information by calculating how far each pixel is from the camera. This adds an essential dimension to computer vision - distance.

Thanks to @reiffd7 we have Depth Anything V2 model in inference and Workflows ecosystem. Here is what the model brings into the table: * ✨ Detailed results with sharp objects boundaries * πŸ’ͺ Robust performance across diverse scenes and lighting conditions * ⚑ 10x faster processing than similar high-quality models * πŸͺΆ Lightweight (yet not available in Roboflow Hosted API, please use Roboflow Dedicated Deployment or deploy locally)

Why use it?

  • Improve object detection with distance information
  • Create 3D visualizations from single images
  • Enable depth-aware applications (AR, robotics)
  • Understand spatial relationships in scenes

Check out HF model card.

✨ New: OverlapFilter Block

@lou-roboflow added a new Overlap Filter block to the Workflows ecosystem.

The Overlap Filter removes objects that do not overlap a selected class. It is useful when you want to focus only on objects that are interacting with specific items.

How it works:

  • You specify an overlap class (e.g., "bicycle").
  • Only objects overlapping instances of that class are kept.
  • The overlap class itself is removed from the results.

Example applications:

  • Detecting people on bicycles (removing bicycles themselves).
  • Identifying items on pallets.
  • Finding passengers in cars, etc.

⚑ Speed-ups (with @codeflash-ai)

  • ⚑️ Speed up function get_masks_intersection_up_to_dimension by 9% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1173
  • ⚑️ Speed up function build_simple_operation by 68% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1171
  • ⚑️ Speed up method OverlapManifest.describe_outputs by 536% in PR #1192 (OverlapBlockV1-2) by @codeflash-ai in https://github.com/roboflow/inference/pull/1193
  • ⚑️ Speed up function get_average_bounding_box by 166% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1180
  • optimize import time for inference by @KRRT7 in https://github.com/roboflow/inference/pull/1155

πŸ§‘β€πŸ­ Maintanence

  • Preload hugginface IDs on inference startup by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1184
  • Fix broken depth estimation import by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1197
  • Remove unused import from depth-estimation test module by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1199
  • Fix rf-detr to ignore predictions of background class by @Matvezy in https://github.com/roboflow/inference/pull/1178
  • fixed depth inference integration tests, added endpoint for infer/dep… by @reiffd7 in https://github.com/roboflow/inference/pull/1201
  • Add rf-detr base and large to weights upload docs by @capjamesg in https://github.com/roboflow/inference/pull/1200
  • Disable depth estimation and bump version by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1204
  • Add CORRELATIONIDLOGKEY; fix typo for CORRELATIONIDHEADER; control logging across modules with single env variable APILOGGING_ENABLED by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1205
  • Remove retired Claude version and add new ones by @brunopicinin in https://github.com/roboflow/inference/pull/1187
  • Install codeflash optimization on CI by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1105
  • Feat/remove UUID validator from request correlation middleware for gcp and dd by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1183

πŸ… New Contributors

  • @codeflash-ai made their first contribution in https://github.com/roboflow/inference/pull/1193
  • @lou-roboflow made their first contribution in https://github.com/roboflow/inference/pull/1192
  • @KRRT7 made their first contribution in https://github.com/roboflow/inference/pull/1155

Full Changelog: https://github.com/roboflow/inference/compare/v0.46.5...v0.47.0

- Python
Published by PawelPeczek-Roboflow about 1 year ago

inference - v0.46.5

What's Changed

  • Add docs about known issues with batch processing by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1174
  • fix url construction for getroboflowbase_lora to be OS agnostic by @hansent in https://github.com/roboflow/inference/pull/1163
  • Add Moondream2 by @capjamesg in https://github.com/roboflow/inference/pull/1146
  • Assume no execution_time on error by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1150
  • bump version 0.46.5 by @hansent in https://github.com/roboflow/inference/pull/1179

Full Changelog: https://github.com/roboflow/inference/compare/v0.46.4...v0.46.5

- Python
Published by hansent about 1 year ago

inference - v0.46.4

What's Changed

  • drop openvino by @Matvezy in https://github.com/roboflow/inference/pull/1168
  • version bump by @Matvezy in https://github.com/roboflow/inference/pull/1170

Full Changelog: https://github.com/roboflow/inference/compare/v0.46.3...v0.46.4

- Python
Published by hansent about 1 year ago

inference - v0.46.3

What's Changed

  • Fix rfdetr postporccess by @Matvezy in https://github.com/roboflow/inference/pull/1159
  • easy debug by @tonylampada in https://github.com/roboflow/inference/pull/1142
  • ⚑️ Speed up function from_keypoints_detection_response by 7% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1154
  • ⚑️ Speed up function convert_string_color_to_bgr_tuple by 30% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1153
  • ⚑️ Speed up function count_specific_color_pixels by 60% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1152
  • Bump version to 0.46.2 by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1165
  • Remove modules without any doscrtings from docs by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1164
  • Fix CPU builds which are failing for no reason :) by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1166
  • Loose wheel back by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1167

Full Changelog: https://github.com/roboflow/inference/compare/v0.46.1...v0.46.3

- Python
Published by PawelPeczek-Roboflow about 1 year ago

inference - v0.46.1

What's Changed

  • Add serialisation of timestamp in new UQL operations by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1156
  • Fix benchmark command to run with local images by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1157

Full Changelog: https://github.com/roboflow/inference/compare/v0.46.0...v0.46.1

- Python
Published by PawelPeczek-Roboflow about 1 year ago

inference - v0.46.0

πŸ’ͺ Added

SmolVLM2 🀝 inference

SmolVLM2, a multimodal vision model developed by Hugging Face, is now available for use in Inference and Workflows. Thanks to its relatively compact size when compared to other multimodal models, SmolVLM2 is capable of running efficiently on less powerful devices, while still maintaining decent performance for a range of multimodal tasks, including VQA, document OCR, document VQA, and object counting.

You can use the model in Workflows:

image

Or you can run it directly with the inference Python package:

```python from PIL import Image from inference.models.smolvlm.smolvlm import SmolVLM

smolvlm = SmolVLM(apikey="APIKEY") image = Image.open("dog.jpeg") result = smolvlm.predict(image, "How many dogs are in this image?") print(result) ```

New operations in Workflows

Thanks to @grzegorz-roboflow contribution, Property Definition block was extended with new UQL operation - extracting times that elapsed since start of video from each video frame.

βš™οΈ Maintanence

  • Cache results of 'inspect' by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1145
  • Add Swagger for Batch Processing and Data Staging services by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1147
  • ⚑️ Speed up function collect_func_params by 10% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1128
  • Fixing the address of jupyterlab in the Readme by @abelriboulot in https://github.com/roboflow/inference/pull/1130
  • Make CACHEMETADATALOCK_TIMEOUT a parameter by @bigbitbus in https://github.com/roboflow/inference/pull/1135
  • Feat/add execution duration to benchmark if avl by @bigbitbus in https://github.com/roboflow/inference/pull/1131
  • Batch Processing docs update by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1149
  • Bump next from 15.2.3 to 15.2.4 in /inference/landing in the npmandyarn group across 1 directory by @dependabot in https://github.com/roboflow/inference/pull/1143

New Contributors

  • @abelriboulot made their first contribution in https://github.com/roboflow/inference/pull/1130

Full Changelog: https://github.com/roboflow/inference/compare/v0.45.3...v0.46.0

- Python
Published by PawelPeczek-Roboflow about 1 year ago

inference - v0.45.3

What's Changed

  • Cover collectfuncparams with test by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1139
  • Add env variable to block QWEN by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1140

Full Changelog: https://github.com/roboflow/inference/compare/v0.45.2...v0.45.3

- Python
Published by PawelPeczek-Roboflow about 1 year ago

inference - v0.45.2

What's Changed

  • Build CI to notify about changes in Google Colab env by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1136
  • Add gcloud setup to CI by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1137
  • Dependency issues in Colab πŸ”₯ - second round by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1133
  • Adjust bitsandbytes to be installable on CPU by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1138

Full Changelog: https://github.com/roboflow/inference/compare/v0.45.1...v0.45.2

- Python
Published by PawelPeczek-Roboflow about 1 year ago

inference - v0.45.1

What's Changed

  • Cover center/bootomleft/bootomright/topleft/topright in property definition block by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1129
  • Extend PropertyDefinition block to expose ExtractFrameMetadata operation by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1134

Full Changelog: https://github.com/roboflow/inference/compare/v0.45.0...v0.45.1

- Python
Published by grzegorz-roboflow about 1 year ago

inference - v0.45.0

πŸ’ͺ Added

  • Memory pressure safety valve by @bigbitbus in https://github.com/roboflow/inference/pull/1103

⚑️ Speed improvements by CodeFlash

  • ⚑️ Speed up function extract_x_coordinate_of_detections_center by 35% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1114
  • ⚑️ Speed up method Batch.remove_by_indices by 38% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1115
  • ⚑️ Speed up method Batch.broadcast by 12% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1116

Other changes

  • Added missing function call to load sky by @bigbitbus in https://github.com/roboflow/inference/pull/1113
  • handle versionless model id through legacy routes by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1104
  • Feat/pass service name received within request path param by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1117
  • Fix usage collector test by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1118
  • Fix issue with BC on OpenAPI spec in pydantic by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1122
  • Update RF-DETR docs by @capjamesg in https://github.com/roboflow/inference/pull/1121
  • Do not pass default or empty source info by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1119

Full Changelog: https://github.com/roboflow/inference/compare/v0.44.1...v0.45.0

- Python
Published by grzegorz-roboflow about 1 year ago

inference - v0.44.1

What's Changed

  • Fix local workflow file not found error by @dagleaves in https://github.com/roboflow/inference/pull/1109
  • ⚑️ Speed up function select_rightmost_detection by 70% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1094
  • ⚑️ Speed up function select_leftmost_detection by 153% by @misrasaurabh1 in https://github.com/roboflow/inference/pull/1093
  • fix coreml latency issue by @Matvezy in https://github.com/roboflow/inference/pull/1111

New Contributors

  • @dagleaves made their first contribution in https://github.com/roboflow/inference/pull/1109
  • @misrasaurabh1 made their first contribution in https://github.com/roboflow/inference/pull/1094

Full Changelog: https://github.com/roboflow/inference/compare/v0.44.0...v0.44.1

- Python
Published by grzegorz-roboflow about 1 year ago

inference - v0.44.0

πŸ’ͺ Added

🀯 RF-DETR - Roboflow 🀝 SOTA in real-time object detection

We are proud to present Roboflow's newest SOTA real-time object detection model. RF-DETR is a real-time object detection model that combines a lightweight Deformable DETR architecture with a powerful pre-trained DINOv2 backbone, enabling strong generalization to both standard and domain-specific datasets. It is the first real-time model to surpass 60 mAP on COCO, delivering high accuracy and low latency suitable for edge deployment and fast inference scenarios.

Model comes in 2 sizes RF-DETR Base and RF-DETR Large.

rf-detr-coco-rf100-vl-8

Special thanks to @Matvezy for bringing the model into inference in #1102

πŸ”’ Security Patches

Next.JS vulnerability fixed

inference server landing page built with Next.JS was patched against most recent vulnerability.

[!CAUTION] We advise all of the clients to migrate to newest version of inference server.

Full Changelog: https://github.com/roboflow/inference/compare/v0.43.0...v0.44.0

- Python
Published by PawelPeczek-Roboflow about 1 year ago

inference - v0.43.0

πŸ’ͺ Improvements and bug fixes

  • Add Segment Tracking (mkdocs) by @blakeburch in https://github.com/roboflow/inference/pull/1090
  • Add pipeline termination when processing is over by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1095
  • Bump the npmandyarn group across 2 directories with 1 update by @dependabot in https://github.com/roboflow/inference/pull/1085
  • Add ability to inform upper-layer about errors in video processing by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1099
  • Protect the server from repeated validation trials for bad models by @bigbitbus in https://github.com/roboflow/inference/pull/1089
  • Adjust florence2 test by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1100
  • codeflash performance improvements by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1088
  • Address code-scanning/98 by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1096
  • Update E2E test assertions for testmultilabelclassificationworkflow by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1086

New Contributors

  • @blakeburch made their first contribution in https://github.com/roboflow/inference/pull/1090

Full Changelog: https://github.com/roboflow/inference/compare/v0.42.1...v0.43.0

- Python
Published by grzegorz-roboflow about 1 year ago

inference - v0.42.1

πŸš€ Added

The DetectionsMerge block combines multiple detections into a single bounding box that encompasses all input detections. This is useful when you want to: - Merge overlapping or nearby detections of the same object - Create a single region that contains multiple detected objects - Simplify multiple detections into one larger detection

Change by @hansent in https://github.com/roboflow/inference/pull/1069

πŸ’ͺ Other changes

  • Updated Docs, Added Ability to Run Non-Quantized Model, Fixed Initial Weights by @Matvezy in https://github.com/roboflow/inference/pull/1068
  • Fix Owlv2 Recompilation by @balthazur in https://github.com/roboflow/inference/pull/1065
  • Fix 'Could not resolve class id for prediction' by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1070
  • Output predictions for Dynamic Crop by @yeldarby in https://github.com/roboflow/inference/pull/1074
  • Add request decorator to accommodate Roboflow inference serverless by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1073
  • Enable images reference ingest by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1072
  • Update batch processing docs by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1076
  • Fix Batch Processing docs by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1067
  • Fix E2E tests for detectionsclassesreplacement block by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1080
  • LRU disk cleanup optional when removing models by @bigbitbus in https://github.com/roboflow/inference/pull/1081
  • Add optional models cache authorization by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1084

New Contributors

  • @balthazur made their first contribution in https://github.com/roboflow/inference/pull/1065

Full Changelog: https://github.com/roboflow/inference/compare/v0.41.0...v0.42.1

- Python
Published by grzegorz-roboflow about 1 year ago

inference - v0.41.0

πŸš€ Added

πŸ”₯ Batch Processing Released ✨

We've released Roboflow Batch Processing - a fully managed solution powered by Workflows that allows you to process large volumes of videos and images without writing code. It offers an easy-to-use UI for quick tasks and a comprehensive API for automating data processingβ€”fitting both small and large workloads.

This service is suitable for use cases that do not require real-time responses, such as:

  • Analysing pre-recorded video files
  • Making predictions from a large pool of images stored in your storage
  • Automatic data labeling

Visit our docs πŸ“– to learn more.

https://github.com/user-attachments/assets/ca19b48b-4473-4633-afef-be54b42852bc

πŸ’ͺ Other changes

  • First 3 Quickstart Guides by @yeldarby in https://github.com/roboflow/inference/pull/1056
  • Add CSRF Token to Builder by @yeldarby in https://github.com/roboflow/inference/pull/1050
  • synchronize inputs to onnx session on GPU by @isaacrob-roboflow in https://github.com/roboflow/inference/pull/1061
  • Add camera calibration util by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1066
  • Prevent pipeline creation if there is insufficient memory available by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1060
  • Catch ZeroDivisionError in video source by @robiscoding in https://github.com/roboflow/inference/pull/1062
  • Migrate to new batch processing with CLI tool by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1063
  • Added code to improve cleanup when there are multiple workers/servers… by @bigbitbus in https://github.com/roboflow/inference/pull/1064
  • add env for roboflow serverless service by @PacificDou in https://github.com/roboflow/inference/pull/1059

Full Changelog: https://github.com/roboflow/inference/compare/v0.40.0...v0.41.0

- Python
Published by PawelPeczek-Roboflow about 1 year ago

inference - v0.40.0

πŸš€ Added

  • Camera calibration block

This block uses the OpenCV calibrateCamera function to remove lens distortions from an image.

This block expands workflows capabilities in the area of taking measurements with camera. With distortions removed measurements performed by size measurement block are more accurate.

Block added by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1053

πŸ’ͺ Improved

  • Add Background Compilation for OWLv2 Vision Model by @lrosemberg in https://github.com/roboflow/inference/pull/1049

Other changes

  • Add ability to inject metrics collector URL by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1047
  • Fix workflows batch processing for Windows paths by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1051
  • Fix / do not check if torch is in dir() by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1054
  • Measure execution time of workflow execution and model inference by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1052

Full Changelog: https://github.com/roboflow/inference/compare/v0.39.0...v0.40.0

- Python
Published by grzegorz-roboflow over 1 year ago

inference - v0.39.0

πŸš€ Added

  • Yolov12 support was added to Inference by @probicheaux!
  • Use precomputed owl embeddings (change by probicheaux) in https://github.com/roboflow/inference/pull/977
  • Added the Enterprise MS SQL Server Block by @chandlersupple in https://github.com/roboflow/inference/pull/1043

πŸ’ͺ Improved

  • Multistage build improved by @bigbitbus in https://github.com/roboflow/inference/pull/1041

Other changes

  • Fix broken links in docs by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1032
  • fix broken docs by @hansent in https://github.com/roboflow/inference/pull/1039
  • Apply confidence when inferring on classification models by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1036
  • Handle environment and classes embedded directly within getWeights payload by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1038
  • Add upper version pin for opencv-python-headless by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1045
  • Additional action to push to Public artifacts registry by @bigbitbus in https://github.com/roboflow/inference/pull/1037
  • Align inference cli with new data export for RF batch processing by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1040
  • add openapi.json to whitelist of dedicated deployment authorizer by @PacificDou in https://github.com/roboflow/inference/pull/1048

Full Changelog: https://github.com/roboflow/inference/compare/v0.38.0...v0.39.0

- Python
Published by grzegorz-roboflow over 1 year ago

inference - v0.38.0

πŸš€ Added

Qwen2.5-VL 🀝 Workflows

Thanks to @Matvezy, we’ve enabled Qwen2.5-VL model in inference and the Workflows ecosystem, making it easier than ever to utilise its powerful vision-language capabilities. πŸŽ‰

πŸ’‘ About Qwen2.5-VL

Qwen2.5-VL is a Visual Language model which understands both images and text, allowing it to analyze documents, detect objects, and interpret videos with human-like comprehension. All of those advancements are now available in Workflows 🀯

image

Take a look at docs πŸ“– to find more details.

πŸš— Speed improvements in inference 🏁

@isaacrob-roboflow is not slowing down - and with him, literally whole inference is moving faster. In this release, he added few important changes: * 🎯 Torch-base images pre-processing: ability to run pre-processing on GPU using pytorch to utilise underlying hardware more efficiently. * πŸ’‘ ONNX IO bindings enabled: technique which minimise data round-trip time to and from memory (especially helpful when pre-processing can happen directly on GPU) * πŸ•΅οΈ Details of the change: https://github.com/roboflow/inference/pull/941

Want to hear about results?

  • 🏍️ For big images (for instance of size 2048 x 2048) we observe substantial drop in inference latency - in example case latency dropped from 130-140ms πŸ‘‰ 50-60ms - that's nearly 3x speedup 🀯

We can't wait future optimisations πŸ’ͺ

πŸ’» New home page for inference docs

You may have already noticed, but just to be sure, let's take a look at the new design of inference home page prepared by @isoceles.

Check out here

image

🚨 Deprecated

[!CAUTION] We needed to take immediate actions. Vulnerability was detected in transformers library forced us to introduce changes into inference dependencies, effectively removing part of the components which we could not prepare security patches for. Vulnerability description CVE-2024-11393:

Hugging Face Transformers MaskFormer Model Deserialization of Untrusted Data Remote Code Execution Vulnerability. This vulnerability allows remote attackers to execute arbitrary code on affected installations of Hugging Face Transformers. User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file. The specific flaw exists within the parsing of model files. The issue results from the lack of proper validation of user-supplied data, which can result in deserialization of untrusted data. An attacker can leverage this vulnerability to execute code in the context of the current user.

We advise all clients to migrate into inference 0.38.0 and stop using old builds in production.

🐳 CogVLM was removed

First of the implication of CVE-2024-11393 was upgrade to newest transformers version which was conflicting with CogVLM model requirements - as a result we decided to end of support of the model in inference.

As far as we are concerned, CogVLM turned out not to be the most popular model in the ecosystem, but if anyone is looking for alternatives - we can suggest other models existing in inference and Workflows ecosystem - like newly introduced Qwen2.5-VL.

Effective immediately, model was removed from the library, we left usage examples and and stub Workflow block which would fire an error if one tries to run it in Execution Engine providing the information about deprecation.

🐍 Python 3.8 no longer supported

Python 3.8 has already reached End Of Life and as a result - many libraries dropped support for this version of the interpreter. We tried to keep our codebase compatible as long as possible, but we were not able to apply security patch (as newer version of dependencies related to transformers already dropped support). As a result - inference will no longer support Python 3.8.

πŸ₯‘ End Of Life - Jetson with Jetpack 4.5

As a result of Python 3.8 deprecation, we also needed to abandon builds for Jetson with Jetpack 4.5 which were bounded into this Python version.

πŸ“— Other changes

  • Prepare version of Workflows EE where thread pool executor is injectable instead of created at each run by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1014
  • Add changes to make it possible to register WebHooks by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1020
  • Fix docs homepage mobile nav by @yeldarby in https://github.com/roboflow/inference/pull/1023
  • Aspect ratio operation by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/1025
  • Workflow error message improvements by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/1018
  • Add --metrics-enabled and --metrics-disabled to inference server start by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1024
  • Expose decoding buffer size and predictions queue size as inference pipeline manager request parameters by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1022
  • Update Workflows Changelog by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1027
  • Extend dynamic_zones block to expose updated detections as extra output by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1029
  • Loginless Builder by @yeldarby in https://github.com/roboflow/inference/pull/1030
  • Bump esbuild from 0.19.12 to 0.25.0 in /theme in the npmandyarn group across 1 directory by @dependabot in https://github.com/roboflow/inference/pull/1021
  • gpu_speedups code review by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1031
  • Add an option to use pytorch for GPU-based image preprocessing by @isaacrob-roboflow in https://github.com/roboflow/inference/pull/941
  • Handle new getWeights in RoboflowInferenceModel by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1028
  • Addition of Qwen 2.5 VL to Inference and Workflows by @Matvezy in https://github.com/roboflow/inference/pull/1019
  • Add rustc to OS dependencies by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/975
  • Fix problem with assertions by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1033
  • Fix broken CI by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1034
  • Fix broken parallel GPU CI by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1035

πŸ… New Contributors

  • @isoceles made their first contribution in https://github.com/roboflow/inference/pull/1011

Full Changelog: https://github.com/roboflow/inference/compare/v0.37.1...v0.38.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.37.1

πŸš€ Added

πŸͺ„ Workflows AI Assistant is ready to help you

The Workflows UI keeps improving, but we know navigating the ecosystem can still be challenging - whether it's understanding errors or getting up to speed with a growing number of blocks.

That’s why we’re launching the Workflows AI Assistant! πŸ€– Now, you can ask any question about your Workflow and get context-aware guidance tailored to your setup.

Say goodbye to guesswork and hello to smarter, faster problem-solving! Try it out today. πŸ”₯

https://github.com/user-attachments/assets/8741958f-781f-4d4a-9703-dd3427006040

βœ‚οΈ SAHI - Image Slicer v2

We've noticed that Image Slicer block was producing inconsistent crops when dimensions of the crop weren't matching the original image. We've introduced new version of the block to fix the problem.

image

If you are interested, take look at Image Slicer v2 docs πŸ“ and PR with change https://github.com/roboflow/inference/pull/1001

βš™οΈ Roboflow Batch Processing

We are actively working on Roboflow Batch Processing - new feature that we've presented in last release. This time we are adding bunch of improvements and extensions to make the processing more efficient.

Details of the changes: https://github.com/roboflow/inference/pull/1002, https://github.com/roboflow/inference/pull/1004, https://github.com/roboflow/inference/pull/1006

Stay tuned for future updates.

Features added to Workflows Blocks

  • Add SequenceElementsCount UQL operation by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1005
  • Add option to scale dynamic zone by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1007

πŸ”§ Fixed

  • Add opencv-contrib-python to requirements to resolve problems with rtsp streaming by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1015

πŸ’ͺ Improved

πŸ“ Docs are changing

We are continuously improving our documentation to make it more helpful, but we know this is an ongoing challenge. Enhancing clarity and coverage takes time, and we’re committed to making it better every day. Here are the recent changes: https://github.com/roboflow/inference/pull/1000, https://github.com/roboflow/inference/pull/1012, https://github.com/roboflow/inference/pull/1013, https://github.com/roboflow/inference/pull/999, https://github.com/roboflow/inference/pull/995

πŸ“— Other changes

  • Update Block Copy by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/996
  • Flush usage_collector on shutdown by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/994
  • Pin pypdfium2 in requirements.jetson.txt by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/997
  • Handle WorkflowSyntaxError separately from WorkflowDefinitionError by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/998
  • Apply fix for pydnatic validation of error message by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/1009
  • Fix e2e tests by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1010
  • adjust initializer for allowaccesstoenvironmentalvariables by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/1016

Full Changelog: https://github.com/roboflow/inference/compare/v0.36.1...v0.37.1

- Python
Published by grzegorz-roboflow over 1 year ago

inference - v0.36.1

What's Changed

  • Fix issue with detections filter and perspective transformation by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/992
  • Apply changes to filtering by parent class by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/993

Full Changelog: https://github.com/roboflow/inference/compare/v0.36.0...v0.36.1

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.36.0

πŸš€ Added

πŸ‹ Workflows Batch Processing in Roboflow cloud

We’re thrilled to introduce early access for Workflows Batch Processing in Roboflow Cloud! Now, you can process entire directories of images or video files using your Workflows - no coding required!

⚑ Feature characteristics

  • Asynchronous batch processing – You kick of a job that run in the background, and you can retrieve results later
  • High throughput - Feature is designed to process a lot of data - so if your machine is not capable enough to process the data you have - this solution may be for you 🎯
  • Fully managed – Runs on our cloud, so you don’t have to worry about infrastructure.
  • No UI yet, but CLI ready – Use the updated inference-cli to access the feature.

πŸ“Ί Check out the demo to see it in action!

This is an alpha release, and we’re inviting a small group of early adopters to test it out. Let us know if you’d like to be among the first to try it! πŸš€

https://github.com/user-attachments/assets/03553826-458c-4a01-89a8-9bc25d464ba7

πŸ” Select Bounding Boxes Contained Within a Specific Class

We’ve heard your feedback! A common challenge in object detection is distinguishing objects contained within another object - and we’ve got you covered.

For example:

  • πŸš— People inside a car vs. standing on the street
  • πŸ“¦ Products on a store shelf vs. misplaced items
  • πŸ” Defects within a specific component vs. background noise

We’re excited to announce a new Workflows operation that lets you filter bounding boxes based on spatial containment within a selected class. This makes it easier than ever to refine detections and extract the insights that matter most!

https://github.com/user-attachments/assets/7ad65705-7bde-40fb-86f7-960964a25c77

Check the details here

Auto mode in Stitch OCR Detections Block

Previously, users needed to manually specify the direction of text (e.g., left-to-right, top-to-bottom) before stitching. With the new "auto" mode, text direction is automatically detected as either left-to-right or top-to-bottom.

image

Check the details of @chandlersupple change here

πŸ’ͺ Improved

  • Handle paligemma through new getWeights endpoint by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/980
  • Add optional language_hints input parameter to be passed as imageContext.languageHints by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/982
  • Prevent pipeline manager from entering infinite loop if workflow could not be parsed by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/983
  • When stream output received in camera streaming payload is not WorkflowImageData, select first available WorkflowImageData output by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/984
  • Add 'longer' and 'shorter' keys to the output of size_measurement block by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/987
  • When running bounding_rect update mask and xyxy of source sv.Detections so results can be visualized by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/986
  • remove print from cli docs generation script by @hansent in https://github.com/roboflow/inference/pull/978
  • Extend query_language DetectionsProperty to cover sv.Detections data keys produced by blocks by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/985
  • Simplify dedicated deployments authorizer middleware to rely on workspace ID match by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/988
  • Fix platform tests by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/991
  • HotFix for aiortc release breaking the build by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/989

Full Changelog: https://github.com/roboflow/inference/compare/v0.35.0...v0.36.0

- Python
Published by grzegorz-roboflow over 1 year ago

inference - v0.35.0

πŸš€ Added

PLC Modbus TCP Block

This new block brings Modbus TCP communication to Workflows. The block uses the pymodbus library to read from and write to PLC registers over Modbus TCP. It supports three modes of operation:

read: Reads specified registers from a PLC. write: Writes specified values to PLC registers. readandwrite: Performs both reading and writing operations in one execution.

Adding Modbus TCP support allows workflows to interact with a broader range of PLCs and industrial devices that use the Modbus protocol.

  • Change by @reedajohns in https://github.com/roboflow/inference/pull/951

Velocity block

New analytics block was added to Workflows to calculate and embed velocities and speeds of tracked objects across video frames.

Key Features:

  • Velocity Calculation: Computes raw and smoothed velocities based on object movements between frames.
  • Speed Calculation: Determines the magnitude of velocity vectors to obtain speed.

This block supports smoothing of velocity measurements using an exponential moving average with configurable smoothing_alpha. Incorporated unit conversion from pixels to meters via the pixels_per_meter parameter

  • Change by @reedajohns in https://github.com/roboflow/inference/pull/754

Add support to run ResNet Classification Model in Inference

The recent update to the Roboflow Inference repository introduces support for ResNet classification models, as described in the seminal paper "Deep Residual Learning for Image Recognition" (He et al., 2015, arXiv:1512.03385). This integration enables users to leverage the powerful ResNet architecture for image classification tasks, enhancing the model options available within the inference engine and expanding its utility for diverse computer vision applications.

  • Change by @Matvezy in https://github.com/roboflow/inference/pull/959

πŸ’ͺ Improved

Multiple changes enhancing Inference documentation!

  • Docs: /start by @yeldarby in https://github.com/roboflow/inference/pull/936
  • Block gallery refactor by @hansent in https://github.com/roboflow/inference/pull/955
  • fix requirement command in doc build workflow by @hansent in https://github.com/roboflow/inference/pull/960
  • Docs: Fix Typo by @yeldarby in https://github.com/roboflow/inference/pull/963
  • Change "fire" to "run" in rate limiter description by @capjamesg in https://github.com/roboflow/inference/pull/968

Improvements to Workflows Blocks

  • Detection Offset - Use bbox for percent padding by @sberan in https://github.com/roboflow/inference/pull/970
  • Fix/perspective correction input accept output of dynamic zones by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/972
  • Fix Google Vision Block bounding box parsing by @brunopicinin in https://github.com/roboflow/inference/pull/961

Security improvements

  • Added robots noindex meta tag by @bigbitbus in https://github.com/roboflow/inference/pull/964
  • Fix/improve security in the inference server start command by @bigbitbus in https://github.com/roboflow/inference/pull/940

Improvements to webcam workflow preview

  • Send raw image over WebRTC if no visualization is available by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/967
  • Handle wildcard outputs in webrct by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/979

Other changes

  • Add changes to enable indexing video processing results in workflows CLI by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/962
  • send api key for model registry to make it work on dedicated deployments by @hansent in https://github.com/roboflow/inference/pull/974
  • Add logging when workflow ID is known and internal workflow ID was not passed by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/965
  • Copy internal workflow id to specification before it's cached by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/966
  • Suppress ONNX providers warning by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/969

Full Changelog: https://github.com/roboflow/inference/compare/v0.34.0...v0.35.0

- Python
Published by grzegorz-roboflow over 1 year ago

inference - v0.34.0

πŸš€ Added

Introducing Stability AI Image Generation Block v1 πŸ–ŒοΈβœ¨

Your gateway to limitless creativity with Stability AI! Block leverages Stability AI’s robust API with an easy-to-use interface. Just plug in your Stability AI API key, and you’re ready to go!

Main features: - Text-to-Image Magic - Generate entirely new images from text prompts in seconds. - Image Variations Made Easy - Start with an image and let the block transform it into captivating variations. Adjust the influence of your input image with precise control (strength parameter). - Positive Prompts: Describe what you want to see. - Negative Prompts: Specify what you don’t want to include. - Model Selection: Choose from cutting-edge models (core, ultra, sd3) to best suit your creative needs.

  • change by @deependujha in https://github.com/roboflow/inference/pull/933

πŸ’ͺ Improved

@hansent contributions enhancing Inference documentation!

⚑ Support for Roboflow Instant Models

Roboflow Instant Models are now supported in Inference! While this feature is part of the broader Roboflow Instant Models initiative, Inference now includes the ability to load these models seamlessly. Roboflow Instant Models leverage the power of box prompting, utilizing your entire dataset as prompts during inference for enhanced performance and smarter predictions.

  • Support for loading Roboflow Instant in Inference added by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/929

Other changes

  • Added Percent Padding to the Detection Offset Block by @chandlersupple in https://github.com/roboflow/inference/pull/956
  • Add changes required to effectively index content of batch processing by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/942
  • Fix the class_name alias for keypoint detection in workflows by @shantanubala in https://github.com/roboflow/inference/pull/946
  • Handle optional workflow_id if passed as part of request to /workflows/run by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/954
  • Security improvement - avoid passing user value to isfile by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/957
  • Fix OwlV2.init by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/937
  • Pass is_preview if available when handling workflow request by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/952

New Contributors

  • @deependujha made their first contribution in https://github.com/roboflow/inference/pull/933

Full Changelog: https://github.com/roboflow/inference/compare/v0.33.0...v0.34.0

- Python
Published by grzegorz-roboflow over 1 year ago

inference - v0.33.0

πŸš€ Added

Llama Vision 3.2 🀝 other VLMs supported in Workflows

We welcome new block bringing Llama Vision 3.2 to workflows ecosystem!

Llama 3.2 is a new generation of vision and lightweight models that fit on edge devices, tailored for use cases that require more private and personalized AI experiences.

Brought by @AHB102 in https://github.com/roboflow/inference/pull/866

Related changes: * Fix/onboarding llama 3.2 by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/927 * Tests for LLama Vision 3.2 by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/928

MQTT Writer Enterprise Workflow Block (added in https://github.com/roboflow/inference/pull/930)

This block enables our enterprise users to publish messages to an MQTT broker through Workflows.

MQTT (Message Queuing Telemetry Transport) is a lightweight messaging protocol designed for low-bandwidth, high-latency, or unreliable networks. It's widely used in applications where devices need to communicate with minimal overhead, such as the Internet of Things (IoT).

With this change workflows can communicate with the world through MQTT!

Change introduced by @chandlersupple

Plc EthernetIP Enterprise Workflow Block (added in https://github.com/roboflow/inference/pull/905)

This block enables our enterprise users to interface with PLC. A Programmable Logic Controller (PLC) is an industrial computer specifically designed to automate machinery and processes in manufacturing and other industries. It monitors inputs (e.g., sensors), processes data based on a programmed logic, and controls outputs (e.g., actuators) to perform tasks. This block is utilizing pylogix library over Ethernet/IP. Block supports three modes of operation: - read: Reads specified tags from the PLC. - write: Writes specified values to the PLC tags. - readandwrite: Performs both read and write operations in a single execution.

This change brings vision capabilities into real-world industrial plants!

Change introduced by @reedajohns

πŸ’ͺ Improved

Documentation improvements

@yeldarby transforms Inference docs with streamlined navigation, styling, and instant rendering!

More contributions enhancing Inference documentation: * better version handling in generated block pages by @hansent in https://github.com/roboflow/inference/pull/922 * Update README.md by @ThatOrJohn in https://github.com/roboflow/inference/pull/921

Improvements to CI by @alexnorell

Other changes

  • Add env-injectable headers to RF API requests by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/932
  • Pass roboflow workflow ID as usageworkflowid if available by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/926
  • Collect usage after execution of decorated methods by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/931
  • Improved the SizeMeasurementBlock Docs by @chandlersupple in https://github.com/roboflow/inference/pull/916

New Contributors

  • @AHB102 made their first contribution in https://github.com/roboflow/inference/pull/866
  • @ThatOrJohn made their first contribution in https://github.com/roboflow/inference/pull/921

Full Changelog: https://github.com/roboflow/inference/compare/v0.32.0...v0.33.0

- Python
Published by grzegorz-roboflow over 1 year ago

inference - v0.32.0

πŸš€ Added

πŸ‘€ Gaze detection in Workflows

@joaomarcoscrs (as part of hist first contribution πŸ…) introduced Gaze detection model into Workflows.

Don't know what Gaze Detection is?

Gaze detection is a method to determine where a person is looking by analyzing their eye movements and gaze direction. It typically uses cameras or sensors to track eye position and orientation, identifying the point of focus in real time.

It is commonly used in areas like:

  • Human-Computer Interaction: Controlling devices with eye movements.
  • Behavioral Analysis: Understanding attention and interest.
  • Marketing Research: Measuring what catches a person's attention.

Now - you can apply Workflows in such use-cases. Check out Gaze Detection block πŸ“– documentation to find more information.

[!NOTE]
The block is currently not supported on Roboflow Hosted Platform. Check out how to send requests to localhost inference server

πŸ‹οΈβ€β™‚οΈ New experimental Workflows blocks enabling new capabilities

@yeldarby prepared whole series of blocks to open-up new capabilities for Workflows, including: * Workflows Buffer Block in https://github.com/roboflow/inference/pull/894 * Workflows Grid Visualization Block in https://github.com/roboflow/inference/pull/895 * Workflow Cache Get/Set Blocks in https://github.com/roboflow/inference/pull/893 * Workflows Outlier Detection Block in https://github.com/roboflow/inference/pull/896

πŸ’ͺ Improved

Florence 2 runs now up to 3x faster

πŸ§™β€β™‚οΈ @isaacrob-roboflow did some magic πŸͺ„ and now, all of the sudden Florence2 models deployed in inference could run up to 3x faster 🀯 ❗ See details in https://github.com/roboflow/inference/pull/885

πŸ”§ Fixed

Security vulnerability in landing page

We've fixed security issue in inference server landing page: https://github.com/roboflow/inference/pull/890

Issue description

If a Next.js application is performing authorization in middleware based on pathname, it was possible for this authorization to be bypassed. This issue was patched in Next.js 14.2.15 and later.

[!CAUTION] We advise all users of older versions of inference server to migrate to version 0.32.0

Other fixes

  • Add fix for the problem with inference-cli workflows predictions saving by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/891
  • Improvements in blocks descriptions' by @EmilyGavrilenko (https://github.com/roboflow/inference/pull/898) and @casmwenger in (https://github.com/roboflow/inference/pull/897)
  • Fix usage collector fps by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/903

🚧 What's Changed

  • Add test to detect blocks with missing init.py by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/883
  • Cache CLIP Text Embeddings in Workflow Block by @yeldarby in https://github.com/roboflow/inference/pull/892
  • Allow using video metadata for rate limiter on recorded video by @yeldarby in https://github.com/roboflow/inference/pull/887
  • Serialized owlv2 model by @probicheaux in https://github.com/roboflow/inference/pull/889
  • Skip additional test by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/902

πŸ… New Contributors

  • @joaomarcoscrs made their first contribution in https://github.com/roboflow/inference/pull/888

Full Changelog: https://github.com/roboflow/inference/compare/v0.31.1...v0.32.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.31.1

πŸ”§ Fixed

  • Fix inference 0.30.0 release by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/882 - just we forgot __init__.py

Full Changelog: https://github.com/roboflow/inference/compare/v0.31.0...v0.31.1

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.31.0

πŸš€ Added

πŸ“ Easily create embeddings and compare them in Workflows

Thanks to @yeldarby, we have Clip Embedding and Cosine Similarity Workflows blocks. Just take a look what would now be possible.

πŸ’‘ Application ideas

  • Visual Search: Match text queries (e.g., "red shoes") to the most relevant images without training a custom model.
  • Image Deduplication: Identify similar or duplicate images by calculating embeddings and measuring cosine similarity.
  • Zero-Shot Classification: Classify images into categories by comparing their embeddings to pre-defined text labels (e.g., "cat," "dog").
  • Outliers detection: Check which images do not match to general trend

✨ gemini-2.0-flash 🀝 Workflows

Check out model card and start using new model, simply pointing new model type in Google Gemini Workflow block πŸ˜„ All thanks to @EmilyGavrilenko

πŸ”₯ Recent supervision versions are now supported

For a long time we had issue with not supporting up-to-date supervision releases. This is no longer the case thanks to @LinasKo and his contribution https://github.com/roboflow/inference/pull/881 πŸ™

πŸ•β€πŸ¦Ί React on changes in Workflows

We have new Delta Filter block that optimizes workflows by triggering downstream steps only when input values change, reducing redundant processing.

πŸ“Š Key Features:

  • Value Changes Detection: Triggers actions only on value changes.
  • Flexibility: Hooks up to changes in numbers, strings, and more.
  • Per-Video Caching: Tracks changes using - changes for each video stream or batch element would be traced separately

πŸ’‘ Use Case:

  • Detect changes (e.g., people count) in video analysis and trigger downstream actions efficiently.

πŸ”§ Fixed

  • confidence threshold was not applied for multi-label classification models. @grzegorz-roboflow fixed the problem in https://github.com/roboflow/inference/pull/873
  • Active Learning Data collection finally works for multi-label classification models - see @grzegorz-roboflow work in https://github.com/roboflow/inference/pull/874
  • Fixed model_id bug with InferenceAggregator block by @robiscoding in https://github.com/roboflow/inference/pull/876
  • Security issue: nanoid from 3.3.7 to 3.3.8 - see https://github.com/roboflow/inference/pull/878
  • Fix measurement logic for segmentations in measurement block by @NickHerrig in https://github.com/roboflow/inference/pull/872

🚧 Changed

  • Improve is_mergeable workflow speed by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/846
  • Additional DetectionsSelection Operations by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/879
  • Add Block Copy updates and Spellcheck by @casmwenger in https://github.com/roboflow/inference/pull/856
  • Updated the OPC UA Writer Block Descriptions and Examples by @chandlersupple in https://github.com/roboflow/inference/pull/868

New Contributors

  • @casmwenger made their first contribution in https://github.com/roboflow/inference/pull/856

Full Changelog: https://github.com/roboflow/inference/compare/v0.30.0...v0.31.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.30.0

πŸš€ Added

✨ Paligemma2 support!

Enhanced model support: We’re excited to introduce Paligemma2 integration, a next-generation model designed for more flexible and efficient inference. This upgrade facilitates smoother handling of multi-modal inputs like images and captions, offering better versatility in machine learning applications. Check out the implementation details and examples in this script to see how to get started.

Change added by @probicheaux in https://github.com/roboflow/inference/pull/864

Remaining changes

  • Unpin httpx by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/861
  • Fix docs builder CI by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/863
  • Add poison pill to connectionstatechange in webrtc by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/862
  • Bump version of rich by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/867
  • Kapa: remove duplicate initialization by @LinasKo in https://github.com/roboflow/inference/pull/869
  • Add model id output param by @robiscoding in https://github.com/roboflow/inference/pull/857

Full Changelog: https://github.com/roboflow/inference/compare/v0.29.2...v0.30.0

- Python
Published by grzegorz-roboflow over 1 year ago

inference - v0.29.2

ultralytics security issue fixed

[!CAUTION] Ultralytics maintainers notified the community, that code in the ultralytics wheel 8.3.41 is not what's in GitHub and appears to invoke mining. Users of ultralytics who install 8.3.41 will unknowingly execute an xmrig miner. Please see this issue for more details

Remaining fixes

  • python 3.12 support by @hansent in https://github.com/roboflow/inference/pull/841
  • Pin ultralytics version by @bigbitbus in https://github.com/roboflow/inference/pull/858

Full Changelog: https://github.com/roboflow/inference/compare/v0.29.1...v0.29.2

- Python
Published by grzegorz-roboflow over 1 year ago

inference - v0.29.1

πŸ› οΈ Fixed

python-multipart security issue fixed

[!CAUTION] We are removing the following vulnerability detected recently in python-multipart library.

Issue summary When parsing form data, python-multipart skips line breaks (CR \r or LF \n) in front of the first boundary and any tailing bytes after the last boundary. This happens one byte at a time and emits a log event each time, which may cause excessive logging for certain inputs.

An attacker could abuse this by sending a malicious request with lots of data before the first or after the last boundary, causing high CPU load and stalling the processing thread for a significant amount of time. In case of ASGI application, this could stall the event loop and prevent other requests from being processed, resulting in a denial of service (DoS).

Impact Applications that use python-multipart to parse form data (or use frameworks that do so) are affected.

Next steps We advise all inference clients to migrate to version 0.29.1, especially when inference docker image is in use. Clients using older versions of Python package may also upgrade the vulnerable dependency in their environment: bash pip install "python-multipart==0.0.19"

Details of the change: https://github.com/roboflow/inference/pull/855

Remaining fixes

  • Fix problem with docs rendering by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/854
  • Remove piexif dependency by @iurisilvio in https://github.com/roboflow/inference/pull/851

Full Changelog: https://github.com/roboflow/inference/compare/v0.29.0...v0.29.1

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.29.0

πŸš€ Added

πŸ“§ Slack and Twilio notifications in Workflows

We've just added two notification blocks to Worfklows ecosystem - Slack and Twilio. Now, there is nothing that can stop you from sending notifications from your Workflows!

https://github.com/user-attachments/assets/52ac8a94-69e4-4304-a0b8-8c77695e688f

inference-cli 🀝 Workflows

We are happy to share that inference-cli has now a new command - inference workflows that make it possible to process data with Workflows without any additional Python scripts needed πŸ˜„

πŸŽ₯ Video files processing

  • Input a video path, specify an output directory, and run any workflow.
  • Frame-by-frame results saved as CSV or JSONL.
  • Your Workflow outputs images? Get an output video out from them if you wanted

πŸ–ΌοΈ Process images and directories of images πŸ“‚

  • Outputs stored in subdirectories with JSONL/CSV aggregation available.
  • Fault-tollerant processing:
    • βœ… Resume after failure (tracked in logs).
    • πŸ”„ Option to force re-processing.

Review our πŸ“– docs to discover all options!

πŸ‘‰ Try the command To try the command, simply run: ```bash pip install inference inference workflows process-images-directory \ -i {your_input_directory} \ -o {your_output_directory} \ --workspace_name {your-roboflow-workspace-url} \ --workflow_id {your-workflow-id} \ --api-key {your_roboflow_api_key} ```

https://github.com/user-attachments/assets/383e5300-da44-4526-b99f-9a301d944557

πŸ”‘ Secrets provider block in Workflows

Many Workflows blocks require credential to work correctly, but so far, the ecosystem only provided one secure option for passing those credentials - using workflow parameters, forcing client applications to manipulate secret values.

Since this is not handy solution, we decided to create Environment Secrets Store block which is capable of fetching credentials from environmental variables of inference server. Thanks to that, admins can now set up the server and client's code do not need to handle secrets ✨

⚠️ Security Notice:

For enhanced security, always use secret providers or Workflow parameters to handle credentials. Hardcoding secrets into your Workflows is strongly discouraged.

πŸ”’ Limitations:

This block is designed for self-hosted inference servers only. Due to security concerns, exporting environment variables is not supported on the hosted Roboflow Platform.

🌐 OPC Workflow block πŸ“‘

The OPC Writer block provides a versatile set of integration options that enable enterprises to seamlessly connect with OPC-compliant systems and incorporate real-time data transfer into their workflows. Here’s how you can leverage the block’s flexibility for various integration scenarios that industry-class solutions require.

✨ Key features

  • Seamless OPC Integration: Easily send data to OPC servers, whether on local networks or cloud environments, ensuring your workflows can interface with industrial control systems, IoT devices, and SCADA systems.
  • Cross-Platform Connectivity: Built with asyncua, the block enables smooth communication across multiple platforms, enabling integration with existing infrastructure and ensuring compatibility with a wide range of OPC standards.

[!IMPORTANT]
This Workflow block is released under Roboflow Enterprise License and is not available by default on Roboflow Hosted Platform. Anyone interested in integrating Workflows with industry systems through OPC - please contact Roboflow Sales

See @grzegorz-roboflow's change in https://github.com/roboflow/inference/pull/842

πŸ› οΈ Fixed

Workflows Execution Engine v1.4.0

  • New Kind: A secret kind for credentials is now available. No action needed for existing blocks, but future blocks should use it for secret parameters.

  • Serialization Fix: Fixed a bug where non-batch outputs weren't being serialized in v1.3.0.

  • Execution Engine Fix: Resolved an issue with empty inputs being passed to downstream blocks. This update ensures smoother workflow execution and may fix previous issues without any changes needed.

See full changelog for more details.

🚧 Changed

Open Workflows on Roboflow Platform

We are moving towards shareable Workflow Definitions on Roboflow Platform - to reflect that @yeldarby made the api_key optional in Workflows Run requests in https://github.com/roboflow/inference/pull/843

⛑️ Maintenance

  • Update Docker Tag Logic by @alexnorell in https://github.com/roboflow/inference/pull/840
  • Make checkifbranchismergeable.yml to succeed if merging to main by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/848
  • Add workflow to check mergeable state executed on pull request by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/847

Full Changelog: https://github.com/roboflow/inference/compare/v0.28.2...v0.29.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.28.2

πŸ”§ Fixed issue with inference package installation

26.11.2024 there was a release 0.20.4 of tokenizers library which is dependency of inference dependencies introducing breaking change for those inference clients who use Python 3.8 - causing the following errors while installation of recent (and older) versions of inference:

πŸ‘‰ MacOS ``` Downloading tokenizers-0.20.4.tar.gz (343 kB) Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... error error: subprocess-exited-with-error Γ— Preparing metadata (pyproject.toml) did not run successfully. β”‚ exit code: 1 ╰─> [6 lines of output] Cargo, the Rust package manager, is not installed or is not on PATH. This package requires Rust and Cargo to compile extensions. Install it through the system's package manager or via https://rustup.rs/ Checking for Rust toolchain.... [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: metadata-generation-failed Γ— Encountered error while generating package metadata. ╰─> See above for output. note: This is an issue with the package mentioned above, not pip. hint: See above for details ```
πŸ‘‰ Linux After installation, the following error was presented ``` /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/transformers/utils/import_utils.py:1778: in _get_module return importlib.import_module("." + module_name, self.__name__) /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/importlib/__init__.py:127: in import_module return _bootstrap._gcd_import(name[level:], package, level) :[101](https://github.com/roboflow/inference/actions/runs/12049175470/job/33595408508#step:7:102)4: in _gcd_import ??? :991: in _find_and_load ??? :961: in _find_and_load_unlocked ??? :219: in _call_with_frames_removed ??? :1014: in _gcd_import ??? :991: in _find_and_load ??? :975: in _find_and_load_unlocked ??? :671: in _load_unlocked ??? :843: in exec_module ??? :219: in _call_with_frames_removed ??? /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/transformers/models/__init__.py:15: in from . import ( /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/transformers/models/mt5/__init__.py:36: in from ..t5.tokenization_t5_fast import T5TokenizerFast /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/transformers/models/t5/tokenization_t5_fast.py:23: in from ...tokenization_utils_fast import PreTrainedTokenizerFast /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/transformers/tokenization_utils_fast.py:26: in import tokenizers.pre_tokenizers as pre_tokenizers_fast /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/tokenizers/__init__.py:78: in from .tokenizers import ( E ImportError: /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/tokenizers/tokenizers.abi3.so: undefined symbol: PyInterpreterState_Get The above exception was the direct cause of the following exception: tests/inference/models_predictions_tests/test_owlv2.py:4: in from inference.models.owlv2.owlv2 import OwlV2 inference/models/owlv2/owlv2.py:11: in from transformers import Owlv2ForObjectDetection, Owlv2Processor :[103](https://github.com/roboflow/inference/actions/runs/12049175470/job/33595408508#step:7:104)9: in _handle_fromlist ??? /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/transformers/utils/import_utils.py:1766: in __getattr__ module = self._get_module(self._class_to_module[name]) /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/transformers/utils/import_utils.py:1780: in _get_module raise RuntimeError( E RuntimeError: Failed to import transformers.models.owlv2 because of the following error (look up to see its traceback): E /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/tokenizers/tokenizers.abi3.so: undefined symbol: PyInterpreterState_Get ```

[!CAUTION] We are fixing the problem in inference 0.28.2, but it is not possible to be fixed older releases - for those who need to fix that in their environments, please modify the build such that installing inference you also install tokenizers<=0.20.3. bash pip install inference "tokenizers<=0.20.3"

πŸ”§ Fixed issue with CUDA and stream management API

While running inference server and using stream management API to run Workflows against video inside docker container, it was not possible to use CUDA due to bug present from the very start of the feature. We are fixing it now.

Full Changelog: https://github.com/roboflow/inference/compare/v0.28.1...v0.28.2

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.28.1

πŸ”§ Fixed broken Workflows loader

[!CAUTION] In 0.28.0 we had bug causing this error:
ModuleNotFoundError: No module named 'inference.core.workflows.core_steps.sinks.roboflow.model_monitoring_inference_aggregator' We've junked version 0.28.0 of inference, inference-core, inference-cpu and inference-gpu and we recommend our clients to upgrade.

What's Changed

  • Add init.py to fix docs generation by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/830
  • Add missing static landing page outputs by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/832
  • Release ARM CPU builds by @alexnorell in https://github.com/roboflow/inference/pull/831
  • Remove debug print from owlv2 by @alexnorell in https://github.com/roboflow/inference/pull/833
  • Bump version to 0.28.1 by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/835

Full Changelog: https://github.com/roboflow/inference/compare/v0.28.0...v0.28.1

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.28.0

πŸš€ Added

πŸŽ₯ New Video Processing Cookbook! πŸ’ͺ

We’re excited to introduce a new cookbook showcasing a custom video-processing use case: Creating a Video-Based Fitness Trainer! πŸš€ This is not only really nice example on how to use Roboflow tools, but also a great Open Source community contribution from @Matvezy πŸ₯Ή. Just take look at the notebook.

https://github.com/user-attachments/assets/650dd512-8aae-4887-a9de-86ab0f939e59

🎯 Purpose

This cookbook demonstrates how inference enhances foundational models like GPT-4o by adding powerful vision capabilities for accurate, data-driven insights. Perfect for exploring fitness applications or custom video processing workflows.

πŸ” What’s inside?

  • πŸƒ Body Keypoint Tracking: Use inference to detect and track body keypoints in real time.
  • πŸ“ Joint Angle Calculation: Automatically compute and annotate joint angles on video frames.
  • πŸ€– AI-Powered Fitness Advice: Integrates GPT to analyze movements and provide personalized fitness tips based on video data.
  • πŸ› οΈ Built with supervision: for efficient annotation and processing.

✨ New Workflows Block for Model Monitoring! πŸ“Š

We’re thrilled to announce a new block that takes inference data reporting to the next level by integrating seamlessly with Roboflow Model Monitoring - all thanks to @robiscoding πŸš€

Take look at πŸ“– documentation to learn more.

πŸ‹οΈ Why to use?

  • 🏭 Monitor your model processing video
  • ⏱️ Track and validate model performance effortlessly over time
  • πŸ”§ Gain understanding on how to improve your models over time

πŸ”§ Fixed

  • Change the platform tests assertions to compensate for PR #798 by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/816
  • Set hosted to True when running on dedicated deployment by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/817
  • Fix issue with Workflows blocks for Roboflow models v2 not using base64 by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/823
  • Bug which turned out not to be bug by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/824
  • Fix bug with primitive types parsing in Worklfows by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/825
  • Bump cross-spawn from 7.0.3 to 7.0.6 in /inference/landing in the npmandyarn group by @dependabot in https://github.com/roboflow/inference/pull/828

πŸ—οΈ Changed

  • Handle internal roboflow service name env by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/826
  • Always include internal envs if set by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/827
  • Add support for preloading models by @alexnorell in https://github.com/roboflow/inference/pull/822
  • Make TURN server config optional by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/829

πŸ… New Contributors

  • @Matvezy made their first contribution in https://github.com/roboflow/inference/pull/820

Full Changelog: https://github.com/roboflow/inference/compare/v0.27.0...v0.28.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.27.0

πŸš€ Added

🧠 Your own fine-tuned Florence 2 in Workflows πŸ”₯

Have you been itching to dive into the world of Vision-Language Models (VLMs)? Maybe you've explored @SkalskiP's incredible tutorial on training your own VLM. Well, now you can take it a step furtherβ€”train your own VLM directly on the Roboflow platform!

But that’s not all: thanks to @probicheaux, you can seamlessly integrate your VLM into Workflows for real-world applications.

Check out the πŸ“– docs and try it yourself!

[!NOTE]
This workflow block is not available on Roboflow platform - you need to run inference server on your machine (preferably with GPU). bash pip install inference-cli inference server start

🎨 Classification results visualisation in Workflows

The Workflows ecosystem offers a variety of blocks to visualize model predictions, but we’ve been missing a dedicated option for classificationβ€”until now! πŸŽ‰

Thanks to the incredible work of @reiffd7, we’re excited to introduce the Classification Label Visualization block to the ecosystem.

Dive in and bring your classification results to life! πŸš€

🚧 Changes in ecosystem - Execution Engine v1.3.0 🚧

[!TIP] Changes introduced in Execution Engine v1.3.0 are non breaking, but we shipped couple of nice extensions and we encourage contributors to adopt them.

Full details of the changes and migration guides available here.

βš™οΈ Kinds with dynamic serializers and deserializers

  • Added serializers/deserializers for each kind, enabling integration with external systems.
  • Updated the Blocks Bundling page to reflect these changes.
  • Enhanced roboflow_core kinds with suitable serializers/deserializers.

See our updated blocks bundling guide for more details.

πŸ†“ Any data can be now a Workflow input

We've added new Workflows input type WorkflowBatchInput - which is capable of accepting any kind, unlike our previous inputs like WorkflowImage. What's even nicer - you can also specify dimensionality level for WorkflowBatchInput - basically making it possible to break down each workflow into single-steps executed in debug mode.

Take a look at πŸ“– docs to learn more

πŸ‹οΈ Easier blocks development

We got tired wondering if specific field in block manifest should be marked with StepOutputSelector, WorkflowImageSelector, StepOutputImageSelector or WorkflowParameterSelector type annotation. That was very confusing and was effectively increasing the difficulty of contributions.

Since the selectors type annotations are required for the Execution Engine that block define placeholders for data of specific kind we could not eliminate those annotations, but we are making them easier to understand - introducing generic annotation called Selector(...).

Selector(...) no longer tells Execution Engine that the block accept batch-oriented data - so we replaced old block_manifest.accepts_batch_input() method with two new: * block_manifest.get_parameters_accepting_batches() - to return list of params that WorkflowBlock.run(...) method accepts to be wrapped in Batch[X] container * block_manifest.get_parameters_accepting_batches_and_scalars() - to return list of params that WorkflowBlock.run(...) method accepts either to be wrapped in Batch[X] container or provided as stand-alone scalar values.

[!TIP] To adopt changes while creating new block - visit our updated blocks creation guide.

To migrate existing blocks - take a look at migration guide.

πŸ–ŒοΈ Increased JPEG compression quality

WorkflowImageData has a property called base64_image which is auto-generated out from numpy_image associated to the object. In the previous version of inference - default compression level was 90% - we increased it to 95%. We expect that this change will generally improve the quality of images passed between steps, yet there is no guarantee of better results from the models (that depends on how models were trained). Details of change: https://github.com/roboflow/inference/pull/798

[!CAUTION] Small changes in model predictions are expected due to this change - as it may happen that we are passing slightly different JPEG images into the models. If you are negatively affected, please let us know via GH Issues.

🧠 Change in Roboflow models blocks

We've changed the way on how Roboflow models blocks work on Roboflow hosted platform. Previously they were using numpy_image property of WorkflowImageData as an input to InferenceHTTPClient while executing remote calls - which usually caused that we are serialising numpy image to JPEG and then to base64, whereas usually on Roboflow hosted platform, we had base64 representation of image already provided, so effectively we were: * slowing down the processing * artificially decreasing the quality of images

This is no longer the case, so we do only transform image representation (and apply lossy compression) when needed. Details of change: https://github.com/roboflow/inference/pull/798.

[!CAUTION] Small changes in model predictions are expected due to this change - as it may happen that we are passing slightly different JPEG images into the models. If you are negatively affected, please let us know via GH Issues.

πŸ—’οΈ New kind inference_id

We've diagnosed the need to give a semantic meaning for inference identifiers that are used by external systems as correlation IDs. That's why we introduce new kind - inference_id. We encourage blocks developer to use new kind.

πŸ—’οΈ New field available in video_metadata and image kinds

We've added new optional field to video metadata - measured_fps - take a look at πŸ“– docs

πŸ—οΈ Changed

  • Disable telemetry when running YOLO world by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/800
  • Pass webrtc TURN config as request parameter when calling POST /inferencepipelines/initialisewebrtc by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/801
  • Remove reset from YOLO settings by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/802
  • Pin all dependencies and update to new versions of libs by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/803
  • bumping owlv2 version and putting cache size in env by @isaacrob-roboflow in https://github.com/roboflow/inference/pull/813

πŸ”§ Fixed

  • Florence 2 - fixing model caching by @probicheaux in https://github.com/roboflow/inference/pull/808
  • Use measured fps when fetching frames from live stream by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/805
  • Fix issue with label visualisation by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/811 and @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/814

Full Changelog: https://github.com/roboflow/inference/compare/v0.26.1...v0.27.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.26.1

What's Changed

  • Make skypilot optional for inference-cli by @sberan in https://github.com/roboflow/inference/pull/792
  • Add usage_billable to BaseRequest by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/793
  • Handle malformed usage_fps by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/795
  • Feature/extend line counter block outputs by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/797
  • Add turn server configuration to webrtc connection by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/799

Full Changelog: https://github.com/roboflow/inference/compare/v0.26.0...v0.26.1

- Python
Published by grzegorz-roboflow over 1 year ago

inference - v0.26.0

πŸš€ Added

🧠 Support for fine-tuned Florence-2 πŸ’₯

As part of onboarding of Florence-2 fine-tuning on Roboflow platform, @probicheaux made it possible to run your fine-tuned models in inference. Just complete the training on the Platform and deploy it using inference, as any other model we support 🀯

🚦Jetpack 6 Support

We are excited to announce the support for Jetpack 6 which will enable more flexibility of development for Nvidia Jetson devices.

Test the image with the following command on Jetson device with Jetpack 6: ``` pip install inference-cli

inference server start or pull the image from docker pull roboflow/roboflow-inference-server-jetson-6.0.0 ```

πŸ—οΈ Changed

InferencePipeline video files FPS subsampling

We've discovered that the behaviour of max_fps parameter is not in line with inference clients expectations regarding processing of video files. Current implementation for vides waits before processing the next video frame, instead dropping the frames to modulate video FPS.

We have added a way to change this suboptimal behaviour in release v0.26.0 - new behaviour of InferencePipeline can be enabled setting environmental variable flag ENABLE_FRAME_DROP_ON_VIDEO_FILE_RATE_LIMITING=True.

❗ Breaking change planned

Please note that the new behaviour will be the default one end of Q4 2024!

See details: https://github.com/roboflow/inference/pull/779

Stay tuned for future updates!

Other changes

  • Pass countinference to usage collector by @SolomonLake in https://github.com/roboflow/inference/pull/774
  • Do not run tests if branch is not up to date with main by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/767
  • Include resource_details.billable in workflows usage by @SolomonLake in https://github.com/roboflow/inference/pull/776
  • Add hostname with optional DEDICATEDDEPLOYMENTID to usage payload by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/778
  • Return single top class confidence for mulit-label predictions by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/781
  • Aggregate usage for streams and photos separately by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/786
  • Add gzip support by @alexnorell in https://github.com/roboflow/inference/pull/783
  • avoiding downloading images if possible by @isaacrob-roboflow in https://github.com/roboflow/inference/pull/782

πŸ”§ Fixed

  • vulnerability issue with crypthography by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/790
  • Fix model type for classification by @robiscoding in https://github.com/roboflow/inference/pull/773
  • fix case where there are no good matches for the prompt by @isaacrob-roboflow in https://github.com/roboflow/inference/pull/770
  • Bugfix: keypoint visualization block by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/769
  • Do not store usage in cache when API key is not available by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/772
  • Fix the bug with two stage workflow and continue-if failing when nothing gets detected by primary model by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/777
  • Remove debug step from 'Test package install - inference-gpu' by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/780
  • Allow easier inheritance of pipeline by @RossLote in https://github.com/roboflow/inference/pull/789

πŸ… New Contributors

  • @RossLote made their first contribution in https://github.com/roboflow/inference/pull/789

Full Changelog: https://github.com/roboflow/inference/compare/v0.25...v0.26.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.25

πŸš€ Added

Newer onnxruntime πŸ‘‰ faster inference on MacBook 🐎

@yeldarby bumped the onnxruntime from 0.15.x into 0.19.0 and that small change induced great performance improvement for YOLOv8 models running on resolution up to 640 🀯 Some variants of yolo runs now 2x faster on M2 chips ❗

https://github.com/user-attachments/assets/0712933a-3925-4429-a550-5676aad8991c

🏎️ Better and Faster OWLv2 inference

@isaacrob-roboflow and @probicheaux prepared something special in https://github.com/roboflow/inference/pull/759, https://github.com/roboflow/inference/pull/763 and https://github.com/roboflow/inference/pull/755

πŸ§™ Box prompting in annotations

We built a new tool to automatically label your data for you!

Inspired by a recent open source release, now when you annotate a dataset you can automatically get recommendations for other likely bounding boxes! And if you don’t like a recommendation, you can mark it as β€˜negative’ and it will learn not to recommend boxes like that again!

Under the hood we use your annotations and feedback to train a few shot model based on OWLv2 on the fly, and then run it against your data to propose other likely bounding boxes.

We think this will save you a lot of time!

🐎 Inference speedup

Over 10x inference speed boost on T4 GPU. Previous version run in 440ms, now it is only 36ms πŸ”₯

Workflows enhancements

πŸ…°οΈ Single character detection πŸ‘‰ OCR

Ever wondered how to read the text if you have model detecting separate characters? Now it is easy with workflows thanks to @reiffd7

Check out Stitch OCR Detections block docs πŸ“–

https://github.com/user-attachments/assets/747cbef6-970c-4339-b2a8-5eb8b33ec12c

🀺 Keypoints detection visualisation

Thanks to @EmilyGavrilenko, Workflows can now visualise predictions from keypoints detection models - for instance pose-estimation ones πŸ˜„ I bet you find the visualisation familiar - the new block is powered by supervision.

Check out Keypoint Visualization block docs πŸ“–

https://github.com/user-attachments/assets/894b018a-ceed-40e1-a881-585494f43c5a

πŸ”§ Fixed

  • Binary attachments in e-mail block (like JPEG images) now are possible to be sent - @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/758

πŸ… New Contributors

  • @isaacrob-roboflow made their first contribution in https://github.com/roboflow/inference/pull/759
  • @reiffd7 made their first contribution in https://github.com/roboflow/inference/pull/765

Full Changelog: https://github.com/roboflow/inference/compare/v0.24.0...v0.25.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.24.0

πŸš€ Added

πŸŽ₯ Data analysis and export in Workflows

We’re excited to introduce a suite of new blocks to supercharge your video processing and streamline your workflow exports!

✨ What’s New? * Enhanced Video Analytics: Easily track object counts over time or within specific zones. Want to know how many items appear in a unit of time? βœ… Now you can! * Custom Notifications: Send automatic emails πŸ“§ when a detected object enters a defined area. Stay informed without manual checks! * REST API Integration: Effortlessly export your workflow results 🌐. Connect to any REST API and deliver your data wherever you need it.

Our new blocks make your Workflows more powerful and versatile than ever before. Start building smarter workflows today! πŸš€

https://github.com/user-attachments/assets/c196a789-15a2-4a1d-9355-0fde94b6203b

New blocks

  • Data Aggregator: Collects and processes Workflow data to create time-based analytics. πŸ“Š Supports custom aggregation strategies, making it easy to summarize data streams efficiently.
  • CSV Formatter: Formats the data into CSV files which can be saved or send as an attachment to in notification block πŸ“š
  • Email Notification: Send email notifications πŸ“§ in Workflows.
  • Local File Sink: Saves data generated in Workflow runtime into local file πŸ“
  • Webhook SInk: Enables users to integrate their Workflows with REST API to export data or analysis results

[!IMPORTANT] At the moment of release, Workflows UI lack some capabilities to display new blocks, but stay tuned - we will fix that shortly

🏷️ Tracking stabiliser block

Ever experienced flickering detections and loosing tracker id? We know this pain - that's why @grzegorz-roboflow prepared Detections Stabilizer block.

https://github.com/user-attachments/assets/db33da80-02bb-42c3-b18b-f51284a6352c

πŸ’» Improvements in stream processing

Each week we are closer and closer to enabling full-blown video processing features - this week @grzegorz-roboflow and @hansent pushed us forward:

  • WebRTC streams are now faster - https://github.com/roboflow/inference/pull/751
  • we have better management of InferencePipelines in inference server - https://github.com/roboflow/inference/pull/751

πŸ”§ Fixed

  • Loosed typer requirements in https://github.com/roboflow/inference/pull/746 fixing the problem raised in https://github.com/roboflow/inference/issues/738
  • Fixed Google Vision OCR icon by @brunopicinin in https://github.com/roboflow/inference/pull/749

🌱 Changed

  • Adding more inference metrics to the prometheus scraper by @bigbitbus in https://github.com/roboflow/inference/pull/750

Full Changelog: https://github.com/roboflow/inference/compare/v0.23.0...v0.24.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.23.0

πŸš€ Added

πŸ•΅οΈ Predictions difference visualization in Workflows πŸ”Ž

Ever felt like a detective trying to uncover the subtle differences between model predictions? It used to be hardβ€”sifting through data, struggling to spot where models disagreed. But not anymore! πŸ”¦

The Model Comparison Visualization block makes comparing models effortless by visually highlighting the differences between two models’ predictions.

Don't you think that was a great idea by @yeldarby to create the block?

✨ Just take a look how it works

https://github.com/user-attachments/assets/b4f9a45c-8390-4abe-9823-af630e415293

🐎 Compilation cache in Workflows Execution Engine πŸš€

If you're familiar with programming, you know the trade-off between compiled and interpreted languages: interpreted ones offer flexibility, but interpreting every line of code can slow things down. To overcome this, interpreters often cache code to speed up execution.

We realized that the Workflows Execution engine was adding unnecessary graph interpretation overhead, even when running the same workflow multiple times. πŸ•’ In the quest for speed, we’ve introduced compiled Workflow caching, which drastically reduces execution time for repeated workflows! ⚑

When you will be able to see the speed-up? If you send multiple requests to inference server asking to run the same Workflow - you will be impacted πŸ˜„ Now your workflows will run faster than ever! 🎯

Full details and benchmark results are available here

πŸ“ Distance measurement in Workflows πŸ“

Introducing the Distance Measurement block, now available in Workflows! This block calculates the distance between two bounding boxes on a 2D plane using a camera positioned perpendicularly.

πŸ” Key Features:

  • Measure distance in centimeters or pixels with ease.
  • Use either a reference object of known size or a pixel-to-centimeter ratio for accurate scaling.
  • Whether you're analyzing footage or comparing object placements, this block gives you precise, scalable distance measurements in your workflows. Try it out and streamline your 2D distance calculations! πŸ“

Everything thanks to @ediardo πŸ…

πŸ“Š inference server telemetry

Thanks to @robiscoding, inference server gained ability to export detailed metrics that can be pooled in runtime to ensure better service observability. Check out details.

πŸ—žοΈ Exciting news

πŸŽ₯ Video processing with Workflows

The Roboflow team is pushing the boundaries of video processing within Workflows, laying the foundation for powerful new capabilities. You can catch a glimpse of the preliminary changes we've introduced thanks to @grzegorz-roboflow: https://github.com/roboflow/inference/pull/719, https://github.com/roboflow/inference/pull/743,

Stay tuned as we continue to build and enhance video processing features, making it easier than ever to integrate video into your workflows. πŸ“Ήβœ¨

🌱 Changed

Deprecation of video_metadata kind

The video_metadata kind has been deprecated. We recommend switching to the updated image kind, which now supports optional video_metadata. We plan to remove video_metadata kind in Execution Engine v2.0.0

While this is non-breaking, some older blocks may become incompatible with future video processing blocks.

With the updated internal representation of image kind, two new methods, WorkflowImageData.copy_and_replace(...) and WorkflowImageData.create_crop(...), have been added for easier metadata manipulation. See the updated usage guide.

From now one, we will also publish list of changes in Workflows Execution Engine in a changelog πŸ“–

Remaining changes

  • Add yolov11 aliases to inference_sdk by @probicheaux in https://github.com/roboflow/inference/pull/730
  • CI changes by @alexnorell in https://github.com/roboflow/inference/pull/740, https://github.com/roboflow/inference/pull/700
  • Update license reference by @emmanuel-ferdman in https://github.com/roboflow/inference/pull/741
  • Retrieve device stats for docker containers by @robiscoding in https://github.com/roboflow/inference/pull/739

πŸ… New Contributors

  • @alexnorell made their first contribution in https://github.com/roboflow/inference/pull/740
  • @emmanuel-ferdman made their first contribution in https://github.com/roboflow/inference/pull/741
  • @ediardo made their first contribution in https://github.com/roboflow/inference/pull/731

Full Changelog: https://github.com/roboflow/inference/compare/v0.22.2...v0.23.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.22.2

What's Changed

  • Relax openvino version by @probicheaux in https://github.com/roboflow/inference/pull/727
  • Bump version by @probicheaux in https://github.com/roboflow/inference/pull/728

Full Changelog: https://github.com/roboflow/inference/compare/v0.22.1...v0.22.2

- Python
Published by probicheaux over 1 year ago

inference - v0.22.1

Bumps ONNX Runtime requirements to ensure our users can run the new yolov11 models. Also adds some yolov11 documentation to the aliases page.

What's Changed

  • yolov11 improvements by @probicheaux in https://github.com/roboflow/inference/pull/726

Full Changelog: https://github.com/roboflow/inference/compare/v0.22.0...v0.22.1

- Python
Published by probicheaux over 1 year ago

inference - v0.22.0

πŸš€ Added

πŸ”₯ YOLOv11 in inference πŸ”₯

We’re excited to announce that YOLOv11 has been added to inference! πŸš€ You can now use both inference and the inference server to get predictions from the latest YOLOv11 model. πŸ”₯

All thanks to @probicheaux and @SolomonLake πŸ…

https://github.com/user-attachments/assets/ed6aa0db-cb20-4bb9-bd67-a79930cc6baf

Try the model ininference Python package ```python import cv2 from inference import get_model image = cv2.imread("") model = get_model("yolov11n-640") predictions = model.infer(image) print(predictions) ```

πŸ’ͺ Workflows update

Google Vision OCR in workflows

Thanks to open source contribution from @brunopicinin we have Google Vision OCR integrated into workflow ecosystem. Great to see open source community contribution πŸ…

https://github.com/user-attachments/assets/0acf8db4-2fba-4f5b-b99e-93bcbbdda8fd

See πŸ“– documentation of the new block to explore it's capabilities.

Images stitch Workflow block

πŸ“· Your camera is not able to cover the whole area you want to observe? Don't worry! @grzegorz-roboflow just added the Workflow block which would be able to combine the POV of multiple cameras into a single image that can be further processed in your Workflow.

image 1image 2stitched image

πŸ“ Size measurement block

Thanks to @chandlersupple, we can now measure actual size of objects with Workflows! Take a look at πŸ“– documentation to discover how the block works.

image

Workflows profiler and Execution Engine speedup πŸ‡

We've added Workflows Profiler - ecosystem extension to profile the execution of your workflow. It works for inference server requests (both self-hosted and on Roboflow platform) as well as for InferencePipeline.

image

The cool thing about profiler is that it is compatible with chrome://tracing - so you can easily grab profiler output and render it in Google Chrome browser.

To profile your Workflow execution use the following code snippet - traces are saved in ./inference_profiling directory by default.

```python from inference_sdk import InferenceHTTPClient

client = InferenceHTTPClient( apiurl="https://detect.roboflow.com", apikey="" ) results = client.runworkflow( workspacename="", workflowid="", images={ "image": "", }, enableprofiling=True, ) ```

See detailed report regarding speed optimisations in the PR https://github.com/roboflow/inference/pull/710

❗ Important note

As part of speed optimisation we enabled server-side caching for workflows definitions saved on Roboflow Platform - if you frequently change and your Workflow, to see results immediately you need to specify use_cache=False parameter of client.run_workflow(...) method

πŸ”§ Fixed

  • Fix prometheus scraping by @robiscoding in https://github.com/roboflow/inference/pull/712
  • Fix the problem with VLMs on batch inference by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/718

🌱 Changed

  • Docker auto-reload configuration by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/703
  • Multi-Label Classification UQL Operations by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/714
  • Add port forward to Notebook Landing Page message by @hansent in https://github.com/roboflow/inference/pull/711
  • Add optional descriptions to dynamic blocks by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/702
  • Add descriptions to task types in VLM as Detector by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/704
  • Add tests for Google Vision OCR by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/715
  • Improvements regarding custom python blocks by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/716

πŸ… New Contributors

We do want to honor @brunopicinin who made their first contribution to inference in https://github.com/roboflow/inference/pull/709 as a part of Hacktoberfest 2024. We invite other open-source community members to contribute πŸ˜„

Full Changelog: https://github.com/roboflow/inference/compare/v0.21.1...v0.22.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.21.1

What's Changed

  • Improvements in contribution guides by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/691
  • Fix issue with SAM2 producing segmentation masks as points and lines by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/697

Full Changelog: https://github.com/roboflow/inference/compare/v0.21.0...v0.21.1

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.21.0

πŸš€ Added

πŸ‘©β€πŸŽ¨ Become an artist with Workflows πŸ‘¨β€πŸŽ¨

Ever wanted to be an artist but felt like you lacked the skills? No worries! We’ve just added the StabilityAI Inpainting block to the Workflows ecosystem. Now, you can effortlessly add whatever you envision into your images! πŸŒŸπŸ–ΌοΈ

Credits to @Fafruch for origin idea πŸ’ͺ

https://github.com/user-attachments/assets/c7a4c107-1fa8-46a7-a429-3b4fbe39184b

πŸ“– docs * Model [πŸ“– docs](https://platform.stability.ai/docs/legacy/grpc-api/features/inpainting) * Workflow block [πŸ“– docs](https://inference.roboflow.com/workflows/blocks/stability_ai_inpainting/)

🀯 Workflows + video + inference server - Experimental feature preview πŸ”¬

Imagine creating a Workflow in our UI, tuning it to understand what happens in your video. So far, video processing with InferencePipeline required a bit of glue code and setup in your environment. We hope that soon, you won’t need any custom scripts for video processing! You’ll be able to ship your Workflow directly to the inference server, just pointing which video source to process.

We're thrilled to announce that we’ve taken the first step toward making this idea a reality! Check out our experimental feature for video processing, now controlled by the inference server with a user-friendly REST API for easy integration.

https://github.com/user-attachments/assets/c1afa7d6-507a-48cb-93a8-c067bd9c9ccf

πŸ” We encourage you to try it out! The feature is available in the inference server Docker images that you can self-host. Please note that this feature is experimental, and breaking changes are to be expected. Check out our πŸ“– docs to learn more.

πŸ™ƒ Flips, Rotations and Resizing in Workflows

Tired of dealing with image orientation problems while building demos with Workflows? Whether it's resizing, rotating, or flipping, those headaches end today with our new features for seamless image adjustments!

All thanks to @EmilyGavrilenko and PR https://github.com/roboflow/inference/pull/683

✨ Ensure Your Tracked Objects Stay on Course! πŸ›°οΈ

Wondering if the objects you're tracking follow the path you intended? We’ve got you covered in Workflows! Thanks to @shantanubala, we now offer FrΓ©chet Distance Analysis as a Workflow block. Simply specify the desired trajectory, and Workflow calculates the deviation for each tracked box. πŸ“Š See details: https://github.com/roboflow/inference/pull/682

What’s FrΓ©chet Distance? It’s a mathematical measure that compares the similarity between two curvesβ€”perfect for analyzing how closely your tracked objects follow the path you’ve set.

πŸ†• Background removal in Dynamic Crop and updated UI for VLMs

Let’s be honestβ€”VLMs in Workflows still had room for improvement, especially when integrating model outputs with other blocks. Well, we've made it better! πŸŽ‰ Now, each model task comes with a clear description and a suggested parser to follow the block, helping you get the most out of your model predictions with ease. πŸ› οΈ

Additionally, you can now remove background while performing Dynamic Crop on Instance Segmentation model results 🀯

https://github.com/user-attachments/assets/25881769-4e6d-4ca1-8880-d15471c56f78

πŸ”§ Fixed

  • Fix lora by @probicheaux in https://github.com/roboflow/inference/pull/676
  • Add ability to parametrise class remap UQL operation by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/674
  • Fix license link in docs by @NickHerrig in https://github.com/roboflow/inference/pull/680
  • Add transformers extra to dev setup py by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/678

🌱 Changed

  • gstreamer backend in inference by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/646
  • Add workflow schema api docs by @NickHerrig in https://github.com/roboflow/inference/pull/677
  • Add Florence-2 πŸ“– documentation by @capjamesg in https://github.com/roboflow/inference/pull/626

πŸ… New Contributors

  • @shantanubala made their first contribution in https://github.com/roboflow/inference/pull/682

Full Changelog: https://github.com/roboflow/inference/compare/v0.20.1...v0.21.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.20.1

What's Changed

  • Fix workflows gallery previews by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/668
  • Add option to reset timer when detection falls outside of zone by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/671
  • Line counter improvements by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/670

Full Changelog: https://github.com/roboflow/inference/compare/v0.20.0...v0.20.1

- Python
Published by grzegorz-roboflow over 1 year ago

inference - v0.20.0

πŸš€ Added

🌟 Florence 2 🀝 Workflows

Thanks to @probicheaux, the Workflows ecosystem just got better with the addition of the Florence 2 block. Florence 2, one of the top open-source releases this year, is a powerful Visual Language Model capable of tasks like object detection, segmentation, image captioning, OCR, and more. Now, you can use it directly in your workflows!

Florence 2 and SAM 2 - zero shot grounded segmentation

Ever wished for precise segmentation but didn’t have the data to train your model? Now you don’t need it! With Florence 2 and SAM 2, you can achieve stunning segmentation results effortlessly β€” without a single annotation.

Discover how to combine these powerful models and get top-tier segmentation quality for free!

https://github.com/user-attachments/assets/965297e0-375f-4f0d-9448-2232a578542f

Florence 2 as OCR model

Need Text Layout Detection and OCR? Florence 2 Has You Covered!

https://github.com/user-attachments/assets/84bef0ae-66a9-41a1-81cc-f09dcbd09e37

Zero-shot object detection needed?

Do not hesitate and try out Florence 2 as object detection model - the quality of results is surprisingly good πŸ”₯

https://github.com/user-attachments/assets/b08f54d3-53d1-4a58-9c80-5d95a6b99df1

πŸ”” Additional notes

  • Florence 2 requires either Roboflow Dedicated Deployment or self-hosted inference server - it is not available on Roboflow Hosted Platform
  • To discover full potential of Florence 2 - read the paper
  • Visit πŸ“– documentation of Florence 2 Workflow block

New version of SIFT block

Tired using SIFT descriptors calculation block followed by SIFT comparison? This is no longer needed. Check out SIFT Comparison v2 block. PR: https://github.com/roboflow/inference/pull/657

sift_updated

Workflows UQL extended with new operations

You may not even be aware, but Universal Query Language powers Workflows operations that can be fully customised in UI. There are two new features shipped: * selecting prediction by confidence by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/655 * class names remapping operation by @NickHerrig in https://github.com/roboflow/inference/pull/656

Instance Segmentation ⏩ oriented rectangle

Thanks to @chandlersupple, Instance Segmentation results can be turned into oriented bounding boxes - check out πŸ“– docs

πŸ”§ Fixed

  • Broken links removed from docs in https://github.com/roboflow/inference/pull/663
  • Fixes to release 0.19.0:
    • broken visualisation blocks got repaired: by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/662
    • proper defaults brought into line counter and time in zone analytics blocks by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/658

🌱 Changed

  • Control what properties are visible in the UI by default by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/659
  • E2E tests for describe workflow and examples by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/652
  • Add secrets to integration tests by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/667

Full Changelog: https://github.com/roboflow/inference/compare/v0.19.0...v0.20.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.19.0

πŸš€ Added

πŸŽ₯ Video processing in workflows 🀯

We’re excited to announce that, thanks to the contributions of @grzegorz-roboflow, our Workflows ecosystem now extends to video processing! Dive in and explore the new possibilities:

https://github.com/user-attachments/assets/b4778f79-7630-4393-8abd-7d3a5ba64f5c

New blocks: * Time In Zone to analyse dwell time * Line Counter to detect objects passing line * Visualisation for zone and line counter

We've introduced minimal support for video processing in the Workflows UI, with plans to expand to more advanced features soon. To get started, you can create a Python script using the InferencePipeline, similar to the provided example.

Video source YT | Karol Majek

πŸ”₯ OWLv2 🀝 inference

Thanks to @probicheaux we have OWLv2 model in inference. OWLv2 was primarily trained to detect objects from text. The implementation in Inference currently only supports detecting objects from visual examples of that object.

You can use model in inference server - both CPU and GPU, as well as in Python package. Visit our πŸ“– docs to learn more.

https://github.com/user-attachments/assets/d4933ea6-3ea1-4259-ba5a-9f1f6113e5a7

πŸ‘“ TROCR 🀝 inference

@stellasphere shipped TROCR model to expand OCR models offering in inference πŸ”₯

You can use model in inference server - both CPU and GPU, as well as in Python package. Visit our πŸ“– docs to learn more.

πŸ§‘β€πŸŽ“ Workflows - endpoint to discover interface

Guessing the data format for Workflow inputs and outputs was a challange as for now, but thanks to @EmilyGavrilenko this is no longer the case. We offer two new endpoints (for workflows registered on the platform and for workflows submitted in payload). Details in https://github.com/roboflow/inference/pull/644.

πŸ”” Example response ```json { "inputs": { "image": ["image"], "model_id": ["roboflow_model_id"], }, "outputs": { "detections": ["object_detection_prediction"], "crops": ["image"], "classification": { "inference_id": ["string"], "predictions": ["classification_prediction"], }, }, "typing_hints": { "image": "dict", "roboflow_model_id": "str", "object_detection_prediction": "dict", "string": "str", "classification_prediction": "dict", }, "kinds_schemas": { "image": {}, "object_detection_prediction": {"dict": "with OpenAPI 3.0 schema of result"}, "classification_prediction": {"dict": "with OpenAPI 3.0 schema of result"} } } ```

🌱 Changed

  • Bring back transformers extras by @probicheaux in https://github.com/roboflow/inference/pull/639
  • Move xformers to paligemma code by @probicheaux in https://github.com/roboflow/inference/pull/641
  • Cache plan details by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/636
  • Bump next from 14.2.7 to 14.2.12 in /inference/landing by @dependabot in https://github.com/roboflow/inference/pull/649

πŸ”§ Fixed

  • Fixed bug with Workflows Execution Engine causing bug when conditional execution discards inputs of a step that changes dimensionality - see details in https://github.com/roboflow/inference/pull/645

♻️ Removed

  • Remove unmaintained device management code by @robiscoding in https://github.com/roboflow/inference/pull/647

Full Changelog: https://github.com/roboflow/inference/compare/v0.18.1...v0.19.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.18.1

πŸ”¨ Fixed

New VLM as Classifier Workflows block had bug - multi-label classification results were generated with "class_name" instead of "class" field in prediction details: https://github.com/roboflow/inference/pull/637

🌱 Changed

  • Increase timeout to 30 minutes for .github/workflows/testpackageinstallinferencewith_extras.yml by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/635

Full Changelog: https://github.com/roboflow/inference/compare/v0.18.0...v0.18.1

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.18.0

πŸš€ Added

πŸ’ͺ New VLMs in Workflows

We've shipped blocks to integrate with Google Gemini and Anthropic Claude, but that's not everything! OpenAI block got updated. New "VLM Interface" of the block assumes that it can be prompted using pre-configured options and model output can be processed by set of formatter blocs to achieve desired end. It is now possible to: * use classification prompting in VLM block and apply VLM as Classifier block to turn output string into classification result and process further using other blocks from ecosystem * the same can be achieved for object-detection prompting and VLM as Detector block, which converts text produced by model into sv.Detections(...)

From now one, VLMs are much easier to integrate.

πŸ§‘β€πŸ¦± USE CASE: PII protection when prompting VLM

Detect faces first, apply blur prediction visualisation and ask VLMs to tell what is the person eye colour - they won't be able to tell πŸ™ƒ

πŸ‘¨β€πŸŽ¨ USE CASE: VLM as object detection model

πŸ‘“ USE CASE: VLM as secondary classifier

Turn VLM output into classification results and process using downstream blocks - here we ask Gemini to classify crops of dogs to tell what is dog's breed - then we extract top class as property.

image

🀯 Workflows previews in documentation πŸ“–

Thanks to @joaomarcoscrs we can embed Workflows into documentation pages. Just take a look how amazing it is ❗

🌱 Changed

  • E2E tests for workflows on hosted platform by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/622
  • Allow model type "yolov8" without size by @SolomonLake in https://github.com/roboflow/inference/pull/627
  • Fix GDAL issue in GHA by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/628
  • Add support for DELETE in sqlite wrapper by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/631
  • Keep distinct exec sessions for inf pipeline usage by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/632
  • Insert usage payloads into redis and to sorted set atomically by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/633
  • remove height from workflow example by @capjamesg in https://github.com/roboflow/inference/pull/634

❗ BREAKING ❗ Batch[X] kinds removed from Workflows

What was changed and why?

In inference release 0.18.0 we decided to make drastic move to heal the ecosystem from the problem with ambiguous kinds names (Batch[X] vs X - see more here).

The change is breaking only for non-Roboflow Workflow plugins depending on imports from inference.core.workflows.execution_engine.entities.types module. To the best of our knowledge, there is no such plugin.

The change is not breaking in terms of running Workflows on Roboflow platform and on-prem given that external plugins were not used.

Migration guide

Migration should be relatively easy - in the code of a Workflow block, all instances of python from inference.core.workflows.execution_engine.entities.types import BATCH_OF_{{KIND_NAME}} should be replaced with python from inference.core.workflows.execution_engine.entities.types import {{KIND_NAME}}

PR with changes as reference: https://github.com/roboflow/inference/pull/618

Full Changelog: https://github.com/roboflow/inference/compare/v0.17.1...v0.18.0

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.17.1

❗IMPORTANT ❗Security issue in opencv-python

This PR provides fix for the following security issue:

opencv-python versions before v4.8.1.78 bundled libwebp binaries in wheels that are vulnerable to https://github.com/advisories/GHSA-j7hp-h8jx-5ppr. opencv-python v4.8.1.78 upgrades the bundled libwebp binary to v1.3.2.

We advise all clients using inference to migrate, especially in production environments.

Full Changelog: https://github.com/roboflow/inference/compare/v0.17.0...v0.17.1

- Python
Published by PawelPeczek-Roboflow over 1 year ago

inference - v0.17.0

πŸš€ Added

πŸ’ͺ More Classical Computer Vision blocks in workflows

Good news for the fans of classical computer vision! We heard you – and we’ve added a bunch of new blocks to enhance your workflows.

Basic operations on images

Workflow Definition Preview

Camera focus check

Workflow Definition Preview

πŸš€ Upgrade of CLIP Comparison and Roboflow Dataset Upload blocks

We’ve made it even more versatile. The new outputs allow seamless integration with many other blocks, enabling powerful workflows like:

detection β†’ crop β†’ CLIP classification (on crops) β†’ detection class replacement

Get ready to streamline your processes with enhanced compatibility and new possibilities!

image

For Roboflow Dataset Upload @ v2 there is now possibility to sample percentage of data to upload and we changed the default sizes of saved images to be bigger.

❗ Do not worry! All your old Workflows using mentioned blocks are not affected with the change thanks to versioning πŸ˜„

πŸ’₯ New version of πŸ“– Workflow docs πŸ”₯

The Wait is Over – Our Workflows Documentation is Finally Here!

We’ve revamped and expanded the documentation to make your experience smoother. It’s now organized into three clear sections: * General Overview: Perfect for getting you up and running quickly. * Mid-Level User Guide: Gain a solid understanding of the ecosystem without diving too deep into the technical details. * Detailed Developer Guide: Designed for contributors, packed with everything you need to develop within the ecosystem.

Check it out and let us know what you think of the new docs!

🌱 Changed

  • Record resource details in each usage payload by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/607
  • json.dumps resource_details when adding to usage payload by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/610
  • enhancement in CLIP docs by @venkatram-dev in https://github.com/roboflow/inference/pull/599 - thanks for contribution πŸ…
  • Sam2 multi polygons by @probicheaux in https://github.com/roboflow/inference/pull/593
  • Abstract sqlite3 wrapper in usage collector sqlite queue by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/619

πŸ”¨ Fixed

  • Dynamic Crop block was buggy in some contexts - see details: https://github.com/roboflow/inference/pull/604
  • Bug in integration tests by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/600
  • Bugfix sam2 logits cache and add test by @probicheaux in https://github.com/roboflow/inference/pull/606
  • Fix bug with detections offset and cover problem with additional test by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/611
  • only warn about version when its lower than latest release by @hansent in https://github.com/roboflow/inference/pull/609
  • Add inference_ids to model blocks by @robiscoding in https://github.com/roboflow/inference/pull/615
  • Fix Detection Offset Bug by @NickHerrig in https://github.com/roboflow/inference/pull/621
  • Bump micromatch from 4.0.5 to 4.0.8 in /inference/landing by @dependabot in https://github.com/roboflow/inference/pull/617

πŸ… New Contributors

  • @reedajohns made their first contribution in https://github.com/roboflow/inference/pull/602
  • @venkatram-dev made their first contribution in https://github.com/roboflow/inference/pull/599

Full Changelog: https://github.com/roboflow/inference/compare/v0.16.3...v0.17.0

- Python
Published by PawelPeczek-Roboflow almost 2 years ago

inference - v0.16.3

πŸ”¨ Fixed

  • Roboflow Dataset Upload block now can be dynamically configured with labelling batch prefixes passed as workflow inputs. Additionally predictions parameter is now optional - which means that you can upload images without predictions in your workflows - all thanks to @NickHerrig https://github.com/roboflow/inference/pull/586
  • @chandlersupple fixed Perspective Correction Block in https://github.com/roboflow/inference/pull/589
  • @robiscoding added missing inference_id for classification responses in https://github.com/roboflow/inference/pull/591
  • @PacificDou in https://github.com/roboflow/inference/pull/592 introduced changes to inference server routing that were required to enhance Dedicated Deployment functionality
  • Added limits for execution time of GHA in https://github.com/roboflow/inference/pull/596

πŸš€ Added

SAM2 extension

While making inference from SAM2 model you may request inference package and inference server to cache prompts and low-resolution masks from your inputs to be re-used later on upon request. You are given two parameters (both in SAM2 request payload and SegmentAnything2.segment_image(...) method: * save_logits_to_cache * load_logits_from_cache which decide how the functionality should work. Saving logits masks to cache will make it possible, to re-use them for consecutive inferences agains the same image. Enabling loading triggers search through cache intended to find the most similar prompt cached for this specific image to retrieve its mask. The mechanism is useful when the same image is segmented multiple times with slightly different sets of prompts - as injecting previous masks in that scenario may lead to better results:

Before After

Please note that this feature is different than cache for image embeddings which speed consecutive requests with the same image up and if you don't wish the feature to be enabled, set DISABLE_SAM2_LOGITS_CACHE=True in your env.

πŸ… @probicheaux and @tonylampada added the functionality in https://github.com/roboflow/inference/pull/582

Remaining changes

  • @EmilyGavrilenko added Workflow block search metadata to improve UI experience in https://github.com/roboflow/inference/pull/588
  • @grzegorz-roboflow added internal parameter for workflows request denoting preview in UI https://github.com/roboflow/inference/pull/595
  • @grzegorz-roboflow improved usage tracking extending it to models in https://github.com/roboflow/inference/pull/601 and https://github.com/roboflow/inference/pull/548
  • workflows equipped with new batch-oriented input - VideoFrameMetadata letting blocks to process videos statefully see https://github.com/roboflow/inference/pull/590, https://github.com/roboflow/inference/pull/597- more docs will come soon

Full Changelog: https://github.com/roboflow/inference/compare/v0.16.2...v0.16.3

- Python
Published by PawelPeczek-Roboflow almost 2 years ago

inference - v0.16.2

πŸš€ Added

Segment Anything 2 in workflows πŸ₯³

We prepared great amount of changes to workflows, could not really decide which update to start with, but at the end we found onboarding of SAM 2 model as most exciting.

Thanks to @hansent effort we have introduced SAM 2 workflow block. SAM2 workflow

You can use SAM2 standalone, or you can ground it's predictions with other detection models which is the true power of workflows. Thanks to grounding, you can generate instance segmentation masks for each bounding box predicted by your object detection model

❗ We do not support SAM2 at Roboflow Hosted Platform yet, but it is possible to use inference server start command to run local server supporting SAM2 model and connect it to workflows UI to run examples.

workflows 🀝 SAHI

We've added set of blocks that let people apply SAHI technique based on utilities provided by supervision.

We are going to work to simplify SAHI usage in workflows UI, but now you need to use three blocks to effectively apply technique: image

Classical Computer Vision methods in workflows πŸ”₯

We do not forget about old good friends - that's why we also added bunch of blocks with classical Computer Vision algorithms: * Dominant Color block by @NickHerrig in https://github.com/roboflow/inference/pull/578 * SIFT, SIFT matching, classical pattern matching and others by @ryanjball in https://github.com/roboflow/inference/pull/581

🌱 Changed

  • Added encoding='utf-8' to setup.py by @Bhavay-2001 in https://github.com/roboflow/inference/pull/556
  • Move landing static assets to /static/ namespace by @iurisilvio in https://github.com/roboflow/inference/pull/577
  • add exclusion rules for dedicated deployment authorizer by @PacificDou in https://github.com/roboflow/inference/pull/576
  • Workflow private block properties by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/579

πŸ”¨ Fixed

  • Fix security issues with landing page by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/584
  • Fixed a Regression in the Custom Metadata Block that was introduced in v0.16.0 - PR with fix by @chandlersupple (https://github.com/roboflow/inference/pull/573) - we kindly ask clients relying on the Custom Metadata Block, running their workflows on-prem to update inference or inference server
  • Bug in workflows Execution Engine that was making it impossible to feed the same block with two identical selectors (fixed in https://github.com/roboflow/inference/pull/581)

❗ In release 0.16.0 we introduced bug impacting workflows and inference_sdk

The mistake was introduced in https://github.com/roboflow/inference/pull/565 and fixed in https://github.com/roboflow/inference/pull/585 (both by @PawelPeczek-Roboflow 😒 ) and was causing issues with order of results - regarding specific workflows blocks: * blocks with Roboflow models, whenever used with batch input (for instance when workflow was run against multiple images, or Dynamic Crop was used) were mismatching order of predictions with respect to order of images * the same was true for OpenAI block and GPT-4V block * the problem was also introduced into inference_sdk, so whenever client was called with multiple images - results may have been missmatched

We advice all our clients to upgrade to new release and abandon usage inference=0.16.0

πŸ… New Contributors

  • @Bhavay-2001 made their first contribution in https://github.com/roboflow/inference/pull/556

Full Changelog: https://github.com/roboflow/inference/compare/v0.16.0...v0.16.1

- Python
Published by PawelPeczek-Roboflow almost 2 years ago

inference - v0.16.0

❗ In release 0.16.0 we introduced bug impacting workflows and inference_sdk

The mistake was introduced in https://github.com/roboflow/inference/pull/565 and fixed in https://github.com/roboflow/inference/pull/585 (both by @PawelPeczek-Roboflow 😒 ) and was causing issues with order of results - regarding specific workflows blocks: * blocks with Roboflow models, whenever used with batch input (for instance when workflow was run against multiple images, or Dynamic Crop was used) were mismatching order of predictions with respect to order of images * the same was true for OpenAI block and GPT-4V block * the problem was also introduced into inference_sdk, so whenever client was called with multiple images - results may have been missmatched

πŸš€ Added

Next bunch of updates for workflows πŸ₯³

βš“ Versioning

From now on, both Execution Engine and workflows blocks are versioned to ensure greater stability across changes we make to improve ecosystem. Each workflow definition now declares version forcing the app to run against specific version of Execution Engine. If denoted version is 1.1.0, then workflow would require Execution Engine >=1.1.0,<2.0.0 and we gain ability to expose concurrently multiple major versions of EE in the library (doing our best to ensure that within a major version we only add features and support everything that was released earlier within the same major). On top of that: * block manifest metadata field name now will be understood as name of blocks family with additional tag called version possible to be added; we propose the following naming conventions for block names: namespace/family_name@v1. Thanks to those changes anyone could maintain multiple versions of the same block (appending new implementation to their plugin) ensuring backwards compatibilities on breaking changes * each block manifest class may optionally expose class method get_execution_engine_compatibility(...) which would be used while model loading to ensure that selected Execution Engine is capable to run specific block

βœ‹ Example block manifest ```python class BlockManifest(WorkflowBlockManifest): model_config = ConfigDict( json_schema_extra={ "name": "My Block", "version": "v1", ... } ) type: Literal["my_namespace/mu_block@v1"] ... @classmethod def get_execution_engine_compatibility(cls) -> Optional[str]: return ">=1.0.0,<2.0.0" ```

:rotatinglight: ⚠️ BREAKING ⚠️ :rotatinglight: Got rid of asyncio in Execution Engine

If you were tired of coroutines performing compute heavy tasks in workflows:

python class MyBlock(WorkflowBlock): async def run(): pass we have great news. We've got rid of asyncio in favour of standard functions and methods which are much more intuitive in our setup. This change is obviously breaking all other steps, but worry not. Here is the example of what needs to be changed - usually you just need to remove async markers, but sometimes unfortunately pieces of asyncio code would need to be recreated.

python class MyBlock(WorkflowBlock): def run(): pass

Endpoint to expose workflow definition schema

Thanks to @EmilyGavrilenko (https://github.com/roboflow/inference/pull/550) UI would now be able to verify syntax errors in workflows definitions automatically.

Roboflow Dedicated Deployment is closer and closer πŸ˜ƒ

Thanks to @PacificDou, inference server is getting ready to support new functionality which has a nickname Dedicated Deployment. Stay tuned to learn more details - we can tell that this is something worth waiting for. You may find some hints in the PR.

πŸ”¨ Fixed

:rotatinglight: ⚠️ BREAKING ⚠️ :rotatinglight: HTTP client of inference server changes default behaviour

The default value for flag clientdownsizingdisabled was changed from False to True in release 0.16.0! For clients using models with input size above 1024x1024, running models on hosted platform it should improve predictions quality (as previous default behaviour was causing that input was downsized and then artificially upsized on the server side with worse image quality). There may be some clients that would like to remain previous settings to potentially improve speed (when internet connection is a bottleneck and large images are submitted despite small model input size).

If you liked the previous behaviour more - simply: ```python from inference_sdk import InferenceHTTPClient, InferenceConfiguration

client = InferenceHTTPClient( "https://detect.roboflow.com", apikey="XXX", ).configure(InferenceConfiguration( clientdownsizing_disabled=False, )) ```

setuptools were migrated to version above 70.0.0 to mitigate security issue

We've updated rf-clip package to support setuptools>70.0.0 and bumped the version on inference side.

🌱 Changed

  • πŸ“– Add documentation for ONNXRUNTIMEEXECUTIONPROVIDERS by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/562 - see here
  • πŸ“– Update docs for easier quickstart by @komyg in https://github.com/roboflow/inference/pull/544
  • πŸ“– Add Inference Windows CUDA documentation by @capjamesg in https://github.com/roboflow/inference/pull/502
  • Add @capjamesg to CODEOWNERS by @capjamesg in https://github.com/roboflow/inference/pull/564
  • Add persistent queue to usage collector by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/568

πŸ… New Contributors

  • @komyg made their first contribution in https://github.com/roboflow/inference/pull/544

Full Changelog: https://github.com/roboflow/inference/compare/v0.15.2...v0.16.0

- Python
Published by hansent almost 2 years ago

inference - v0.15.2

What's Changed

  • Separate the LMM block into OpenAI and CogVLM by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/549
  • Do not log warning when usage payload is put back into the queue by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/551
  • Initialize usagecollector.async_lock only if async look can be obtained by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/552
  • Cache workflow specification for offline use by @sberan in https://github.com/roboflow/inference/pull/555
  • Custom Metadata block for Model Monitoring users by @robiscoding in https://github.com/roboflow/inference/pull/553
  • Allow zone defined as input parameter to be passed to perspective_correction by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/559
  • Increment num_errors only if pingback initialized by @iurisilvio in https://github.com/roboflow/inference/pull/527
  • SAM2 by @hansent and @probicheaux in https://github.com/roboflow/inference/pull/557

Full Changelog: https://github.com/roboflow/inference/compare/v0.15.1...v0.15.2

- Python
Published by probicheaux almost 2 years ago

inference - v0.15.1

What's Changed

  • Refactor Visualization Workflow Block Inheritance by @yeldarby in https://github.com/roboflow/inference/pull/538
  • Add florence2 aliases and bugfix TransformersModel by @probicheaux in https://github.com/roboflow/inference/pull/525
  • Add BackgroundColorAnnotator block by @capjamesg in https://github.com/roboflow/inference/pull/542
  • Bugfix: keypoint detection model block by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/543

Full Changelog: https://github.com/roboflow/inference/compare/v0.15.0...v0.15.1

- Python
Published by grzegorz-roboflow almost 2 years ago

inference - v0.15.0

What's Changed

  • Fix broken NMS function by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/535
  • Usage Tracking by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/476
  • Add workflow benchmark by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/536
  • Adjust usage collector by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/537
  • Add python code block to workflows by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/509
  • Supervision Annotator Blocks by @yeldarby in https://github.com/roboflow/inference/pull/533

Full Changelog: https://github.com/roboflow/inference/compare/v0.14.1...v0.15.0

- Python
Published by PawelPeczek-Roboflow almost 2 years ago

inference - v0.14.1

πŸ”¨ Fixed

We've not removed usage of @deprecated elements of supervision in release v0.14.0 which happened just a moment before supervision v0.22.0. We are sorry for that problem. Fixing it with v0.14.1.

Thanks @probicheaux for spotting a problem and providing PR with fix.

What to do if you cannot migrate to inference>=0.14.1?

In script that resolve your environment (or in your requirements definition) enforce supervision<=0.21.0

Full Changelog: https://github.com/roboflow/inference/compare/v0.14.0...v0.14.1

- Python
Published by PawelPeczek-Roboflow almost 2 years ago

inference - v0.14.0

πŸš€ Added

inference is ready for Florence-2 🀩

Thanks to @probicheaux we have inference package ready for Florence-2. It is Large Multimodal Model capable of processing both image and text input handling wide range of generic vision and language-vision tasks.

We are excited to add it to the collection of models offered by inference. Due to the complexity of build, model is shipped only within docker image πŸ‹ . Everything within our official inference server build for GPU 🀯 . To fully utilise the new models you need to wait on the release in Roboflow platform.

You should be able to spin up your container via inference-cli: inference server start

❗ What is required to run the container and what has changed in the build? We've needed to bump required CUDA version in docker build for GPU server from `11.7` to `11.8`. That is why now, you may not be able to run the container on servers having older CUDA. We've run the server experimentally on machine with CUDA 11.6 and it worked, but we cannot guarantee that to work on older builds.
πŸ€” How to run new model? ```python import requests payload = { "api_key": ", "image": { "type": "url", "value": "https://media.roboflow.com/dog.jpeg", }, "prompt": "", "model_id": "" } response = requests.post( f"{server_url}/infer/lmm", json=payload, ) print(response.json()) ```

New blocks in workflows πŸ₯Ή

image

We have added the following block to workflows ecosystem: * Property Definition which let you to use specific attribute of data as an input for next step or as output * Detections Classes Replacement to replace classes of bounding boxes in scenario when you first run general object-detection model, then crop image based on predictions and you apply secondary classification model. Results of secondary model replaces originally predicted classes * and few others - explore our collection of blocks ✨

Blocks that were added are still in refinement - we may want to improve them over time - so stay tuned!

🌱 Changed

πŸ” Mitigation for security vulnerabilities ❗ BREAKING 🚧

To two mitigate security vulnerabilities: * unsafe deserialisation of pickled inputs enabled by default for self-hosted inference * Server-side request forgery (SSRF)

we needed to add couple of changes, among which one is breaking. From now on default value for env variable: ALLOW_NUMPY_INPUT is False.

Implications: * if you rely on pickled numpy images passed to inference Python package or sent to inference server - you need to set this env variable explicitly into ALLOW_NUMPY_INPUT=true in your environment or start a server with this env variable (see how) * there are also other changes which you can optionally tune to run inference server safer - see our docs πŸ“–

πŸ”¨ Fixed

❗ Removed bug in inference post-processing

Some models trained at Roboflow platform experienced problem with predictions post-processing when there was padding as the option selected while creating dataset. Thanks to @grzegorz-roboflow it was fixed in https://github.com/roboflow/inference/pull/495

Other minor fixes

  • fixed malformed workflow outputs in https://github.com/roboflow/inference/pull/499
  • replace match statement with if-else for Python 3.9 compatibility by @natserract in https://github.com/roboflow/inference/pull/488
  • InferencePipeline: allow it to run offline even if Active Learning enabled by @sberan in https://github.com/roboflow/inference/pull/491
  • Import sky only when required because it is slow by @iurisilvio in https://github.com/roboflow/inference/pull/494
  • Change GPT-4 default model into GPT-4o by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/500
  • Monitoring improvements @robiscoding in https://github.com/roboflow/inference/pull/490, @robiscoding in https://github.com/roboflow/inference/pull/492
  • Extend perspective correction to warp image by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/503
  • Show block name in error message thrown by steps_initialiser by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/504
  • Fix issue with workflows blocks after adding request id to response by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/505
  • Follow config to import core models by @iurisilvio in https://github.com/roboflow/inference/pull/508
  • Rename workflow blocks by @EmilyGavrilenko in https://github.com/roboflow/inference/pull/511
  • Update upload weights list by @capjamesg in https://github.com/roboflow/inference/pull/512
  • Default to Local Workflows Execution by @yeldarby in https://github.com/roboflow/inference/pull/515

πŸ… New Contributors

  • @natserract made their first contribution in https://github.com/roboflow/inference/pull/488
  • @EmilyGavrilenko made their first contribution in https://github.com/roboflow/inference/pull/511

Full Changelog: https://github.com/roboflow/inference/compare/v0.13.0...v0.14.0

- Python
Published by PawelPeczek-Roboflow almost 2 years ago

inference - v0.13.0

πŸš€ Added

🀯 Next-level workflows

Better integration with Roboflow platform

From now on, we have much better alignment with UI workflow creator available in Roboflow app. Just take a look how nice it presents itself thanks to @hansent @EmilyGavrilenko @casmwenger @kresetar @jchens

Screenshot 2024-06-27 at 13 42 36

But great look is not the only feature, the team has added tons of functionalities, including: * operations on processed by workflow Execution Engine - including filtering and conditions are now possible to be build with UI creators * Roboflow models and projects available to be used are suggested automatically * Preview option to run workflow that is under development is now available * ... and much more - check out yourself!

workflows Universal Query Language (UQL)

We've added Universal Query Language as extension to workflows eco-system. We've discovered that it would be extremely helpful for users to be able to build chains of transformations (like filtering, selecting only specific bounding boxes, aggregating results etc) or expressions evaluating into booleans. UQL powers UI extensions like the one presented below: Screenshot 2024-06-27 at 13 53 13

Yes, we know that UQL is not the best name, but as majority engineers we are struggling to find names for things we create. Please help us in that regards!

workflows 🀝 sv.Detections

From now on, the default representation of predictions from object-detection, instance-segmentation and keypoint-detection models is sv.Detections. That has a lot of practical implications for blocks creators. Take a look how easy it is to add a block that makes prediction from your custom model. This was mainly possible thanks to @grzegorz-roboflow

πŸ‘‰ Code snippet with your custom model block fitting our eco-system ```python from typing import Literal, Type import supervision as sv from inference.core.workflows.entities.base import ( Batch, OutputDefinition, WorkflowImageData, ) from inference.core.workflows.entities.types import ( BATCH_OF_OBJECT_DETECTION_PREDICTION_KIND, ImageInputField, StepOutputImageSelector, WorkflowImageSelector, ) from inference.core.workflows.prototypes.block import ( BlockResult, WorkflowBlock, WorkflowBlockManifest, ) class BlockManifest(WorkflowBlockManifest): type: Literal["MyModel"] images: Union[WorkflowImageSelector, StepOutputImageSelector] = ImageInputField @classmethod def describe_outputs(cls) -> List[OutputDefinition]: return [ OutputDefinition( name="predictions", kind=[BATCH_OF_OBJECT_DETECTION_PREDICTION_KIND] ) ] class MyModelBlock(WorkflowBlock): def __init__(self): self._model = load_my_model(...) @classmethod def get_manifest(cls) -> Type[WorkflowBlockManifest]: return BlockManifest async def run(self, image: WorkflowImageData) -> BlockResult: result = self._model(image) detections = sv.Detections(...) # here you need to convert results into sv.Detections - there is a need to add couple of keys into .data property - docs covering that will come soon, in questions - do not hesitate to ask return {"predictions": detections} ```

True conditional branching for SIMD operations in workflows

We had a serious technical limitation in previous iterations of workflows Execution Engine - lack of ability to simulate different execution branches for each element of data processed`. This is no longer the case! Now it is possible to detect high-level objects, make crops based on detections and then for each cropped image independently decide whether or not to save in Roboflow project - based on condition stated in UQL 🀯

Screenshot 2024-06-27 at 13 59 41

But this is not everything! As technical preview we prepared rock-paper-scissor game in workflows. Check it out here

Advancements in video processing with workflows

This feature is still experimental, but we are making progress - now it is possible to process multiple videos at once with InferencePipeline and workflows:

https://github.com/roboflow/inference/assets/146137186/a0bbd55a-d7a9-4ee7-ad14-aac8c03df2ba

πŸ‘‰ Code snippet ```python from typing import List, Optional import cv2 import supervision as sv from inference import InferencePipeline from inference.core.interfaces.camera.entities import VideoFrame from inference.core.utils.drawing import create_tiles STOP = False ANNOTATOR = sv.BoundingBoxAnnotator() def main() -> None: workflow_specification = { "version": "1.0", "inputs": [ {"type": "WorkflowImage", "name": "image"}, ], "steps": [ { "type": "ObjectDetectionModel", "name": "step_1", "image": "$inputs.image", "model_id": "yolov8n-640", "confidence": 0.5, } ], "outputs": [ {"type": "JsonField", "name": "predictions", "selector": "$steps.step_1.predictions"}, ], } pipeline = InferencePipeline.init_with_workflow( video_reference=[ "", "", ], workflow_specification=workflow_specification, on_prediction=workflows_sink, ) pipeline.start() pipeline.join() def workflows_sink( predictions: List[Optional[dict]], video_frames: List[Optional[VideoFrame]], ) -> None: images_to_show = [] for prediction, frame in zip(predictions, video_frames): if prediction is None or frame is None: continue detections: sv.Detections = prediction["predictions"] visualised = ANNOTATOR.annotate(frame.image.copy(), detections) images_to_show.append(visualised) tiles = create_tiles(images=images_to_show) cv2.imshow(f"Predictions", tiles) cv2.waitKey(1) if __name__ == '__main__': main() ```

Other changes:

  • Step Name Property Copy Changes by @yeldarby in https://github.com/roboflow/inference/pull/444
  • Abstract ImageInputField and RoboflowModelField + Copy Changes by @yeldarby in https://github.com/roboflow/inference/pull/445
  • Allow CORS by default by @yeldarby in https://github.com/roboflow/inference/pull/485
  • Add PerspectiveCorrectionBlock and PolygonSimplificationBlock by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/441

List of contributors: @EmilyGavrilenko, @casmwenger, @kresetar, @jchens, @yeldarby, @grzegorz-roboflow, @hansent, @SkalskiP, @PawelPeczek-Roboflow

Predictions JSON βž• visualisation @ Roboflow hosted platform

Previously clients needed to choose between visualisation of predictions and Predictions JSON returned from inference server running at Roboflow hosted platform. This is no longer the case thanks to @SolomonLake and https://github.com/roboflow/inference/pull/467

```python from inference_sdk import InferenceHTTPClient, InferenceConfiguration

CLIENT = InferenceHTTPClient( apiurl="https://detect.roboflow.com/", apikey="" ).configure(InferenceConfiguration( format="imageandjson", ))

response = CLIENT.infer(".jpg", model_id="yolov8n-640")

check out

response["predictions"]

and

response["visualisation"] ```

🌱 Changed

  • Fixing yolov10 documentation by @nathan-marraccini in https://github.com/roboflow/inference/pull/480
  • Supervision updates for Predict on a Video, Webcam or RTSP Stream Page by @nathan-marraccini in https://github.com/roboflow/inference/pull/477
  • Add paligemma aliases for newly uploaded models by @probicheaux in https://github.com/roboflow/inference/pull/463
  • Add PaliGemma LoRA by @probicheaux in https://github.com/roboflow/inference/pull/464
  • Bump braces from 3.0.2 to 3.0.3 in /inference/landing by @dependabot in https://github.com/roboflow/inference/pull/466
  • Fix security vulnerabilities by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/483

πŸ₯‡ New Contributors

  • @nathan-marraccini made their first contribution in https://github.com/roboflow/inference/pull/480

Full Changelog: https://github.com/roboflow/inference/compare/v0.12.1...v0.13.0

- Python
Published by PawelPeczek-Roboflow almost 2 years ago

inference - v0.12.1

πŸ”¨ Fixed

Incompatibility of opencv-python with numpy>=2.0.0 βš”οΈ

Jun 16, there was release of numpy 2.0 making old builds of opencv-python incompatible with new numpy.

@grzegorz-roboflow investigated the issue and discovered that inference users can be impacted if package inference-sdk was used standalone, due to lack of upper-bound limit on numpy dependency in that library.

To support impacted community members and Roboflow clients, we've prepared release with bug-fix.

Symptoms of the problem: ``` A module that was compiled using NumPy 1.x cannot be run in NumPy 2.0.0 as it may crash. To support both 1.x and 2.x versions of NumPy, modules must be compiled with NumPy 2.0. Some module may need to rebuild instead [...]

If you are a user of the module, the easiest solution will be to downgrade to 'numpy<2' or try to upgrade the affected module. We expect that some modules will need time to support NumPy 2. ```

To solve the problem choose one of the following solutions:

πŸ‘‰ Install inference>=0.12.1

```bash pip install "inference>=0.12.1"

or

pip install "inference-cli>=0.12.1"

or

pip install "inference-sdk>=0.12.1" ```

πŸ‘‰ Downgrade numpy

```bash

in your Python environment hosting inference library

pip install "numpy<2.0.0" ```

We are sorry for inconvenience.

❗ Planned deprecations

  • np_image_to_base64(...) to be replaced with encode_image_to_jpeg_bytes(...) in the future - @grzegorz-roboflow in https://github.com/roboflow/inference/pull/469

🌱 Changed

  • Remove sv.FPSMonitor deprecation warnings by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/461
  • Loose boto3 requirements by @iurisilvio in https://github.com/roboflow/inference/pull/457 - inference should install faster now πŸ€—
  • Fix paligemma generation bug by @probicheaux in https://github.com/roboflow/inference/pull/459
  • Add support for a tunnel to expose inference server to remote calls by @iurisilvio in https://github.com/roboflow/inference/pull/451
  • Workflow documentation additions, add YOLOv10 docs by @capjamesg in https://github.com/roboflow/inference/pull/475
  • fix Docker Getting Started link in docs returns 404 by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/478

πŸ… New Contributors

  • @iurisilvio made their first contribution in https://github.com/roboflow/inference/pull/457

Full Changelog: https://github.com/roboflow/inference/compare/v0.12.0...v0.12.1

- Python
Published by PawelPeczek-Roboflow almost 2 years ago

inference - v0.12.0

πŸ”¨ Fixed

πŸ”₯ YOLOv10 in inference now has pre- and post-processing issues solved

Thanks to @jameslahm we have inconsistencies in results from YOLOv10 model in inference package sorted out. PR https://github.com/roboflow/inference/pull/437

🌱 Changed

❗breaking change❗Inference from PaliGemma

PaliGemma models changes model category from foundation one into Roboflow model. That implies the following change in a way how it is exposed by inference server:

Before: python def do_gemma_request(prompt: str, image_path: str): infer_payload = { "image": { "type": "base64", "value": encode_bas64(image_path), }, "api_key": "<ROBOFLOW-API-KEY>", "prompt": prompt, } response = requests.post( f'http://localhost:{PORT}/llm/paligemma', json=infer_payload, ) resp = response.json()

Now: python def do_gemma_request(prompt: str, image_path: str): infer_payload = { "image": { "type": "base64", "value": encode_bas64(image_path), }, "prompt": prompt, "model_id": "paligemma-3b-mix-224", } response = requests.post( f'http://localhost:{PORT}/infer/lmm', json=infer_payload, ) resp = response.json()

PR https://github.com/roboflow/inference/pull/436

Other changes

  • Replaced sv.BoxAnnotator with sv.BoundingBoxAnnotator combined with sv.LabelAnnotator to be prepare for sv.BoxAnnotator deprecation by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/434
  • Add PaliGemma documentation, update table of contents by @capjamesg in https://github.com/roboflow/inference/pull/429
  • Add http get support for legacy model inference by @PacificDou in https://github.com/roboflow/inference/pull/449
  • Fix dead supported blocks link by @LinasKo in https://github.com/roboflow/inference/pull/448
  • Docs: Remove banner saying Sv Keypoint annotators are experimental by @LinasKo in https://github.com/roboflow/inference/pull/450

πŸ₯‡ New Contributors

  • @jameslahm made their first contribution in https://github.com/roboflow/inference/pull/437

Full Changelog: https://github.com/roboflow/inference/compare/v0.11.2...v0.12.0

- Python
Published by PawelPeczek-Roboflow almost 2 years ago

inference - v0.11.2

What's Changed

  • Add YOLOv10 Object Detection Support by @NickHerrig and @probicheaux in https://github.com/roboflow/inference/pull/431

New Contributors

  • @NickHerrig made their first contribution in https://github.com/roboflow/inference/pull/431

Full Changelog: https://github.com/roboflow/inference/compare/v0.11.1...v0.11.2

- Python
Published by probicheaux about 2 years ago

inference - v0.11.1

πŸ”¨ Fixed

❗ setuptools>=70.0.0 breaks CLIP and YoloWorld models in inference

Using setuptools in version 70.0.0 and above breaks usage of Clip and YoloWorld models. That impacts historical version of inference package installed in python environments with newest setuptools. Problem may affect clients using inference as Python package in their environments, docker builds are not impacted.

Symptoms of the problem: * ImportError while attempting from inference.models import YOLOWorld, despite previous pip install inference[yolo-world] * ImportError while attempting from inference.models import Clip

We release change pinning setuptools version into compatible ones. This is not the ultimate solution for that problem (as some time in the future it may be needed to unblock setuptools), that's why we will need to take actions in the future releases - stay tuned.

As a solution for now, we recommend enforcing setuptools<70.0.0 in all environments using inference, so if you are impacted restrict setuptools in your build: pip install setuptools>=65.5.1,<70.0.0

πŸ—οΈ docker image for Jetson with Jetpack 4.5 is now fixed

We had issues with builds on Jetpack 4.5 which should be solved now. Details: https://github.com/roboflow/inference/pull/393

🌱 Changed

  • In workflows, one can now define selectors to runtime inputs ($inputs.<name>) in outputs definitions, making it possible to pass input data through the workflow.

Full Changelog: https://github.com/roboflow/inference/compare/v0.11.0...v0.11.1

- Python
Published by PawelPeczek-Roboflow about 2 years ago

inference - v0.11.0

πŸš€ Added

πŸŽ‰ PaliGemma in inference! πŸŽ‰

You've probably heard about new PaliGemma model, right? We have it supported in new release of inference thanks to @probicheaux.

To run the model, you need to build and inference server your GPU machine using the following commands: ```bash

clone the inference repo

git clone https://github.com/roboflow/inference.git

navigate into repository root

cd inference

build inference server with PaliGemma dependencies

docker build -t roboflow/roboflow-inference-server-paligemma -f docker/dockerfiles/Dockerfile.paligemma .

# run server docker run -p 9001:9001 roboflow/roboflow-inference-server-paligemma ```

πŸ‘‰ To prompt the model visit our examples πŸ“– or use the following code snippet: ```python import base64 import requests import os PORT = 9001 API_KEY = os.environ["ROBOFLOW_API_KEY"] IMAGE_PATH = "/image.jpg" def encode_bas64(image_path: str): with open(image_path, "rb") as image: x = image.read() image_string = base64.b64encode(x) return image_string.decode("ascii") def do_gemma_request(image_path: str, prompt: str): infer_payload = { "image": { "type": "base64", "value": encode_bas64(image_path), }, "api_key": API_KEY, "prompt": prompt } response = requests.post( f'http://localhost:{PORT}/llm/paligemma', json=infer_payload, ) return response.json() print(do_gemma_request( image_path=IMAGE_PATH, prompt="Describe the image" )) ```

🌱 Changed

  • documentations updates:
    • document source_id parameter of VideoFrame by @sberan in https://github.com/roboflow/inference/pull/395
    • fix workflows specification URL and other docs updates by @SolomonLake in https://github.com/roboflow/inference/pull/398
    • add link to Roboflow licensing by @capjamesg in https://github.com/roboflow/inference/pull/403

πŸ”¨ Fixed

  • Bug introduced into InferencePipeline.init_with_workflow(...) in v0.10.0 causing import errors yielding misleading error message informing about broken dependencies: inference.core.exceptions.CannotInitialiseModelError: Could not initialise workflow processing due to lack of dependencies required. Please provide an issue report under https://github.com/roboflow/inference/issues Fixed with this PR https://github.com/roboflow/inference/pull/407

Full Changelog: https://github.com/roboflow/inference/compare/v0.10.0...v0.11.0

- Python
Published by PawelPeczek-Roboflow about 2 years ago

inference - v0.10.0

πŸš€ Added

🎊 Core modules of workflows are Apache-2.0 now

We're excited to announce that the core of workflows is now open-source under the Apache-2.0 license! We invite the community to explore the workflows ecosystem and contribute to its growth. We have plenty of ideas for improvements and would love to hear your feedback.

Feel free to check out our examples and docs πŸ“– .

πŸ—οΈ Roboflow workflows are changing before our eyes

We've undergone a major refactor of the workflows Execution Engine to make it more robust: * blocks can now be stand-alone modules - what makes them separated from Execution Engine * bocks now expose OpenAPI manifests for automatic parsing and validation * custom plugins with blocks can be created, installed via pip, and integrated with our core library blocks.

Thanks to @SkalskiP and @stellasphere we've made the documentation much better. Relying on new blocks self-describing capabilities we can now automatically generate workflows docs - you can now see exactly how to connect different blocks and how JSON definitions should look like.

image

Visit our docs πŸ“– to discover more

❗ There are minor breaking changes in manifests of some steps (DetectionsFilter, DetectionsConsensus, ActiveLearningDataCollector) as we needed to fix shortcuts made in initial version. Migration would require plugging output of another step into fields image_metadata, prediction_type of mentioned blocks.

πŸ”§ inference --version

Thanks to @Griffin-Sullivan we have now a new command in inference-cli available to show details on what version of inference* packages are installed.

bash inference --version

🌱 Changed

  • Huge general docs upgrade by @LinasKo (https://github.com/roboflow/inference/pull/385, https://github.com/roboflow/inference/pull/378, https://github.com/roboflow/inference/pull/372) fixing broken links, general structure and aliases for keypoints coco-models

πŸ”¨ Fixed

  • Inconsistency in builds due to release of fastapi package by @grzegorz-roboflow https://github.com/roboflow/inference/pull/374
  • Middleware error in inference server - making every response not getting HTTP 2xx into HTTP 500 😒 - introduced in v0.9.23 - thanks @probicheaux for taking the effort to fix it
  • bug that was present in post-processing of all instance-segmentation models making batch inference faulty when some image yields zero predictions - huge kudos to @grzegorz-roboflow for spotting the problem and fixing it.

πŸ… New Contributors

  • @Griffin-Sullivan made their first contribution in https://github.com/roboflow/inference/pull/339

Full Changelog: https://github.com/roboflow/inference/compare/v0.9.23...v0.10.0

- Python
Published by PawelPeczek-Roboflow about 2 years ago

inference - v0.9.23

What's Changed

  • Improve benchmark output; fix exception handling by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/354
  • Minor docs update, API key in InferenceHTTPClient by @LinasKo in https://github.com/roboflow/inference/pull/357
  • Add api key fallback for model monitoring by @hansent in https://github.com/roboflow/inference/pull/366
  • Downgrade transformers to avoid faulty release of that package by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/363
  • Upped skypilot version by @bigbitbus in https://github.com/roboflow/inference/pull/367
  • Lock Grounding DINO package version to 0.2.0 by @skylargivens in https://github.com/roboflow/inference/pull/368

New Contributors

  • @LinasKo made their first contribution in https://github.com/roboflow/inference/pull/357

Full Changelog: https://github.com/roboflow/inference/compare/v0.9.22...v0.9.23

- Python
Published by skylargivens about 2 years ago

inference - v0.9.22

What's Changed

  • Add new endpoints for workflows and prepare for future deprecation by @PawelPeczek-Roboflow in https://github.com/roboflow/inference/pull/336
  • Update description for workflows steps by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/345
  • Add error status code to benchmark output by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/351
  • Add more test cases to cover tests/inference/unittests/core/utils/testpostprocess.py::postprocesspolygons by @grzegorz-roboflow in https://github.com/roboflow/inference/pull/352
  • Inference TensorRT execution provider container revival by @probicheaux in https://github.com/roboflow/inference/pull/347
  • Bugfix for gaze detection (batch request) by @PacificDou in https://github.com/roboflow/inference/pull/358
  • Allow alternate video sources by @sberan in https://github.com/roboflow/inference/pull/348
  • Skip encode image as jpeg if no-resize is specified by @PacificDou in https://github.com/roboflow/inference/pull/359

New Contributors

  • @grzegorz-roboflow made their first contribution in https://github.com/roboflow/inference/pull/345

Full Changelog: https://github.com/roboflow/inference/compare/v0.9.20...v0.9.22

- Python
Published by PacificDou about 2 years ago

inference - v0.9.20

What's Changed

  • Bump version for pypi wheels

Full Changelog: https://github.com/roboflow/inference/compare/v0.9.19...v0.9.20

- Python
Published by probicheaux about 2 years ago

inference - v0.9.19

GroundingDINO bugfixes and enhancements!

Allows users to pass custom boxthreshold and textthreshold params to Grounding DINO core model. Update docs to reflect boxthreshold and textthreshold params. Fixes error by filtering out detections where text similarity is lower than textthreshold and Grounding DINO returns None for class ID. Fixes images passed to Grounding DINO model being loaded as RBG instead of BGR. Adds NMS to Grounding DINO, optionally using class agnostic NMS via CLASSAGNOSTIC_NMS env var.

Try it out: ``` from inference.models.grounding_dino import GroundingDINO

model = GroundingDINO(api_key="")

results = model.infer( { "image": { "type": "url", "value": "https://media.roboflow.com/fruit.png", }, "text": ["apple"],

    # Optional params
    "box_threshold": 0.5
    "text_threshold": 0.5
}

)

print(results.json()) ```

Full Changelog: https://github.com/roboflow/inference/compare/v0.9.18...v0.9.19

- Python
Published by probicheaux about 2 years ago

inference - v0.9.18

πŸš€ Added

πŸŽ₯ πŸŽ₯ Multiple video sources 🀝 InferencePipeline

Previous versions of the InferencePipeline could only support a single video source. However, from now on, you can pass multiple videos into a single pipeline and have all of them processed! Here is a demo:

Here's how to achieve the result:

```python from inference import InferencePipeline from inference.core.interfaces.stream.sinks import render_boxes

pipeline = InferencePipeline.init( videoreference=["yourvideo.mp4", "yourotherideo.mp4"], modelid="yolov8n-640", onprediction=render_boxes, ) pipeline.start() pipeline.join() ```

There were a lot of internal changes made, but the majority of users should not experience any breaking changes. Please visit our πŸ“– documentation to discover all the differences. If you are affected by the changes we needed to introduce, here is the πŸ”§ migration guide.

Barcode detector in workflows

Thanks to @chandlersupple, we have ability to detect and read barcodes in workflows.

Visit our πŸ“– documentation to see how to bring this step into your workflow.

🌱 Changed

Easier data collection in inference πŸ”₯

We've introduced a new parameter handled by the inference server (including hosted inference at Roboflow platform). This parameter, called active_learning_target_dataset, can now be added to requests to specify the Roboflow project where collected data should be stored.

Thanks to this change, you can now collect datasets while using Universe models. We've also updated Active Learning πŸ“– docs

```python from inference_sdk import InferenceHTTPClient, InferenceConfiguration

prepare and set configuration

configuration = InferenceConfiguration( activelearningtargetdataset="mydataset", ) client = InferenceHTTPClient( apiurl="https://detect.roboflow.com", apikey="", ).configure(configuration)

run normal request and have your data sampled 🀯

client.infer( "./pathto/yourimage.jpg", model_id="yolov8n-640", ) ```

Other changes

  • Add inference_id to batches created by AL by @robiscoding in https://github.com/roboflow/inference/pull/319
  • Improvements in πŸ“– documentation regarding RGB vs BGR topic by @probicheaux in https://github.com/roboflow/inference/pull/330

πŸ”¨ Fixed

Thanks to contribution of @hvaria πŸ… we have two problems solved: * Ensure Graceful Interruption of Benchmark Process - Fixing for Bug #313: in https://github.com/roboflow/inference/pull/325 * Better error handling in inference CLI: in https://github.com/roboflow/inference/pull/328

New Contributors

  • @chandlersupple made their first contribution in https://github.com/roboflow/inference/pull/311

Full Changelog: https://github.com/roboflow/inference/compare/v0.9.17...v0.9.18

- Python
Published by PawelPeczek-Roboflow about 2 years ago