Skip to content

Releases: HumanSignal/label-studio

1.21.0

30 Sep 06:40
5c98832

Choose a tag to compare

Helm Chart version: 1.11.3

🌟 What's new

🎉 New features

🖌 Bitmask support for precise image annotation

There is a new BitmaskLabels tag to support pixel-level image annotation using a brush and eraser. This new tag allows for highly detailed segmentation using brush-based region and a cursor that reflects brush size down to single pixels for fine detail. We’ve also improved performance so it can handle more regions with ease. (#7766 #7799 #7852)

Additionally, Mac users can now use two fingers to pinch zoom and pan images for all annotation tasks.

bitmask.mp4

🔤 Custom global hotkeys

You can now configure global hotkeys for each user account. These are available from the Account & Settings page. (#7784)

image

✅ Feature updates

▶️ One-click annotation for audio-text dialogues

When labeling paragraphs in dialogue format (layout="dialogue"), you can now apply labels at an utterance level. (#8037)

There is a new button that you can click to apply the selected label to the entire utterance. You can also use the pre-configured Command + Shift + A hotkey:

image

⚙️ Settings for TimelineLabels configurations

When you are using a labeling configuration that includes <TimelineLabels>, you will now see a settings icon. (#8011)

From here you can specify the following:

  • Playback speed for the video
  • Whether to loop timeline regions
2-28-settings

↕️ Adjustable height for audio players

While you can still adjust the default height in the labeling configuration, now users can drag and drop to adjust the height as needed. (#8116 #8138)

2_29_adjust.mp4

✏️ Apply labels from multiple <Labels> controls

When you have a labeling configuration that includes multiple <Labels> blocks, like the following:

<View>
<Text name="text" value="$text" granularity="word"/>
<Labels name="category" toName="text" choice="single">
  <Label value="Animal" background="red"/>
  <Label value="Plant" background="darkorange"/>
</Labels>
<Labels name="type" toName="text" choice="single">
  <Label value="Mammal" background="green"/>
  <Label value="Reptile" background="gray"/>
  <Label value="Bird" background="blue"/>
</Labels>
</View>

You can now choose multiple labels to apply to the selected region. (#8162)

2-29-multilabels.mp4

⏱ Support for high-frequency rate time series data

You can now annotate time series data on the sub-second decimal level. (#8056)

Note: Your time format must include .%f to support decimals.

For example:
timeFormat="%Y-%m-%d %H:%M:%S.%f"

Special thanks to @dronishe for reporting this issue (7948)

2-28-highfreq

☁️ Improved cloud storage modal

When adding cloud storage, the modal has now been redesigned to add clarity and additional guidance to the process. (#8007 #8057)

For example, you can now preview a list of files that will be imported in order to verify your settings.

image 2-29-cloud-storage-modal

🧩 Improved UI for empty Data Manager

When loading the Data Manager in which you have not yet imported data, you will now see a more helpful interface. (#8149)

image

🔳 Snap bounding boxes to pixels

The <Rectangle> and <RectangleLabels> tags now include the snap parameter, allowing you to snap bounding boxes to pixels. (#8045)

Tip: To see a pixel grid when zoomed in on an image, you must disable pixel smoothing. This can be done as a parameter on the <Image> tag or from the user settings.

📌 Define the default collapsed state

The <Collapse> tag now includes an open parameter. You can use this to specify whether a content area should be open or collapsed by default. (#7993)

🌈 Configure whether to display spectrograms in the labeling configuration

There is a new spectrogram parameter for the <Audio> tag, allowing you to show spectrograms by default. (#7762 #7788)

⭐️ SDK 2.0.x

We released a new version of the SDK, with multiple functional and documentation enhancements.

Documentation

Release notes

✨ Miscellaneous UX improvements

  • Removed the default zoom level calculation for Audio, allowing it to render the full waveform by default. (#7980)

  • Removed repetitive headers from Info and History panels in the labeling interface. (#7832)

💪 Performance improvements and optimizations

Multiple performance optimizations, fine-tuning, and dependency cleanup. (#8105, #8102, #7926)

⚠️ Breaking changes

  • /api/projects/{project_id}/export is now deprecated. (#7967)

  • The page size for /api/projects API is now limited to 100 projects. (#7936)

  • SDK 2.0 included several breaking changes.

🔒 Security

  • Fixed a Koa.js XSS vulnerability tied to a redirect function. (#7927)

  • Added improved password validation. (#7859)

  • Updated esbuild to patched version (#7929, #7931)

  • Removed unsafe-eval from default CSP configuration. (#7776)

🐞 Bug fixes

  • Fixed various UI issues associated with tooltips and buttons. (#8049, #8158, #8058, #8009, #8070)

  • Fixed various UI issues for dark mode. (#7990, #7985, #7867)

  • Fixed an issue where predictions with empty results could not pass validation. (#8269)

  • Fixed an issue where audio and video would be out of sync when working with lengthy videos. (#7633)

  • Fixed an issue where, when zoomed in, bounding boxes would shift after being flipped. (#8148)

  • Fixed an issue where an empty Import modal would be shown briefly when uploading a file. (#8155)

  • Fixed an issue with duplicate entries when filtering for annotators from the Data Manager. (#8202)

  • Fixed an issue where long storage titles prevented users from accessing the overflow menu. (#8137)

  • Fixed an issue where imported child choices were not selectable when using the leafsOnly parameter for taxonomies. (#8146)

  • Fixed an issue with labeling Text or Hypertext with multiple Taxonomy tags at the same time. (#8103)

  • Fixed an issue where the taxonomy drop-drop down was not displaying in the labeling interface preview. (#7881)

  • Fixed an issue where the focus was lost when entering a character on the webhook header fields. (#8077)

  • Fixed an issue that would sometimes render a user in the Data Manager without a display name. (#8081)

  • Fixed an issue affecting manually entering the end time for an audio region. (#7829)

  • Fixed an issue where autocomplete was not working when configure the labeling interface as part of the create project workflow. (#8072)

  • Fixed an issue where the layout was incorrect when pinning Data Manager filters to the sidebar. (#8061)

  • Fixed an issue where resizing the labeling interface area would not resize the video player. (#8038)

  • Fixed an issue where a blank avatar would display in the Data Manager when more than 10 annotators had worked on a task. (#8026)

  • Fixed an issue were api/tasks would time out with a large number of annotations. (#8005)

  • Fixed an issue where text in a <TextArea> field was still submitted even if the field was conditionally hidden. (#7982)

  • Fixed an issue where multichannel timelines would display on initial load. (#7984)

  • Fixed an issue where the error indicator was not visible when creating a project. (#7964)

  • Fixed an issue that caused avatars to overflow the table cell in the Data Manager. (#7932)

  • Fixed an issue where users were able to improperly modify regions and add polygon points when using Compare all annotations on a task. (#7907, #7900)

  • Fixed an issue where time series charts were not always properly displayed in the playground. (#7918)

  • Fixed an issue that where the data import page did not display correctly after importing a CSV file. (#7898)

  • Fixed an issue that prevented audio regions from being visualized over the full interface in split channel mode. (#7848)

  • Fixed an issue where audio failed to render the full waveform when zoomed out at the page level. (#7854 #7857)

  • Fixed an issue where filters disappeared in the Data Manager and could not be edited after changes to filters or columns. (#7843)

  • Fixed an issue where RichText Tags were not rendering correctly on Fir...

Read more

1.20.0

01 Jul 07:24
fb90125

Choose a tag to compare

Helm Chart version: 1.9.15

🌟 What's new

🎉 New features

⏱ Time series synchronization with audio and video

You can now use the sync parameter to align audio and video streams with time-series sensor data by mapping each frame to its corresponding timestamp. (#7376)

Very special thanks to @cloudmark for contributing this feature!

video-time-series-light.mp4

For more information, see Time Series Labeling with Audio and Video Synchronization.

🌈 Spectrogram support for audio analysis

There is a new option to display audio files as spectrograms. You can further specify additional spectrogram settings such as windowing function, color scheme, dBs, mel bands, and more.

Spectrograms can provide a deeper level of audio analysis by visualizing frequency and amplitude over time, which is crucial for identifying subtle sounds (like voices or instruments) that might be missed with traditional waveform views. (#7400)

Thank you again to @cloudmark for contributing this feature as well!!

image

✨ Group multiple time series in one channel

There is a new Multichannel tag for visualizing time series data. You can use this tag to combine and view multiple time series channels simultaneously on a single channel, with synchronized interactions.

The Multichannel tag significantly improves the usability and correlation of time series data, making it easier for users to analyze and pinpoint relationships across different signals. (#7669)

timeline.mp4

🎨 Playground 2.0

The Label Studio Playground is an interactive sandbox where you can write or paste your XML labeling configuration and instantly preview it on sample tasks—no local install required.

The playground has recently been updated and improved, now supporting a wider range of features, including audio labeling. It is also now a standalone app and automatically stays in sync with the main application. (#7521, #7605)

image

💡 Tip: To modify the data input, use a comment below the <View> tags:

image

✅ Feature updates

🔍 Interactive view all

The View All feature when reviewing annotations has been improved so that you can now interact with all annotation elements side-by-side, making it easier to review annotations. For example, you can now play video and audio, move through timelines, and highlight regions.

viewall

⚙️ Support for JSONL

Label Studio now supports more flexible JSON data import from cloud storage. When importing data, you can use JSONL format (where each line is a JSON object).

JSONL is the format needed for OpenAI fine-tuning, and the default format from Sagemaker and HuggingFace outputs. (#7555)

📐 Improved grid view configurability

You can now configure the following aspects of the Grid View in the Data Manager: (#7640)

  • Columns
  • Fit images to width

image

❌ More control when deleting annotations

When deleting annotations, you can now select a specific user for the delete action. Previously, you were only able to delete all instances. (#7738)

image

🎯 UX improvements for empty labeling interface panels

The empty states of the labeling interface panels have been improved to provide user guidance and, where applicable, links to the documentation. (#7694)

image

⬆️ UX improvements for Data Import step

The Data Import step has been redesigned to better reflect the drag and drop target. The text within the target has also been updated for accuracy and helpfulness. (#7704)

image

🐞 Bug fixes

  • Fixed UI issues associated with dark mode. (#7638, #7623, #7584, #7589)

  • Fixed an issue where some non-standard files such as PDFs were not correctly displayed in Quick View if using nginx. (#7684, #7685)

  • Fixed an issue where the step parameter on the <Number> tag was not working as expected. (#7690)

  • Fixed an issue where incorrect fonts were being used in the Labeling Interface settings. (#7707)

  • Fixed an issue where audio regions would not reflect multiple labels. Special thanks to community member @xxxinsxxx for submitting the original PR for this! (#7665, #7583)

  • Fixed an issue with CSV exports when the Repeater tag is used. (#7641)

  • Fixed an issue with the Remove Duplicated Tasks action where it failed when a user selected an odd number of tasks. (#7642)

  • Fixed a validation error when updating the labeling configuration of existing tasks through the API. (#7644)

  • Fixed a minor visual issue with the sidebar. (#7637)

  • Fixed an issue with overflow and the date picker. (#7747)

  • Fixed small UI issues related to column sizing and padding. (#7577)

  • Fixed an issue where users were still able to resize TimeLineLabels regions even if locked. (#7622)

  • Fixed an issue where the COCO export option was appearing even if the labeling configuration was not compatible. (#7625)

  • Fixed an issue where in some situations users were not able to navigate after deleting a project. (#7624)

  • Fixed an issue where the Label All Tasks button was not updating the text on task selection. (#7631)

  • Fixed an issue with ls.tasks.get(TASK_ID) function in SDK. (#7645)

  • Fixed an issue where some selection drop-downs exceeded the viewport width. (#7651)

  • Fixed an issue where there was overlap after duplicating and then flipping regions. (#7760)

  • Fixed an issue where the labeling config would not display correct information related to annotation and prediction creation. (#7715)

  • Fixed an issue with tooltip alignment. (#7733)

  • Fixed an issue where nested toggles were not working as expected. (#7734)

  • Fixed an issue where information in Show task source would extend outside the modal. (#7739)

  • Fixed an issue where the hotkey for the Number tag was not working. (#7746)

🤩 Contributors

💡 Community contributions

  • @cloudmark for contributing two very complex PRs: time series synchronization #7376 and audio spectrograms #7400
  • @xxxinsxxx for contributing #7583 to address a bug with audio labels

❤️ HumanSignal team

Full Changelog: tags/1.19.0...1.20.0
This changelog was updated in response to a push of fb90125
Workflow run
Jira Release Issues 1.20.0 Filter

Turned off Feature Flags (97)
Read more

1.19.0

10 Jun 07:39

Choose a tag to compare

Helm Chart version: 1.9.11

🌟 What's new

🎉 New features

🔗☁️ Storage proxies for cloud files

Label Studio now uses a proxy when accessing media files in connect cloud storages. For more information, see Pre-signed URLs vs. storage proxies. (#7354)

Proxy mode is only used when the Use pre-signed URLs option is disabled in source storage.

Storage proxies offer simplified configuration and improved performance.

  • Keeps data access within Label Studio's network boundary, ideal for on-premise environments
  • Enforces strict task-level access control, even for cached files
  • Eliminates the need for presigned URLs and CORS configuration
  • Solves performance and reliability issues for large files, videos, and audio
  • Media is now streamed via proxy, improving compatibility and scalability

📑 Multi-task JSON imports for cloud

Previously, if you loaded JSON tasks from source storage, you could only configure one task per JSON file. (#7540)

This restriction has been removed, and you can now specify multiple tasks per JSON file as long as all tasks follow the same format.

For more information, see the examples in our docs here.

⚡️ Sample datasets

When creating a new project, you can now select sample datasets for images and text. This will make it easier to create new projects for proof-of-concept and testing work. (#7206)

image

📖 New PDF tag

new PDF tag lets you directly ingest PDF URLs for classification without needing to use hypertext tags. (#7460)

✅ Feature updates

🖌 Dynamic brush sizes

The cursor now adjusts dynamically to brush size to allow for more precision in segmentation tasks. (#7484)

Special thanks to community members @Zensome for reporting this in issue #6684, @thesby for reporting this in issue #6337, @stobias123 for reporting this in #3774, and @newzealandpaul for reporting this in issue #2792!

brush-size.mp4

📍 KeyPointLabel exports for COCO and YOLO

COCO and YOLO export formats now available for KeyPointLabels. (#7467)

Special thanks to community member @tlpss for requesting this in issue #2851!

For more information, see the documentation.

🔒 Security

  • Removed an unused endpoint. (#7440)

  • By default, CORS is permissive. However, you can now set an environment variable to ensure it is in strict mode. Set one of the following (#7448) :

    • CORS_ALLOWED_ORIGINS
      A comma-separated list of Origin header values the Label Studio server will receive, e.g. https://example.org,https://example.net

    • CORS_ALLOWED_ORIGIN_REGEXES
      Same as above, except using regex.

    • CORS_ALLOW_ALL_ORIGINS
      Set to false or 0 to reject all Origin header values (that is, allow no cross-origin requests). By default this is set to true.

🐞 Bug fixes

  • Fixed an issue where the Filter tag did not work with Choices tags. (#7481)

    Special thanks to user Tanveer Anzoom @ctanveer for reporting this bug on Slack!

  • Fixed several issues associated with dark mode (in beta). (#7513, #7514, #7485, #7492, #7472, #7490, #7576)

  • Fixed an issue where forward and rewind hotkeys for audio were not working. (#7426)

  • Fixed an issue where the annotator’s avatars were improperly faded in the Data Manager. (#7503)

  • Fixed an issue with cloud storage in which tasks would not resolve correctly if they referenced data in different buckets. (#7458)

  • Fixed an issue where certain drop-down menus were inaccessible at different zoom levels. (#7479)

  • Fixed an issue where there were some UI inconsistencies that would occur during certain page navigations. (#7420)

  • Fixed an issue where the Data Manager would go blank when filtering by the predicted model version. (#7477)

  • Fixed an issue where when moving around panels in the labeling interface, groups were not sticking in place. (#7512)

  • Fixed an issue where, if a 500 error was returned when syncing storage, the user would not see the error. (#7442)

  • Fixed an issue where the token refresh function was not using the user-supplied httpx_client. (#7572)

  • Persistent storages now function without nginx. Non-standard files like PDF, CSV, and others are downloaded correctly. (#7572)

🤩 Contributors

💡 Community contributions

❤️ HumanSignal team

Full Changelog: tags/1.18.0...1.19.0
This changelog was updated in response to a push of c72762d Workflow run

Jira Release Issues 1.19.0 Filter

Turned off Feature Flags (103)
Read more