# VicSee — Full API & Product Reference > VicSee is an AI video and image generation platform. Create cinematic videos and stunning images using state-of-the-art models through a unified web interface or REST API. Credit-based pricing — mix and match models freely. Website: https://vicsee.com API Base URL: https://vicsee.com/api/v1 Support: support@vicsee.com Affiliate Program: https://vicsee.com/affiliate — Earn 30% recurring commission on every referral. 60-day cookie, lifetime payouts, all plans and credit packs. --- ## Languages VicSee is available in 17 languages. All product pages, generators, and pricing are fully translated. API documentation is English-only. URL pattern: `https://vicsee.com/{locale}/page` (English uses no prefix). | Language | Locale | Base URL | |----------|--------|----------| | English | en | https://vicsee.com | | French | fr | https://vicsee.com/fr | | Spanish | es | https://vicsee.com/es | | Portuguese | pt | https://vicsee.com/pt | | German | de | https://vicsee.com/de | | Italian | it | https://vicsee.com/it | | Russian | ru | https://vicsee.com/ru | | Turkish | tr | https://vicsee.com/tr | | Japanese | ja | https://vicsee.com/ja | | Korean | ko | https://vicsee.com/ko | | Chinese (Simplified) | zh | https://vicsee.com/zh | | Chinese (Traditional) | zh-TW | https://vicsee.com/tw | | Dutch | nl | https://vicsee.com/nl | | Norwegian | nb | https://vicsee.com/nb | | Danish | da | https://vicsee.com/da | | Polish | pl | https://vicsee.com/pl | | Arabic | ar | https://vicsee.com/ar | All product pages are available in all 17 languages. Use the locale prefix to link users to pages in their language. --- ## Authentication All API requests (except GET /api/v1/models) require a Bearer token. API keys start with `sk-` and are created at https://vicsee.com/settings/apikeys Header: `Authorization: Bearer sk-your-api-key` API access requires paid status (active subscription or credit pack purchase). Free accounts cannot use the API. ### Error Responses (401) | Code | Message | |------|---------| | MISSING_AUTH_HEADER | No Authorization header provided | | INVALID_AUTH_FORMAT | Invalid Authorization format (use "Bearer sk-xxx") | | INVALID_KEY_FORMAT | Key doesn't start with sk- | | INVALID_API_KEY | Key not found or inactive | --- ## API Workflow VicSee uses async generation: 1. POST /api/v1/generate — Submit a generation task 2. POST /api/v1/tools/upscale — Budget image upscale via Nano Banana (3 credits) 3. POST /api/v1/tools/upscale-image — Premium image upscale via Topaz (20-80 credits) 4. POST /api/v1/tools/upscale-video — Premium video upscale via Topaz (16-28 credits/second) 5. GET /api/v1/tasks/{id} — Poll until status is "completed" 6. Download the result from the URL in the response ### Generate Endpoint ``` POST https://vicsee.com/api/v1/generate Content-Type: application/json Authorization: Bearer sk-your-api-key ``` Request body: ```json { "model": "model-id", "input": { "prompt": "Your description", ...model-specific parameters } } ``` Envelope rule: every generation parameter goes inside `input`. A fully flat body (no `input` key at all, params at the top level) is also accepted. Do NOT mix the two: if `input` is present AND params are sent at the top level, the request is REJECTED with 422 MIXED_ENVELOPE naming the stray keys, and no credits are used. Two exceptions: `model` is always top-level, and `prompt` is accepted in EITHER place (`input.prompt` wins if both are sent). Omitted params fall back to that model's default tier, and on most video models that tier is NOT the cheapest one — a 5s Seedance 2.5 clip with no `resolution` costs 417 credits at its 720p default instead of 185 at 480p. MiniMax H3 is the exception: it defaults to `768P`, its cheapest tier. Send `resolution` and `duration` explicitly rather than relying on either. Both POST /generate and GET /tasks/{id} return a `resolvedParams` object listing the settings actually applied, so you never have to infer them from the credit charge. Response: ```json { "success": true, "data": { "id": "task_abc123", "model": "model-id", "status": "pending", "creditsUsed": 20, "creditsRemaining": 480, "createdAt": "2026-02-11T12:00:00Z" } } ``` ### Task Polling Endpoint ``` GET https://vicsee.com/api/v1/tasks/{id} Authorization: Bearer sk-your-api-key ``` Response (processing): ```json { "success": true, "data": { "id": "task_abc123", "model": "model-id", "status": "processing", "mediaType": "video", "prompt": "Your description", "result": null } } ``` Response (complete): ```json { "success": true, "data": { "id": "task_abc123", "model": "model-id", "status": "completed", "mediaType": "video", "prompt": "Your description", "result": { "url": "https://cdn.vicsee.com/outputs/video_xyz.mp4", "type": "video" } } } ``` Status values: pending, processing, completed, failed ### Credits Endpoint ``` GET https://vicsee.com/api/v1/credits Authorization: Bearer sk-your-api-key ``` Response: ```json { "success": true, "data": { "credits": 4250 } } ``` ### Models Endpoint (Public) ``` GET https://vicsee.com/api/v1/models ``` No authentication required. Returns list of available models. ### Upload Endpoint For large or local files, get a public URL before calling /generate (two-step): ``` POST https://vicsee.com/api/v1/upload Authorization: Bearer sk-your-api-key Content-Type: application/json { "contentType": "image/jpeg", "sizeBytes": 2048576, "filename": "frame1.jpg" } ``` Response: ```json { "success": true, "data": { "uploadUrl": "https://...presigned-upload-url...", "publicUrl": "https://cdn.vicsee.com/uploads/...", "key": "uploads/.../file.jpg", "expiresAt": "2026-06-14T13:00:00Z" } } ``` Then PUT the raw bytes to `uploadUrl` (no auth header — the signature authorizes it), and pass the returned `publicUrl` into `image_urls` / `reference_image_urls` / `reference_video_urls`. - Uploads do not consume your daily API request quota. Requires paid status. - This is the HTTP equivalent of the MCP `vicsee_upload` tool — use it when calling REST directly. --- ## MCP Server (Model Context Protocol) VicSee ships an official MCP server so coding agents (Claude Code, OpenAI Codex, Cursor, Claude Desktop, or any MCP-compatible client) generate videos and images directly — no manual HTTP calls. - Package: `@vicsee/mcp-server` (npm) - Source: https://github.com/vicseeai/vicsee-mcp-server - Transport: stdio (launched locally via npx) - Human setup guide: https://vicsee.com/mcp ### Install (Claude Code) ``` claude mcp add vicsee -e VICSEE_API_KEY=sk-your-api-key -- npx -y @vicsee/mcp-server ``` ### Config (Claude Desktop / Cursor) ```json { "mcpServers": { "vicsee": { "command": "npx", "args": ["-y", "@vicsee/mcp-server"], "env": { "VICSEE_API_KEY": "sk-your-api-key" } } } } ``` ### Config (OpenAI Codex, `~/.codex/config.toml`) — recommended path for Codex ```toml [mcp_servers.vicsee] command = "npx" args = ["-y", "@vicsee/mcp-server"] env = { VICSEE_API_KEY = "sk-your-api-key" } ``` `npx` fetches the latest published version (0.3.0+), which includes the `vicsee_upload` tool. Environment variables: - `VICSEE_API_KEY` (required) — your `sk-` key from https://vicsee.com/settings/apikeys - `VICSEE_BASE_URL` (optional) — defaults to https://vicsee.com/api/v1 ### Tools | Tool | Purpose | Key inputs | |------|---------|-----------| | `vicsee_list_models` | List models + capabilities + credit costs | `type` (image/video/music, optional) | | `vicsee_generate` | Create a generation task | `model`, `prompt`, `image_urls`, `reference_image_urls`, `reference_video_urls`, `reference_audio_urls`, model params | | `vicsee_get_task` | Poll a task until terminal | `task_id` | | `vicsee_upload` | Upload a local file → public CDN URL | `file_path` (absolute local path) | | `vicsee_upscale_image` | Upscale an image (2x/4x/8x) | `image_url`, `upscale_factor` | | `vicsee_upscale_video` | Upscale a video (2x/4x, ≤60s) | `video_url`, `upscale_factor` | | `vicsee_get_credits` | Check credit balance | — | Flow: `vicsee_list_models` → `vicsee_generate` → `vicsee_get_task` (poll until `completed`/`failed`). ### Image & file inputs — pass a file path, NOT base64 The #1 integration mistake. Rules: - **Local file → pass the path (or `vicsee_upload`).** Give `vicsee_generate` an absolute local path in `image_urls`; the server reads and encodes the full file. Do NOT hand-build a `data:` base64 URI — agents truncate large base64 in tool-call output (~1KB of a ~50KB image), the server forwards it unchanged, and the model rejects it (`400 Invalid base64 image_url`). - **Reference-to-video / large files → `vicsee_upload` first.** It returns a public `https://cdn.vicsee.com/...` URL; pass that into `reference_image_urls` / `reference_video_urls`. Reference inputs must be fetchable URLs, never raw bytes. - **Already a public URL → pass it directly.** `vicsee_upload` accepts: images (jpg/png/webp/gif/avif/heic, ≤20MB), video (mp4/mov/webm, ≤100MB), audio (mp3/wav, ≤20MB). ### Hosted connector (https://mcp.vicsee.com) — two auth modes, same URL A hosted remote MCP endpoint. The same URL works two ways — pick by client. **Claude — OAuth (no API key):** - **Add it:** Claude → Settings → Connectors → **Add custom connector** → URL `https://mcp.vicsee.com` (Pro/Max/Team/Enterprise). - **Sign in once:** authenticate with **OAuth** against your VicSee account and approve access — nothing to copy/paste. Tokens auto-refresh; revoke anytime in Claude or by emailing support@vicsee.com. **Cursor, any client — API key (bearer):** - Point the client at the **same URL** `https://mcp.vicsee.com` and send your VicSee API key as `Authorization: Bearer sk-your-api-key`. No install. - **Cursor** (`~/.cursor/mcp.json`): ```json { "mcpServers": { "vicsee": { "url": "https://mcp.vicsee.com", "headers": { "Authorization": "Bearer ${env:VICSEE_API_KEY}" } } } } ``` - **OpenAI Codex:** use the **stdio npm package above** (`~/.codex/config.toml` with `command = "npx"`), not this URL — Codex currently loads local (stdio) MCP tools more reliably than remote URLs. - **Tools (both modes):** `vicsee_list_models`, `vicsee_generate`, `vicsee_get_task`, `vicsee_upscale_image`, `vicsee_upscale_video`, `vicsee_get_credits`. - **URL-in only:** the hosted connector cannot read local files — pass **public https URLs** for image/video references. For local-file → reference workflows, use the **stdio package above** (it has `vicsee_upload` and reads local paths). - **Paid to generate:** listing models and checking credits are free; `vicsee_generate` / upscales require a paid VicSee plan. --- ## Rate Limits | Plan | Requests/Day | |------|-------------| | Free | 0 (no API access) | | Starter | 100 | | Pro | 500 | Headers in every response: - X-RateLimit-Limit: Max requests per day - X-RateLimit-Remaining: Requests left today - X-RateLimit-Reset: When limit resets (ISO 8601) --- ## Error Codes | Status | Code | Message | |--------|------|---------| | 400 | INVALID_JSON | Invalid JSON body | | 400 | MISSING_MODEL | model is required | | 400 | MISSING_PROMPT | prompt is required — send it as `input.prompt` or as a top-level `prompt` | | 400 | INVALID_MODEL | Model does not exist | | 422 | MIXED_ENVELOPE | Params sent both inside `input` and at the top level — move the named keys into `input`. Nothing generated, no credits used | | 401 | MISSING_AUTH_HEADER | No Authorization header | | 401 | INVALID_KEY_FORMAT | Key doesn't start with sk- | | 401 | INVALID_API_KEY | Key not found or inactive | | 402 | INSUFFICIENT_CREDITS | Not enough credits | | 403 | FORBIDDEN | API access requires an active subscription or credit pack | | 403 | FORBIDDEN | Access denied (task belongs to another user) | | 404 | TASK_NOT_FOUND | Task ID doesn't exist | | 429 | RATE_LIMITED | Rate limit exceeded | | 500 | PROVIDER_ERROR | AI provider not available | | 500 | GENERATION_FAILED | Generation failed | | 500 | INTERNAL_ERROR | Internal server error | A `500 PROVIDER_ERROR` ("AI provider not available") is transient — safe to retry, or fall back to another model. No credits are charged for a failed generation. --- ## Video Models ### Sora 2 > **DEPRECATED — discontinued by OpenAI.** Sora 2 is no longer generatable; the API returns `MODEL_SUNSET` (HTTP 410) for these model ids. Use `seedance-2-0-text-to-video` / `seedance-2-0-image-to-video` instead. This entry is retained for reference only. Model IDs: `sora-2-text-to-video`, `sora-2-image-to-video` Capabilities: Text to Video, Image to Video Duration: 10 or 15 seconds Resolution: 720p Audio: Native (automatic) Credits: 10s = 20, 15s = 30 Parameters (text-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "sora-2-text-to-video" | | input.prompt | string | Yes | Max 10,000 chars | | input.duration | number | No | 10 or 15 (default: 10) | | input.aspect_ratio | string | No | "landscape" (16:9), "portrait" (9:16). Default: "landscape" | Parameters (image-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "sora-2-image-to-video" | | input.prompt | string | Yes | Max 10,000 chars | | input.image_urls | string[] | Yes | Exactly 1 image URL | | input.duration | number | No | 10 or 15 (default: 10) | | input.aspect_ratio | string | No | "landscape", "portrait" (default: "landscape") | Note: OpenAI policy may reject images containing real human faces. Use illustrations or landscapes. Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "sora-2-text-to-video", "input": { "prompt": "A cat walking across a piano, playing random notes, sunlight streaming through window", "duration": 10, "aspect_ratio": "landscape" } }' ``` --- ### Sora 2 Pro > **DEPRECATED — discontinued by OpenAI.** Sora 2 Pro is no longer generatable; the API returns `MODEL_SUNSET` (HTTP 410) for these model ids. Use `seedance-2-0-text-to-video` / `seedance-2-0-image-to-video` instead. This entry is retained for reference only. Model IDs: `sora-2-pro-text-to-video`, `sora-2-pro-image-to-video` Capabilities: Text to Video, Image to Video Duration: 10 or 15 seconds Resolution: 720p (standard) or 1080p (hd) Audio: Native (automatic) Credits: 10s standard = 105, 15s standard = 190, 10s HD = 230, 15s HD = 440 Parameters (text-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "sora-2-pro-text-to-video" | | input.prompt | string | Yes | Text description | | input.duration | number | No | 10 or 15 (default: 10) | | input.aspect_ratio | string | No | "landscape" (16:9) or "portrait" (9:16). Default: "landscape" | | input.quality | string | No | "standard" (720p) or "hd" (1080p, default) | Parameters (image-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "sora-2-pro-image-to-video" | | input.prompt | string | Yes | Text description | | input.image_urls | string[] | Yes | Exactly 1 image URL | | input.duration | number | No | 10 or 15 (default: 10) | | input.aspect_ratio | string | No | "landscape" (16:9) or "portrait" (9:16). Default: "landscape" | | input.quality | string | No | "standard" or "hd" (default) | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "sora-2-pro-text-to-video", "input": { "prompt": "A cinematic shot of a mountain landscape at sunset", "duration": 10, "quality": "hd", "aspect_ratio": "landscape" } }' ``` --- ### Veo 3.1 Model IDs: `veo-3-1-text-to-video`, `veo-3-1-quality-text-to-video`, `veo-3-1-image-to-video`, `veo-3-1-quality-image-to-video` Capabilities: Text to Video, Image to Video (single frame or first+last frame) Duration: ~8 seconds Resolution: 720p Audio: Native (automatic, based on prompt) Credits: Fast = 40, Quality = 300 Parameters (text-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "veo-3-1-text-to-video" (fast, 40cr) or "veo-3-1-quality-text-to-video" (300cr) | | input.prompt | string | Yes | Include audio cues for best results | | input.aspect_ratio | string | No | "16:9", "9:16", "Auto" (default: "16:9") | Parameters (image-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "veo-3-1-image-to-video" (fast) or "veo-3-1-quality-image-to-video" | | input.prompt | string | Yes | Description of animation | | input.image_urls | string[] | Yes | 1 image (animate) or 2 images (transition from first to last) | | input.aspect_ratio | string | No | "16:9", "9:16", "Auto" (default: "16:9") | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "veo-3-1-text-to-video", "input": { "prompt": "Drone shot flying over a tropical beach, waves crashing, seagulls calling", "aspect_ratio": "16:9" } }' ``` --- ### Kling 3.0 Model IDs: `kling-3-0-text-to-video`, `kling-3-0-image-to-video` Capabilities: Text to Video, Image to Video (start frame + optional end frame) Duration: 3-15 seconds (any integer) Quality: Standard or Professional Audio: Optional (on by default) Credits: Per-second pricing. Standard no-audio = 28/s, Standard+audio = 42/s, Professional no-audio = 38/s, Professional+audio = 56/s. Range: 84-840. Parameters (text-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "kling-3-0-text-to-video" | | input.prompt | string | Yes | Max 2500 chars | | input.duration | number | No | 3-15 (default: 5) | | input.mode | string | No | "standard" or "professional" (default: "standard") | | input.audio | boolean | No | true/false (default: true) | | input.aspect_ratio | string | No | "16:9", "9:16", "1:1" (default: "16:9") | Parameters (image-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "kling-3-0-image-to-video" | | input.prompt | string | Yes | Description of animation | | input.image_urls | string[] | Yes | 1-2 images (start frame, optional end frame) | | input.duration | number | No | 3-15 (default: 5) | | input.mode | string | No | "standard" or "professional" (default: "standard") | | input.audio | boolean | No | true/false (default: true) | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "kling-3-0-text-to-video", "input": { "prompt": "A cinematic tracking shot through a neon-lit Tokyo street at night", "duration": 10, "mode": "professional", "audio": true, "aspect_ratio": "16:9" } }' ``` --- ### Kling 2.6 Model IDs: `kling-2-6-text-to-video`, `kling-2-6-image-to-video` Capabilities: Text to Video, Image to Video Duration: 5 or 10 seconds Resolution: 1080p Audio: Optional (dialogue, lip-sync) Credits: 5s no-audio = 75, 10s no-audio = 150, 5s+audio = 150, 10s+audio = 300 Parameters (text-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "kling-2-6-text-to-video" | | input.prompt | string | Yes | Text description | | input.duration | number | No | 5 or 10 (default: 5) | | input.aspect_ratio | string | No | "16:9", "9:16", "1:1" (default: "16:9") | | input.audio | boolean | No | true/false (default: false) | Parameters (image-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "kling-2-6-image-to-video" | | input.prompt | string | Yes | Description of animation/dialogue | | input.image_urls | string[] | Yes | 1 image URL | | input.duration | number | No | 5 or 10 (default: 5) | | input.aspect_ratio | string | No | "16:9", "9:16", "1:1" | | input.audio | boolean | No | true/false (default: false) | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "kling-2-6-text-to-video", "input": { "prompt": "A person saying Welcome to our channel with a friendly smile", "duration": 5, "audio": true, "aspect_ratio": "16:9" } }' ``` --- ### Seedance 1.5 Pro Model IDs: `seedance-1-5-pro-text-to-video`, `seedance-1-5-pro-image-to-video` Capabilities: Text to Video, Image to Video Duration: 4, 8, or 12 seconds (12s not available at 480p) Resolution: 480p, 720p, 1080p Audio: Optional multilingual (8+ languages) Credits: 15-260 (depends on resolution, duration, audio) Parameters (text-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "seedance-1-5-pro-text-to-video" | | input.prompt | string | Yes | Max 2500 chars | | input.duration | number | No | 4, 8, or 12 (default: 4) | | input.resolution | string | No | "480p", "720p", "1080p" (default: "480p") | | input.aspect_ratio | string | No | "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" (default: "16:9") | | input.audio | boolean | No | true/false (default: false) | Parameters (image-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "seedance-1-5-pro-image-to-video" | | input.prompt | string | Yes | Description of animation | | input.image_urls | string[] | Yes | 1-2 reference images | | input.duration | number | No | 4, 8, or 12 (default: 4) | | input.resolution | string | No | "480p", "720p", "1080p" (default: "480p") | | input.audio | boolean | No | true/false (default: false) | Pricing table: | Resolution | Duration | Audio | Credits | |------------|----------|-------|---------| | 480p | 4s | No | 15 | | 480p | 4s | Yes | 28 | | 480p | 8s | No | 28 | | 480p | 8s | Yes | 48 | | 720p | 4s | No | 28 | | 720p | 4s | Yes | 48 | | 720p | 8s | No | 48 | | 720p | 8s | Yes | 80 | | 720p | 12s | No | 60 | | 720p | 12s | Yes | 120 | | 1080p | 4s | No | 50 | | 1080p | 4s | Yes | 85 | | 1080p | 8s | No | 85 | | 1080p | 8s | Yes | 170 | | 1080p | 12s | No | 130 | | 1080p | 12s | Yes | 260 | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-1-5-pro-text-to-video", "input": { "prompt": "A bartender greets customers: Welcome, what can I get for you?", "duration": 4, "resolution": "720p", "audio": true, "aspect_ratio": "16:9" } }' ``` --- ### Seedance 1.0 Model IDs: `seedance-1-0-text-to-video`, `seedance-1-0-image-to-video` Capabilities: Text to Video, Image to Video Duration: 5 or 10 seconds Resolution: 480p, 720p Audio: Not supported Credits: 480p/5s = 28, 480p/10s = 48, 720p/5s = 50, 720p/10s = 100 Parameters (text-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "seedance-1-0-text-to-video" | | input.prompt | string | Yes | Max 10,000 chars | | input.duration | number | No | 5 or 10 (default: 5) | | input.resolution | string | No | "480p", "720p" (default: "480p") | | input.aspect_ratio | string | No | "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" (default: "16:9") | Parameters (image-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "seedance-1-0-image-to-video" | | input.prompt | string | Yes | Description of animation | | input.image_urls | string[] | Yes | 1 reference image | | input.duration | number | No | 5 or 10 (default: 5) | | input.resolution | string | No | "480p", "720p" (default: "480p") | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-1-0-text-to-video", "input": { "prompt": "A boy rides a bike down a golden-lit rural road at sunset", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9" } }' ``` --- ### Wan 2.6 Model IDs: `wan-2-6-text-to-video`, `wan-2-6-image-to-video` Capabilities: Text to Video, Image to Video Duration: 5, 10, or 15 seconds Resolution: 720p, 1080p Multi-shot: Automatic camera angle changes and cuts (enabled by default). No audio toggle (audio not supported on Wan 2.6 standard). Credits: 5s/720p = 50, 10s/720p = 100, 15s/720p = 150, 5s/1080p = 75, 10s/1080p = 150, 15s/1080p = 225 Parameters (text-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "wan-2-6-text-to-video" | | input.prompt | string | Yes | Max 5000 chars | | input.duration | number | No | 5, 10, or 15 (default: 5) | | input.resolution | string | No | "720p", "1080p" (default: "720p") | | input.aspect_ratio | string | No | "16:9", "9:16", "1:1", "4:3", "3:4" (default: "16:9") | | input.multi_shots | boolean | No | true/false (default: true) | Parameters (image-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "wan-2-6-image-to-video" | | input.prompt | string | Yes | Description of animation | | input.image_urls | string[] | Yes | 1 starting image | | input.duration | number | No | 5, 10, or 15 (default: 5) | | input.resolution | string | No | "720p", "1080p" (default: "720p") | | input.multi_shots | boolean | No | true/false (default: true) | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "wan-2-6-text-to-video", "input": { "prompt": "A cinematic drone shot over mountain peaks at sunrise, revealing a misty valley", "duration": 10, "resolution": "1080p", "aspect_ratio": "16:9", "multi_shots": true } }' ``` --- ### Wan 2.6 Flash Model ID: `wan-2-6-flash-image-to-video` Capabilities: Image to Video only (no text-to-video) Duration: 5, 10, or 15 seconds Resolution: 720p, 1080p Audio: Optional (toggle on/off — disabling audio halves the cost) Credits: 13-113 (depends on duration, resolution, audio) Parameters: | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "wan-2-6-flash-image-to-video" | | input.prompt | string | Yes | Max 5000 chars | | input.image_urls | string[] | Yes | 1 starting image | | input.duration | number | No | 5, 10, or 15 (default: 5) | | input.resolution | string | No | "720p", "1080p" (default: "720p") | | input.audio | boolean | No | true/false (default: true). Set false for lower cost. | Pricing table (without audio): | Resolution | Duration | Credits | |------------|----------|---------| | 720p | 5s | 13 | | 720p | 10s | 25 | | 720p | 15s | 38 | | 1080p | 5s | 19 | | 1080p | 10s | 38 | | 1080p | 15s | 56 | Pricing table (with audio): | Resolution | Duration | Credits | |------------|----------|---------| | 720p | 5s | 25 | | 720p | 10s | 50 | | 720p | 15s | 75 | | 1080p | 5s | 38 | | 1080p | 10s | 75 | | 1080p | 15s | 113 | Example (with audio): ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "wan-2-6-flash-image-to-video", "input": { "prompt": "The woman turns and smiles at the camera as wind blows through her hair", "image_urls": ["https://example.com/portrait.jpg"], "duration": 5, "resolution": "720p", "audio": true } }' ``` Example (without audio — cheapest at 13 credits): ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "wan-2-6-flash-image-to-video", "input": { "prompt": "Waves crash on the shore as the camera slowly pans right", "image_urls": ["https://example.com/beach.jpg"], "duration": 5, "resolution": "720p", "audio": false } }' ``` --- ### Hailuo 2.3 Model IDs: `hailuo-2-3-standard`, `hailuo-2-3-pro` Capabilities: Image to Video only (no text-to-video) Duration: 6 or 10 seconds (as string) Resolution: 768P, 1080P (10s at 1080P not supported) Audio: Not supported Credits: Standard 6s/768P = 35, Standard 10s/768P = 55, Standard 6s/1080P = 55, Pro 6s/768P = 55, Pro 10s/768P = 110, Pro 6s/1080P = 100 Parameters: | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "hailuo-2-3-standard" or "hailuo-2-3-pro" | | input.prompt | string | Yes | Max 5000 chars | | input.image_urls | string[] | Yes | 1 image URL | | input.duration | string | No | "6" or "10" (default: "6") — NOTE: string type, not number | | input.resolution | string | No | "768P" or "1080P" (default: "768P") | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "hailuo-2-3-pro", "input": { "prompt": "The character turns to face the camera with a gentle smile", "image_urls": ["https://example.com/portrait.jpg"], "duration": "6", "resolution": "1080P" } }' ``` --- ### Grok Imagine Video Model IDs: `grok-imagine-text-to-video`, `grok-imagine-image-to-video` Page: https://vicsee.com/grok-imagine Docs: https://vicsee.com/docs/api/grok-imagine-video Capabilities: Text to Video, Image to Video Duration: 6, 10, or 15 seconds Resolution: 480p or 720p Modes: fun, normal, spicy (spicy not available with images) Credits: 6s/480p = 15, 6s/720p = 28, 10s/480p = 28, 10s/720p = 40, 15s/480p = 40, 15s/720p = 55 Parameters: | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "grok-imagine-text-to-video" or "grok-imagine-image-to-video" | | input.prompt | string | Yes | Text description | | input.image_urls | string[] | I2V only | 1 image URL | | input.duration | number | No | 6, 10, or 15 (default: 6) | | input.resolution | string | No | "480p" or "720p" (default: "480p") | | input.mode | string | No | "fun", "normal", or "spicy" (default: "normal") | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "grok-imagine-text-to-video", "input": { "prompt": "A cat wearing a top hat walks across a piano", "duration": 6, "resolution": "720p", "mode": "fun" } }' ``` --- ### Seedance 2.0 Page: https://vicsee.com/seedance-2-0 Docs: https://vicsee.com/docs/api/seedance-2-0 Model IDs: `seedance-2-0-text-to-video`, `seedance-2-0-image-to-video`, `seedance-2-0-reference-to-video` Capabilities: Text to Video, Image to Video (first/last frame), Reference to Video (multimodal) Duration: 4-15 seconds (any integer) Resolution: 480p, 720p Audio: Native audio included (no extra cost, enabled by default) Aspect Ratios: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, adaptive Input image constraints: aspect ratio between 0.4 and 2.5 (width÷height), max 36 megapixels total. Wide-strip composites (e.g. 3:1) are rejected — use a 2×2 grid layout instead. Credits: 100-830 (text/image modes), variable for video references Three mutually exclusive modes: 1. Text to Video (`seedance-2-0-text-to-video`) — Prompt only 2. Image to Video (`seedance-2-0-image-to-video`) — First frame + optional last frame via `image_urls` 3. Reference to Video (`seedance-2-0-reference-to-video`) — Multimodal: `reference_image_urls` (up to 7), `reference_video_urls` (up to 3), `reference_audio_urls` (up to 3) Parameters (text-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "seedance-2-0-text-to-video" | | input.prompt | string | Yes | Max 2500 chars | | input.duration | number | No | 4-15 (default: 8) | | input.resolution | string | No | "480p", "720p" (default: "720p") | | input.aspect_ratio | string | No | "16:9", "9:16", "1:1", "4:3", "3:4", "21:9", "adaptive" (default: "16:9") | | input.audio | boolean | No | true/false (default: true) | | input.web_search | boolean | No | true/false (default: false) | Parameters (image-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "seedance-2-0-image-to-video" | | input.prompt | string | Yes | Description of animation | | input.image_urls | string[] | Yes | 1-2 images (first frame, optional last frame) | | input.duration | number | No | 4-15 (default: 8) | | input.resolution | string | No | "480p", "720p" (default: "720p") | | input.audio | boolean | No | true/false (default: true) | Parameters (reference-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "seedance-2-0-reference-to-video" | | input.prompt | string | No | Text description | | input.reference_image_urls | string[] | No | Up to 7 images (30MB each, jpeg/png/webp/bmp/tiff/gif) | | input.reference_video_urls | string[] | No | Up to 3 videos (50MB each, 2-15s, total <= 15s, mp4/mov) | | input.reference_audio_urls | string[] | No | Up to 3 audio files (10MB each, 2-15s, total <= 15s, mp3/wav) | | input.duration | number | No | 4-15 (default: 8) | | input.resolution | string | No | "480p", "720p" (default: "720p") | | input.audio | boolean | No | true/false (default: true) | Pricing (text/image modes): | Duration | 480p | 720p | |----------|------|------| | 4s | 100 | 220 | | 5s | 120 | 280 | | 6s | 150 | 330 | | 7s | 170 | 390 | | 8s | 200 | 440 | | 9s | 220 | 500 | | 10s | 250 | 550 | | 11s | 270 | 610 | | 12s | 300 | 660 | | 13s | 320 | 720 | | 14s | 350 | 770 | | 15s | 370 | 830 | Video reference pricing: per-second rate x (input video duration + output duration). 480p = 15 credits/s, 720p = 35 credits/s. Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-2-0-text-to-video", "input": { "prompt": "A martial arts master demonstrates fluid spear techniques in a sunlit courtyard", "duration": 8, "resolution": "720p", "aspect_ratio": "16:9", "audio": true } }' ``` --- ### Happy Horse Page: https://vicsee.com/happy-horse-1-0 Docs: https://vicsee.com/docs/api/happy-horse-1-0 Model IDs: `happyhorse-text-to-video`, `happyhorse-image-to-video`, `happyhorse-reference-to-video`, `happyhorse-video-edit` Capabilities: Text to Video, Image to Video (first frame), Reference to Video (1-9 character images), Video Edit (video-to-video) Duration: 3-15 seconds (any integer; video-edit output length follows the input video) Resolution: 720p, 1080p (default 720p) Audio: Native audio included (no extra cost) Aspect Ratios: 16:9, 9:16, 1:1, 4:3, 3:4 (text-to-video and reference-to-video) Credits: 720p = 40 credits/s, 1080p = 70 credits/s Four modes: 1. Text to Video (`happyhorse-text-to-video`) — Prompt only 2. Image to Video (`happyhorse-image-to-video`) — Animate a first-frame image via `image_urls` (exactly 1) 3. Reference to Video (`happyhorse-reference-to-video`) — `reference_image_urls` (1-9); refer to them as character1, character2, etc. in the prompt 4. Video Edit (`happyhorse-video-edit`) — Prompt-driven edit of `video_url` (one video, 3-15s) + optional `reference_image_urls` (0-5) Parameters (text-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "happyhorse-text-to-video" | | input.prompt | string | Yes | Max 5000 chars | | input.duration | number | No | 3-15 (default: 5) | | input.resolution | string | No | "720p", "1080p" (default: "720p") | | input.aspect_ratio | string | No | "16:9", "9:16", "1:1", "4:3", "3:4" (default: "16:9") | | input.seed | number | No | 0-2147483647 (omit to auto-generate) | Parameters (image-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "happyhorse-image-to-video" | | input.image_urls | string[] | Yes | Exactly 1 first-frame image (jpeg/png/webp, >=300px, <=10MB) | | input.prompt | string | No | Description of the animation | | input.duration | number | No | 3-15 (default: 5) | | input.resolution | string | No | "720p", "1080p" (default: "720p") | Parameters (reference-to-video): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "happyhorse-reference-to-video" | | input.prompt | string | Yes | Reference images as character1, character2, ... (array order) | | input.reference_image_urls | string[] | Yes | 1-9 images (jpeg/png/webp, short side >=400px, <=10MB) | | input.duration | number | No | 3-15 (default: 5) | | input.resolution | string | No | "720p", "1080p" (default: "720p") | | input.aspect_ratio | string | No | "16:9", "9:16", "1:1", "4:3", "3:4" (default: "16:9") | Parameters (video-edit): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "happyhorse-video-edit" | | input.prompt | string | Yes | Edit instruction (e.g. style transfer, local replacement) | | input.video_url | string | Yes | One video, 3-15s (mp4/mov, <=100MB) | | input.reference_image_urls | string[] | No | 0-5 reference images | | input.resolution | string | No | "720p", "1080p" (default: "720p") | | input.audio_setting | string | No | "auto" (regenerate) or "origin" (keep source audio) (default: "auto") | Pricing (text-to-video / image-to-video / reference-to-video): | Duration | 720p | 1080p | |----------|------|-------| | 3s | 120 | 210 | | 5s | 200 | 350 | | 8s | 320 | 560 | | 10s | 400 | 700 | | 15s | 600 | 1050 | Video Edit pricing: per-second rate x (input video duration + output duration); output length equals input. 720p = 40 credits/s, 1080p = 70 credits/s. Input video capped at 15s. Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "happyhorse-text-to-video", "input": { "prompt": "A miniature city built from cardboard comes to life at night, a small train passing through glowing streets", "duration": 5, "resolution": "720p", "aspect_ratio": "16:9" } }' ``` --- ### Seedance 2.0 Fast Page: https://vicsee.com/seedance-2-0-fast Docs: https://vicsee.com/docs/api/seedance-2-0-fast Model IDs: `seedance-2-0-fast-text-to-video`, `seedance-2-0-fast-image-to-video`, `seedance-2-0-fast-reference-to-video` Capabilities: Same as Seedance 2.0 Standard (Text to Video, Image to Video, Reference to Video) Duration: 4-15 seconds (any integer) Resolution: 480p, 720p Input image constraints: aspect ratio between 0.4 and 2.5 (width÷height), max 36 megapixels total. Wide-strip composites (e.g. 3:1) are rejected — use a 2×2 grid layout instead. Audio: Native audio included (no extra cost, enabled by default) Credits: 80-670 (text/image modes), variable for video references Note: 19-20% cheaper than Seedance 2.0 Standard, faster generation. Ideal for drafting and iteration. Parameters are identical to Seedance 2.0 Standard — substitute `seedance-2-0-fast-` prefix in model IDs. Pricing (text/image modes): | Duration | 480p | 720p | |----------|------|------| | 4s | 80 | 180 | | 5s | 100 | 220 | | 6s | 120 | 270 | | 7s | 140 | 310 | | 8s | 160 | 360 | | 9s | 180 | 400 | | 10s | 200 | 450 | | 11s | 220 | 490 | | 12s | 240 | 540 | | 13s | 260 | 580 | | 14s | 280 | 630 | | 15s | 300 | 670 | Video reference pricing: per-second rate x (input video duration + output duration). 480p = 13 credits/s, 720p = 28 credits/s. Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-2-0-fast-text-to-video", "input": { "prompt": "A cat walking slowly across a sunlit wooden floor", "duration": 4, "resolution": "480p", "aspect_ratio": "16:9" } }' ``` --- ### Seedance 2 Mini Model IDs: `seedance-2-mini-text-to-video`, `seedance-2-mini-image-to-video`, `seedance-2-mini-reference-to-video` Capabilities: Text to Video, Image to Video, Reference to Video (no first/last-frame mode — image input is used as a visual reference) Duration: 4-15 seconds (any integer) Resolution: 480p, 720p Input image constraints: aspect ratio between 0.4 and 2.5 (width÷height), max 36 megapixels total. Wide-strip composites (e.g. 3:1) are rejected — use a 2×2 grid layout instead. Audio: Native audio included (no extra cost, enabled by default) Credits: 38-308 (text/image modes), variable for video references Note: Budget tier of the Seedance 2.0 family — lowest cost for high-volume drafting. 1080p not available; use Seedance 2.0 for 1080p. Pricing (text/image modes): | Duration | 480p | 720p | |----------|------|------| | 4s | 38 | 82 | | 5s | 48 | 103 | | 6s | 57 | 123 | | 7s | 67 | 144 | | 8s | 76 | 164 | | 9s | 86 | 185 | | 10s | 95 | 205 | | 11s | 105 | 226 | | 12s | 114 | 246 | | 13s | 124 | 267 | | 14s | 133 | 287 | | 15s | 143 | 308 | Video reference pricing: per-second rate x (input video duration + output duration). 480p = 6 credits/s, 720p = 12.5 credits/s. Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-2-mini-text-to-video", "input": { "prompt": "A cat walking slowly across a sunlit wooden floor", "duration": 4, "resolution": "480p", "aspect_ratio": "16:9" } }' ``` --- ### Seedance 2.5 Model IDs: `seedance-2-5-text-to-video`, `seedance-2-5-image-to-video`, `seedance-2-5-reference-to-video` Capabilities: Text to Video, Image to Video (first/last frame), Reference to Video (image, video and audio references) Duration: 4-30 seconds (any integer) — the longest single-shot model available Resolution: 480p, 720p. 1080p and 4K are NOT available on this model; use Seedance 2.0 for 1080p or 4K. Defaults: 720p, 5 seconds, aspect_ratio "adaptive" Input image constraints: aspect ratio between 0.4 and 2.5 (width/height), max 36 megapixels total References: up to 30 images; reference video total <= 30s; reference audio total <= 30s Audio: Native audio included (enabled by default) Credits: 148-2500 (text/image modes), variable for video references Note: Hero tier of the Seedance 2 family — use it for finished 15-30s pieces. Seedance 2 Mini stays the cheaper choice for high-volume drafting. Pricing (text/image modes, all integer durations 4-30 available): | Duration | 480p | 720p | |----------|------|------| | 4s | 148 | 333 | | 5s | 185 | 417 | | 6s | 222 | 500 | | 7s | 259 | 583 | | 8s | 296 | 667 | | 9s | 333 | 750 | | 10s | 370 | 833 | | 12s | 444 | 1000 | | 15s | 556 | 1250 | | 20s | 741 | 1667 | | 25s | 926 | 2083 | | 30s | 1111 | 2500 | Video reference pricing: per-second rate x (input video duration + output duration). 480p = 22.5 credits/s, 720p = 50.3 credits/s. Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seedance-2-5-text-to-video", "input": { "prompt": "A cat walking slowly across a sunlit wooden floor", "duration": 15, "resolution": "720p", "aspect_ratio": "adaptive" } }' ``` --- ### MiniMax H3 (Hailuo 03) Model IDs: `minimax-h3-text-to-video`, `minimax-h3-image-to-video`, `minimax-h3-reference-to-video` Capabilities: Text to Video, Image to Video (first frame, last frame, or both), Reference to Video (image, video and audio references) Duration: 4-15 seconds (any integer). For clips longer than 15s use `seedance-2-5-*`. Resolution: 768P, 2K. There is no 480p, 1080p or 4K on this model. Defaults: 768P (the cheaper tier — VicSee deviates from the provider default of 2K here on purpose, so an omitted parameter is never the expensive one); 15 seconds for text-to-video, 6 seconds for the other two modes; aspect_ratio "21:9" (text-to-video) / "adaptive" (reference-to-video) Aspect ratio: NOT available on `minimax-h3-image-to-video` — the ratio follows the supplied frames. Sending it is ignored. Input image constraints: 256-5760px per side, aspect ratio between 0.4 and 2.5 (width/height), max 30MB each References: up to 5 images, 3 videos (total reference video length <= 15s), 3 audio clips. At least one IMAGE or VIDEO reference is required — audio alone is rejected. Audio: Native stereo audio, always generated. There is NO audio parameter on this model. Credits: 100-600, billed per second Note: The best value in the catalog for 2K output. 2K on MiniMax H3 costs less per second than Seedance 2.5 at 480p. Seedance 2 Mini remains cheaper for high-volume 480p drafting, and Seedance 2.5 is still the only option beyond 15 seconds. Pricing — per second, all integer durations 4-15 available: 768P = 25 credits/s · 2K = 40 credits/s | Duration | 768P | 2K | |----------|------|-----| | 4s | 100 | 160 | | 5s | 125 | 200 | | 6s | 150 | 240 | | 8s | 200 | 320 | | 10s | 250 | 400 | | 12s | 300 | 480 | | 15s | 375 | 600 | Video reference pricing: the same per-second rate x (input video duration + output duration). A 10s reference clip on a 6s 2K output bills 16s x 40 = 640 credits, not 240. Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "minimax-h3-text-to-video", "input": { "prompt": "A cat walking slowly across a sunlit wooden floor", "duration": 10, "resolution": "2K", "aspect_ratio": "16:9" } }' ``` --- ## Image Models ### Nano Banana Model IDs: `nano-banana-text-to-image`, `nano-banana-image-to-image`, `nano-banana-upscale` Credits: Generate = 6, Edit = 6, Upscale = 3 Parameters (text-to-image): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "nano-banana-text-to-image" | | input.prompt | string | Yes | Text description | | input.aspect_ratio | string | No | "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "5:4", "4:5", "21:9" | | input.output_format | string | No | "png" or "jpeg" (default: "png") | Parameters (image-to-image): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "nano-banana-image-to-image" | | input.prompt | string | Yes | Description of changes | | input.image_urls | string[] | Yes | 1 image URL | | input.output_format | string | No | "png" or "jpeg" (default: "png") | Parameters (upscale): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "nano-banana-upscale" | | input.image_urls | string[] | Yes | 1 image URL | | input.scale | number | No | 2 or 4 (default: 2) | | input.face_enhance | boolean | No | true/false (default: false) | Example (text-to-image): ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "nano-banana-text-to-image", "input": { "prompt": "A serene mountain landscape at sunset, photorealistic", "aspect_ratio": "16:9" } }' ``` Example (upscale): ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "nano-banana-upscale", "input": { "image_urls": ["https://example.com/photo.jpg"], "scale": 4, "face_enhance": true } }' ``` Dedicated upscale endpoint (simpler interface, same result): ```bash curl -X POST https://vicsee.com/api/v1/tools/upscale \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "image_url": "https://example.com/photo.jpg", "scale": 4, "face_enhance": true }' ``` --- ### GPT Image 2 (ChatGPT Image 2) Model IDs: `gpt-image-2-text-to-image`, `gpt-image-2-image-to-image` Resolution: 1K (1024px), 2K (2048px), 4K (4096px) Credits: 1K = 8, 2K = 12, 4K = 20 Aspect Ratios: auto (1K only), 1:1, 16:9, 9:16, 4:3, 3:4, 4:5, 5:4, 2:3, 3:2, 21:9, up to 3:1 Constraints: 1:1 with 4K not supported (provider rejects); auto only outputs 1K Strengths: Near-perfect text rendering inside images, multilingual typography (English + CJK + RTL), pixel-level surgical editing without style drift, faithful multi-element instruction following Parameters (text-to-image): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "gpt-image-2-text-to-image" | | input.prompt | string | Yes | Text description (up to 20,000 chars) | | input.resolution | string | No | "1K", "2K", "4K" (default: "1K") | | input.aspect_ratio | string | No | "auto", "1:1", "16:9", etc. (default: "auto") | Parameters (image-to-image): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "gpt-image-2-image-to-image" | | input.prompt | string | Yes | Edit instructions in plain English | | input.image_urls | string[] | Yes | Reference image URLs (jpeg/png/webp, up to 30MB each) | | input.resolution | string | No | "1K", "2K", "4K" (default: "1K") | | input.aspect_ratio | string | No | Same as text-to-image | Best for: Typography, magazine covers, UI mockups, multilingual storefront signs, pixel-precise photo edits, brand assets with legible labels, product packaging design. [Page](https://vicsee.com/gpt-image-2) --- ### Nano Banana 2 Model IDs: `nano-banana-2-text-to-image`, `nano-banana-2-image-to-image` Resolution: 1K (1024px), 2K (2048px), 4K (4096px) Credits: 1K = 8, 2K = 12, 4K = 20 Aspect Ratios: auto, 1:1, 16:9, 9:16, 4:3, 3:4, 4:5, 5:4, 2:3, 3:2, 21:9, 4:1, 1:4, 8:1, 1:8 Parameters (text-to-image): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "nano-banana-2-text-to-image" | | input.prompt | string | Yes | Text description (up to 20,000 chars) | | input.resolution | string | No | "1K", "2K", "4K" (default: "1K") | | input.aspect_ratio | string | No | 15 ratios (default: "auto") | | input.output_format | string | No | "png" or "jpg" (default: "jpg") | | input.google_search | boolean | No | Enable web grounding (default: false) | Parameters (image-to-image): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "nano-banana-2-image-to-image" | | input.prompt | string | Yes | Description of transformation | | input.image_urls | string[] | Yes | 1-14 image URLs (max 30MB each) | | input.resolution | string | No | "1K", "2K", "4K" (default: "1K") | | input.aspect_ratio | string | No | Output aspect ratio (default: "auto") | | input.output_format | string | No | "png" or "jpg" (default: "jpg") | | input.google_search | boolean | No | Enable web grounding (default: false) | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "nano-banana-2-text-to-image", "input": { "prompt": "A majestic snow leopard on a Himalayan cliff at golden hour", "resolution": "4K", "aspect_ratio": "16:9" } }' ``` --- ### Nano Banana Pro Model IDs: `nano-banana-pro-text-to-image`, `nano-banana-pro-image-to-image` Resolution: 1K (1024px), 2K (2048px), 4K (4096px) Credits: 1K = 15, 2K = 15, 4K = 30 Parameters (text-to-image): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "nano-banana-pro-text-to-image" | | input.prompt | string | Yes | Text description | | input.resolution | string | No | "1K", "2K", "4K" (default: "1K") | | input.aspect_ratio | string | No | "1:1", "16:9", "9:16", "4:3", "3:4", "2:3", "3:2", "4:5", "5:4", "21:9" | | input.output_format | string | No | "png" or "jpg" (default: "png") | Parameters (image-to-image): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "nano-banana-pro-image-to-image" | | input.prompt | string | Yes | Description of transformation | | input.image_urls | string[] | Yes | 1-8 image URLs | | input.resolution | string | No | "1K", "2K", "4K" (default: "1K") | | input.aspect_ratio | string | No | Output aspect ratio | | input.output_format | string | No | "png" or "jpg" (default: "png") | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "nano-banana-pro-text-to-image", "input": { "prompt": "Hyperrealistic portrait, dramatic lighting, museum-quality", "resolution": "4K", "aspect_ratio": "3:4" } }' ``` --- ### FLUX 2 Model IDs: `flux-2-pro-text-to-image`, `flux-2-pro-image-to-image`, `flux-2-flex-text-to-image`, `flux-2-flex-image-to-image` Variants: Pro (fast, production) and Flex (max quality) Resolution: 1K, 2K Credits: Pro 1K = 15, Pro 2K = 20, Flex 1K = 45, Flex 2K = 75 Parameters (text-to-image): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "flux-2-pro-text-to-image" or "flux-2-flex-text-to-image" | | input.prompt | string | Yes | 3-5000 characters | | input.resolution | string | No | "1K" or "2K" (default: "1K") | | input.aspect_ratio | string | No | "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "auto" | Parameters (image-to-image / multi-reference): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "flux-2-pro-image-to-image" or "flux-2-flex-image-to-image" | | input.prompt | string | Yes | Description of output | | input.image_urls | string[] | Yes | 1-8 reference images | | input.resolution | string | No | "1K" or "2K" (default: "1K") | | input.aspect_ratio | string | No | Output aspect ratio | Key features: Multi-reference consistency (up to 8 images), superior text rendering. Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "flux-2-pro-text-to-image", "input": { "prompt": "A luxury watch on marble, studio lighting, commercial photography", "resolution": "2K", "aspect_ratio": "1:1" } }' ``` --- ### Z Image Model ID: `z-image-text-to-image` Capabilities: Text to Image only Resolution: 1024x1024 (fixed for 1:1) Credits: 2 Parameters: | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "z-image-text-to-image" | | input.prompt | string | Yes | Max 1000 chars | | input.aspect_ratio | string | No | "1:1", "4:3", "3:4", "16:9", "9:16" (default: "1:1") | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "z-image-text-to-image", "input": { "prompt": "A serene mountain landscape at sunset, photorealistic", "aspect_ratio": "16:9" } }' ``` --- ### Grok Imagine Image Model IDs: `grok-imagine-text-to-image`, `grok-imagine-image-to-image` Page: https://vicsee.com/grok-imagine-image Docs: https://vicsee.com/docs/api/grok-imagine-image Capabilities: Text to Image (6 images per generation), Image to Image (2 images per generation) Credits: T2I = 8, I2I = 8 Parameters (text-to-image): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "grok-imagine-text-to-image" | | input.prompt | string | Yes | Text description | Parameters (image-to-image): | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "grok-imagine-image-to-image" | | input.prompt | string | Yes | Description of changes | | input.image_urls | string[] | Yes | 1 image URL | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "grok-imagine-text-to-image", "input": { "prompt": "A cyberpunk city at night with neon lights reflecting in rain puddles" } }' ``` --- ### Seedream 4.5 Model IDs: `seedream-4-5-text-to-image`, `seedream-4-5-image-to-image` Capabilities: Text to Image, Image to Image Resolution: 2K (quality "basic") or 4K (quality "high") — same cost Credits: 15 Aspect ratios: 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2, 21:9 High-detail image generation with strong text rendering. Edit mode accepts 1-10 reference images. ### Seedream 5.0 Model IDs: `seedream-5-lite-text-to-image`, `seedream-5-lite-image-to-image` Capabilities: Text to Image, Image to Image Resolution: 2K (quality "basic") or 4K (quality "high") — same cost Credits: 15 Aspect ratios: 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2, 21:9 Image generation with web search and visual reasoning. Edit mode accepts 1-14 reference images. --- ## Photo Effect Tools Photo effect tools transform uploaded photos using AI. They are available via the web UI at vicsee.com and are NOT directly accessible as API model IDs — use the web interface at the URLs listed below. All photo effect tools: require a user account, cost credits per generation, preserve the subject while applying a style transformation. ### AI Manga Colorizer URL: https://vicsee.com/ai-manga-colorizer Credits: 6 per colorization Input: Black-and-white manga panel (JPG, PNG, WebP, max 10 MB) Output: Colorized manga panel with original line art preserved Styles (6): - Anime Style — vibrant saturated colors with clean cel shading - Shonen — bold high-contrast colors for action panels - Shojo — soft pastels, warm skin tones, sparkle highlights - Webtoon — flat clean colors in modern digital style - Vintage Print — muted warm tones, 1980s manga palette - Cyberpunk — neon blue and purple, dark atmospheric lighting Custom mode: describe a color style in free text (e.g. "soft warm tones with golden light") --- ### AI GTA Style Filter URL: https://vicsee.com/ai-gta-style-filter Credits: 6 per generation Input: Photo (JPG, PNG, WebP, max 10 MB) — portraits, selfies, cityscapes, and street scenes all work Output: Photo transformed into GTA art style Styles (6): - GTA V Cover Art — warm amber-orange palette, bold dark outlines, dramatic Los Santos backdrop - Vice City 80s — neon pink and purple, Miami sunset aesthetic, 1980s retro poster feel - San Andreas — warm earth tones, early-2000s hip-hop urban aesthetic - Wanted Poster — grayscale mugshot with WANTED text and reward amount overlay - Loading Screen — high-contrast cinematic flat art, vivid colors, Los Santos skyline - Comic Panel — bold black ink outlines, halftone dot shading, action scene composition Custom mode: describe the GTA style in free text (e.g. "GTA V loading screen portrait with warm orange tones and bold outlines") Works on portraits, selfies, group photos, cityscapes, and vehicles. --- ### AI Skin Texture Enhancer URL: https://vicsee.com/ai-skin-texture-enhancer Credits: 6 per generation Input: Portrait or selfie (JPG, PNG, WebP, max 10 MB) — any photo where the face is clearly visible Output: Photo with enhanced skin using the selected beauty filter style Styles (6): - Skin Smoothing — airbrushed texture, removes roughness, soft even finish - Glass Skin — Korean dewy porcelain look, luminous, transparent-looking skin - Glow Filter — golden lit-from-within radiance, warm highlight glow - Blemish Remover — clears acne spots, dark spots, and redness while preserving natural tone - HD Retouch — commercial photography quality, sharp skin detail, studio-grade clarity - Natural Retouch — subtle minimal enhancement, authentic-looking refinement Custom mode: describe any skin enhancement in free text (e.g. "soft dewy glow, smooth texture, natural finish") Works for selfies, professional headshots, studio portraits, and AI-generated faces. Natural-looking results — not over-filtered. --- ### AI Emoji Generator URL: https://vicsee.com/ai-emoji-generator Credits: 6 per generation Input: Selfie or portrait (JPG, PNG, WebP, max 10 MB) — any photo where the face is clearly visible Output: Photo transformed into a custom emoji in the selected art style (1:1 square format) Styles (6): - Cartoon Emoji — bold black outlines, vivid flat colors, Disney-Pixar inspired expression - Pixel Art Emoji — retro 8-bit pixel style, chunky pixels, game sprite aesthetic - 3D Emoji — smooth glossy 3D render, Apple emoji aesthetic, dimensional depth - Sticker Emoji — thick white border outline, vivid saturated colors, Telegram sticker style - Anime Emoji — Japanese manga style, large expressive eyes, kawaii aesthetic, pastel colors - Flat Emoji — minimalist flat design, simple geometric shapes, clean icon-style Custom mode: describe any emoji style in free text (e.g. "superhero emoji with cape, bold outlines") Photo-based (image-to-image) — not text-based like other emoji generators. Works on any device (Android, Windows, Mac, iPhone) — no iOS 18 required. Output is 1:1 square, compatible with Slack and Discord custom emoji uploads. --- ### AI Sketch Generator URL: https://vicsee.com/ai-sketch-generator Credits: 6 per generation Input: Selfie, portrait, or any photo (JPG, PNG, WebP, max 10 MB) — subject should be clearly visible Output: Photo transformed into a hand-drawn style sketch in the selected art style Styles (6): - Pencil Sketch — realistic graphite pencil lines, fine detailed line work, subtle shading, white paper background - Charcoal Sketch — bold dark strokes, dramatic contrast, smudged shadow technique, expressive charcoal art - Anime Sketch — clean crisp ink lines, Japanese manga draft aesthetic, expressive features, minimal shading - Architectural Sketch — precise technical drawing, fine hatching and cross-hatching, blueprint-inspired line work - Fashion Sketch — elegant gestural lines, elongated fashion figure proportions, designer croquis style - Tattoo Sketch — bold black outlines, detailed ornamental line work, traditional tattoo flash draft style Custom mode: describe any sketch style in free text (e.g. "impressionist charcoal portrait with dramatic shadows") Photo-based (image-to-image) — works from your actual photo, not text descriptions. Ideal for portrait sketches, tattoo references, fashion design portfolios, and architectural concept sketches. Works on any device. --- ### AI Gender Swap URL: https://vicsee.com/ai-gender-swap Credits: 6 per generation Input: Selfie, portrait, or any photo (JPG, PNG, WebP, max 10 MB) — face should be clearly visible Output: Photo transformed to show the subject as the opposite gender in the selected style Styles (6): - Realistic Female — photorealistic feminine facial features, natural female skin tone, feminine hairstyle, lifelike transformation - Realistic Male — photorealistic masculine facial features, defined jawline, natural male skin tone, lifelike transformation - Anime Female — large expressive anime eyes, smooth anime skin, cute anime girl appearance, manga art style - Anime Male — angular handsome anime features, strong jawline, cool anime guy appearance, manga art style - Fantasy Female — ethereal feminine beauty, soft magical glow, fairy tale princess aesthetic, fantasy portrait art - Fantasy Male — heroic masculine features, chiseled face, dramatic epic lighting, warrior or hero aesthetic Custom mode: describe any gender swap style in free text Photo-based (image-to-image) — works from your actual photo, not text descriptions. Unique differentiator: no competitor offers style presets — all others do a single directional binary swap. VicSee offers 6 distinct stylistic looks. Works on any device. --- ### AI Pixel Art Generator URL: https://vicsee.com/ai-pixel-art-generator Credits: 6 per generation Input: Any photo (JPG, PNG, WebP, max 10 MB) — portrait, selfie, landscape, character design, or any image Output: Photo transformed into pixel art in the selected style Styles (9): - Retro 8-Bit — classic NES arcade aesthetic, limited 4-color palette, crisp pixel outlines, retro sprite style - Isometric City — 45-degree top-down perspective, SimCity-inspired tile art, vibrant colorful palette - RPG Character — fantasy game character sprite, 32x32 pixel art style, colorful with crisp black outlines - Forest Scene — SNES 16-bit nature scene, lush pixel foliage, warm golden sunlight, rich earthy palette - Cyberpunk Neon — glowing neon lights, purple and cyan palette, rain-slicked streets, futuristic sci-fi atmosphere - Cute Chibi — kawaii pixel art, oversized head proportions, soft pastel colors, big sparkly eyes, sticker-style - Space Explorer — retro sci-fi pixel art, starfield and nebula, 1980s video game aesthetic - Dark Dungeon — RPG dungeon crawler, stone tile texture, flickering torch lighting, dramatic pixel shadows - Sunset Cityscape — urban building silhouettes at sunset, warm orange and purple sky gradient, reflections in water Custom mode: describe any pixel art style in free text (game era, color palette, pixel resolution, mood) Photo-based (image-to-image) — transforms your uploaded photo into pixel art. Both Styles tab and Custom tab require an uploaded photo. Works on any device, in any browser. No app download required. --- ### YouTube Thumbnail Maker URL: https://vicsee.com/youtube-thumbnail-maker Credits: 6 per generation Input: Any photo (JPG, PNG, WebP, max 10 MB) — selfie, portrait, product photo, food shot, or any image Output: Photo transformed into a YouTube-optimized thumbnail in the selected genre style Styles (6): - Gaming — neon glow effects, dramatic dark background, esports-inspired lighting, high energy composition - Vlog — warm golden hour tones, soft bokeh, inviting lifestyle-creator aesthetic, bright and approachable - Tech Review — sleek gradient background, product spotlight lighting, clean modern layout, professional credibility - Reaction — dramatic zoom effects, bold saturated colors, amplified facial expression, attention-grabbing composition - Tutorial — clean professional framing, neutral background, educational aesthetic, clear and organized layout - Cooking — warm appetizing tones, food photography lighting, inviting color palette, makes food look delicious Custom mode: describe any thumbnail style in free text (lighting, color palette, mood, style references) Photo-based (image-to-image) — transforms your uploaded photo into a YouTube-ready thumbnail. Both Styles tab and Custom tab require an uploaded photo. Works on any device, in any browser. No app download required. Recommended YouTube thumbnail size: 1280×720 pixels (16:9). Each generation costs 6 credits. --- ### AI Logo Generator URL: https://vicsee.com/ai-logo-generator Credits: 8 per generation Input: Text description (Style tab) or any image (JPG, PNG, WebP, max 10 MB) on the Reference tab Output: Professional brand logo in the selected style, 1:1 square format Styles (6): - Minimalist — clean flat shapes, limited color palette, modern tech/startup aesthetic - Vintage Badge — retro badge-style with texture, craft and heritage feel for breweries, cafes, outdoor brands - Modern Flat — bold geometric shapes, vibrant flat colors for digital-native companies - Mascot — illustrated character logo with thick outlines, vivid colors for gaming, sports, kids' brands - Emblem — formal shield or crest design, gold/navy palettes with heraldic details for professional services - Monogram — elegant interlinked letter-based mark for fashion, luxury, premium brands Two modes: - Style tab (text-to-logo) — describe your brand name, industry, and style preference; AI generates from scratch - Reference tab (image-to-logo) — upload a sketch, symbol, or photo; AI transforms it using the selected style Works on any device, in any browser. No app download required. Square 1:1 format ready for websites, business cards, social profiles, app icons. --- ### AI Cartoon Generator URL: https://vicsee.com/ai-cartoon-generator Credits: 6 per generation Input: Any photo (JPG, PNG, WebP, max 10 MB) — portrait, selfie, group photo, pet, or any image Output: Photo transformed into a cartoon art style Styles (9): - Pixar 3D — smooth rounded 3D CGI faces, soft volumetric lighting, Pixar Animation Studio aesthetic - Studio Ghibli — painterly watercolor backgrounds, hand-drawn character lines, warm natural color palette - Japanese Anime — bold clean line art, vibrant color fills, large expressive eyes, classic anime cel-shading - Cute Chibi — super-deformed proportions, oversized head, small body, soft pastel colors, kawaii aesthetic - Disney Classic — golden-age Disney illustration style, warm colors, expressive big eyes, storybook quality - Manga — black and white ink art with screen tones, strong contrast, cross-hatching, manga panel aesthetic - Watercolor — translucent brushstroke washes, soft edges, dreamlike color bleeding, painted illustration quality - Western Cartoon — thick black outlines, flat bold colors, exaggerated expressions, classic TV cartoon style - Pop Art — Andy Warhol-inspired bold primary colors, halftone dot patterns, high contrast graphic aesthetic Custom mode: describe any cartoon style in free text (art movement, color palette, line weight, mood) Photo-based (image-to-image) — transforms your uploaded photo into the selected cartoon style. Both Styles tab and Custom tab require an uploaded photo. Works on any device, in any browser. No app download required. --- ### AI Photo to Cartoon URL: https://vicsee.com/ai-photo-to-cartoon Credits: 6 per generation Input: Any photo (JPG, PNG, WebP, max 10 MB) — portrait, selfie, pet, couple, or group photo Output: Photo transformed into a cartoon in the selected style Styles (6): - Pixar 3D — smooth 3D animated movie character look, expressive features, soft lighting - Anime — Japanese animation portrait with large expressive eyes, clean line art - Classic Cartoon — bold black outlines, flat bright colors, Western TV cartoon aesthetic - Comic Book — thick ink outlines, halftone dot patterns, Marvel/DC comic panel aesthetic - Watercolor — soft hand-painted cartoon feel with pastel tones and brushstroke textures - Minimalist — clean flat 2D illustration, simple shapes, limited color palette Custom mode: describe any cartoon style in free text Photo-based (image-to-image) — transforms your uploaded photo into the selected cartoon style. Works on selfies, portraits, pets, couples, and group photos. No app download required. --- ### AI Old Photo Restoration URL: https://vicsee.com/ai-old-photo-restoration Credits: 6 per generation Input: Any old, damaged, or faded photo (JPG, PNG, WebP, max 10 MB) — family portraits, wedding photos, school photos, military photos, vintage prints Output: Restored photo with scratches repaired, fading corrected, discoloration removed, and faces sharpened What it repairs: - Scratches and fold lines — filled in seamlessly using surrounding image context - Tears and physical damage — corners, edges, and torn areas reconstructed - Yellowing and discoloration — natural color balance restored for both B&W and color photos - Fading — contrast and clarity enhanced, faded details recovered - Blurry faces — facial features sharpened and fine details recovered in hair and clothing Works on: - Black-and-white photos from any era — restored without adding artificial colorization - Color photos including 1970s/1980s prints that faded to orange or yellow tones - Severely creased, water-damaged, or glass-plate-cracked originals (best results when subject is still partially visible) Photo-based (image-to-image) — upload the old photo, AI analyzes and repairs damage automatically. No settings to adjust, no editing skills needed. Works on any device, in any browser. No app download required. --- ### AI Room Decorator URL: https://vicsee.com/ai-room-decorator Credits: 6 per generation Input: Photo of any room (JPG, PNG, WebP, max 10 MB) Output: Room redesigned in the selected interior design style 9 style presets: Modern, Minimalist, Scandinavian, Industrial, Bohemian, Traditional, Mid-Century, Contemporary, Luxury. Custom text descriptions also supported. Upload a room photo, pick a style, and the AI transforms furniture, colors, materials, and lighting while preserving the room's layout and structure. Works on living rooms, bedrooms, kitchens, bathrooms, home offices, and commercial spaces. Browser-based, no app download required. --- ### AI Room Designer URL: https://vicsee.com/ai-room-designer Credits: 6 per generation Input: Photo of any room (JPG, PNG, WebP, max 10 MB) Output: Room redesigned in the selected interior design style 9 style presets: Japandi, Coastal, Rustic, Art Deco, Farmhouse, Mediterranean, Mid-Century, Minimalist, Tropical. Custom text descriptions also supported. Upload a room photo, choose a design style, and the AI generates a redesigned version that preserves the layout while transforming furniture, materials, colors, and lighting. Works on living rooms, bedrooms, kitchens, bathrooms, home offices, dorm rooms, and commercial spaces. Browser-based, no app download required. --- ### AI Caricature Generator URL: https://vicsee.com/ai-caricature-generator Credits: 6 per generation Input: Photo (JPG, PNG, WebP, max 10 MB) — portraits, selfies, group photos, pets Output: Photo transformed into a caricature illustration in the selected art style Styles (6): - Cartoon — thick outlines, vibrant flat colors, classic cartoon look - Exaggerated — classic big-head small-body caricature proportions, editorial quality - Pencil Sketch — hand-drawn pencil lines with cross-hatching, black and white - Watercolor — expressive loose brushstrokes, painterly aesthetic - Chibi — kawaii anime proportions, large eyes, cute small body - Simpsons Style — iconic yellow skin, thick black outlines, overbite, Springfield look Custom mode: describe any caricature style in free text (e.g. "watercolor caricature with exaggerated eyes and a big smile") Works for portraits, selfies, group photos, and pet photos. No manual prompts required — upload and select a style. --- ### AI Sticker Generator URL: https://vicsee.com/ai-sticker-generator Credits: 6 per generation Input: Photo (JPG, PNG, WebP, max 10 MB) — portraits, selfies, pets, and any subject Output: Photo transformed into a custom AI sticker illustration Styles (6): - Chibi — large expressive eyes, small body, pastel colors, kawaii aesthetic - Kawaii — pink pastel palette, sparkles, soft round cute character - Cartoon Emoticon — bold black outlines, exaggerated expression, emoji-like flat art - Ghibli Style — soft watercolor aesthetic, warm Miyazaki-inspired illustration - Sticker Art — classic vinyl die-cut look, thick border, flat high-contrast colors - Pixel Art — retro 8-bit sprite style, pixelated character Custom mode: describe any sticker style in free text (e.g. "chibi version with blue hair and hearts") Works for portraits, selfies, pet photos, and product images. Download for WhatsApp, Telegram, Instagram, iMessage, Facebook, Discord. --- ### AI Baby Face Generator URL: https://vicsee.com/ai-baby-face-generator Credits: 6 per generation Input: Photo with a clear face (JPG, PNG, WebP, max 10 MB) — selfies and portraits work best Output: Baby face transformation in the selected style Styles (6): - Cute Baby — realistic chubby cheeks, big bright eyes - Chubby Cherub — angelic extra-plump pudgy cheeks, rosy skin - Anime Baby — oversized sparkling anime eyes, soft rounded face - Newborn — delicate tiny features, peaceful expression - Toddler — 18–24 months, curious expression, wispy hair - Cartoon Baby — illustrated cartoon baby style Custom mode: describe the baby look in free text (e.g. "chubby 6-month-old baby with big blue eyes and rosy cheeks") Single photo only — no partner photo needed. Works with selfies, portraits, and group shots. --- ## Utility Tools ### AI Watermark Remover Capabilities: Mask-based inpainting — remove watermarks, logos, text stamps from photos Credits: 7 per removal Rendering speed: TURBO [Page](https://vicsee.com/ai-watermark-remover) How it works: 1. Upload a watermarked photo 2. Use the brush tool to paint over the watermark area 3. AI reconstructs the image behind the watermark Supported watermark types: stock photo watermarks, brand logos, date stamps, social media marks, AI-generated content watermarks (Kling, Sora 2, etc.) Note: This is a brush-based tool (manual mask), not auto-detection. The user controls exactly what gets removed. ### AI Magic Eraser Capabilities: Mask-based inpainting — remove unwanted objects, people, blemishes from photos Credits: 7 per removal Rendering speed: TURBO [Page](https://vicsee.com/magic-eraser) How it works: 1. Upload a photo with an unwanted object 2. Use the brush tool to paint over the object 3. AI erases the object and reconstructs the background Common use cases: remove people from photos, erase power lines from landscapes, clean up blemishes in portraits, remove text overlays, clean product photography. Note: Same underlying model as AI Watermark Remover. Different default prompt optimized for object removal vs watermark removal. --- ## Upscale Models ### Topaz Image Upscale Model ID: `topaz-image-upscale` Capabilities: Image upscale (1x enhance, 2x, 4x) Credits: tiered by OUTPUT size (input megapixels × factor²) — ≤24MP = 20, ≤48MP = 40, ≤96MP = 80 A typical 1-4MP AI-generated image costs 20 credits at 2x. Max output: 96 megapixels, and 20,000px on longest side Tool endpoint (recommended): ``` POST https://vicsee.com/api/v1/tools/upscale-image ``` | Parameter | Type | Required | Values | |-----------|------|----------|--------| | image_url | string | Yes | URL of image (JPEG, PNG, WebP) | | upscale_factor | string | No | "1", "2", "4" (default: "2") | Use `"1"` for AI enhancement (denoising, sharpening) without changing resolution. Example: ```bash curl -X POST https://vicsee.com/api/v1/tools/upscale-image \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "image_url": "https://example.com/photo.jpg", "upscale_factor": "4" }' ``` Unified endpoint alternative: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "topaz-image-upscale", "input": { "image_url": "https://example.com/photo.jpg", "upscale_factor": "4" } }' ``` --- ### Topaz Video Upscale Model ID: `topaz-video-upscale` Capabilities: Video upscale (1x enhance, 2x, 4x) Credits: Per-second billing — 1x/2x = 16/s, 4x = 28/s Max duration: 60 seconds Total cost formula: credits_per_second × ceil(video_duration_seconds) Tool endpoint (recommended): ``` POST https://vicsee.com/api/v1/tools/upscale-video ``` | Parameter | Type | Required | Values | |-----------|------|----------|--------| | video_url | string | Yes | URL of video (MP4, MOV, MKV) | | upscale_factor | string | No | "1", "2", "4" (default: "2") | Use `"1"` for AI enhancement without changing resolution. Example: ```bash curl -X POST https://vicsee.com/api/v1/tools/upscale-video \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "video_url": "https://example.com/clip.mp4", "upscale_factor": "2" }' ``` Unified endpoint alternative: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "topaz-video-upscale", "input": { "video_url": "https://example.com/clip.mp4", "upscale_factor": "2" } }' ``` Example cost: A 4.5-second video at 2x = ceil(4.5) × 16 = 80 credits. --- ## Audio Models ### Suno Generate Music Model ID: `suno-v5-generate-music` Capabilities: Text to Music Credits: 15 Generate music from a text prompt. Returns 2 song variations with cover art. Simple mode (just a prompt) or custom mode (title, style, lyrics). Options: instrumental (true/false), custom_mode (true/false). ### ElevenLabs V3 Text to Dialogue Model ID: `elevenlabs-text-to-dialogue-v3` Capabilities: Multi-speaker voiceover (ads, podcasts, narration) Output: MP3 audio Credits: 23 per 1,000 characters, rounded up (no length limit) API-only (no UI generator) Parameters: | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "elevenlabs-text-to-dialogue-v3" | | input.dialogue | array | Yes | Array of {text, voice} entries. Voices by NAME. Billed per 1,000 characters across all entries. | | input.stability | number | No | 0, 0.5, or 1 (default: 0.5) | | input.language_code | string | No | ISO 639-1 code (e.g., "en", "es") | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "elevenlabs-text-to-dialogue-v3", "input": { "dialogue": [ { "text": "Welcome to Agency HQ!", "voice": "Adam" }, { "text": "Let us create something amazing.", "voice": "Sarah" } ], "stability": 0.5, "language_code": "en" } }' ``` --- ### ElevenLabs TTS Turbo 2.5 Model ID: `elevenlabs-text-to-speech-turbo-2-5` Capabilities: Single-speaker text-to-speech Output: MP3 audio Credits: 12 per 1,000 characters, rounded up (no length limit) API-only (no UI generator) Parameters: | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "elevenlabs-text-to-speech-turbo-2-5" | | input.text | string | Yes | No length limit. Billed per 1,000 characters, rounded up. | | input.voice | string | No | Voice preset NAME, default "Rachel". One of: Rachel, Adam, Sarah, Aria, Charlotte, Antoni, Bella, Domi, Elli, Josh. An unrecognised name is REJECTED, not defaulted. | | input.stability | number | No | 0-1 (default: 0.5). Lower = more expressive. | | input.similarity_boost | number | No | 0-1 (default: 0.75). Voice clarity. | | input.style | number | No | 0-1 (default: 0). Style exaggeration. | | input.speed | number | No | 0.7-1.2 (default: 1.0). Outside this range returns 400 INVALID_SPEED. | | input.language_code | string | No | ISO 639-1 code. Auto-detected if omitted. | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "elevenlabs-text-to-speech-turbo-2-5", "input": { "text": "Coca-Cola. Open Happiness.", "voice": "Rachel", "stability": 0.5, "similarity_boost": 0.75, "speed": 1.0 } }' ``` --- ### ElevenLabs Sound Effect V2 Model ID: `elevenlabs-sound-effect-v2` Capabilities: Generate sound effects from text descriptions Output: MP3 audio Duration: Up to 22 seconds Credits: 1 per second, minimum 5. A 3s effect costs 5; a 22s effect costs 22. API-only (no UI generator) Parameters: | Parameter | Type | Required | Values | |-----------|------|----------|--------| | model | string | Yes | "elevenlabs-sound-effect-v2" | | input.text | string | Yes | Description of sound effect. Max 5,000 chars. | | input.duration_seconds | number | No | 0.5-22 (auto if omitted). Outside this range returns 400 INVALID_DURATION. Omitting it bills the 5-credit minimum. | | input.loop | boolean | No | true/false (default: false). Seamless looping. | | input.prompt_influence | number | No | 0-1 (default: 0.3). How closely output follows prompt. | Example: ```bash curl -X POST https://vicsee.com/api/v1/generate \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "elevenlabs-sound-effect-v2", "input": { "text": "Busy city street with car horns and crowd chatter", "duration_seconds": 10, "loop": false, "prompt_influence": 0.3 } }' ``` --- ### Lipsync Endpoint: `POST /api/v1/tools/lipsync` (a tool endpoint, not /v1/generate) Capabilities: Lip-sync a video's speaker to a supplied audio track Output: MP4 video API-only (no UI generator). Requires an API key and paid status. **ASYNCHRONOUS.** Returns `202` with a task id immediately; the video is NOT in the response. Poll `GET /api/v1/tasks/{id}` until `status` is `completed`, then read `result.url`. Changed 2026-08-20 — it previously held the connection open, which failed for any job over ~100 seconds. Models (send as `model`): | Model | Credits | Notes | |-------|---------|-------| | `sync-lipsync-2` (default) | 10 per second, minimum 50 | Fast, cost-efficient | | `sync-lipsync-2-pro` | 20 per second, minimum 100 | Super-resolution detail; preserves source bitrate | | `sync-lipsync-3` | 30 per second, minimum 150 | Handles obstructions, close-ups, extreme angles. NOT an upscaler — preserves source resolution. | Parameters: | Parameter | Type | Required | Values | |-----------|------|----------|--------| | video_url | string | Yes | Source video URL. Max 30 seconds. | | audio_url | string | Yes | Audio track URL. Must be reachable by an automated client. | | model | string | No | "sync-lipsync-2" (default), "sync-lipsync-2-pro", or "sync-lipsync-3" | | sync_mode | string | No | cut_off (default), loop, bounce, silence, remap | | active_speaker | boolean | No | Detect who is speaking in multi-person video (default false) | Duration is measured from your video automatically. Result URLs live 7 days. ```bash curl -X POST https://vicsee.com/api/v1/tools/lipsync \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "video_url": "https://cdn.vicsee.com/...mp4", "audio_url": "https://cdn.vicsee.com/...mp3", "model": "sync-lipsync-2-pro" }' ``` --- ## Pricing ### Subscription Plans | Plan | Monthly | Yearly | Credits/Month | API Access | |------|---------|--------|---------------|-----------| | Free | $0 | — | 20 (one-time) | No | | Starter | $15/mo | $10/mo ($120/yr) | 500 | Yes (100 req/day) | | Pro | $29/mo | $15/mo ($180/yr) | 2,500 | Yes (500 req/day) | Pro plan scales up to 250,000 credits/mo ($1,749.99/mo or $1,205/mo yearly). ### One-Time Credit Packs (Non-Expiring) | Credits | Price | Per Credit | |---------|-------|-----------| | 3,000 | $75 | $0.025 | | 10,000 | $220 | $0.022 | | 25,000 | $450 | $0.018 | | 50,000 | $900 | $0.018 | | 200,000 | $3,000 | $0.015 | ### All Features | Feature | Free | Starter | Pro | |---------|------|---------|-----| | All models | Yes | Yes | Yes | | Watermark | Yes | No | No | | HD output | No | Yes | Yes | | Parallel tasks | 1 | 2 | Unlimited | | API access | No | Yes | Yes | | Priority queue | No | No | Yes | --- ## Workflows & Recipes ### Reference-to-video (character consistency) Keep a face/character consistent by sending the reference image as DATA, not just describing it. 1. Get each reference image as a public URL (`vicsee_upload` or POST /api/v1/upload). 2. Call /generate with a reference-capable model and populate `reference_image_urls`. 3. In the prompt, label them in order: `@Image1` = first URL, `@Image2` = second. 4. Poll until terminal (see Polling Strategy). ```json { "model": "seedance-2-0-reference-to-video", "input": { "prompt": "@Image1 walking through a neon-lit street at night, cinematic", "reference_image_urls": ["https://cdn.vicsee.com/uploads/abc.jpg"], "duration": 4, "resolution": "480p" } } ``` Common mistake: writing `@Image1` in the prompt but leaving `reference_image_urls` empty → the model invents a face. The array is what the model sees; the prompt only labels it. `reference_image_urls` (multi-image character consistency, on Seedance 2.0 / 2.0 Fast) is different from `image_urls` (a single seed / first-frame image, accepted by most image-to-video models like Grok Imagine or Seedance 1.5 Pro). Use `reference_image_urls` to keep a specific character consistent across shots; use `image_urls` to animate or continue from one image. ### Split pipeline (video + separate audio) 1. Generate the video. 2. Generate audio separately (TTS / sound effects). 3. POST /api/v1/tools/merge-audio-video with both URLs. ### Compute cost up front Read the credit cost from `vicsee_list_models` / GET /api/v1/models before generating. Most models are flat per generation; video-reference generations bill per second = rate × (**input video duration + output duration**) — the input clip's seconds count toward the bill, so a 6s reference + 4s output is billed as 10s. See Pricing. ### Other MCP clients Any MCP client works — point it at the same stdio command (`npx -y @vicsee/mcp-server` + `VICSEE_API_KEY`). Tools and rules are identical; no per-framework fork needed. --- ## Complete Integration Example ```javascript const API_KEY = 'sk-your-api-key'; const BASE_URL = 'https://vicsee.com/api/v1'; // 1. Generate a video const genResponse = await fetch(`${BASE_URL}/generate`, { method: 'POST', headers: { 'Authorization': `Bearer ${API_KEY}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ model: 'veo-3-1-text-to-video', input: { prompt: 'A cozy coffee shop, barista steaming milk, jazz playing', aspect_ratio: '16:9', }, }), }); const { data: task } = await genResponse.json(); console.log(`Task ${task.id} created, ${task.creditsUsed} credits used`); // 2. Poll for result let result = null; let delay = 2000; while (!result) { await new Promise(r => setTimeout(r, delay)); const pollResponse = await fetch(`${BASE_URL}/tasks/${task.id}`, { headers: { 'Authorization': `Bearer ${API_KEY}` }, }); const pollData = await pollResponse.json(); if (pollData.data.status === 'completed') { result = pollData.data.result; } else if (pollData.data.status === 'failed') { throw new Error('Generation failed'); } delay = Math.min(delay * 1.5, 10000); } console.log(`Video ready: ${result.url}`); // 3. Check remaining credits const creditsResponse = await fetch(`${BASE_URL}/credits`, { headers: { 'Authorization': `Bearer ${API_KEY}` }, }); const { data: { credits } } = await creditsResponse.json(); console.log(`Remaining credits: ${credits}`); ``` --- ## Polling Strategy Recommended: Exponential backoff starting at 2 seconds, capping at 10 seconds. - Video generation typically takes 30-120 seconds - Image generation typically takes 5-30 seconds - Max recommended polling attempts: 60 --- ## Quick Model Selection Guide Easiest start (video): Grok Imagine (15 credits, 6-15s, native audio) Easiest start (image): Nano Banana (6 credits, text + image editing) Best quality video: Veo 3.1 Quality (300 credits, native audio) Best for dialogue: Kling 2.6 (lip-sync, audio-visual sync) Best flexible duration: Kling 3.0 (3-15 seconds, per-second pricing) Best budget video + multilingual: Seedance 1.5 Pro (from 15 credits, 8+ languages with audio) Best budget image: Z Image (2 credits, photorealistic) Best HD image: Nano Banana Pro (15 credits for 2K, 30 for 4K) Best multi-reference: FLUX 2 (up to 8 reference images) Best budget upscaling: Nano Banana Upscale (3 credits, 2x or 4x) Best premium image upscaling: Topaz Image Upscale (20-80 credits by output size, up to 4x) Best video upscaling: Topaz Video Upscale (16-28 credits/second, up to 4x) Best multi-speaker voiceover: ElevenLabs V3 Dialogue (15 credits, API-only) Best TTS narration: ElevenLabs TTS Turbo 2.5 (8 credits, 100+ voices, API-only) Best sound effects: ElevenLabs Sound Effect V2 (5 credits, up to 22s, API-only)