Skip to main content
ArtEmotion
Video

PixVerse Swap

Credit-based pricing. Supports image-to-video, reference video.

Output
video
Resolution
360p, 540p, 720p

Inputs

  • Start image (required)
  • Reference video (required)

Example prompt

Upload a video and a reference image — PixVerse Swap replaces the target person, object, or background seamlessly
Try this prompt →
LLM-ready

API & LLM schema

Exact request contract for this model. Agents can fetch it from /api/v1/models?id=fal-ai/pixverse/swap.

POST/api/v1/generate14 fields · 3 required
FieldTypeRequirementContract
model_idconstantRequiredArtEmotion model identifier.
extraobjectOptionalModel-specific settings may also be nested here.
max_creditsnumberOptionalReject before submission if the estimated list price exceeds this cap. · Range: 1–…
webhook_urlstringOptionalFormat: uri
webhook_secretstringOptionalOptional model input.
folder_idstringOptionalOptional model input.
promptstringOptionalOptional model input.
modestringOptionalChoose whether the replacement image should swap a person, an object, or the video background. · Allowed: person, object, background · Default: person
keyframe_idnumberOptionalFrame used to map the replacement. PixVerse normalizes the source to 24 FPS, so frame 24 is approximately one second into the video. The maximum is source duration × 24. · Default: 1 · Range: 1–…
original_sound_switchbooleanOptionalKeep the audio track from the source video in the generated result. · Default: true
seedintegerOptionalOptional random seed for a repeatable swap.
resolutionstringOptionalAllowed: 360p, 540p, 720p
image_urlstringRequiredFormat: uri
video_urlstringRequiredFormat: uri
Minimal request example
{
  "model_id": "fal-ai/pixverse/swap",
  "image_url": "https://example.com/image",
  "video_url": "https://example.com/video"
}
Raw JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.artemotion.ai/api/v1/models?id=fal-ai%2Fpixverse%2Fswap",
  "title": "PixVerse Swap generation request",
  "description": "Request body accepted by POST /api/v1/generate for fal-ai/pixverse/swap.",
  "type": "object",
  "properties": {
    "model_id": {
      "type": "string",
      "const": "fal-ai/pixverse/swap",
      "description": "ArtEmotion model identifier."
    },
    "extra": {
      "type": "object",
      "additionalProperties": true,
      "description": "Model-specific settings may also be nested here."
    },
    "max_credits": {
      "type": "number",
      "minimum": 1,
      "description": "Reject before submission if the estimated list price exceeds this cap."
    },
    "webhook_url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048
    },
    "webhook_secret": {
      "type": "string",
      "maxLength": 512
    },
    "folder_id": {
      "type": "string"
    },
    "prompt": {
      "type": "string"
    },
    "mode": {
      "title": "Swap Target",
      "description": "Choose whether the replacement image should swap a person, an object, or the video background.",
      "default": "person",
      "type": "string",
      "enum": [
        "person",
        "object",
        "background"
      ]
    },
    "keyframe_id": {
      "title": "Mapping Keyframe",
      "description": "Frame used to map the replacement. PixVerse normalizes the source to 24 FPS, so frame 24 is approximately one second into the video. The maximum is source duration × 24.",
      "default": 1,
      "type": "number",
      "minimum": 1,
      "multipleOf": 1
    },
    "original_sound_switch": {
      "title": "Keep Original Sound",
      "description": "Keep the audio track from the source video in the generated result.",
      "default": true,
      "type": "boolean"
    },
    "seed": {
      "title": "Seed",
      "description": "Optional random seed for a repeatable swap.",
      "type": "integer"
    },
    "resolution": {
      "type": "string",
      "enum": [
        "360p",
        "540p",
        "720p"
      ]
    },
    "image_url": {
      "type": "string",
      "format": "uri"
    },
    "video_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "model_id",
    "image_url",
    "video_url"
  ],
  "additionalProperties": false
}

FAQ

How much does PixVerse Swap cost on ArtEmotion?

Credit-based pricing. You pay in ArtEmotion credits — every plan and top-up converts USD to credits at a fixed rate.

Do I get my credits back if PixVerse Swap fails?

Yes — failed generations are never charged. The credits are released back to your balance automatically.

Can I call PixVerse Swap from the API?

Yes. Use POST /api/v1/generate with model_id: "fal-ai/pixverse/swap". See the API reference for the full schema.

Where are my generations stored?

Every output is saved to your personal Library. You can export or delete everything any time from Privacy & deletion.

Ready to generate with PixVerse Swap?

Start now →

No commitment. New accounts get 50 free credits on signup. See pricing.