18Models
DocsModelPricingUse CasesLog inTry for Free
Try for FreeLog in

The generation API adult apps can actually build on.

Get your API keyRead the content policy
generate.js
const res = await fetch(
  "https://api.18models.ai/ent/v2/generate",
  {
    method: "POST",
    headers: {
      Authorization: "Bearer sk-xxxxxxxx",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      model: "wan2.7-i2v-firstframe-uncensored",
      prompt,
      images: [imageUrl],
      params: { resolution: "1080p", duration: 5 }
    })
  }
);
1080p HDsub-10s
Canonical model contractsURL-only media inputsPer-SKU pricingUsage-based settlementAPI key access controls34 models · one endpointAsync tasks · poll by IDAuto refunds on failure
Canonical model contractsURL-only media inputsPer-SKU pricingUsage-based settlementAPI key access controls34 models · one endpointAsync tasks · poll by IDAuto refunds on failure

See what the model is capable of.

Every case below was generated through the same API. Open one to copy its prompt, assets and parameters into the Try workbench and remix it.

Click to play
CASE 01
Midnight in Paris
1080p
Click to play
CASE 02
Golden Hour
1080p
Click to play
CASE 03
Velvet Room
1080p
Click to play
CASE 04
After Dark
1080p
Click to play
CASE 05
Slow Burn
1080p
Click to play
CASE 06
Last Light
1080p
Try it for freeRequest an evaluation code

Reliable asynchronous generation

Submit generation tasks through one validated API, then retrieve every output from the task endpoint when processing completes.

Asynchronous task API

Submit once, keep the returned task ID, and poll the task endpoint until the result is ready.

One canonical request

Use the same generation endpoint and model-specific validated parameters across every supported family.

Usage-aware settlement

Price-affecting parameters select the SKU before submission; usage-metered models settle from provider usage.

Idempotent submissions

Idempotency keys and persisted provider task IDs prevent accidental duplicate generation and billing.

async_generation.py
import requests

# Create a task, then poll for the result
task = requests.post(
    "https://api.18models.ai/ent/v2/generate",
    headers={"Authorization": "Bearer sk-xxxxxxxx"},
    json={"model": "wan2.7-t2v-uncensored", "prompt": prompt, "params": {"resolution": "1080p", "duration": 5}},
).json()

result = requests.get(
    f"https://api.18models.ai/ent/v2/tasks/{task['task_id']}",
    headers={"Authorization": "Bearer sk-xxxxxxxx"},
).json()
Task submittedpoll by task ID
Open the playgroundView Docs

Every model. One API.

Four model families covering video and image generation, all behind the same key and the same flat request shape.

HappyHorse

7 models
—Canonical generation API
from $0.04842

Qwen

2 models
—Canonical generation API
from $0.03459

Wan

18 models
—Canonical generation API
from $0.03387

Seedance

6 models
—Canonical generation API
from $0.10300

Z-Image

1 model
—Canonical generation API
from $0.01694
Open the playgroundFull spec sheet

Common questions.

Yes. Fictional adult content is permitted under the published content policy. Content involving minors or real people's likenesses is banned absolutely and screened on both input and output.

Wan 2.7 and Wan 3.0 (text-to-video, image-to-video, reference-to-video, video edit), Seedance 2.5, Qwen-Image 3.0, Z-Image Turbo, Wan 2.7 image, and the HappyHorse video models — all behind one API key, all NSFW-permitted under one policy.

Video starts at $0.048 per second (HappyHorse 480p) and images at $0.017 per image (Z-Image Turbo). Every task is priced per second or per image in USD, with no subscription required.

Prepaid USD wallet, topped up with crypto/stablecoins (USDT, USDC and others) — no card network sits between you and your capacity. Failed tasks are refunded automatically; you only pay for successful output.

Each model has a canonical contract for required media, accepted parameters, ranges, and defaults. Invalid or unsupported fields are rejected before a paid provider request is submitted.

The service stores normalized requests, media URLs, provider request data, usage, billing records, errors, and result URLs for task execution, settlement, support, and audit. See the current Privacy Policy for retention and deletion terms.

Rate limits are configured per account and returned as HTTP 429 when exceeded. Contact support for the limit assigned to your account.

Rights and permitted use are governed by the current Terms of Service and the applicable upstream provider terms. Review both before production use.

The Try workbench accepts a one-time activation code for $5 of isolated usage at standard SKU prices. It does not issue a customer API key or use your subscription or extra balance.

Each one-time code activates $5 of isolated Try-workbench usage at standard SKU prices. Operators may set a code expiry, and redeemed codes cannot be reused.

Ready to power your platform?

Enterprise plans include dedicated infrastructure, custom content policies, a dedicated account manager, and SLA-backed uptime.

Try for FreeContact Us
34
Canonical models
82
Priced SKUs
1
Generation contract
USD
Billing currency
18Models

High-fidelity AI video generation built for platforms and creators who push boundaries.

All systems operational
Product
DocsPricingAll modelsPlaygroundNSFW policy trackerAPI StatusChangelog
Models
Wan 2.7 videoWan 3.0 videoHappyHorseSeedance 2.5Qwen-Image 3.0Z-Image TurboWan 2.7 image
Solutions
AI companion appsAdult gamesCreator platformsCharacter consistencyMigrate from Novita
Compare
vs Novitavs WaveSpeedvs fal.aivs Replicatevs CivitAIvs ModelsLabvs Segmind
Legal
Privacy PolicyTerms of ServiceContent PolicyCookie Policy
© 2026 18models.ai. All rights reserved.
TLS in transit · Hashed API keys · Operational audit logs