v1.4.1
HumanSignal/label-studiov1.4.1Feb 12, 2022by makseq
AI Summary
Label Studio v1.4.1 introduces auto-created webhooks for ML backends that send events when annotations are created or updated, along with deprecating the `completions` parameter in the `fit()` method and adding a timeout to the `/train` API endpoint. The release also includes numerous improvements to labeling interfaces, export formats, and SDK functionality, while dropping Python 3.6 support due to the Pillow 9.0.0 upgrade.
Key Highlights
- Auto-created webhooks for ML backends send events on annotation updates
- Deprecated `completions` parameter in ML backend `fit()` method (will be removed in next release)
- Added experimental features toggle via `EXPERIMENTAL_FEATURES` environment variable
- Active learning now defaults to most recent model version for predictions
- Fixed relations breaking labeling interface when added as predictions
Breaking Changes
- The `completions` parameter of the `fit()` method is deprecated and will be removed in the next release
- Removed support for Python 3.6 (due to Pillow 9.0.0 requirement)
New Features
- Auto-created webhooks when adding an ML backend to Label Studio
- Option to reveal pre-annotations interactively
- Ability to enable experimental functionality with `EXPERIMENTAL_FEATURES` environment variable
- Ability to specify `lead_time` to imported annotations
- View `created_at` time for annotations and `updated_at` time for tasks in data manager
- ELECTRA model example for ML backend
- Brush predictions example for SDK
- Active learning defaults to most recent model version for predictions
- Ability to uncheck selected checkbox in Choices tag
- `overviewWidth` parameter for TimeSeries tag
- Vertical zoom control
- Resolver parameter for Text tag to retrieve data from remote URL
- Tooltips to zoom controls in audio labeling
Full Release Notes
## Notable changes Starting in this version, when you add an ML backend, a webhook is created to send an event to your ML backend each time an annotation is updated or created. Alongside this change, the following has also changed: - The `completions` parameter of the `fit()` method is deprecated and will be removed in the next release. - "Start model training after any annotations are submitted or updated" is now unchecked by default. - Requests to the `/train` API endpoint now include a timeout. See [train a model with your ML backend](https://labelstud.io/guide/ml_create.html#Train-a-model-with-your-ML-backend) for more details about this change. ## Changes from contributors - Add a GitHub action to warn about stale issues and PRs to improve team responses. Thanks @twsl for your contribution in https://github.com/heartexlabs/label-studio/pull/1754. - Fix an issue where the `Relation` tag was ignored by the `parse_config` function in the ML backend SDK. Thanks to @tomfat for your first contribution in https://github.com/heartexlabs/label-studio/pull/1811! - @YuMS corrected the example syntax for the task import API in https://github.com/heartexlabs/label-studio/pull/1831. Thanks for your first contribution! - @AaronDeRybelHowest added a Flair ML backend example in https://github.com/heartexlabs/label-studio-ml-backend/pull/68. Thanks so much for your contribution!! - @FireBlossom fixed an issue with the PyTorch ML backend in this PR: https://github.com/heartexlabs/label-studio-ml-backend/pull/80. Thanks for contributing! - Improved performance of the `encode_rle` function used to export brush masks thanks to contributions from @csaroff in https://github.com/heartexlabs/label-studio-converter/pull/52. - @changrq fixed an issue with YOLO coordinates deviating when a rectangle is rotated in https://github.com/heartexlabs/label-studio-converter/pull/73. We appreciate your contribution! - @raulbocanegra added a required project key to the payload of storage exports and imports in the SDK in https://github.com/heartexlabs/label-studio-sdk/pull/14. Thanks for contributing! - @denck007 fixed an issue where the `get_users()` function in the SDK didn't work for open source users because of a dependency on organization membership, which is an Enterprise-only functionality. Thanks for your contribution in https://github.com/heartexlabs/label-studio-sdk/pull/23! - @fabiolab extended the SDK to allow extra headers for HTTP requests. Thanks for your contributions in https://github.com/heartexlabs/label-studio-sdk/pull/30. - @laynr added the ability to sync storage to the SDK in https://github.com/heartexlabs/label-studio-sdk/pull/20. Thanks for your consistent contributions! - @Fkawala added the ability to use email and password credentials to log into the SDK, rather than using a token. Thanks for your contribution in https://github.com/heartexlabs/label-studio-sdk/pull/29. - @kaustuk added the ability to set a cursor color and width for the Audio tag. Thanks for your contributions in https://github.com/heartexlabs/label-studio-frontend/pull/347 and requesting this feature in #1682. ## Features - Add auto-created webhooks when you add an ML backend to Label Studio. See [more in the documentation](https://labelstud.io/guide/ml_create.html). - Add the option to reveal pre-annotations interactively - Add the ability to enable experimental functionality with the `EXPERIMENTAL_FEATURES` environment variable. - Add the ability to specify a `lead_time` to imported annotations. - Add the ability to view `created_at` time for annotations and `updated_at` time for tasks on the data manager. - Added an ELECTRA model example for the ML backend in https://github.com/heartexlabs/label-studio-ml-backend/pull/76. - Added a brush predictions example for the SDK. - When performing active learning with Label Studio, the model version selected to display predictions on tasks defaults to the most recent model version. ### Labeling and tag updates - Add the ability to uncheck a selected checkbox when using the Choices tag. - Add the `overviewWidth` parameter to the TimeSeries tag to set a default overview width in percents, requested by @TueLindhart in issue #1330. - More fully support the Repeater tag. - Add a vertical zoom control. - Add a resolver parameter to the Text tag to retrieve data from a remote URL in [PR #396](https://github.com/heartexlabs/label-studio-frontend/pull/396). - Add tooltips to zoom controls in audio labeling. ## Notable bug fixes - Fixed a bug where relations break the labeling interface when added as predictions, or when viewing annotations with relations. - Fixed issues with permissions when setting up local file storage connections. - Fixed issues with building and installing Label Studio taking a long time due to resolving various google dependencies. - Fixed an issue where the `selected=true` option for the Choices tag wasn't being used. Thanks to @DougTrajano for reporting in issue #1848. - Fixed issue #1757 reported by @uriel-tannen that prevented saving a labeling configuration without existing labels. - Improved the functionality of the CONLL converter to be more robust as suggested by @tomasohara in [issue #61](https://github.com/heartexlabs/label-studio-converter/issues/61), and also updated to handle empty labels and complicated configurations. - Fixed an issue with Docker builds on MacOS reported by @simonlsk in issue #1859. - Fixed an issue where the `--version` flag doesn't print the version reported by @magicaltoast in issue #1880. - Fix an issue where shortcuts did not work when editing TextArea results. ### Other bug fixes - Fixed a bug with undo where it deselected a region instead of removing it for brush masks. - Fixed bugs where unclosed tags and other errors when defining labeling configurations could cause Label Studio to break. - Fixed an issue where bounding boxes failed to rotate. - Fixed an issue where VOC export failed when trying to export using the snapshot functionality. - Removed a dependency on the ground truth field for determining when labeling is complete. - Fix performance issues when retrieving project storage. - Fix crosshair functionality when zooming and rotating images. - Improve appearance of tabs on the data manager when there are a large number. - Fixed the ability to go back to a previously-skipped task and submit an annotation. - Fix the ability to use custom service account credentials for GCE. - Fixed timeouts occurring with the ML API and added environment variables to configure the timeout limits in #1978. - Fixed an issue with the mmdetection ML backend example. - Improved YOLO export to have sorted classes. - Improved handling of empty labels in YOLO, COCO, and VOC export formats. - Fix an issue rendering certain data types in the "view all" annotations page. ## Changes to requirements and dependencies - Bump Pillow from 8.3.2 to 9.0.0 in the ML backend. - Bump nltk from 3.5 to 3.6.6 in the ML backend. - Bump django from 3.1.13 to 3.1.14 in Label Studio. ## Docs changes - Added the ability to search Label Studio website by typing on any page, and to quickly copy code samples using a copy button. - Updated all [Templates documentation](https://labelstud.io/templates) to match the product templates and include more details about use cases and functionality. - Updated API documentation: - To be more clear about IDs - To remove deprecated information from pre-1.0.0 versions of Label Studio. - To improve export API specs - Fixed issues with Docker Compose documentation. - Add details about importing URLs and links using the valueType parameter in tags, and also improved details and troubleshooting when handling HTML labeling. See [import data](https://labelstud.io/guide/tasks.html). - Add spaCy export information, improved export format JSON details, and to the [export docs](https://labelstud.io/guide/export.html). - Add [dedicated data management documentation](https://labelstud.io/guide/manage_data.html). - Add details to [troubleshoot pre-annotations](https://labelstud.io/predictions.html) - Updated the [tags documentation](https://labelstud.io/tags) to be the latest version. - Removed support for Python 3.6 as a result of supporting Pillow 9.0.0.