# Motion One · Wan — the uncensored AI video engine on eroq, explained

> Motion One, eroq's uncensored Wan video engine — 5 or 10 second clips at 720p on every account, what uncensored within policy means, prompting and the API.

Published 2026-09-10 · eroq.ai — canonical: https://eroq.ai/blog/motion-one-wan-uncensored-video


Seven video engines, one of them not moderated upstream. Motion One is eroq's Wan-based engine, and it is the only one on the roster that renders mature fiction. It is also the lowest gate on the platform: every account has it, free ones included. The spec is modest — 5 or 10 seconds, 480p or 720p, 100 or 180 credits — and the policy is the point. This piece is for people who build on it, so it says NSFW where the marketing pages say "mature".

## The numbers

- **Model id**: `eroq-motion-one`.
- **Length**: 5 or 10 seconds.
- **Resolution**: 480p or 720p.
- **Price**: 100 credits for 5 s, 180 for 10 s — about $1.00 and $1.80 at the entry pack, where a credit is roughly a cent.
- **Formats**: 16:9, 9:16, 1:1.
- **Modes**: text-to-video and image-to-video.
- **Access**: every account. Free accounts start with 50 credits and a 10-second clip cap; the credits cover images and voice, and a Starter pack ($10, 1,000 credits) is ten 5-second clips.
- **Content**: uncensored, NSFW-capable, within the acceptable-use policy.

Blocked requests return `content_blocked` and are never charged. Failed generations refund themselves. Credits never expire.

## Why the premium engines are SFW-only, and this one isn't

Seedance, Kling, Hailuo and Veo are run by providers who moderate on their side, before eroq sees the output. A mature prompt on those engines fails upstream; eroq can pass the error through and refund the credits, but it can't change the provider's rules. That is the whole reason they are labeled SFW only on the engine list — not a product decision, a supply-chain fact.

Motion One is rendered under eroq's own policy. The difference is the one the [NSFW AI API guide](/blog/nsfw-ai-api-guide) draws between a refusal wall and a policy wall: a refusal wall lives inside the model and fires unpredictably; a policy wall is written down, enforced at the account level and returns a documented error code. Motion One is the second kind. Images, chat and voice on the platform are the same kind — uncensored within policy — and Motion One is the video engine that matches them.

## "Uncensored within policy," precisely

The [acceptable-use policy](/legal/aup) is short, and the parts that matter for video:

- **Allowed**: fictional roleplay, stories, imagery, video and voice involving **adult, fictional characters** — mature and uncensored.
- **Banned absolutely**: any sexual content involving minors (real, fictional, stylized or implied); real, identifiable people without consent (deepfakes, impersonation); anything illegal; harassment.

Enforcement is at the account level, not per request. If you build a product on Motion One, that policy passes through to your users as a floor: yours can be stricter, never looser. The [adult creators](/use-cases/adult-creators) page covers the platform side of that arrangement — age-gating and publishing moderation stay on your side.

"Uncensored" therefore means something narrow and useful: the engine renders what adult fiction asks for, and the limits are a document, not a mood.

## Prompting Motion One

At 720p and 10 seconds, the engine rewards restraint. The register is the same as the rest of the roster — one flowing paragraph, subject, motion, camera, light, mood, 30 to 80 words — with three adjustments:

1. **One subject, one motion.** Two people and one action is the sweet spot. A crowd is a waste of 720p.
2. **One camera move, named.** Slow pan, Orbit, Push-in, Close-up and Static from the 17 rack moves all suit intimate shots; written directions ("slow orbit") are detected in the prompt too.
3. **Cast with a Character.** [Characters](/studio/characters) hold reference photos, and the same face carries across images and clips. @mention one and the engine switches to image-to-video with the reference as the first frame — the most reliable way to keep a face consistent from a still to a clip.

Enhance rewrites a rough draft into a director-grade prompt for free. The Director's rack (film type, era, tempo, gear, lens, aperture, palette, lighting) is folded into the prompt server-side; for mature scenes, Lighting Practicals or Neon glow and the Twilight or Warm film palettes do more than another adjective would.

### Example prompt

A mature scene, written the way the engine likes it — sober, specific, 9:16:

> Two lovers in a dim hotel room at night slow-dance barefoot between the bed and the rain-streaked window, her hand on the back of his neck, the city's neon flickering across the sheets. Slow orbit around them at shoulder height, neon glow and practicals, twilight palette, intimate and unhurried.

Settings: 10 s, 9:16, 720p, Camera move Orbit, Lighting Neon glow, Palette Twilight. @mention a Character for one of them and the render becomes image-to-video with that reference as the first frame.

## From the API

Motion One is `eroq-motion-one` on the same OpenAI-shaped REST API as everything else: `https://eroq.ai/v1`, Bearer key. Video is asynchronous — POST a job to `videos/generations`, then poll it or receive a signed webhook (`video.generation.succeeded` / `video.generation.failed`, Stripe-style signature). The exact request shape, status codes and the `engines` listing are on [/docs/video](/docs/video).

The CLI is the fastest way to try it:

```
eroq login
eroq video "Two lovers in a dim hotel room at night slow-dance barefoot…" -s 10 --aspect 9:16
```

And there is an MCP server at `https://eroq.ai/mcp` with `generate_video` and `get_video_status` tools, so Claude, ChatGPT, Cursor or Codex can queue a Motion One render from a conversation; `eroq mcp` runs a local stdio variant that saves the file to disk, which is the shape coding agents want.

Rate limits are per key: video at 6 requests a minute, multiplied by the plan (2× on Creator, 4× on Studio). Failed jobs refund; blocked jobs are never charged; both return a documented error rather than a lecture.

## Where it sits in the roster

Use Motion One when the content is mature, when the account has no plan, or when a 720p draft is enough. Move to Seedance 2.5, Kling, Hailuo or Veo when the job is SFW and needs 1080p, more than 10 seconds, a seed, an end frame or sound — [/compare/wan-vs-seedance](/compare/wan-vs-seedance) sets the two ends of the roster against each other. The engine page at [/models/eroq-motion-one](/models/eroq-motion-one) keeps the current spec.

## FAQ

### Is Motion One really uncensored?

Within a written acceptable-use policy, yes. It renders mature fiction involving adult, fictional characters. Sexual content involving minors, real people without consent, illegal content and harassment are banned absolutely, and enforcement is at the account level.

### Which plan do I need for Motion One?

None. Every account has it, including free accounts. A 5-second clip is 100 credits, a 10-second clip 180; the Starter pack is $10 for 1,000 credits.

### Why can't I render mature content on Seedance, Kling, Hailuo or Veo?

Those providers moderate upstream, before eroq receives the output. Motion One is rendered under eroq's own policy, which is why it is the uncensored engine.

Get an API key and the first 50 credits are free — [/signup](/signup).
