Skip to content
Uncensored video models on Wiro

Uncensored video models
that render the shot you asked for

Two NSFW-capable ByteDance video models, with the content filters relaxed and the prompt rewriting removed. One reaches 30 seconds with synchronized audio, the other renders 1080p with a seed you can pin. Both sit behind the same Wiro API as everything else in the catalog.

30s
Longest single shot, on Seedance 2.5
1080p
Highest resolution, on Pro v1.5
Synced
Audio generated with the visuals
No
Prompt rewriting, on either model

Two models, opposite trade-offs

These are not two versions of the same thing. One buys you length and audio, the other buys you resolution and repeatability. Pick by whichever constraint binds your shot.

Highest resolution

Seedance Pro v1.5 Uncensored

1080p max resolution

Shorter clips, sharper frames. The only one of the two that renders 1080p, exposes a seed, and can lock the camera in place.

  • ✓ 480p, 720p or 1080p output
  • ✓ Seed control for repeatable runs
  • ✓ Fixed camera option for static shots
  • ✓ Lip-sync with generated audio
  • ✓ First frame plus optional last frame
  • ✓ 5 or 10 second clips
Open Seedance Pro v1.5 Uncensored →

Real output from both models

Genuine sample output taken from each model page. Hover to play. Captions describe what the model can do, not the prompt behind each clip.

Side by side

Neither wins outright. Length and audio sit on one side, resolution and repeatability on the other.

Capability Seedance 2.5 Uncensored Seedance Pro v1.5 Uncensored
Synchronized audio Yes, on or off Yes, with lip-sync
First / last frame Yes Yes
Aspect ratios Adaptive plus six fixed, to 21:9 Adaptive plus six fixed, to 21:9
Output format mp4 or mov New mp4
Watermark Off by default Off by default
Price per request $0.42 to $6.94 $0.06 to $1.18 Cheaper

Read from the live Wiro model catalog. Only successful runs are billed, so a rejected or failed generation costs nothing.

Which one should you call?

Six situations, and the model that handles each without a workaround.

Your cut runs longer than 10 seconds

Pro v1.5 gives you 5 or 10 seconds and nothing between. Anything longer has one answer.

Seedance 2.5

You are delivering at 1080p

Seedance 2.5 tops out at 720p. If the frame has to hold up on a large screen, take the shorter clip.

Pro v1.5

You need the same output twice

Pin the seed and a rerun reproduces the take. Seedance 2.5 does not expose one, so identical inputs still vary.

Pro v1.5

Audio has to land on the action

Both generate audio in the same pass, but 30 seconds of synced sound is a different product from 10.

Seedance 2.5

A locked-off camera on a talking subject

Fixed camera plus lip-sync covers pieces to camera without the frame drifting mid-take.

Pro v1.5

The footage is heading into a grade

Request mov output to hold higher colour precision through keying, compositing and colour work.

Seedance 2.5

Same model. The rewriting step is what goes.

The standard Seedance releases run a prompt enhancement pass that rewrites your text into a brandless, filter-safe version before generation. It helps most users and quietly rewrites the shot for the rest. The uncensored variants drop that step, so what you typed is what gets rendered. Capability, speed and the request shape are otherwise unchanged, and your own product rules, ByteDance terms and local law still apply, so build the guardrails your use case needs at your layer.

One endpoint, then poll for the result

Post your parameters and Wiro returns a task token immediately. Poll /Task/Detail or pass a callbackUrl and let the webhook find you. Swapping between the two models is a slug change.

  • ✓ Same request shape as every model on Wiro
  • ✓ Async tasks with webhook callbacks
  • ✓ Watermark off by default on both
  • ✓ Only successful runs are billed
Read the docs →
import requests

headers = {
  "x-api-key": API_KEY,
  "Content-Type": "application/json",
}

run = requests.post(
  "https://api.wiro.ai/v1/Run/bytedance/"
  "seedance-2-5-uncensored",
  headers=headers,
  json={
    "prompt": "your prompt, unrewritten",
    "duration": "30",
    "resolution": "720p",
    "ratio": "16:9",
    "generateAudio": "true",
    "outputFormat": "mov",
    "watermark": "false",
  }
).json()

task = requests.post(
  "https://api.wiro.ai/v1/Task/Detail",
  headers=headers,
  json={"tasktoken": run["socketaccesstoken"]},
).json()

# pexit == "0" means success
print(task["outputs"])

Where the rewriting step gets in the way

Most of this is ordinary production work that a filter-safe rewrite quietly alters: a brand name dropped, a weapon removed from a period scene, a medical detail softened.

Adult-audience creator platforms Period and conflict scenes Medical and clinical visualisation Horror and thriller production Brand-accurate product footage Moderation training data Music video and concept film Character and roleplay products Stunt and safety previsualisation Editorial and documentary recreation

Run both against the same prompt

Every model page has a playground, so you can see which one renders your shot before writing a line of code. Same request shape across the catalog, and only successful runs are billed.