> ## Documentation Index
> Fetch the complete documentation index at: https://docs.uncensored.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Models

> Catalog of all models available across the Uncensored AI API.

export const ModelCards = () => {
  const COPY_ICON = '<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg>';
  const CHECK_ICON = '<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"></polyline></svg>';
  const SEARCH_ICON = '<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>';
  useEffect(() => {
    let cancelled = false;
    const findCol = (headers, name) => headers.findIndex(h => h === name.toLowerCase());
    const buildCard = (cells, map) => {
      const cell = i => i > -1 && cells[i] ? cells[i] : null;
      const txt = i => cell(i) ? cell(i).textContent.trim() : "";
      const html = i => cell(i) ? cell(i).innerHTML.trim() : "";
      const id = txt(map.id);
      const name = map.name > -1 ? txt(map.name) : id;
      const card = document.createElement("div");
      card.className = "mc-card";
      card.dataset.search = (id + " " + name + " " + txt(map.type)).toLowerCase();
      const metaBits = [];
      if (map.status > -1 && html(map.status)) metaBits.push('<span class="mc-status">' + html(map.status) + "</span>");
      if (map.type > -1 && txt(map.type)) metaBits.push('<span class="mc-tag">' + txt(map.type) + "</span>");
      if (map.cost > -1 && html(map.cost)) metaBits.push('<span class="mc-cost">' + html(map.cost) + "</span>");
      if (map.eta > -1 && txt(map.eta)) metaBits.push('<span class="mc-eta">' + txt(map.eta) + "</span>");
      const params = [];
      if (map.req > -1 && html(map.req)) params.push('<div class="mc-param"><span class="mc-plabel">Required</span><span class="mc-pval">' + html(map.req) + "</span></div>");
      if (map.opt > -1 && html(map.opt)) params.push('<div class="mc-param"><span class="mc-plabel">Optional</span><span class="mc-pval">' + html(map.opt) + "</span></div>");
      card.innerHTML = '<div class="mc-head">' + '<div class="mc-left">' + '<div class="mc-title">' + name + "</div>" + '<div class="mc-idrow"><code class="mc-id">' + id + '</code><button type="button" class="mc-copy" title="Copy model ID" aria-label="Copy model ID ' + id + '">' + COPY_ICON + "</button></div>" + "</div>" + (metaBits.length ? '<div class="mc-meta">' + metaBits.join("") + "</div>" : "") + "</div>" + (params.length ? '<div class="mc-params">' + params.join("") + "</div>" : "");
      const btn = card.querySelector(".mc-copy");
      if (btn) {
        btn.addEventListener("click", e => {
          e.preventDefault();
          e.stopPropagation();
          navigator.clipboard.writeText(id).then(() => {
            btn.innerHTML = CHECK_ICON;
            btn.classList.add("copied");
            setTimeout(() => {
              btn.innerHTML = COPY_ICON;
              btn.classList.remove("copied");
            }, 1200);
          });
        });
      }
      return card;
    };
    const enhance = () => {
      if (cancelled) return;
      document.querySelectorAll("table").forEach(table => {
        if (table.dataset.cardsEnhanced) return;
        const headers = Array.from(table.querySelectorAll("thead th")).map(th => th.textContent.trim().toLowerCase());
        if (headers[0] !== "model id") return;
        table.dataset.cardsEnhanced = "true";
        const map = {
          id: 0,
          status: findCol(headers, "status"),
          name: findCol(headers, "display name"),
          type: findCol(headers, "type"),
          cost: findCol(headers, "cost"),
          eta: findCol(headers, "eta"),
          req: findCol(headers, "required params"),
          opt: findCol(headers, "optional supported params")
        };
        const rows = Array.from(table.querySelectorAll("tbody tr"));
        const wrap = document.createElement("div");
        wrap.className = "mc-wrap";
        const list = document.createElement("div");
        list.className = "mc-list";
        rows.forEach(tr => list.appendChild(buildCard(Array.from(tr.children), map)));
        const count = document.createElement("div");
        count.className = "mc-count";
        const setCount = n => count.textContent = n + (n === 1 ? " model" : " models");
        setCount(rows.length);
        const empty = document.createElement("div");
        empty.className = "mc-empty";
        empty.textContent = "No models match your search.";
        empty.style.display = "none";
        if (rows.length >= 6) {
          const box = document.createElement("div");
          box.className = "mc-search-box";
          box.innerHTML = SEARCH_ICON;
          const input = document.createElement("input");
          input.type = "text";
          input.className = "mc-search";
          input.placeholder = "Search models…";
          box.appendChild(input);
          input.addEventListener("input", () => {
            const q = input.value.trim().toLowerCase();
            let n = 0;
            list.querySelectorAll(".mc-card").forEach(c => {
              const show = !q || c.dataset.search.indexOf(q) !== -1;
              c.style.display = show ? "" : "none";
              if (show) n++;
            });
            setCount(n);
            empty.style.display = n ? "none" : "";
          });
          wrap.appendChild(box);
        }
        wrap.appendChild(count);
        wrap.appendChild(list);
        wrap.appendChild(empty);
        table.insertAdjacentElement("beforebegin", wrap);
        table.style.display = "none";
      });
    };
    enhance();
    const raf = requestAnimationFrame(enhance);
    const t = setTimeout(enhance, 300);
    return () => {
      cancelled = true;
      cancelAnimationFrame(raf);
      clearTimeout(t);
    };
  }, []);
  const css = `
    .mc-wrap {
      --mc-fg: #1a1a1a;
      --mc-muted: #6b7280;
      --mc-field-bg: transparent;
      --mc-field-border: rgba(0,0,0,0.14);
      --mc-field-border-hover: rgba(0,0,0,0.30);
      --mc-focus-ring: rgba(0,0,0,0.07);
      --mc-code-bg: rgba(0,0,0,0.045);
      --mc-divider: rgba(0,0,0,0.08);
      --mc-row-hover: rgba(0,0,0,0.018);
      margin: 1rem 0 1.5rem;
    }
    :is(.dark) .mc-wrap {
      --mc-fg: #f3f4f6;
      --mc-muted: #9ca3af;
      --mc-field-border: rgba(255,255,255,0.16);
      --mc-field-border-hover: rgba(255,255,255,0.36);
      --mc-focus-ring: rgba(255,255,255,0.09);
      --mc-code-bg: rgba(255,255,255,0.07);
      --mc-divider: rgba(255,255,255,0.08);
      --mc-row-hover: rgba(255,255,255,0.025);
    }

    .mc-search-box { position: relative; display: flex; align-items: center; }
    .mc-search-box svg { position: absolute; left: 14px; color: var(--mc-muted); pointer-events: none; }
    .mc-search {
      width: 100%; box-sizing: border-box;
      padding: 11px 14px 11px 42px; font-size: 15px;
      color: var(--mc-fg); background: var(--mc-field-bg);
      border: 1px solid var(--mc-field-border); border-radius: 10px; outline: none;
      transition: border-color .12s ease, box-shadow .12s ease;
    }
    .mc-search::placeholder { color: var(--mc-muted); }
    .mc-search:hover { border-color: var(--mc-field-border-hover); }
    .mc-search:focus { border-color: var(--mc-field-border-hover); box-shadow: 0 0 0 3px var(--mc-focus-ring); }

    .mc-count { font-size: 13px; color: var(--mc-muted); margin: 16px 2px 2px; }
    .mc-list { display: flex; flex-direction: column; }

    /* Borderless rows separated only by a thin divider */
    .mc-card {
      padding: 18px 8px;
      border-bottom: 1px solid var(--mc-divider);
      border-radius: 8px;
      transition: background .12s ease;
    }
    .mc-card:last-child { border-bottom: none; }
    .mc-card:hover { background: var(--mc-row-hover); }

    .mc-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
    .mc-left { min-width: 0; }
    .mc-title { font-size: 15px; font-weight: 600; color: var(--mc-fg); line-height: 1.3; }
    .mc-idrow { display: inline-flex; align-items: center; gap: 7px; margin-top: 7px; }
    .mc-id {
      font-size: 12.5px; font-weight: 500;
      padding: 2px 7px; border-radius: 6px;
      background: var(--mc-code-bg); color: var(--mc-fg);
      word-break: break-all;
    }
    .mc-copy {
      display: inline-flex; align-items: center; justify-content: center;
      padding: 2px; color: var(--mc-muted);
      background: transparent; border: none; border-radius: 4px;
      cursor: pointer; opacity: 0; transition: opacity .12s ease, color .12s ease;
    }
    .mc-card:hover .mc-copy { opacity: .7; }
    .mc-copy:hover { opacity: 1; color: var(--mc-fg); }
    .mc-copy.copied { color: #16a34a; opacity: 1; }

    .mc-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 14px; flex-shrink: 0; text-align: right; }
    .mc-meta code { background: transparent; padding: 0; font-size: 13px; color: var(--mc-fg); }
    .mc-status :is(span, .badge) { vertical-align: middle; }
    .mc-tag { font-size: 12px; color: var(--mc-muted); }
    .mc-cost { font-size: 13px; font-weight: 600; color: var(--mc-fg); }
    .mc-eta { font-size: 12.5px; color: var(--mc-muted); }

    /* Params shown openly (documentation, not hidden behind a toggle) */
    .mc-params { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
    .mc-param { display: grid; grid-template-columns: 84px 1fr; gap: 12px; align-items: start; }
    .mc-plabel { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--mc-muted); padding-top: 2px; }
    .mc-pval { font-size: 13.5px; color: var(--mc-fg); line-height: 1.6; }
    .mc-pval code { font-size: 12px; padding: 1px 5px; border-radius: 5px; background: var(--mc-code-bg); }

    .mc-empty { padding: 24px 8px; font-size: 14px; color: var(--mc-muted); }

    @media (max-width: 600px) {
      .mc-card { padding: 16px 0; }
      .mc-count, .mc-empty { margin-left: 0; padding-left: 0; }
      .mc-search { font-size: 16px; } /* avoid iOS focus zoom */

      .mc-head { flex-direction: column; gap: 0; }
      .mc-idrow { margin-top: 8px; }
      /* Meta becomes a left-aligned inline group under the ID */
      .mc-meta { justify-content: flex-start; text-align: left; margin-top: 11px; gap: 6px 14px; }
      .mc-copy { opacity: .7; padding: 5px; margin: -3px; } /* larger tap target */

      /* Params stack label-over-value, full width */
      .mc-params { margin-top: 13px; gap: 11px; }
      .mc-param { grid-template-columns: 1fr; gap: 3px; }
      .mc-plabel { padding-top: 0; }
    }
  `;
  return <style dangerouslySetInnerHTML={{
    __html: css
  }} />;
};

<ModelCards />

# Models

A single catalog of model IDs across the API. Use the `Category` column to filter to a product area, and use the `Model ID` exactly as shown when sending requests once that product area is live.

## Categories

| Category            | Endpoint                      | Status                                                 |
| ------------------- | ----------------------------- | ------------------------------------------------------ |
| Image Generation    | `POST /v1/images/generations` | <Badge color="green" shape="pill">Live</Badge>         |
| Image Studio (edit) | `POST /v1/images/studio/edit` | <Badge color="green" shape="pill">Live</Badge>         |
| Chat                | `POST /v1/chat/completions`   | <Badge color="green" shape="pill">Live</Badge>         |
| Video               | `POST /v1/videos/...`         | <Badge color="green" shape="pill">Live</Badge>         |
| Audio               | `POST /v1/audio/...`          | <Badge color="orange" shape="pill">Coming soon</Badge> |

## Image Generation

Default model: `model-dev`. Endpoint: [`POST /v1/images/generations`](/images/generation).

`common` means `image_width`, `image_height`, `callback_url`, `resolution`, `quality`, `additional_settings`, and `enable_fallback`. Model-specific knobs are passed in `additional_settings` unless they are documented as top-level convenience params.

| Model ID                    | Status                                         | Display name              | Required params   | Optional supported params                                                                                  | Cost                                 | ETA   |
| --------------------------- | ---------------------------------------------- | ------------------------- | ----------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------ | ----- |
| `model-dev`                 | <Badge color="green" shape="pill">Live</Badge> | Flux Dev                  | `prompt`, `model` | common + `seed`, `num_inference_steps`, `guidance_scale`, `output_format`                                  | `$0.10`                              | \~15s |
| `model-pro`                 | <Badge color="green" shape="pill">Live</Badge> | Flux Pro                  | `prompt`, `model` | common + `seed`, `num_inference_steps`, `guidance_scale`, `output_format`                                  | `$0.10`                              | \~15s |
| `model-1.1`                 | <Badge color="green" shape="pill">Live</Badge> | Flux Pro v1.1             | `prompt`, `model` | common + `seed`, `output_format`                                                                           | `$0.10`                              | \~15s |
| `model-1.2`                 | <Badge color="green" shape="pill">Live</Badge> | Wan v2.2                  | `prompt`, `model` | common + `seed`, `negative_prompt`, `num_inference_steps`, `guidance_scale`                                | `$0.10`                              | \~30s |
| `seedream-v4.5`             | <Badge color="green" shape="pill">Live</Badge> | Seedream v4.5             | `prompt`, `model` | common + `seed`                                                                                            | `$0.10`                              | \~20s |
| `flux-2-pro`                | <Badge color="green" shape="pill">Live</Badge> | Flux 2 Pro                | `prompt`, `model` | common + `seed`, `output_format`                                                                           | `$0.10`                              | \~20s |
| `flux-2`                    | <Badge color="green" shape="pill">Live</Badge> | Flux 2                    | `prompt`, `model` | common + `seed`, `num_inference_steps`, `guidance_scale`, `output_format`                                  | `$0.10`                              | \~15s |
| `lustify-v7`                | <Badge color="green" shape="pill">Live</Badge> | Lustify v7                | `prompt`, `model` | common + `seed`, `negative_prompt`; max dimension 1,280 px                                                 | `$0.10`                              | \~30s |
| `nano-banana-pro-ultra`     | <Badge color="green" shape="pill">Live</Badge> | Nano Banana Pro Ultra     | `prompt`, `model` | common + `seed`, `aspect_ratio`, `resolution`, `output_format`                                             | `4k $0.20`, `8k $0.30`               | \~20s |
| `seedream-v5`               | <Badge color="green" shape="pill">Live</Badge> | Seedream v5               | `prompt`, `model` | common + `seed`                                                                                            | `$0.10`                              | \~15s |
| `prefect-pony-xl`           | <Badge color="green" shape="pill">Live</Badge> | Prefect Pony XL           | `prompt`, `model` | common + `seed`                                                                                            | `$0.10`                              | \~10s |
| `wan-2.6`                   | <Badge color="green" shape="pill">Live</Badge> | Wan 2.6                   | `prompt`, `model` | common + `seed`                                                                                            | `$0.10`                              | \~15s |
| `wan-2.7-text-to-image`     | <Badge color="green" shape="pill">Live</Badge> | Wan 2.7 Text-to-Image     | `prompt`, `model` | common + `seed`                                                                                            | `$0.10`                              | \~15s |
| `wan-2.7-text-to-image-pro` | <Badge color="green" shape="pill">Live</Badge> | Wan 2.7 Text-to-Image Pro | `prompt`, `model` | common + `seed`                                                                                            | `$0.10`                              | \~20s |
| `nano-banana-2`             | <Badge color="green" shape="pill">Live</Badge> | Nano Banana 2             | `prompt`, `model` | common + `seed`, `aspect_ratio`, `resolution`, `output_format`, `enable_web_search`, `enable_image_search` | `1k/2k $0.10`, `4k $0.20`            | \~15s |
| `gpt-image-2`               | <Badge color="green" shape="pill">Live</Badge> | GPT Image 2 Text-to-Image | `prompt`, `model` | common + `seed`, `aspect_ratio`, `resolution`, `quality`, `output_format`                                  | `$0.10`                              | \~20s |
| `nano-banana-pro`           | <Badge color="green" shape="pill">Live</Badge> | Nano Banana Pro           | `prompt`, `model` | common + `seed`, `aspect_ratio`, `resolution`, `output_format`                                             | `$0.20`                              | \~20s |
| `nano-banana`               | <Badge color="green" shape="pill">Live</Badge> | Nano Banana               | `prompt`, `model` | common + `seed`, `aspect_ratio`, `resolution`, `output_format`, `enable_web_search`, `enable_image_search` | `$0.10`                              | \~15s |
| `gpt-image`                 | <Badge color="green" shape="pill">Live</Badge> | GPT Image                 | `prompt`, `model` | common + `seed`, `aspect_ratio`, `resolution`, `quality`, `output_format`                                  | `medium $0.10`, `default/high $0.20` | \~20s |
| `realism`                   | <Badge color="green" shape="pill">Live</Badge> | Realism                   | `prompt`, `model` | common + `negative_prompt`; dimensions accepted but provider ignores exact sizing                          | `$0.10`                              | \~20s |
| `realism-2`                 | <Badge color="green" shape="pill">Live</Badge> | Realism 2.0               | `prompt`, `model` | common + `negative_prompt`; dimensions accepted but provider ignores exact sizing                          | `$0.20`                              | \~20s |
| `z-image-turbo`             | <Badge color="green" shape="pill">Live</Badge> | Z Image Turbo             | `prompt`, `model` | common + `negative_prompt`; dimensions accepted but provider ignores exact sizing                          | `$0.20`                              | \~20s |

### Deprecated image generation models

| Model ID       | Display name | Status                                        |
| -------------- | ------------ | --------------------------------------------- |
| `lustify-sdxl` | Lustify SDXL | Deprecated; route returns `Model deprecated`. |

## Image Studio

Edit existing images with a text instruction and one or more reference images. Default model: `standard`. Endpoint: [`POST /v1/images/studio/edit`](/images/studio).

`common` means `callback_url`, `additional_settings`, and `enable_fallback`. Model-specific knobs are passed in `additional_settings`.

| Model ID                             | Status                                         | Display name                     | Required params                 | Optional supported params                                                                                                                                       | Cost                                                 | ETA   |
| ------------------------------------ | ---------------------------------------------- | -------------------------------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | ----- |
| `standard`                           | <Badge color="green" shape="pill">Live</Badge> | Gemini 2.5 Flash                 | `prompt`, `image_urls`, `model` | common; `image_urls` 1-5                                                                                                                                        | `$0.10`                                              | \~8s  |
| `pro`                                | <Badge color="green" shape="pill">Live</Badge> | Gemini 3 Pro                     | `prompt`, `image_urls`, `model` | common; `image_urls` 1-5                                                                                                                                        | `$0.20`                                              | \~10s |
| `qwen-image/edit-2511`               | <Badge color="green" shape="pill">Live</Badge> | Qwen Image Edit 2511             | `prompt`, `image_urls`, `model` | common; `image_urls` 1-3                                                                                                                                        | `$0.10`                                              | \~15s |
| `Seedream-4.5-uncensored`            | <Badge color="green" shape="pill">Live</Badge> | Seedream v4.5                    | `prompt`, `image_urls`, `model` | common + `seed`; `image_urls` 1-5                                                                                                                               | `$0.10`                                              | \~15s |
| `Wan-2.6`                            | <Badge color="green" shape="pill">Live</Badge> | Wan 2.6                          | `prompt`, `image_urls`, `model` | common + `seed`, `negative_prompt`; `image_urls` 1-5                                                                                                            | `$0.10`                                              | \~20s |
| `Wan-2.6-image-edit`                 | <Badge color="green" shape="pill">Live</Badge> | Wan 2.6 Image Edit               | `prompt`, `image_urls`, `model` | common + `seed`, `negative_prompt`; `image_urls` 1-5                                                                                                            | `$0.10`                                              | \~15s |
| `group-edit`                         | <Badge color="green" shape="pill">Live</Badge> | Qwen Group Photo                 | `prompt`, `image_urls`, `model` | common + `seed`; `image_urls` 1-5                                                                                                                               | `$0.10`                                              | \~20s |
| `xai/grok-imagine-image/edit`        | <Badge color="green" shape="pill">Live</Badge> | Grok Imagine Edit                | `prompt`, `image_urls`, `model` | common + `seed`; provider uses the first image                                                                                                                  | `$0.10`                                              | \~15s |
| `seedream-v5`                        | <Badge color="green" shape="pill">Live</Badge> | Seedream v5 Lite                 | `prompt`, `image_urls`, `model` | common; `image_urls` 1-5                                                                                                                                        | `$0.10`                                              | \~15s |
| `nano-banana-2/edit`                 | <Badge color="green" shape="pill">Live</Badge> | Nano Banana 2 Edit               | `prompt`, `image_urls`, `model` | common + `resolution` (`0.5k`, `1k`, `2k`, `4k`), `aspect_ratio`, `output_format` (`png`, `jpeg`), `enable_web_search`, `enable_image_search`; `image_urls` 1-5 | `0.5k/1k/2k $0.10`, `4k $0.20`                       | \~20s |
| `nano-banana-2/edit-fast`            | <Badge color="green" shape="pill">Live</Badge> | Nano Banana 2 Edit Fast          | `prompt`, `image_urls`, `model` | common + `resolution` (`2k`, `4k`), `aspect_ratio`, `output_format` (`png`, `jpeg`); `image_urls` 1-5                                                           | `$0.10`                                              | \~12s |
| `seedream-v4.5/edit-sequential`      | <Badge color="green" shape="pill">Live</Badge> | Seedream v4.5 Edit Sequential    | `prompt`, `image_urls`, `model` | common + `seed`, `max_images` (1-15); `image_urls` 1-5                                                                                                          | `$0.10`                                              | \~25s |
| `seedream-v5.0-lite/edit-sequential` | <Badge color="green" shape="pill">Live</Badge> | Seedream v5 Lite Edit Sequential | `prompt`, `image_urls`, `model` | common + `max_images` (1-15); `image_urls` 1-5                                                                                                                  | `$0.10`                                              | \~25s |
| `wan-2.7-image-edit`                 | <Badge color="green" shape="pill">Live</Badge> | Wan 2.7 Image Edit               | `prompt`, `image_urls`, `model` | common + `seed`; `image_urls` 1-5                                                                                                                               | `$0.10`                                              | \~15s |
| `wan-2.7-image-edit-pro`             | <Badge color="green" shape="pill">Live</Badge> | Wan 2.7 Image Edit Pro           | `prompt`, `image_urls`, `model` | common + `seed`; `image_urls` 1-5                                                                                                                               | `$0.10`                                              | \~20s |
| `gpt-image-2/edit`                   | <Badge color="green" shape="pill">Live</Badge> | GPT Image 2 Edit                 | `prompt`, `image_urls`, `model` | common + `quality` (`low`, `medium`, `high`), `resolution` (`1k`, `2k`), `aspect_ratio`, `output_format` (`png`, `jpeg`, `webp`); `image_urls` 1-5              | `low/medium $0.10`, `high 1k $0.30`, `high 2k $0.40` | \~20s |

## Chat

OpenAI-compatible chat completions endpoint. Endpoint: [`POST /v1/chat/completions`](/chat/completions).

The full list of chat model IDs and per-token pricing is loaded live on the [Chat Models](/chat/models) page, fetched directly from [`GET /v1/models`](/chat/models).

## Video

Default model: `t2v-turbo`. Endpoint: [`POST /v1/videos/generations`](/video/generation).

`common` means `callback_url`, `additional_settings`, and `enable_fallback`. Model-specific provider knobs such as `seed`, `negative_prompt`, and `generate_audio` are passed in `additional_settings`. `generate_audio` is only supported on audio-capable models (those that list it below); setting `generate_audio: true` adds an audio track and roughly doubles the per-second cost. The cost shown below is the default audio-off rate.

| Model ID                       | Status                                         | Display name                    | Type               | Required params                | Optional supported params                                                                                                                                                                                      | Cost                  | ETA    |
| ------------------------------ | ---------------------------------------------- | ------------------------------- | ------------------ | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | ------ |
| `t2v-turbo`                    | <Badge color="green" shape="pill">Live</Badge> | Text-to-Video Turbo             | Text-to-video      | `prompt`, `model`              | common + `seconds` (5, 8), `resolution` (`480p`, `720p`), `aspect_ratio`, `seed`, `negative_prompt`                                                                                                            | `$0.40`               | \~43s  |
| `t2v-standard`                 | <Badge color="green" shape="pill">Live</Badge> | Text-to-Video Standard          | Text-to-video      | `prompt`, `model`              | common + `seconds`, `aspect_ratio` (`auto`, `16:9`, `9:16`, `1:1`)                                                                                                                                             | `$1.20`               | \~63s  |
| `cosmos-predict`               | <Badge color="green" shape="pill">Live</Badge> | Cosmos Predict                  | Text-to-video      | `prompt`, `model`              | common + `seconds`, `aspect_ratio`                                                                                                                                                                             | `$0.80`               | \~90s  |
| `av-gen`                       | <Badge color="green" shape="pill">Live</Badge> | AV Gen                          | Text-to-video      | `prompt`, `model`              | common + `seconds` (5, 10, 15), `resolution` (`720p`, `1080p`)                                                                                                                                                 | `$1.00`               | \~84s  |
| `ltx-distilled`                | <Badge color="green" shape="pill">Live</Badge> | LTX Distilled                   | Text-to-video      | `prompt`, `model`              | common + `seconds`, `aspect_ratio`                                                                                                                                                                             | `$0.3996`             | \~63s  |
| `seedance-2.0-t2v`             | <Badge color="green" shape="pill">Live</Badge> | Seedance 2.0 T2V                | Text-to-video      | `prompt`, `model`              | common + `seconds` (5, 10, 15), `resolution` (`480p`, `720p`, `1080p`), `aspect_ratio`                                                                                                                         | `$1.80` default       | \~70s  |
| `seedance-2.0-fast-t2v`        | <Badge color="green" shape="pill">Live</Badge> | Seedance 2.0 Fast T2V           | Text-to-video      | `prompt`, `model`              | common + `seconds` (5, 10, 15), `resolution` (`480p`, `720p`, `1080p`), `aspect_ratio`                                                                                                                         | `$0.60` default       | \~45s  |
| `wan-2.7-t2v`                  | <Badge color="green" shape="pill">Live</Badge> | Wan 2.7 T2V                     | Text-to-video      | `prompt`, `model`              | common + `seconds` (5, 10, 15), `resolution` (`720p`, `1080p`), `negative_prompt`                                                                                                                              | `$1.50` default       | \~70s  |
| `wan-2.2-ultra-fast-t2v`       | <Badge color="green" shape="pill">Live</Badge> | Wan 2.2 Ultra-Fast T2V          | Text-to-video      | `prompt`, `model`              | common + `seconds` (5, 8), `resolution` (`480p`, `720p`), `aspect_ratio`, `seed`, `negative_prompt`                                                                                                            | `$0.60` default       | \~25s  |
| `happyhorse-1.0-t2v`           | <Badge color="green" shape="pill">Live</Badge> | HappyHorse 1.0 T2V              | Text-to-video      | `prompt`, `model`              | common + `seconds` (3-15), `resolution` (`720p`, `1080p`), `aspect_ratio` (`16:9`, `9:16`, `1:1`), `seed`                                                                                                      | `$0.112-$0.224/sec`   | \~70s  |
| `i2v-turbo`                    | <Badge color="green" shape="pill">Live</Badge> | Image-to-Video Turbo            | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (5, 8), `resolution` (`480p`, `720p`), `aspect_ratio`, `seed`, `negative_prompt`                                                                                                            | about `$0.11`         | \~39s  |
| `i2v-standard`                 | <Badge color="green" shape="pill">Live</Badge> | Image-to-Video Standard         | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds`, `resolution` (`480p`, `720p`), `aspect_ratio` (`auto`, `16:9`, `9:16`, `1:1`)                                                                                                              | `$0.30-$0.60`         | \~38s  |
| `i2v-pro`                      | <Badge color="green" shape="pill">Live</Badge> | Image-to-Video Pro              | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds`, `resolution` (`480p`, `580p`, `720p`), `aspect_ratio` (`16:9`, `9:16`, `1:1`), `end_image_url`                                                                                             | `$0.04-$0.08/sec`     | \~63s  |
| `i2v-sora`                     | <Badge color="green" shape="pill">Live</Badge> | Image-to-Video Sora             | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (4, 8, 12), `aspect_ratio` (`16:9`, `9:16`, `1:1`)                                                                                                                                          | about `$0.11/sec`     | \~146s |
| `i2v-sora-pro`                 | <Badge color="green" shape="pill">Live</Badge> | Image-to-Video Sora Pro         | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (4, 8, 12), `resolution` (`720p`, `1080p`), `aspect_ratio` (`16:9`, `9:16`, `1:1`)                                                                                                          | `$0.30-$0.50/sec`     | \~186s |
| `wan-2.6`                      | <Badge color="green" shape="pill">Live</Badge> | Wan 2.6                         | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (5, 10, 15), `resolution` (`720p`, `1080p`), `negative_prompt`                                                                                                                              | `$0.10-$0.15/sec`     | \~84s  |
| `wan-2.6-ultra`                | <Badge color="green" shape="pill">Live</Badge> | Wan 2.6 Ultra                   | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (5, 10, 15), `resolution` (`720p`, `1080p`), `negative_prompt`                                                                                                                              | `$0.10-$0.15/sec`     | \~60s  |
| `wan-2.6-flash`                | <Badge color="green" shape="pill">Live</Badge> | Wan 2.6 Flash                   | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (5, 10, 15), `resolution` (`720p`, `1080p`)                                                                                                                                                 | `$0.05-$0.075/sec`    | \~45s  |
| `wan-2.2-spicy`                | <Badge color="green" shape="pill">Live</Badge> | Wan 2.2 Spicy                   | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (5, 8), `resolution` (`480p`, `720p`), `seed`                                                                                                                                               | `$0.024-$0.048/sec`   | \~40s  |
| `wan-2.2-ultra-fast`           | <Badge color="green" shape="pill">Live</Badge> | Wan 2.2 Ultra-Fast I2V          | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (5, 8), `resolution` (`480p`, `720p`), `aspect_ratio`, `seed`, `negative_prompt`                                                                                                            | `$0.008-$0.016/sec`   | \~25s  |
| `vidu-q3-spicy`                | <Badge color="green" shape="pill">Live</Badge> | Vidu Q3 Spicy                   | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (5, 10, 15), `resolution` (`540p`, `720p`, `1080p`)                                                                                                                                         | `$0.056-$0.128/sec`   | \~60s  |
| `cosmos-predict-i2v`           | <Badge color="green" shape="pill">Live</Badge> | Cosmos Predict I2V              | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds`, `aspect_ratio`                                                                                                                                                                             | about `$0.50`         | \~90s  |
| `grok-imagine-video`           | <Badge color="green" shape="pill">Live</Badge> | Grok Imagine Video              | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (6, 10), `resolution` (`480p`, `720p`), `aspect_ratio` (`2:3`, `3:2`, `1:1`, `16:9`, `9:16`)                                                                                                | about `$0.04/sec`     | \~20s  |
| `sora-2`                       | <Badge color="green" shape="pill">Live</Badge> | Sora 2                          | Smart-routed video | `prompt`, `model`              | common + optional `image_url`, `seconds` (4, 8, 12), `aspect_ratio` (`16:9`, `9:16`, `1:1`)                                                                                                                    | about `$0.11/sec`     | \~117s |
| `sora-2-pro`                   | <Badge color="green" shape="pill">Live</Badge> | Sora 2 Pro                      | Smart-routed video | `prompt`, `model`              | common + optional `image_url`, `seconds` (4, 8, 12), `resolution` (`720p`, `1080p`), `aspect_ratio` (`16:9`, `9:16`, `1:1`)                                                                                    | `$0.30-$0.50/sec`     | \~169s |
| `seedance-2.0`                 | <Badge color="green" shape="pill">Live</Badge> | Seedance 2.0 I2V                | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (5, 10, 15), `resolution` (`480p`, `720p`, `1080p`), `aspect_ratio`                                                                                                                         | `$0.12-$0.60/sec`     | \~70s  |
| `seedance-2.0-fast`            | <Badge color="green" shape="pill">Live</Badge> | Seedance 2.0 Fast I2V           | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (5, 10, 15), `resolution` (`480p`, `720p`, `1080p`), `aspect_ratio`                                                                                                                         | `$0.10-$0.50/sec`     | \~45s  |
| `seedance-2.0-spicy`           | <Badge color="green" shape="pill">Live</Badge> | Seedance 2.0 Spicy I2V          | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (5, 10, 15), `resolution` (`480p`, `720p`, `1080p`), `aspect_ratio`, `generate_audio`, `end_image_url`                                                                                      | `$0.06-$0.30/sec`     | \~70s  |
| `seedance-2.0-fast-spicy`      | <Badge color="green" shape="pill">Live</Badge> | Seedance 2.0 Fast Spicy I2V     | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (5, 10, 15), `resolution` (`480p`, `720p`, `1080p`), `aspect_ratio`, `generate_audio`, `end_image_url`                                                                                      | `$0.05-$0.25/sec`     | \~45s  |
| `seedance-v1.5-pro-spicy`      | <Badge color="green" shape="pill">Live</Badge> | Seedance v1.5 Pro Spicy         | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (4-12), `resolution` (`480p`, `720p`, `1080p`), `aspect_ratio`, `generate_audio`                                                                                                            | `$0.0096-$0.0416/sec` | \~50s  |
| `wan-2.7`                      | <Badge color="green" shape="pill">Live</Badge> | Wan 2.7 I2V                     | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (5, 10, 15), `resolution` (`720p`, `1080p`), `negative_prompt`                                                                                                                              | `$0.08-$0.12/sec`     | \~70s  |
| `wan-2.7-pro`                  | <Badge color="green" shape="pill">Live</Badge> | Wan 2.7 Pro I2V                 | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (5, 10, 15), `resolution` (`1080p`, `2k`, `4k`)                                                                                                                                             | `$0.12-$0.16/sec`     | \~70s  |
| `wan-2.7-spicy`                | <Badge color="green" shape="pill">Live</Badge> | Wan 2.7 Spicy I2V               | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (5, 10, 15), `resolution` (`720p`, `1080p`)                                                                                                                                                 | `$0.10-$0.15/sec`     | \~70s  |
| `grok-imagine-video-reference` | <Badge color="green" shape="pill">Live</Badge> | Grok Imagine Reference-to-Video | Image-to-video     | `prompt`, `model`, `image_url` | common + optional `end_image_url`, `seconds` (6, 10), `resolution` (`480p`, `720p`)                                                                                                                            | about `$0.04/sec`     | \~25s  |
| `happyhorse-1.0`               | <Badge color="green" shape="pill">Live</Badge> | HappyHorse 1.0 I2V              | Image-to-video     | `prompt`, `model`, `image_url` | common + `seconds` (3-15), `resolution` (`720p`, `1080p`), `seed`; aspect ratio follows the input image                                                                                                        | `$0.112-$0.224/sec`   | \~70s  |
| `video-to-video`               | <Badge color="green" shape="pill">Live</Badge> | Video to Video                  | Video-to-video     | `prompt`, `model`, `video_url` | common + `seconds`, `resolution` (`240p`, `360p`, `480p`, `580p`, `720p`)                                                                                                                                      | `$0.04-$0.08/sec`     | \~175s |
| `wan-2.6-v2v`                  | <Badge color="green" shape="pill">Live</Badge> | Wan 2.6 V2V                     | Video-to-video     | `prompt`, `model`, `video_url` | common + `seconds` (5, 10), `resolution` (`720p`, `1080p`)                                                                                                                                                     | `$0.10-$0.15/sec`     | \~90s  |
| `wan-2.2-spicy-extend`         | <Badge color="green" shape="pill">Live</Badge> | Wan 2.2 Spicy Extend            | Video extend       | `prompt`, `model`, `video_url` | common + `seconds` (5, 8), `resolution` (`480p`, `720p`)                                                                                                                                                       | `$0.024-$0.048/sec`   | \~40s  |
| `grok-imagine-video-edit`      | <Badge color="green" shape="pill">Live</Badge> | Grok Imagine Edit               | Video edit         | `prompt`, `model`, `video_url` | common + `seconds` (1-8), `resolution` (`480p`, `720p`)                                                                                                                                                        | `$0.06-$0.08/sec`     | \~95s  |
| `wan-2.7-video-extend`         | <Badge color="green" shape="pill">Live</Badge> | Wan 2.7 Video Extend            | Video extend       | `prompt`, `model`, `video_url` | common + `seconds` (5, 10, 15), `resolution` (`720p`, `1080p`), `negative_prompt`                                                                                                                              | `$0.08-$0.12/sec`     | \~70s  |
| `grok-imagine-video-extend`    | <Badge color="green" shape="pill">Live</Badge> | Grok Imagine Video Extend       | Video extend       | `prompt`, `model`, `video_url` | common + `seconds` (6, 10)                                                                                                                                                                                     | about `$0.04/sec`     | \~25s  |
| `happyhorse-1.0-video-edit`    | <Badge color="green" shape="pill">Live</Badge> | HappyHorse 1.0 Video Edit       | Video edit         | `prompt`, `model`, `video_url` | common + `seconds` (3-15), `resolution` (`720p`, `1080p`), `seed`, reference `images` (up to 9, in `additional_settings`)                                                                                      | `$0.112-$0.224/sec`   | \~70s  |
| `happyhorse-1.0-video-extend`  | <Badge color="green" shape="pill">Live</Badge> | HappyHorse 1.0 Video Extend     | Video extend       | `prompt`, `model`, `video_url` | common + `seconds` (3-15), `resolution` (`720p`, `1080p`), `seed`                                                                                                                                              | `$0.112-$0.224/sec`   | \~70s  |
| `ultimate-video-upscaler`      | <Badge color="green" shape="pill">Live</Badge> | Ultimate Video Upscaler         | Video-to-video     | `prompt`, `model`, `video_url` | common + `seconds`, `resolution` (`720p`, `1080p`, `2k`, `4k`); output length follows the source clip and `prompt` is ignored. Billed per second of `seconds` — set it to your source clip's duration (max 30) | `$0.016-$0.064/sec`   | \~90s  |
| `video-watermark-remover`      | <Badge color="green" shape="pill">Live</Badge> | Video Watermark Remover         | Video-to-video     | `prompt`, `model`, `video_url` | common + `seconds`; output length follows the source clip and `prompt` is ignored. Billed per second of `seconds` — set it to your source clip's duration (max 30)                                             | `$0.008/sec`          | \~90s  |

## Audio

Audio models will be published when the audio endpoints go live. See [Audio](/audio/overview).

## Variable-pricing parameters

A few models price the request based on quality or resolution. Pass these in `additional_settings` (or as documented per endpoint):

| Parameter      | Accepted values                                                                                                            | Used by                                        |
| -------------- | -------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
| `resolution`   | `0.5k`, `1k`, `2k`, `4k`, `8k`                                                                                             | Models marked "Variable pricing: `resolution`" |
| `quality`      | `low`, `medium`, `high`                                                                                                    | Models marked "Variable pricing: `quality`"    |
| `aspect_ratio` | `1:1`, `3:2`, `2:3`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` (plus `1:4`, `4:1`, `1:8`, `8:1` on select models) | Models that accept explicit aspect ratios      |

Not every model supports every value — refer to the model row for what's accepted.
