Download Latest Version label_studio-1.21.0.tar.gz (57.2 MB)
Email in envelope

Get an email when there's a new version of Label Studio

Home / 1.21.0
Name Modified Size InfoDownloads / Week
Parent folder
label_studio-1.21.0.tar.gz 2025-09-30 57.2 MB
label_studio-1.21.0-py3-none-any.whl 2025-09-30 58.4 MB
1.21.0 source code.tar.gz 2025-09-26 385.9 MB
1.21.0 source code.zip 2025-09-26 388.2 MB
README.md 2025-09-26 30.1 kB
Totals: 5 Items   889.7 MB 7

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.

https://github.com/user-attachments/assets/59a949f3-9131-4efc-9463-a0d8c09c695d

🔤 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])

https://github.com/user-attachments/assets/7b720213-9e35-47f1-a249-95d50709adf7

✏️ Apply labels from multiple <Labels> controls

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

:::xml
<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)

https://github.com/user-attachments/assets/9f50c6c3-6b1e-4d55-b637-d3fd7499145a

⏱ 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 Firefox due to cross-browser compatibility problems. (#7866)

  • Fixed an issue causing vertical displacement of TimeSeries charts with large datasets and specific zoom levels, sometimes shifting the chart beyond the visible screen area. (#7833)

  • Fixed an issue with incorrect rendering height of split channel audio. (#7820)

  • Fixed an issue where docs links opened in the same window instead of a new tab. (#7806)

  • Fixed an issue where creating a new tab in the Data Manager caused the tab to move to the front after refreshing the page. (#7819)

  • Fixed an issue that prevented the Allow drawing outside of video boundaries setting from functioning correctly. (#7816)

  • Fixed an issue where displaying a large amount of data in TimeSeries using the TimeSeriesVisualizer component caused problems. (#7800)

# 🤩 Contributors

💡 Community contributions

  • @dronishe for reporting the issue with high frequency time series data (7948)

❤️ HumanSignal team

  • @nick-skriabin
  • @deppp
  • @cloudmark
  • @Gondragos
  • @asynclizard
  • @niklub
  • @ricardoantoniocm
  • @bmartel
  • @triklozoid
  • @makseq
  • @wesleylima
  • @nass600
  • @jombooth
  • @yyassi-heartex
  • @carly-bartel
  • @hlomzik
  • @luarmr

Full Changelog: tags/1.20.0...1.21.0 This changelog was updated in response to a push of [5c9883] Workflow run Jira Release Issues 1.21.0 Filter

Turned off Feature Flags (95)

Source: README.md, updated 2025-09-26