Skip to content

Label Studio 1.4.0

Compare
Choose a tag to compare
@makseq makseq released this 19 Nov 16:36
· 257 commits to master since this release
3e28c16

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.
  • 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:// or gs:// 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.
  • HTML labeling improvements

    • 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, the xpath 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!
    • Improved iframe height calculations.
    • Rich text labeling performs better.
    • Including HTML within the HyperText object tag works as expected.

    Image labeling improvements

    Improvements to brush mask segmentation labeling and image panning.

    • Brush masks now save drafts, allowing you to save small movements and pause drawing the mask.
    • Improve the brush size when zooming in.
    • Fixed an issue with the selection area scaling when zooming.
    • Fixed an issue with brushes when scaling, zooming, and resizing images.
    • Update the panning tool so that the image moves instead of regions.
    • Improved image panning so that polygon points do not move and region interaction is prevented.
    • Improve the experience when dragging selected regions.
    • Improved the selection behavior. Now regions are selected when the selection box overlaps or intersects with a region, not just when the entire region is within the selection box.
    • Fix and improve the dragging behavior when dragging and moving selected regions.
    • Fixed an issue with the size of keypoints after zooming in.
    • Fixed an issue where undo worked unexpectedly, reported by royschwartz2 in issue #1242.

    Taxonomy labeling improvements

    • Fix an issue with non-unique root items and taxonomy values.
    • Fix an issue with autocomplete when using taxonomy.
    • Improve subtree expansion for Taxonomy items when specific nodes or choices are selected.

    Text labeling improvements

    • Labeling text with emoji and special characters works correctly with region offsets in annotations.
    • Improve the handling of new lines in regions selected for text labeling.
    • When symbol granularity is selected, whitespace is no longer trimmed.

    Time Series labeling improvements

    • Update the x-axis according to the zoom and pan actions.
    • Ensure the tracker that follows the timeseries data stays in the same spot while labeling.

    Video labeling improvements

    • Add the ability to mute the audio accompanying a video.
    • Add a parameter to the
    • Improve syncing of audio and video when labeling with the AudioPlus and Video tags.