Anonymization Service
1. Overview
The Anonymization Website provides a web interface for anonymizing personal or sensitive information in research data. It is intended for survey answers, interviews, transcripts, images, and videos, where people may be identifiable through names, contact details, voices, or faces.
The backend uses components from the Docker Unified UIMA Interface (DUUI). Each modality has a dedicated component, allowing anonymization to be placed early in a processing pipeline—before transcription, topic modelling, or vision-language analysis.
The website demo and the underlying DUUI components may have different feature availability. Check the current deployment for the features exposed by its interface.
2. Typical workflow
- Select a modality and configure its anonymization options.
- Upload files or enter text, where supported.
- Submit the files for processing.
- Monitor the queue and check for errors.
- Review the output.
- Download the anonymized files promptly.
For research pipelines, anonymization should generally run before downstream components process the data, reducing the chance that raw identifying information is passed to later tools.
3. Supported input formats
Text
The documented text-based formats are:
.txt, .md, .markdown, .readme, .text, .rtf, .csv, .log, .tsv, .json, .xml, .tex, .yaml, .yml, .html.
- Select one or more files using the upload area or drag and drop.
- Upload a folder using the Folder section.
- Type or paste text directly into the text box. Pasted text is downloaded as a
.txtfile.
Files are processed in the order they were added. Duplicate selections within one upload action are deduplicated; uploading the same file in separate actions can create separate entries. Use the × beside a file to remove it or Clear to clear the upload list.
Images, audio, and video
The project configuration lists the following extensions. Actual availability depends on whether the modality is enabled in the current deployment.
Images: .jpg, .jpeg, .png, .gif, .bmp, .webp, .tiff, .tif, .svg, .heic, .ico
Audio: .mp3, .wav, .ogg, .flac, .aac, .m4a, .wma, .opus, .aiff, .amr
Video: .mp4, .avi, .mov, .mkv, .webm, .flv, .wmv, .mpeg, .mpg, .3gp, .ogv
4. Text anonymization
The duui-anonymize component detects spans that may contain personally identifiable information (PII), such as names, contact details, addresses, identifiers, and secrets. It is a FastAPI service integrated into DUUI. It returns annotations with character offsets and categories and creates a separate view containing the anonymized text. Later pipeline steps can use the redacted view while the original remains in its own view during component processing.
Anonymization modes
- Placeholder Mode: replaces detected information with a label, for example
John Smith→[private_person]. - Removal Mode: deletes detected information without inserting a replacement.
The default placeholder template is [{label}]. It can be customized in advanced settings.
Detection models
| Model | Coverage described in project notes | Suggested use | Trust remote code |
|---|---|---|---|
openai/privacy-filter | 8 broad categories; English | General English text and preserving wording | No |
OpenMed/privacy-filter-nemotron | 55 detailed categories; English | Fine-grained detection, such as distinguishing first and last names | Yes |
bardsai/eu-pii-anonimization-multilang | 36 categories; 24 EU languages | Multilingual European data and GDPR-related categories | No |
The OpenMed model requires trustRemoteCode=true. The supplied configuration marks it as required.
Output labels
openai/privacy-filter: private_person, private_email, private_phone, private_address, private_url, private_date, account_number, secret.
OpenMed/privacy-filter-nemotron: first_name, last_name, email, phone_number, ssn, tax_id, street_address, city, postcode, credit_debit_card, account_number, password, ipv4, ipv6, mac_address, api_key, medical_record_number, coordinate.
bardsai/eu-pii-anonimization-multilang:
- Personal identity:
PERSON,DATE_OF_BIRTH,NATIONAL_ID - Contact and location:
EMAIL,PHONE,ADDRESS,GEOLOCATION - Official documents:
PASSPORT,DRIVERS_LICENSE,TAX_ID - Financial:
IBAN,CREDIT_CARD,ACCOUNT_NUMBER - Technical:
IP_ADDRESS,MAC_ADDRESS,DEVICE_ID,USERNAME - Organization:
EMPLOYER,AFFILIATION - Health, biometric, and genetic:
HEALTH,BIOMETRIC,GENETIC - GDPR Article 9 categories:
RACIAL_ETHNIC,POLITICAL,RELIGIOUS,SEXUAL_ORIENTATION,UNION_MEMBERSHIP
Model comparison
The project notes report evaluations on TAB, SPIA, and RAT-Bench. OpenMed Nemotron had TAB token recall of 70.2% and an explicit re-identification rate of 49.8% on RAT-Bench, with BLEU 0.893. OpenAI Privacy Filter had BLEU 0.970 and precision 91.6%, but recall of 33.1%. BardsAI performed best against attribute inference on SPIA in the cited evaluation, but had an explicit profile-linkage re-identification rate of 90.3%, compared with 93.2% without anonymization.
These figures are specific to the reported benchmarks and are not performance guarantees for other datasets. Contextual identification remains difficult: removing explicit names and identifiers does not necessarily prevent re-identification from surrounding information. See Choosing a Text Anonymization Model.
5. Image and video anonymization
The duui-face_anon component is based on Face Anonymization Made Simple. It supports generative face anonymization and non-generative redaction.
Anonymization types
- Single Align: generates a replacement face for one person while aiming to preserve pose, expression, surroundings, and non-face content.
- Multiple Align: applies the generative approach to multiple faces in one image.
- Swap: swaps faces between people in two uploaded images.
- Redact: hides a face without generating a replacement, using blur, blacking out, or pixelation.
Generative anonymization aims to make the person unrecognizable while keeping the rest of the image consistent; it may not preserve every visual detail perfectly. For video, frames can be sampled uniformly (for example, every Nth frame) or adaptively by selecting representative frames from time segments.
Image and video advanced settings
| Setting | Default / options | Purpose |
|---|---|---|
hf_token — Hugging Face Token | Required | Personal Hugging Face token used to load models. |
anon_degree — Anonymization Degree | 1.25 | Controls anonymization degree for single_align and multiple_align. |
redact_type — Redaction Type | blur; black; pixel | Redaction method. Only shown for redact. |
face_type — Face Scope | full_face; also half_face, midfull_face, full_face_no_align, whole_face, whole_face_no_align, head, head_no_align, mark_only | Defines the area to redact. Only shown for redact. |
blur — Blur Amount | 51 | Higher values mean stronger blur. The documented value should be an uneven integer. Only shown for redact. |
pixel — Pixel Size | 16 | Controls pixelation; the supplied tooltip says higher values produce smaller pixels. Only shown for redact. |
diffusion_model — Diffusion Model | sd2-community/stable-diffusion-2-1 | Hugging Face identifier for a diffusion model in UNet format. |
clip_model — CLIP Model | openai/clip-vit-large-patch14 | Hugging Face identifier for the CLIP model. |
seed — Seed | 1 | Seed used to support reproducible anonymization. |
guidance — Guidance | 4.0 | Controls the amount of guidance during generation. |
inference_steps — Inference Steps | 25 | Number of inference steps used during generation. |
height — Output Height | Input height if unset | Sets the output image height. |
width — Output Width | Input width if unset | Sets the output image width. |
vis_input — Show Input/Output Side by Side | false | Displays input and output side by side in one image. |
sampling_mode — Sampling Mode (video) | uniform; adaptive | Chooses how video frames are sampled. |
frame_interval — Frame Sampling Interval (video) | 1 | Sampling frequency. Higher values reduce processing time but may lower quality. |
segment_duration — Segment Duration (video) | 10.0 | Duration of one segment for adaptive sampling. |
representative_frames — Number of Representative Frames (video) | 5 | Number of representative frames selected per segment. |
The supplied configuration states that image anonymization requires a Hugging Face token to access the model.
6. Audio and speaker anonymization
The duui-speaker-anonymization component builds on the IMS speaker-anonymization pipeline. It transcribes speech using Whisper large-v3, replaces the speaker embedding with an artificial one generated by a GAN, and re-synthesizes the content using IMS-Toucan with the new voice. The aim is to preserve spoken content while changing voice identity.
The project notes list support for English, German, French, Italian, Spanish, Portuguese, Dutch, Polish, and Russian.
Audio settings
| Setting | Purpose |
|---|---|
language — Language | Language spoken in the audio. The configuration defines this as a text field. |
Audio quality
Audio quality affects whether sensitive spoken content can be recognized. Mumbling, loud background noise, or static may cause words to be transcribed incorrectly or missed, so they may not be anonymized. Use the best available recording and manually review the result before sharing it.
7. Output, downloads, and queue
Output files retain their original file type and, where possible, their formatting, including Markdown symbols, line breaks, and paragraph structure. AI processing can still alter or lose formatting or symbols.
- Individual downloads: inspect and download files separately from the Output section.
- Download all: package the results in
anonymized_output.zip.
Both options prompt the user to choose a destination folder. In Chromium-based browsers such as Chrome, Edge, and Brave, automatic downloads can be enabled in the sidebar under More Settings. After folder permission is granted, processed files are saved there automatically.
The Queue shows files currently being processed. If the concurrent-job session limit is reached, extra jobs are automatically cancelled. A red error icon indicates a server-side processing error; report it to a TTLab team member.
8. Advanced settings (“More Options”)
Advanced settings vary by modality. Some fields are conditional and only appear for a particular anonymization type.
Text settings
| Setting | Default / options | Purpose |
|---|---|---|
device — Computing Device | auto, cpu, cuda | Selects automatic device selection, CPU, or CUDA GPU processing. Default: auto. |
trustRemoteCode — Trust Remote Code | false | Allows a model to execute custom code from its repository. Required by OpenMed/privacy-filter-nemotron; otherwise leave disabled unless needed. |
selectionBegin — Selection Begin | Number; no default specified | Start offset of the text window to analyse. |
selectionEnd — Selection End | Number; no default specified | End offset of the text window to analyse. |
placeholder — Placeholder Replacement | Text; default template documented as [{label}] | Custom replacement text in Placeholder Mode only. |
Text model configuration
The model selector exposes the following metadata in the supplied configuration:
| Model | Label count | Language count | Languages listed in configuration | Requires remote code |
|---|---|---|---|---|
openai/privacy-filter | 8 | 1 | English | No |
OpenMed/privacy-filter-nemotron | 55 | 1 | English | Yes |
bardsai/eu-pii-anonimization-multilang | 36 | 24 | English, Polish, German, French, Spanish, Italian, Dutch, Portuguese, Romanian, Czech, Swedish, Greek, Hungarian, Bulgarian, Croatian, Danish, Estonian, Finnish, Irish, Latvian, Lithuanian, Maltese, Slovak, Slovenian | No |
Image settings
See Image and video advanced settings for image-related parameters including the Hugging Face token, anonymization degree, redaction method, face scope, blur/pixel settings, diffusion and CLIP models, seed, guidance, inference steps, output dimensions, and side-by-side preview.
Audio settings
The audio modality defines a language text field for the language spoken in the audio. The supplied configuration does not specify a default value or additional audio advanced parameters.
Video settings
Video uses the audio language setting and the image anonymization settings, with additional controls for frame sampling: sampling_mode (uniform or adaptive), frame_interval (default 1), segment_duration (default 10.0 seconds), and representative_frames (default 5).
Test Mode
Test Mode demonstrates the upload → process → download workflow without connecting to the real anonymization server. It uses default settings and returns placeholder text instead of genuine anonymization results. Do not use Test Mode output as anonymized research data.
9. Privacy and data storage
The supplied project notes state that input files are stored temporarily and deleted after being passed to backend components. Output files are sent to the frontend and then deleted from the system. As a result, output may be lost if the user logs out or the session expires after inactivity.
Download results as soon as they have been reviewed and are satisfactory.
The notes describe planned user statistics that report task and document counts without exposing document contents. This is not a complete security guarantee; consult the current deployment’s privacy policy and configuration for authoritative details.
10. User-system features described in project notes
The following features are described as planned or under development. Confirm their availability in the current deployment.
- Saved presets: store processing parameters for reuse, excluding sensitive values such as the Hugging Face token. Presets can help reproduce a setup or compare settings on the same data.
- Saved endpoints: use TTLab endpoints or configure personal/local Docker endpoints per modality. Local processing may help keep data within a controlled environment.
- Statistics: show basic counts of completed and failed tasks and uploaded documents without displaying document contents.
11. Planned improvements
- Automatic benchmarking: evaluate anonymization performance automatically.
- Combining models: use majority voting or another aggregation strategy to combine detections. Models may detect different spans or assign different labels; this is a proposed improvement, not a documented current feature.
- Public API: allow applications to submit and retrieve data without using the website interface.
12. Limitations and practical checklist
Anonymization does not guarantee that a dataset is impossible to re-identify. Models can miss identifiers, and contextual details may identify a person after explicit spans are removed. Image generation may alter details beyond the face, and poor audio quality can prevent spoken words from being detected correctly.
- Review anonymized text for missed names, identifiers, and contextual clues.
- Check audio output, especially when recordings are noisy or speech is unclear.
- Inspect image and video output for remaining faces and other identifying details.
- Confirm that the selected text model supports the language and categories in the data.
- Download results before the session expires.
- Do not treat Test Mode output as real anonymization.
- Follow applicable research ethics, consent, and data-protection requirements.
13. Citation and references
If you use the service for research, cite it as follows:
@misc{sittardt2026anonymization,
author = {Sittardt, Coco and Abusaleh, Ali and Abrami, Giuseppe and Mehler, Alexander},
title = {{Anonymization Website}: Multimodal Anonymization of Research Data with {DUUI}},
year = {2026},
howpublished = {\url{https://github.com/ENTAILab/Anonymization-Website}},
note = {Text Technology Lab, Goethe University Frankfurt. Version 0.4.0}
}
- Anonymization Website demo
- Anonymization Website repository
- DUUI anonymization component
- DUUI speaker anonymization component
- DUUI face anonymization component
- Face Anonymization Made Simple
- IMS speaker-anonymization pipeline
- Choosing a Text Anonymization Model
- SPP
- Text Technology Lab
- New Data Spaces