Skip to main content

Overview

Beta Censor (also called Censor Studio) is an advanced AI-powered image censoring tool that automatically detects and censors body parts using machine learning. Choose from preset censoring styles or create custom configurations with fine-grained control.
Beta Censor uses the BetaCensor API (NudeNet v3 model) via SignalR WebSocket connection for real-time processing.

Getting Started

1

Upload an Image

Choose your source image:
  • Upload from computer (JPEG, PNG, WebP up to 20MB)
  • Fetch random image from Reddit subreddits
  • Transfer from JOIP tools (Media Vault, Smart Captions, etc.)
2

Choose Censoring Style

Select a preset (Blur, Pixelate, Black Bars, Stickers, Captions) or use Custom mode for full control.
3

Generate

Click “Censor Image” and wait for AI processing (typically 5-30 seconds).
4

Optional: Add Effects

Apply the “Ruin Image” effect for additional obfuscation if desired.
5

Save or Download

Save to Media Vault (with optional community sharing) or download directly.

Censoring Presets

Blur

  • Effect: Gaussian blur over detected regions
  • Intensity: 8 (default, reduced from 10 for subtler effect)
  • Best For: Soft censoring, maintaining image aesthetics
  • Targets: All exposed and covered intimate areas, faces

Pixelate

  • Effect: Mosaic pixelation over detected regions
  • Intensity: 8 (default)
  • Best For: Classic censoring look, clear indication of censored content
  • Targets: All exposed and covered intimate areas, faces

Black Bars

  • Effect: Solid black rectangular overlays
  • Intensity: 8 (default)
  • Best For: Complete obscuring, traditional censoring
  • Targets: All exposed and covered intimate areas, faces

Stickers

  • Effect: Sticker overlays placed over detected regions
  • Intensity: 5 (lower blur under stickers for subtler base effect)
  • Best For: Playful censoring, creative expression
  • Targets: All exposed and covered intimate areas, faces
  • Options: Use default sticker pack or upload custom stickers

Captions

  • Effect: Text overlays with censoring messages
  • Intensity: 8 (blur under captions)
  • Best For: Humiliation themes, interactive censoring
  • Targets: All exposed and covered intimate areas, faces
  • Options: Use default captions or create custom caption sets

Custom

  • Effect: User-defined per body part
  • Intensity: Adjustable 1-20 per body part
  • Best For: Fine-grained control, specific use cases
  • Targets: Select individual body parts to censor
All presets use intensity level 8 (reduced from previous default of 10) for a 25% less intense effect. This provides better balance between censoring and image quality.

Image Sources

Upload from Computer

  1. Drag an image file onto the upload area
  2. File is validated for format and size
  3. Preview appears immediately
Supported formats: JPEG, PNG, WebP (max 20MB)
  1. Click the upload area
  2. Select file from your computer
  3. Image loads into preview
Only static images are supported. GIF files are blocked with a clear error message.
  1. Copy an image to clipboard
  2. Click the upload area
  3. Image automatically pastes and loads
Great for quick testing with screenshots or copied images.

Reddit Source

Fetch random images from Reddit:
  1. Add one or more subreddits (comma-separated)
  2. Click “Fetch from Reddit”
  3. Random image from your subreddit list appears
  4. Click again to get a different image
Reddit fetching uses deduplication to avoid showing the same image twice. Up to 100 previously shown URLs are excluded from new fetches.

JOIP Transfer

Receive images from other JOIP tools:
  • Click “Send to Censor Studio” in Media Vault, Smart Captions, or Babecock Studio
  • Image automatically loads and ready to censor
  • Original metadata (filename, MIME type) preserved
Only static images can be transferred. Video or GIF transfers will show an error.

Custom Mode

Body Part Selection

In Custom mode, individually select which body parts to censor:

Covered Regions

  • Belly (Covered)
  • Breasts (Covered)
  • Buttocks (Covered)
  • Feet (Covered)
  • Genitalia F (Covered)

Exposed Regions

  • Anus
  • Armpits
  • Belly
  • Breasts (Female)
  • Breasts (Male)
  • Buttocks
  • Feet
  • Genitalia (Female)
  • Genitalia (Male)

Faces and Features

  • Face (Female)
  • Face (Male)
  • Eyes (Female)
  • Mouth (Female)
The AI model detects these body parts automatically. You choose which detected parts to censor and how to censor them.

Per-Part Configuration

For each selected body part:
  1. Choose Censor Type:
    • Blur
    • Pixelate
    • Black Bars
    • Sticker
    • Caption
  2. Set Intensity Level (1-20):
    • Lower values: Subtle censoring
    • Higher values: Stronger censoring
    • Default: 8
  3. Example: Blur faces at intensity 5, pixelate genitalia at intensity 15

Sticker Management

Default Sticker Pack

Includes basic censoring stickers built into the app.

Creating Custom Sticker Packs

1

Create Pack

  1. Click “Manage Stickers”
  2. Enter a pack name
  3. Click “Create New Pack”
2

Upload Stickers

  1. Select your new pack
  2. Click “Add Stickers”
  3. Choose JPEG, PNG, WebP, or GIF files
  4. Multiple files can be uploaded at once
3

Review and Organize

  • View all stickers in the pack
  • Delete individual stickers if needed
  • Pack is ready to use

Using Custom Stickers

  1. In Stickers preset or Custom mode with sticker type:
  2. Select your custom pack from the dropdown
  3. Stickers from that pack will be randomly applied to detected regions
Sticker Variations: Stickers are randomly rotated (-15° to +15°) and sized (±20%) for a more natural, varied appearance.

Syncing Stickers

Click “Sync to Server” to:
  • Upload all your custom stickers to the BetaCensor service
  • Make them available for server-side processing
  • Sync status shows how many stickers were uploaded

Caption Management

Default Captions

Built-in generic censoring captions:
  • “Censored”
  • “No peeking”
  • “Not for you”
  • “Look away”
  • “Access denied”
  • “Denied”

Preset Caption Packs

Themed caption collections:
  • JOI / Edging: Commanding instructions for edging and denial
  • Forced-Bi: Coercion and sexuality exploration themes
  • Beta / Bully: Power imbalance and humiliation dynamics
  • CBT / Pain: Intense pain play scenarios
  • Cuckold: Humiliation and voyeurism themes
Content Warning: Preset caption packs contain explicit NSFW content aligned with specific adult themes. Review pack descriptions before using.

Creating Custom Caption Sets

1

Create Set

  1. Click “Manage Captions”
  2. Enter a set name
  3. Click “Create New Set”
2

Add Captions

  1. Enter captions in the text area
  2. One caption per line
  3. Can include multiple variations
3

Save and Use

  • Click “Save” to store the set
  • Select it from the captions dropdown
  • Captions are randomly chosen from your set

Editing Caption Sets

  1. Click “Manage Captions”
  2. Find the set you want to edit
  3. Click the edit icon
  4. Modify captions as needed
  5. Save changes

Advanced Options

Intensity Slider

Controls the strength of censoring effects:
  • Range: 1-20
  • Default: 8 (reduced from 10)
  • Low (1-5): Subtle, barely noticeable censoring
  • Medium (6-12): Balanced censoring
  • High (13-20): Strong, heavy censoring
Intensity applies globally in preset modes, or per-body-part in Custom mode.

Image Obfuscation (“Ruin Image”)

Apply additional degradation effects after censoring:
  • Desaturation: 45% - washed-out look
  • Brightness: 15% darker
  • Sharpening: Aggressive for harsh, over-processed appearance
  • Gamma: Crushed shadows, lifted highlights
  • Compression: JPEG artifacts add to “ruined” aesthetic
1

Censor First

Generate censored image using your chosen preset/settings.
2

Toggle Obfuscation

Enable the “Ruin Image” checkbox.
3

Apply Effect

Click “Ruin Image” to apply degradation effects.
Obfuscation is applied locally using Sharp image processing, not via the external BetaCensor API.

Processing and Results

AI Detection Process

1

Image Analysis

BetaCensor API analyzes your image using the NudeNet v3 model to detect body parts.
2

Region Mapping

Detected regions are mapped to bounding boxes with confidence scores.
3

Censoring Application

Based on your settings, appropriate censoring effects are applied to detected regions.
4

Local Overlays (if applicable)

Stickers and captions are applied client-side after receiving the censored image from the API.

Detection Results

After processing:
  • Success Message: “Applied censoring to X detected region(s)”
  • No Detections: “No content detected - The AI model didn’t detect any body parts to censor”
  • Error: Specific error message explaining the failure
If no body parts are detected, the original image is returned unchanged. This can happen with:
  • Images without detectable body parts
  • Very small or distant subjects
  • Heavily obscured or covered subjects

View Modes

  • After: View the censored result (default)
  • Before: View the original uploaded image
  • Toggle between views to compare changes

Saving and Sharing

Save to Media Vault

  1. Click “Save to Vault” after successful censoring
  2. Optionally enable “Share to Community” toggle
  3. Image is saved to your personal Media Vault
  4. Shared images appear in the community feed

Download to Computer

  1. Click “Download” button
  2. Image downloads with format-appropriate extension (jpg/png/webp)
  3. Filename format: censored-[timestamp].[extension]
Downloaded images are watermarked for attribution. Saved vault images also include the watermark.

History

All censoring operations are tracked in local history:
  • View recent censoring sessions
  • Click to reload previous settings
  • Review original and censored images
  • See which preset/settings were used
History is stored in browser localStorage and persists across sessions.

Credit System

Beta Censor uses credits for processing:
  • Cost: 5 credits per censoring operation (default, configurable)
  • Credit Check: Performed before processing
  • Insufficient Credits: Dialog appears with link to purchase
Credits are deducted immediately when censoring begins. Failed operations are not automatically refunded.

Service Status

The app monitors BetaCensor service availability:
  • Green Indicator: Service is available
  • Red Indicator: Service is down
  • Auto-retry: Service status checked periodically (every 15-60 seconds)
If the service is unavailable, you’ll see: “Censor service is not running. Please try again in a moment.”

Troubleshooting

Error: “Censor service is temporarily unavailable”Causes:
  • BetaCensor API is down
  • SignalR connection failed
  • Server is restarting
Solutions:
  • Wait 10-30 seconds for automatic reconnection
  • Refresh the page
  • Check status indicator
  • Try again in a few minutes
Message: “The AI model didn’t detect any body parts to censor”Causes:
  • Image doesn’t contain detectable body parts
  • Subject is too small or distant
  • Clothing/coverage prevents detection
Solutions:
  • Try a different image
  • Use an image with clearer subjects
  • Ensure adequate resolution and lighting
Error: “Request timed out after 60000ms”Causes:
  • Very large/complex image
  • Server overload
  • Network issues
Solutions:
  • Resize image to smaller dimensions
  • Try again during off-peak hours
  • Check internet connection
  • Use a simpler image
Error: Various upload-related errorsCauses:
  • File too large (>20MB)
  • Unsupported format (GIF)
  • Corrupted file
Solutions:
  • Compress or resize image
  • Convert to JPEG, PNG, or WebP
  • Try a different file
  • Verify file integrity
Cause: Sticker pack not synced or emptySolutions:
  • Click “Sync to Server” in sticker manager
  • Upload at least one sticker to the pack
  • Switch to default sticker pack
  • Verify stickers are valid image files

Best Practices

Use built-in presets (Blur, Pixelate, etc.) to quickly find the censoring style you prefer. Switch to Custom mode only when you need fine-grained control.
Start at default intensity (8) and adjust up or down based on results. Small changes (±2) often make a big visual difference.
Better source images produce better censoring results. Aim for:
  • Good lighting and clarity
  • Adequate resolution (1024px+)
  • Clear subject visibility
Create separate sticker packs and caption sets for different themes or projects. This keeps your library organized and easy to use.
Use the Before/After toggle to review results before saving or downloading. Regenerate if needed with different settings.
The Reddit fetch feature is great for testing different settings without uploading your own images. Perfect for experimenting with presets and configurations.

Technical Details

AI Model

  • Provider: BetaCensor API
  • Model: NudeNet v3
  • Detection Classes: 22 body part categories
  • Confidence Thresholds: Configured server-side
  • Processing: Real-time via SignalR WebSocket

Communication Protocol

  • Protocol: SignalR with WebSocket transport
  • Endpoint: Configurable via BETACENSOR_API_URL
  • Connection: Automatic reconnect with backoff (0s, 2s, 5s, 10s, 30s)
  • Timeout: 60 seconds per request
  • Keep-Alive: 10 second interval

Local Processing

  • Stickers: Applied client-side using Sharp compositing
  • Captions: Rendered as SVG and composited locally
  • Obfuscation: Sharp-based image effects (no API call)
  • Watermarking: Applied during download/save operations

Storage

  • Saved Images: Uploaded to Supabase user-media bucket
  • Community Sharing: Creates copy in general bucket when enabled
  • Path Format: users/{userId}/beta-censor/{timestamp}_{random}.{ext}

Privacy and Content Policy

Data Handling

  • Images are sent to the external BetaCensor API for processing
  • Results are stored in your account if saved
  • Shared images appear in community feed only if you enable sharing
  • History data stored locally in browser

Acceptable Use

Important: Only use images you have full legal rights to. Do not upload:
  • Images of minors or individuals without consent
  • Copyrighted content you don’t own
  • Illegal or prohibited content
Violations may result in account suspension.

Community Sharing

When sharing to community:
  • Image becomes visible to all users
  • Cannot be un-shared (removal requires manual intervention)
  • Subject to community guidelines and moderation
  • Your username is associated with shared content

Build docs developers (and LLMs) love