PiAPI
HomeWorkspace
HomeWorkspace
Join Discord
  1. Faceswap
  • Get Started
    • Overview
    • Quickstart
    • Make Instruction: How to Use PiAPI to Build a Workflow on Make?
  • Endpoints
    • Song(Udio)
      • Song API Task Creation Examples
      • [Udio] Song Extend
      • Get Task
      • Create Task
      • [Udio] Generate Lyrics
    • Kling
      • Lipsync With PiAPI Kling API Examples
      • Motion Brush With PiAPI Kling API Example
      • Kling Elements Video Generation API
      • Kling Effects Video Generation
      • Cancel Task
        • Cancel Tasks
        • Cancel Task
      • Get Task
      • Create Task
      • Kling Virtual Try-On
    • Hailuo
      • Hailuo Director Mode Example
      • Generate Video
      • Get Task
    • Flux
      • Flux with LoRA and Controlnet
      • Available LoRA and Controlnet
      • Flux API with Redux Variation, Fill, Inpaint and Outpaint
      • Create Task
        • Text to Image
        • Image to Image
      • Get task
    • AI Hug
      • Get Task
      • Create Task
    • LLM
      • Use Cases for GPT-4o Image API
      • How To Avoid Timeouts in Completion API
      • GPT-4o Image Generation API
      • LLM API | Basic Completions
      • Get Task
    • Midjourney
      • PiAPI Penalties on Midjourney Usage
      • Detailed Explaination on Midjourney Task Result
      • Midjourney V7 API Instructions
      • Create Task
        • Imagine
        • Upscale
        • Variation
        • Reroll
        • Describe
        • Seed
        • Blend
        • Inpaint
        • Outpaint
        • Pan
      • Cancel Task
        • Cancel Task
        • Cancel Tasks
      • Get Task
    • Faceswap
      • Multi Faceswap
        POST
      • Image Faceswap
        POST
      • Video Faceswap
        POST
      • Get Task
        GET
    • TTS
      • Zeroshot Text-to-Speech F5-TTS
      • Get Task
    • Trellis
      • Create Task
      • Get Task
    • Luma Dream Machine
      • Cancel Task
        • Cancel Tasks
        • Cancel Task
      • Create Task
      • Get Task
    • WanX
      • Available LoRA Types for Wanx
      • Generate WanX Task with LoRA Using PiAPI
      • Use Cases for Wanx LoRA
      • Create Task
      • Get Task
    • Skyreels
      • Create Task
      • Get Task
    • Framepack
      • Create Task
      • Get Task
    • Hunyuan Video
      • How to Make a Hunyuan API Call
      • Get Task
      • Generate Video
    • Mmaudio
      • Get Task
      • Generate Audio
    • DiffRhythm
      • Generate Audio
      • Get Task
    • Tools
      • File Upload API
      • Video Upscale
      • Video Upscale-Get Task
      • Remove Background API
      • Remove Background-Get Task
      • Segment With Prompt API
      • Segment With Prompt API-Get Task
      • Image Upscale(Super Resolution) API
      • Image Upscale-Get Task
    • PiAPI Account Management
      • PiAPI Account Info
      • Task List Info
      • User Task History
  • Resources
    • Change Log
    • Output Storage
    • Unified API Schema
    • Webhook
    • Bulk Generation Service
    • Billings
    • PiAPI MCP Server
    • Workspace Manual
      • Host-your-account (HYA) | Back-up Account
      • Host-your-account (HYA) | Debug Checklist
      • Host-your-account (HYA) | Connected Account Status
    • Announcements
      • PiAPI 2025 January 1st Pricing Update
  • Legacy Documentation
    • Midjourney
      • Midjourney Webhook
      • Imagine
      • Reroll
      • Upscale
      • Variation
      • Inpaint
      • Outpaint
      • Pan
      • Describe
      • Blend
      • Seed
      • Fetch
      • Multi Fetch
      • Cancel
    • Face Swap
      • Video Faceswap
      • Multi-face-swap
      • Fetch
    • Dream Machine
      • Video Generation
      • Video Extend
      • Get Video Generation
    • Kling
      • Video Generation
      • Video Extend
      • Get Video Generation
  1. Faceswap

Video Faceswap

POST
/api/v1/task
Video Processing

Video Face Swap API Documentation#

Overview#

PiAPI's Video Face Swap service enables face replacement in videos using advanced facial recognition and swapping technology. The service supports both single and multiple face swapping operations within MP4 videos.
The face-swapping sequence is determined by the model's algorithmic detection of faces. The model assigns order labels to detected faces, and users can generally expect the API to sort faces from left to right by default. However, if faces in a photo/video are positioned diagonally (e.g., one at the top-left and another at the bottom-right), the model may prioritize them as follows:
Top-left face → Labeled 1
Bottom-right face → Labeled 0
Conversely, if one face is at the bottom-left and another at the top-right:
Bottom-left face → Labeled 0
Top-right face → Labeled 1

Examples: How Face Indexing Affects Results#

Case 1#

swap_faces_index: 0 1
target_faces_index: 1 0
Action: The left face in the source image replaces the right face in the target video, and the right face in the source replaces the left face in the target.

Case 2#

swap_faces_index: 0 1
target_faces_index: 0 1
Action: The left face in the source replaces the left face in the target; the right face in the source replaces the right face in the target.

Pricing#

Cost per frame: $0.004
Pricing is calculated based on the total number of frames processed

Model Information#

Model Name: Qubico/video-toolkit
Task Type: face-swap
Capabilities:
Single and multiple face swapping
Support for indexed face selection in both source and target
Processing of standard MP4 videos

Technical Limitations#

File Format: MP4 only
File Size: Maximum 10MB
Resolution: Maximum 720p
Frame Limit: Maximum 600 frames per video
Image Size Limit: Maximum 2048 x 2048 resolution

Request

Header Params
x-api-key
string 
optional
your api key
Body Params application/json
model
enum<string> 
required
Model name for face swapping
Allowed value:
Qubico/video-toolkit
task_type
enum<string> 
required
Task type for face swapping
Allowed value:
face-swap
input
object 
required
swap_image
string <uri>
required
URL of the image containing the face(s) to swap
target_video
string <uri>
required
URL of the target MP4 video for face swapping
swap_faces_index
string 
optional
Index(es) of faces to use from the swap image (e.g., "0" or "1,0")
target_faces_index
string 
optional
Index(es) of faces to replace in the target video (e.g., "0" or "0,1")
Example
{
  "model": "Qubico/video-toolkit",
  "task_type": "face-swap",
  "input": {
    "swap_image": "http://example.com",
    "target_video": "http://example.com",
    "swap_faces_index": "string",
    "target_faces_index": "string"
  }
}

Request samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://api.piapi.ai/api/v1/task' \
--header 'x-api-key;' \
--header 'Content-Type: application/json' \
--data-raw '{
    "model": "Qubico/video-toolkit",
    "task_type": "face-swap",
    "input": {
        "swap_image": "http://example.com",
        "target_video": "http://example.com",
        "swap_faces_index": "string",
        "target_faces_index": "string"
    }
}'

Responses

🟢200OK
application/json
Successful response
Body
code
enum<integer> 
required
Response status code
Allowed value:
200
message
string 
required
Response message
data
object 
required
task_id
string <uuid>
required
Unique task identifier
status
string 
required
Current status of the task
output
object 
optional
Example
{
  "code": 200,
  "message": "string",
  "data": {
    "task_id": "736fde4d-9029-4915-8189-01353d6982cb",
    "status": "string",
    "output": {
      "video_url": "http://example.com"
    }
  }
}
Modified at 2025-03-26 17:20:25
Previous
Image Faceswap
Next
Get Task