Releases: HumanSignal/label-studio
1.8.0
New Features
- New Ranker tag to aid in fine-tuning ML models by ranking, and optionally categorizing, predictions. (#3978,#4202,#4281)
- Added an annotation tab carousel for faster navigation of annotations. (#3680)
- Added the ability to drag, resize, collapse, and stack Panels in the Label Studio interface. (#3917)
- Added generative AI templates to the Label Studio template gallery. (#4038,#4280)
- Added a Segment Anything machine learning backend. (@heartexlabs/label-studio-ml-backend#253)
Improvements
- Added status and debug information to cloud storage panels. (#4059)
- Added type-checking to file uploads to prevent serving incorrect or malicious data to annotators. (#3725)
- Added a
hint
parameter to theChoice
tag that will display custom hint text when an annotator hovers over an annotation choice. (#4168) - Added an
include=[specific_fields]
parameter to theapi/projects?ids=...
endpoint to specify which fields to return in results. (#4039) - Limited the number of results from
api/project/id/exports
endpoint to 100 items to improve API performance. (#4007) - Optimized request handling for pre-signed cloud storage URLs to enable shared tasks across projects and speed up performance. (#3991,#4106)
- Updated the
sync
attribute to allow for synchronization between more than two data sources in audio and video labeling, using thesync=<group-name>
to specify synchronization betweenAudio
,Video
,Paragraph
, and other source elements. (#3712) - Updated the default layout panels and tabs in the Outliner. (#4175)
- Updated annotation instructions to appear in a modal dialog. (#3949)
- Updated the user settings screen. (#4274)
- Updated confidence scores to always be visible, rather than just on hover. (#4254)
- Fixed visual inconsistencies in the labeling user interface. (#3680,#3917)
Bug Fixes
- Fixed CORS errors and mishandling of cache edge cases on S3. (#3991)
- Fixed an issue where “Check Connection” for Azure storage did not check the connection. (#4059)
- Fixed an issue where GCS expiration in minutes was always reported as 1. (#4111)
- Fixed validation of exports from cloud storage. (#4059)
- Fixed an issue where uploading a local file with links to cloud storage URLS would fail. (#4143)
- Fixed exporting labeling projects to CSV and TSV when export data contains tabs, commas, and other special symbols. (@heartexlabs/label-studio-converter#215)
- Fixed an issue where ML backend predictions would not be displayed unless the Task view was refreshed. (#4228)
- Fixed an issue where newly created annotations would be re-sorted to the end of the carousel. (#4123)
- Fixed a bug where conditional annotations weren’t displayed properly with Taxonomy views. (#3906)
- Fixed an issue where an incorrect user could be attributed in annotation history for Draft items. (#4165)
- Fixed an issue where updating a duplicated annotation after the original annotation was deleted would cause a runtime error. (#4248)
- Fixed an issue where navigating between annotations in Quick View will cause data corruption to the annotation undo stack. (#4251)
- Fixed an issue where resubmitting and previous annotation would update the annotation
createdDate
. (#4259) - Fixed an issue where multi-paragraph annotator instructions may not be correctly displayed to annotators.
- Fixed an issue where activating the Sync button twice would result in duplicate tasks. (#4059)
- Fixed an issue where users could add duplicate
TextArea
annotations when theskipDuplicates
parameter was set totrue
. (#4015) - Fixed an issue where Taxonomy choices could be displayed as aliases rather than values. (#4137)
- Fixed an issue where
null
would appear in the interface when displaying a video with Quick View. (#4019) - Fixed an issue where rotating a video region bounding box could result in an incorrect orientation. (#3853)
- Fixed an issue where the Brush tool could crash the user interface if it was defined before the image it was attached to. (#3848)
- Fixed an issue in DateTime validation where textually inputted data was not checked by min/max constraints. (#4161)
- Fixed an issue where some timestamp values could not be selected when zooming into very large Time Series datasets. (#4031)
- Fixed an issue where audio and video from the same sources may not be synchronized. (#4172)
- Fixed an issue where the Task View would break when a user changes the Grouped by view. (#4013)
- Fixed the default width of the DataManager in Quick View. (#4125)
- Fixed a regression where the “Hide all regions” button was missing. (#4222)
- Fixed an issue where the visibility of newly created regions could not be toggled using the
<ALT+H>
hotkey. (#4110)
Documentation Changes
- Added new documentation for the updated
Ranker
view. (#4036, Ranker Docs) - Removed unsupported AudioPlus references from documentation. (#3986)
Deprecations
- Deprecated the Label Studio Frontend standalone release. 1.8.0 will be the final official release of the Label Studio Frontend as a separate NPM package.
1.7.3
Improvement
- New parameter skipDuplicates of TextArea allows to keep submissions unique
- Performance optimization for api/projects with task number
- Audio v3 webaudio alternative decoder option
- Storage link resolver in nested task data fields
Bug Fixes
- Start, end and offset of paragraph selection should not include empty or newline
- Allow nested Collapse tags
- Fixed an issue with regrouping regions after annotations switching
- Can't patch tasks when task data has a taxonomy null-values
- Fix DM columns visual problems
- Opening video in tasks should not trigger a CORS issue in HEAD response
- Fixed a problem where filtering by empty or not empty in annotation results and prediction results would not work
- Fixed import several tasks from one csv file
- CORS errors on valid audio files occur sometimes when accessed in succession
- don't let ghost regions be created
- Fix Video Rectangles to display while drawing
- Investigate/fix project polling in DM
- Fix for Annotation result with equal is used in DM
- Hidden video regions do not move when adding new visible regions above
- Improved filetype playable detection for video sources
- Proper unhandled exceptions processing in *_from_request functions. Activity log middleware fix for project id. Warning: Some of 500 errors about validation are 400 errors now
- Remove html minification when import html directly
- Fixes playback micro-stutters for Video Timeline Segmentation
- Scroll to image regions if needed, but don't scroll unnecessarily (UX improved)
- Selecting the end character on a Paragraph phrase to the very start of other phrase includes all valid phrases in the selection
1.7.2
Label Studio 1.7.2 Release Notes
The Label Studio 1.7.2 Open Source release introduces a new Magic Wand tool for image annotation and significant updates to our audio labeling functionality.
New Feature and Enhancement
Label Studio 1.7.2 includes the following new features and enhancements.
- Added Magic Wand tool for image segmentation
- This new community-contributed feature makes it possible to click in a region of an image for segmentation labeling, drag the mouse to dynamically change flood filling tolerance, then release the mouse button to get a new labeled area. The tool allows you to easily zoom for fine-grained detail and scan the zoomed-in image while still remaining highly performant.
- Support simultaneous render of multi-channel audio with added splitchannels="true" option on Audio config (larger memory requirement)
- This new feature allows users to visually separate each channel of a multichannel audio recording. This makes labeling overlapping audio segments (such as multiple people talking at same time) visually and functionally easier to annotate.
- Improved rendering performance for large-duration audio, LSDV-3082
- We’ve made improvements to the audio labeling interface that allows you to load and annotate audio files up to 5 hours in duration.
- Publish arm64 docker images
- Added Google project ID field in Google Cloud Storage connector, LSDV-3880
- "updated_by" field was added in annotation data to provide the user info, LSDV-3941
- Add YOLO support for PolygonLabels in export options, LSDV-2973
- Improved performance for Annotators' filter in Data Manager, LSDV-1184
- s3 custom endpoint support for persistent storage, LSDV-4677
- For tasks created with Cloud Storage "Sync" function, presigned mechanics works for list of URLs, LSDV-3254
- Fixed "frameRate" option for Video tag, LSDV-3036
- Video zoom follows a cursor pointer location when zooming with Shift + scroll / touchbar actions, LSDV-1298
- Relax and update pydantic version >=1.7.3,<=1.11.0, LSDV-4681
- Table tag ordering items alphabetically, LSDV-4613
- Fixed issues with adjusting player head position in audio player navigation, LSDV-3106
- Improved responsiveness for image regions selection, LSDV-3871
- Navigation back to previous tasks in labeling stream is now persistent against page reloads and user labeling sessions, LSDV-3936
Bug Fixes
Label Studio 1.7.2 includes the following bug fixes.
- Now it is possible to retrieve the list of uploaded files with
api/projects/<project-id>/file-uploads&all=true
request, LSDV-4614 - Fixed issue when two tags are selected, sometimes only one is shown highlighted in the central menu, LSDV-1088
- Optimized memory and speed during exports, LSDV-1010
- Fixed validation message for unsupported video format, LSDV-969
- Prevent creation of multiple annotation on one task in label stream due to incorrect migrations, LSDV-1049
- <TextArea> tag now includes validation for toName parameter, LSDV-1372
- User should be able to expand Settings/ Volume popups in the Preview mode as well, LSDV-1156
- Hiding an audio region allows selection of regions below, LSDV-4542
- Fixed issue with invalid AWS session token for cloud storage connection, LSDV-2525
- Stop changing the file name for unique filenames when exporting to COCO, LSDV-1311
- Fixed shortcuts in Dynamic labels, LSDV-1177
- Support decoding and rendering large audio duration; fixed offsets between playback and cursor positions in audio, LSDV-4532
- Blank segment can be deleted by pressing delete key, LSDV-4541
- Fixed migration error from previous versions with "django.db.utils.OperationalError: no such column: project.pinned_at" error, LSDV-4524
- Slider follows the positional seeker in video when using the step forward or backward buttons, LSDV-983
- Fixed "Clear" button functionality in tag, LSDV-1168
- Fixed issues while pasting text in <TextArea>, LSDV-1275
- Fixed copypasting for regions via Ctrl+c / Ctrl+v, LSDV-1332
- Fixed model version saving on Machine Learning settings page, LSDV-25
- Text and HyperText elements can't be added without value and name - fix config validation step, LSDV-1037
- Fixed issue with keeping zoom position on resize of working area, LSDV-967
- Improved performance for projects page and annotation-related API, LSDV-961
- Improved behaviour for resizing and moving Data Manager columns, LSDV-1083
- Add migration with removing all unused indexes, LSDV-1051
- Fix column sizes on datamanager, LSDV-4651
- Fix migration with total_annotation dependency in data_manager, LSDV-4679
- Fixed storage-data/uploaded error on empty request, LSDV-1078
- Use only user's draft from the project instead of all user drafts in next task API, LSDV-4680
- Fixed authorization check for roles change, LSDV-3856
- Fix missing tasks in Data Manager upon upload, LSDV-1058
- Add experimental Remove Duplicates action in data manager behind EXPERIMENTAL_FEATURES=true flag, LSDV-4688
- Mention about html usage in Labeling Instructions hint, LSDV-4689
- Support HEAD method while serving uploaded files (/storage-data/uploaded/?filepath=), LSDV-965
- Fixed in-app documentation links, LSDV-2999
- Add .json extension for exported tasks in target storages when FUTURE_SAVE_TASK_TO_STORAGE=true, LSDV-4678
- Return proper 404 error code for fetching non-existing tasks from API, LSDV-1057
- Add custom S3 endpoints usage for Persistence Storages, LSDV-4683
- Fix error with allow_postpone when task is none in the label stream, LSDV-4687
- Fix maxUsages attribute for KeyPointLabels and RectangleLabels, LSDV-1322
- Undo action (cmd/ctrl+Z) now correctly works with polygon points, LSDV-1173
- Video Hop Size parameter doesn't work, LSDV-1109
- Fixed an issue with backspace hotkey in Audio, LSDV-1148
- Audio playback and playhead remain in sync, LSDV-4572
- label-studio init allows to skip username/password input dialog in docker environment, LSDV-4633
- Fix readonly=true mode for regions that hindered user interactions: selection, conditional tags, annotation history, LSDV-1334
- Fixed region selection when user drag the region in audio, LSDV-1140
- Fixed label config validation with "alias" attribute, LSDV-1082
- Add error handlers like it is for AudioV1, LSDV-1023
- Upgrade psycopg2-binary requirement to 2.9.5, LSDV-4721
Thank you to all the contributors for making Label Studio 1.7.2 a success!
1.7.1
1.7.0
Label Studio 1.7 Release Notes
The Label Studio 1.7 Open Source release now supports larger audio files, millisecond-level controls, and an advanced rendering engine among new features that put Label Studio at the forefront of data labeling for audio files. This release also introduces simplified ways to deploy and manage your Label Studio application using full infrastructure provisioning with Terraform scripts and scalable service management on Kubernetes with Helm Charts deployment.
Breaking changes
Starting with this release, the application will run using a non-root docker user with ID 1001
.
If you encounter any permission issues when running the application in a docker container, you can fix them by changing the ownership of the relevant files and directories to 1001
.
docker run -it --user root -v `pwd`/mydata:/label-studio/data heartexlabs/label-studio:1.7.0 chown -R 1001:root /label-studio/data/
New Feature and Enhancement
Label Studio 1.7.0 includes the following new features and enhancements.
- Starting with this release, you can install Label Studio to your cloud infrastructure using the Terraform scripts and Helm Charts.
- Introduce Terraform modules for provisioning Label Studio/Label Studio Enterprise on Amazon Web Services(AWS).
- Launch the Heartex library for Kubernetes infrastructure using the Kubernetes Helm charts. Now, you can scale your Label Studio deployments with Kubernetes and Helm orchestration features.
- The audio labeling platform introduces the enhancements of the audio player with the ability to annotate audio files up to two hours in length, provide fine-grain annotation controls, and implement an efficient rendering engine that displays the audio waveforms while remaining performant, even with large, and multi-hour audio files. You can now play and navigate through an audio waveform by precisely managing the labeled regions. Regions and relations are simple to manage and manipulate on the audio waveform and interface.
- This release provides the Comments and Notifications feature that defines how annotators, reviewers, and administrators communicate and receive updates on projects and tasks.
- Add new header GitHub stars by @Travis1282 in #3040.
- Update header CSS, GitHub stars, and command block on search by @Travis1282 in #3074.
- Add swagger docs for AllStorage APIs by @KonstantinKorotaev in #2815, DEV-2914.
- Read virtual annotator filters from local storage as a fallback by @robot-ci-heartex in #3089, DEV-3572.
- Add mixin to Project to support mechanism to cancel old jobs by @KonstantinKorotaev in #2547, DEV-2075.
- Load task with given comment by @robot-ci-heartex in #3250, DEV-3750.
- Support
updated_by
for annotations by @hakan458 in #3244, DEV-3259 - Queue management min backend by @triklozoid in #3282, DEV-3756.
- Support for
Updated_by
field on annotation level in Update, Accept , and Reject by @hakan458 in #3318, DEV-3259.
Bug Fixes
Label Studio 1.7.0 includes the following bug fixes.
- Fixed the video regions without a label in #3012, DEV-3510.
- Fixed an issue where the Data Manager was broken when an annotator was deactivated by @makseq in #3022.
- Added
CreateOnlyFieldsMixin
andBaseUserSerializer
to make email-only writeable on creating by @wesleylima in #3027, DEV-3430. - Resolved Data Manager conflicts by @bmartel in #3049, DEV-3558.
- Fixed an issue where the video failed to send a request and timed out with a display error message that it was not supported by @bmartel in #3031, DEV-3284.
- Fixed CONLL export tokenization issue with splitting into individual tokens by @KonstantinKorotaev in #3046, DEV-1923.
- Removed backend reset for tabs by @makseq in #3052, DEV-3555.
- Fixed auth check for uploaded files by @triklozoid in #2942, DEV-2915.
- Fixed project card showed incorrect counter for finished tasks by @KonstantinKorotaev in #2398, DEV-2455.
- Added validation if the stage was ready by @robot-ci-heartex in #3107, DEV-3607.
- Projects, displayed on the user's organization page, include other organizations by @makseq in #3105, DEV-3465.
- Fixed updating summary on delete annotations by @KonstantinKorotaev in #3115, DEV-3303.
- Fixed making
exc_info
None whendebug_modal_exceptions_false
by @wesleylima in #3128, DEV-3473. - Region navigation failed in scrolling mode by @robot-ci-heartex in #3126, DEV-3543.
- ci: Extend GitLeaks config by @nikitabelonogov in #3133.
- Annotations drawn for the audio region should span all channels by @robot-ci-heartex in #3127, DEV-3564.
- Removed unsafe HTML from project
expert_instruction
by @wesleylima in #3044, DEV-3478. - Added YOLO and VOC export image without bounding box by @KonstantinKorotaev in #2605, DEV-2792.
- Timeseries brush to end of timeline error by @robot-ci-heartex in #3147, DEV-3645.
- Fixed source storage duplicating tasks when double clicking the Sync button by @guilhermemachado26 in #2915, DEV-1904.
- History state failed with hotkeys after saving unclosed polygons by @robot-ci-heartex in #3135, DEV-3612.
- Fixed filename in COCO export by @KonstantinKorotaev in #3154, DEV-3669.
- Update button was displayed instead of the Cancel skip button in the label stream when a user navigated to the canceled task by @robot-ci-heartex in #3148, DEV-2505.
- Restored missed multipage.png by @niklub in #3167.
- Fixed logs for critical overlap issues by @makseq in #3170.
- Large timeseries datasets failed to display
y
values by @robot-ci-heartex in #3118, DEV-2297. - Fixed classification type tags render on annotation history change by @robot-ci-heartex in #3163, DEV-2301.
- Added the possibility to manually add tag value in settings by @juliosgarbi in #3144, DEV-3589.
- Added session expiration settings and conditions by @wesleylima in #3114, DEV-3397.
- Fixed Eraser brush which was not erasing the stroke by @robot-ci-heartex in #3162, DEV-3647.
- Fixed the navigation using task links by @robot-ci-heartex in #3178, DEV-3673.
- RegionEditor input for numbers was recasted to the Number as it is a String by @robot-ci-heartex in #3175, DEV-3636.
- Used correct feature flags for resuming unfinished polygon by @robot-ci-heartex in #3166, DEV-3661.
- Pagination failed to work when a region was selected by @robot-ci-heartex in #3156, DEV-3651.
- Reverted the fix to add session expiration settings and conditions" by @wesleylima in #3181, DEV-3397.
- Fixed an empty
toname
issue in the control tag by @robot-ci-heartex in #3161, DEV-1598. - Fixed undo with Auto Detect tool by @robot-ci-heartex in #3160, DEV-1284.
- Fixed memory leaks in Taxonomy and Repeater cases by @robot-ci-heartex in #3158, DEV-3617.
- Edit and Delete options were missing for Comments section by @robot-ci-heartex in #3041, DEV-2993.
- Fixed navigation using task links was broken by @robot-ci-heartex in #3180, DEV-3673.
- Refactored setting of
last_login
to reduce repetition by @wesleylima in #3185, DEV-3397. - Fixed value updating for dynamic children by @robot-ci-heartex in #3197, DEV-3701.
- Added example output for HyperTextLabels by @robot-ci-heartex in #3164, DEV-3632.
- Stopped the
cmd
key from focusing search i...
Release 1.6.0
Label Studio 1.6 Release Notes
The Label Studio 1.6 open source release now supports video object tracking in general availability, making it the most popular open source data labeling platform to support all data types—video, image, text and hypertext, time series, and audio. In addition to the new video player that supports frame-by-frame video object tracking, the latest release also features a new annotation user interface called the Outliner that is more efficient, ergonomic, and flexible.
New Features
Label Studio 1.6.0 includes the following new features and enhancements:
- Video object tracking support and template by @nicholasrq
- Bounding box annotation UX improvements by @yyassi-heartex in #2437, DEV-2132
- Per model backend model version selector by @bmartel in #2476, DEV-1682
- Dynamic Labels templates by @hlomzik in #2527, DEV-2636
- Experimental feature add data field by @makseq in #2558
- Create filters for authors in Paragraph Transcription by @bmartel in #2557, DEV-2669
- Improve project list performance by hydrating counters in a second request by @bmartel in #2579, DEV-2575
- Implement image enhancements to zoom, pixelate, and center in #2654, DEV-2504
- Move
model_version
to ML backend and add get versions by @KonstantinKorotaev in #2023, DEV-1646 - Add proxy password to interactive annotations context by @KonstantinKorotaev in #2613, DEV-2362
- Regions list grouped by labels with the persistent and ordered collapse in #2701, DEV-2755
- Add command for the export project in open source by @guilhermemachado26 in #2824, DEV-3145
- Add
uwsgi
andnginx
by @farioas in #2868, DEV-3031 - Add option to sync audio with paragraphs allowing playback of chunk position in #2866, DEV-2461
- Movable columns in Data Manager in #2882, DEV-2984
- Introduce default attributes for AudioPlus in #2862, DEV-388
- Introduce simplified shortcuts in #2897, DEV-3260
- Add "video" type to the Data Manager columns API by @makseq in #2976, DEV-3372
- Display supported video formats by @nicholasrq in #2974, DEV-3371
- Enable video preview in #2981, DEV-3373
Bug Fixes
Label Studio 1.6.0 includes the following bug fixes.
- Fixed paragraph data to load into QuickView by @yyassi-heartex in #2440, DEV-2465
- User was able to edit Time Series results imported as read-only by @yyassi-heartex in #2444, DEV-2367
- X-axis zoom threshold by @Travis1282 in #2494, DEV-1714
- Added guard with an error message for non-incremental, non-sequential datasets in Time Series (#1752) by @bmartel in #2487, DEV-2510
- Worked on the Next task query optimization by @triklozoid in #2262, DEV-2184
- Bounding box flickered during region creation by @yyassi-heartex in #2510, DEV-2592
- Fixed an issue to avoid the display of delete all region buttons when an annotation is read-only @bmartel in #2515, DEV-2309
- Fixed blind SSRF on add model and import by @triklozoid in #2450, DEV-2235
- Fixed deselection of
ImageView
bounding box before creating another by @bmartel in #2475, DEV-1442 - Unfinished polygon zoom fix by @Travis1282 in #2518, DEV-2313
- Suppressed
removeChild
error by @hlomzik in #2521, DEV-2608 - Fixed data in SERP Ranking in-app template by @hlomzik in #2528, DEV-2604
- Fixed runtime error when duration is not extracted by @KonstantinKorotaev in #2297, DEV-2095
- Fixed
annotation_id
is provided as float value in CSV export by @KonstantinKorotaev in #2244, DEV-2139 ProjectModelVersionSelector
values were not correctly set @bmartel in #2533, DEV-1682- Sync speed between video and audio by @juliosgarbi in #2524, DEV-2207
- Prop
whenChoiceValue
worked as expected by @juliosgarbi in #2497, DEV-1833 - Fixed
django
migrations warning by @triklozoid in #2543, DEV-2665 - Replaced
inner_id
index with multicolumn by @triklozoid in #2542, DEV-2667 - Fixed issues with rotating bounding box @yyassi-heartex in #2535, DEV-2647
- Moved
calculate_stats_all_orgs
torq_workers
, swap migration by @makseq in #2569, DEV-2589 - Fixed error for actions with ordering by joined field by @KonstantinKorotaev in #2536, DEV-2658
- Allowed
cmd or ctrl
to create regions immediately with deselecting on canvas click enabled. by @bmartel in #2553, DEV-2655 - Supported both regions drawing behaviors with a settings flag by @bmartel in #2574, DEV-2655
- Allowed unfinished polygons to be saved as a draft by @bmartel in #2549, DEV-2432
- Displayed source filename for S3 objects by @triklozoid in #2555, DEV-2687
- Removed lookbehind in Safari Regex by @hlomzik in #2602, DEV-2777
- Deselected image region bbox on short click by @bmartel in #2600, DEV-2739
- Changed rotate anchor of bbox by @juliosgarbi in #2591, DEV-2671
- Removed extra slash for file URL by @aisensiy in #2601
- Multiple rendered labels in regions by @Travis1282 in #2590, DEV-2763
- Unable to delete relationships between regions by @yyassi-heartex in #2612, DEV-2806
- Hide storage filename field for old projects by @triklozoid in #2624, DEV-2687
- DEV-1179: DateTime tag, fixes for date save and region switch by @Travis1282 in #2537, DEV-117
- Improved delete point functionality by @Travis1282 in #2545, DEV-2431
get_local_path
failed to work on local-files by @KonstantinKorotaev in #2642, DEV-2827- Quote relative path for local files by @m-nez in #2633
- Hold to continuous draw image view shapes show immediately in #2651, DEV-2655
- 3 point bbox tool remains selected but hidden when the user changes label configuration from Rectangle to RectangleLabels in #2673, DEV-2696
- Outliner updated collapse/expand UI in #2668, DEV-2851
- Renamed Tasks to Actions in #2699
- Updated
django
version by @triklozoid in #2706, DEV-2936 - Panels can obscure underlying content in #2707, DEV-2926
- Fixed collapsed texts for TextArea in #2710, DEV-2930
- Selection box of rectangle region remains broken after hide/ unhide action in #2712, DEV-2922
- Stored XSS via SVG file by @dvwright in #2273, DEV-2236
- Duplicated polygon regions in #2738, DEV-2967
- Locked polygons in #2740, DEV-2977
- Adding new fields leads to an error in label config validation by @KonstantinKorotaev in #2760, DEV-2939
- Grouping regions without a label in #2714, DEV-2942
- Fixed Audio resizing behavior in #2716, DEV-2934
- Fixed floating panel positioning and constraints in #2718, DEV-2943
- Fixed hiding NER regions with new outliner in #2708, DEV-2931
- Better UI for Textarea inputs in the outliner in #2711, DEV-2927
- Fixed NER region text not displaying in Details in #2715, DEV-2958
- Changed ML URL validation flag name by @KonstantinKorotaev in #2773, DEV-3058
- Fixed a visual bug with the Zoom To flyout menu on smaller screen sizes in #2765, DEV-3049
- Polygon isn't finished when moved in #2674, DEV-2514
- Annotation region locking should not persist in #2734, DEV-2949
- Renamed variable to
ML_BLOCK_LOCAL_IP
by @KonstantinKorotaev in #2774, DEV-3058 - Fixed history items rendering on the canvas in #2781, DEV-2970
- Fixed changing label config for repeater tag by @KonstantinKorotaev in #2725, DEV-1462
- Change the model version selector API response handling and present upgrade error for out-of-date ml backend by @bmartel in #2695, DEV-2905
- Fixed reset after adding or removing labels by @KonstantinKorotaev in #2787, DEV-3090
- Fixed paragraphs selection in #2779, DEV-3030
- Added reset for project summaries in Rename labels by @makseq in #2797
- Choices selected by default in #2798, DEV-2519
- Fixed user creating API by @triklozoid in #2801, DEV-3131
- Repeater performance improvement in #2805, DEV-3077
- Disabled DTDForbidden for label config validation by @KonstantinKorotaev in #2782, DEV-3089
- Added new property to turn lazyload off in #2820, DEV-3077
- Undo keypoints when creating a new polygon in #2733, DEV-2576
- Removed potential data exposure from logs by @niklub in #2828, DEV-3164
- Fixed saving text for paragraph regions in #2827, DEV-3101
- Added validation to avoid users importing local files using URL by @guilhermemachado26 in #2840, DEV-3212
- Parsed all-time series timestamps to UTC to avoid improper calculations using possible daylight savings time in #2841, DEV-3211
- Selected region corrupted the history in #2847, DEV-3140
- Show/ Hide/ Lock / Unlock actions break the Undo functionality for video labels in #2854, DEV-2968
- Image scaling goes lower than 1 causing small images in #2848, DEV-3061
- Tasks are not filtered on the filter field change in #2860, DEV-3233
- Sentry release frontend by @nicholasrq in #2891, DEV-3251
- Fixed Delete tasks action to work with annotated queryset by @KonstantinKorotaev in #2895, DEV-3313
- Fixed tabs randomly mixed after label stream by @guilhermemachado26 in #2892, DEV-1947
- Prevented annotating collapsed phrases in paragraphs in #2869, DEV-2918
- Misspelled in data export by @makseq in #2929
- Regions in the 'Grouped by Label' section at the Outliner tab were ordered as they are ordered in labeling schema in #2927, dev-3055
- User selection of regions grouping section at Outliner tab was not persistent in #2930, DEV-3056
- Removed unused fields from completed_by by @triklozoid in #2918, DEV-3379
- Repeater performance improvement in #2916, DEV-3298
- Added more details for ML backend error by @KonstantinKorotaev in #2912, DEV-3351
- Allowed video playhead scrubbing in #2937, DEV-3404
- Moved zoom buttons to video's control panel in #2936, DEV-3405
- Textarea placement in the config prevents OT in #2952, DEV-3429
- Added a line between draft and annotation on annotation list in #2951, DEV-3074
- Changed to 1 item per page changing page by region in #2953, DEV-3428
- Don't add labels to Textarea result in #2964, DEV-2208
- Fixed
_scan_and_create_links
failure for invalid annotation a...
Release 1.5.0post0
Label Studio 1.5.0post0 Release Notes
Bug Fixes
- Correct region loading for video labelling
- Don't crash when open quick view with specified task
- Safari fix
Release 1.5.0
Label Studio 1.5.0 Release Notes
The latest release of Label Studio is dedicated to more dynamic and custom ways to define, change, and display label sets. Big new features include the ability to show labels dynamically (as opposed to statically), for example for classification or computer vision tasks use images rather than text for the label name and allow annotators to create new labels and evolve the taxonomy as they work through the dataset.
The Label Studio 1.5.0 release includes the new features and enhancements, breaking changes, and bug fixes.
Important notes about installation
This release has long migrations and they can take up to 1-2 hours depending on your task number (relevant for instances with more than 100k tasks). If you want to avoid them, you should run label-studio --skip-long-migrations
and then call label-studio calculate_stats_all_orgs
. These migrations affect task counters like total annotation number, canceled number, and prediction number.
New Features and Enhancements
Label Studio 1.5.0 includes the following new features and enhancements.
- Introduce dynamic labels as a task input through prediction from the model, or from a database lookup instead of having annotators scroll through an extensive list of choices. Dynamic labeling saves time and increases the consistency of labeling the objects.
- Enhance the labeling methods by creating label sets with images and hyperlinks. This results in a better visual signal for annotators. You can also customize the view of choices to be displayed by using HTML markup.
- Allow annotators to add new classes in taxonomy as they work through the dataset, without the need to predefine classes.
- Add support for default settings functionality to the Label Studio Editor.
- Include the
Last updated by
column in Data Manager with information about who made the last modifications for any of the annotations in this task atupdated_at
time. - Easily handle the imported tasks by sorting the task IDs in ascending order of filenames.
- Add the
no more tasks
screen at the end of the queue. Now, you can go back to the previous task from the end of the labeling stream. - Set default
y-scale
parameter at label config level for audio UI. - Overlay timeline on top of the waveform for full height timestamp tooltip.
- Add a group of APIs to manage labels in the Label Studio.
- Create a lead time column in Data Manager with averaged lead time per task.
- Improve the
HyperTextLabels
regions to no longer shift on annotation submit/ update/ change annotation/ draft to original toggle/ open close task/ undo redo toggle. - Improve the performance for API querying the next task in Label Stream.
- Augment the performance of loading the project lists.
- In the Quick View mode, the left-side list of tasks is focused on the current annotating task.
- Add
Undo/Redo
functionality for audio. - Display the column (settings) icon when Quick View is opened.
- Add support of OCR <TextArea> for
editable=false
. - Enable auto-resize of images to screen option.
Breaking Changes
Label Studio 1.5.0 includes the following breaking changes.
- All drafts (including drafts without initial annotation and drafts that are attached to annotation) from the current user’s session pass the ML backend for interactive prediction.
- Set the
page_size
limit to < 100 values inapi/projects/ID/tasks
API.
Bug Fixes
Label Studio 1.5.0 includes the following bug fixes.
- Fixed an issue where selecting the
Pan
tool wiped out unfinished polygon drawings. - Fixed an issue in audio data type, where the
View all Annotations
mode did not work for some time after the annotation was created. - Fixed performance for annotation results filters.
- Fixed Static Application Security Testing (SAST) security issues in Label Studio Open Source.
- Fixed an issue where signup permissions were denied for users without an invite link.
- Fixed security issues reported by the Open Web Application Security Project (OWASP) Zed Attack Proxy (ZAP) scanner.
- Fixed an issue where
required=true
was set along withvisibleWhen
forTextArea
andChoices
. - Fixed an issue where the click action on
Create annotations from predictions
in Data Manager generated theANNOTATIONS_CREATED
webhook event. - Fixed an issue where the usage of relations between
<BrushLabels>
regions crashed the Label Studio App. - Fixed an issue where the
TextArea
withdisplayMode="region-list"
text lost focus in an OCR project. - Fixed image cropping issue.
- Fixed an issue where
Text
andHeader
tags failed to work with integers. - Fixed an issue where the label config preview failed when a user applied one custom label config and later replaced it with another custom config.
- Fixed an issue where the named entity recognition granularity failed to reflect correctly in exported data.
- Fixed
HyperText
security breach / JavaScript injection attack. Removed in-use script elements and replaced them with a stub which was replaced later during execution. Only in-use scripts were executed and placed in the appropriate location.
Thank you to all the contributors for making Label Studio 1.5.0 a success!
Release 1.4.1
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 thefit()
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 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 #1754.
- Fix an issue where the
Relation
tag was ignored by theparse_config
function in the ML backend SDK. Thanks to @tomfat for your first contribution in #1811! - @YuMS corrected the example syntax for the task import API in #1831. Thanks for your first contribution!
- @AaronDeRybelHowest added a Flair ML backend example in HumanSignal/label-studio-ml-backend#68. Thanks so much for your contribution!!
- @Fireblossom fixed an issue with the PyTorch ML backend in this PR: HumanSignal/label-studio-ml-backend#80. Thanks for contributing!
- Improved performance of the
encode_rle
function used to export brush masks thanks to contributions from @csaroff in HumanSignal/label-studio-converter#52. - @changrq fixed an issue with YOLO coordinates deviating when a rectangle is rotated in HumanSignal/label-studio-converter#73. We appreciate your contribution!
- @raulbocanegra added a required project key to the payload of storage exports and imports in the SDK in HumanSignal/label-studio-sdk#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 HumanSignal/label-studio-sdk#23! - @fabiolab extended the SDK to allow extra headers for HTTP requests. Thanks for your contributions in HumanSignal/label-studio-sdk#30.
- @laynr added the ability to sync storage to the SDK in HumanSignal/label-studio-sdk#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 HumanSignal/label-studio-sdk#29.
- @kaustuk added the ability to set a cursor color and width for the Audio tag. Thanks for your contributions in HumanSignal/label-studio-frontend#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.
- 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 andupdated_at
time for tasks on the data manager. - Added an ELECTRA model example for the ML backend in HumanSignal/label-studio-ml-backend#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.
- 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, 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 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.
- Add spaCy export information, improved export format JSON details, and to the export docs.
- Add dedicated data management documentation.
- Add details to troubleshoot pre-annotations
- Updated the tags documentation to be the latest version.
- Removed support for Python 3.6 as a result of supporting Pillow 9.0.0.
Label Studio 1.4.0
This release of Label Studio includes a Python SDK, as well as other enhancements including: customizable hotkeys, labeling improvements, the ability to create annotations from predictions, and various infrastructure improvements that make deploying and managing Label Studio easier and faster.
Thanks to all of our contributors and people that reported issues!
Customize labeling hotkeys
You can now customize the hotkeys used for labeling, included the much-requested ability to customize the hotkey combination for submitting an annotation. See all the details in the labeling with hotkeys documentation. Thanks to Grigoriy Livshits and Schulzjo in issue #941, Flavien Berwick in issue #796, and Nathan Derave, Tram-Anh Nguyen, and Filippo Broggini in issue #208 for requesting this functionality.
Additionally, as requested by Mykola Sharhan in issue #812, this release also includes new hotkeys for Time Series labeling, plus Video, Image, and Audio labeling. Check out the hotkey documentation for more.
Prediction and annotation improvements
- You can now use the API or the new SDK to create annotations directly from predictions. Several people in Slack have asked about this functionality, and we're happy to say that it's finally here!
- Annotations created from pre-annotations include links to the predictions that were used when annotating the task as
parent_prediction
when you export or retrieve annotations using the API. - Similarly, annotations copied from other annotations include links to the annotation used to create the new annotation as
parent_annotation
when you export or retrieve annotations using the API. - You can now delete annotations from target cloud storage when they are deleted from Label Studio.
- Fixed an issue displaying predictions to annotators in quickview when the option to "Show predictions to annotators" was selected.
Export improvements
- Exported tasks now contain more details about the annotation process, such as draft annotations and predicted annotations. These additional details appear in all places that you can export tasks, including files exported using the API or Label Studio UI, tasks saved to target storage connections, and annotations sent to machine learning backends.
- Improved the new export API that allows you to generate a file for export and control on a granular level what is included. This includes filtering by completed_by or updated_at time, as well as specifying a data manager view ID and exporting only the tasks visible with those filters. See the API docs for create new export.
- Thanks codeychen for your request to export tasks in a specific date range in issue #1451.
- Thanks also to Andrés Mauricio Repetto Ferrero, Nathan Raw, Koen Dercksen, and codeychen for your request to export selected tasks in issue #1114
- When exporting annotations, the completed_by field can return either the user ID or a full dictionary of user data. It returns the user ID only by default. If you want to see more details about users, set
"annotations__completed_by": { "only_id": false }
. See the docs for creating a new export. - Fixed an issue with UTF-8 characters in export filenames reported by Théo HENAFF in issue #1266.
Deployment and server management improvements
- Faster Docker build process
- Label Studio subpath is automatically configured
- Updated the nginx configuration to have a client_max_body_size of 200MB that can be configured.
- Added support for MinIO
- Added OrganizationMember to the Django admin dashboard
- Now you can use Visual Studio Code Remote - Containers with Label Studio to set up the developer environment and make changes. Thanks to twsl for your code contribution!
- Docker setup now includes friendlier defaults that avoid CSRF errors for localhost deployments. Thanks to David Sanders for contributing the fix!
- Fixed an issue where a server hang with Label Studio could lead to an infinite loop and cause the browser to freeze.
Data management improvements
- Improved the performance of the Data Manager page.
- Added ordering chaining so that you can, for example order by "Annotators" first, and by "Completed" second.
- Filter and sort tasks according to the model version used to create specific predictions.
- Improved and fixed some data manager filtering bugs.
ML backend improvements
- Added webhook support to the ML backend. You can now set up a webhook that notifies you when an ML backend is connected to Label Studio.
- Fix issues associated with saving and retrieving model versions in ML backends.
- Fixed a bug with an error message (ironically) when Label Studio failed to connect to an ML backend. Thanks to David Sanders for contributing the fix!
- Fix double call of ML backend predict() method for one task [https://github.com//pull/1763] Thanks to Nithishkumar K R
Storage improvements
- If you have a cloud data connection set up, you can import task data that references cloud storage URLs such as
s3://
orgs://
and the URLs are automatically presigned. - Fixed an issue where local storage was listed twice in the storage list API results. Thanks to Eric Hansen for your report in issue #1564.
- Fixed the
content-type
for local file storage. - Improved streaming access for local file storage.
- Fixed an issue where GCS credentials were not able to be added in the Label Studio UI for target storage connections.
- Improve the form filling experience when adding storage details.
Other improvements
- It's now even easier to extend the available webhook endpoints to add webhooks to any API endpoint. See how to Create custom events for webhooks in Label Studio and Contribute your own!.
- The user account page now includes details about your active organization.
- Project and organization members APIs now include pagination, and you can specify ordering for the organization member API.
- Made various security improvements to Label Studio.
Other bug fixes
- Fixed an issue where the labeling configuration might overflow the text box in code view. Thanks to David Sanders for contributing the fix!
- Fixed an issue where S3 links to task data did not resolve when referenced in HTML links.
- The port flag was incorrect when calling MySQL status. Thanks to amansohi for contributing the fix!
- Fixed issue #1259 reported by LUO Lingxiao and Yogesh Kumar where labeling configurations containing a single choice option failed.
- Fixed an issue with validating imported paragraphs data when using the Paragraphs tag with
valueType=url
Labeling and tag improvements
- Emoji and special characters are now handled properly when performing Named Entity Recognition (NER) tasks on text with those.
- When using the
whenLabelValue=
parameter to do conditional labeling, you can now specify multiple comma-separated label values. - Updated the Video templates to use the new Video tag instead of the HyperText tag.
- Added the visual tag to collapse data when labeling.
- Update the tag so that it can be used with control tags and added a new
Tabular Data
template. - Perform validation with the HyperText tag when used with nested items.
- Improve the top navigation bar to make the task ID selectable and update the layout.
- For selected regions, display the text.
- Added the ability to view task history with previous and next buttons when labeling. Thanks schafsam for your request in issue #1098.
- Added an indicator to predicted regions, making it easier to identify which region is a pre-annotation and which is a manual annotation on the task.
- Add a link on the region panel between predictions and annotations so that you can see which annotation was created from which prediction.
- Returned the option to "delete all regions", which went missing. Thanks to David Sanders for your report in issue #1645.
- Updated the way that HTML annotations are stored. Prior to this change, paragraph text highlighted for labeling would have an
xpath
with/main/div[1]
and the exported annotation would include the<p>
tag and text. Now, thexpath
for regions like this is/main/div/p/text()[1]
. - Fixed an issue with HyperText where excess labels were applied to multiple spans inside of one text region. Thanks to Piotr Podbielski for your [contribution](https://github.com/heartexl...