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
      • Generate WanX Task with LoRA Using PiAPI
      • Available LoRA Types for Wanx
      • Use Cases for Wanx LoRA
      • Use Cases for Wanx Control Camera
      • 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

Multi Faceswap

POST
https://api.piapi.ai/api/v1/task

This async endpoint from PiAPI's Faceswap API swaps the face from the swap_image to the target_image.

INFO

This async endpoint from PiAPI's Faceswap API swap faces from the swap_image onto the target_image.
Users on PiAPI could change target faces(≥1) following specific logic which you could check as follows.

Format & Constraints

  1. Size & Resolution: both swap_image and target_image should be under 2048 x 2048 resolution each.
  2. Input Format: both swap_image and target_image should be passed in as urls (ending in jpg/jpeg/png/webp) or in base64 string.

Pricing

Task-typePrice (USD)
multi-face-swap$0.015 per generation

Param Details

The multi-face-swap API logic operates based on the sequential order of faces detected by the algorithm, with the model assigning numeric labels from 0 to n. While users can generally expect the API to sort faces in a left-to-right order, diagonal face positioning in photos may alter this sequence.

For instance, when one face appears in the upper-left and another in the lower-right, the model might label the upper-left face as 1 and the lower-right as 0. Conversely, a lower-left face could be labeled 0 while an upper-right face becomes 1. This positional variation in labeling occurs due to the algorithm's spatial evaluation of face arrangements within the frame.

Request

Header Params
x-api-key
string 
required
Your API Key used for request authorization
Body Params application/json
model
enum<string> 
required
Allowed value:
Qubico/image-toolkit
task_type
enum<string> 
required
Allowed value:
multi-face-swap
input
object 
required
target_image
string 
required
Target image url.
swap_image
string 
required
Target swapping-image url.
swap_faces_index
string 
required
Reference image face subjects and their replacement sequence. (e.g., 0 1)
target_faces_index
string 
required
Target image face subjects and their replacement order. (e.g., 0 1)
config
object 
optional
webhook_config
object 
optional
Webhook provides timely task notifications. Check PiAPI webhook for detail.
service_mode
enum<string> 
optional
This allows users to choose whether this specific task will get processed under PAYG or HYA mode. If unspecified, then this task will get processed under whatever mode (PAYG or HYA)
the user chose on the workspace setting of your account.
public means this task will be processed under PAYG mode.
private means this task will be processed under HYA mode.
Allowed values:
publicprivate
Example
{
  "model": "Qubico/image-toolkit",
  "task_type": "multi-face-swap",
  "input": {
    "swap_image": "https://i.ibb.co/kVPGB4wG/input.png",
    "target_image": "https://i.ibb.co/Lhbjs0tx/source.png",
    "swap_faces_index": "0,1",
    "target_faces_index": "0,1"
  },
  "config": {
    "webhook_config": {
      "endpoint": "",
      "secret": ""
    }
  }
}

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/image-toolkit",
    "task_type": "multi-face-swap",
    "input": {
        "swap_image": "https://i.ibb.co/kVPGB4wG/input.png",
        "target_image": "https://i.ibb.co/Lhbjs0tx/source.png",
        "swap_faces_index": "0,1",
        "target_faces_index": "0,1"
    },
    "config": {
        "webhook_config": {
            "endpoint": "",
            "secret": ""
        }
    }
}'

Responses

🟢200Success
application/json
Body
code
integer 
required
data
object 
required
task_id
string 
required
model
string 
required
task_type
string 
required
status
enum<string> 
required
Hover on the "Completed" option and you coult see the explaintion of all status: completed/processing/pending/failed/staged
Allowed values:
CompletedProcessingPendingFailedStaged
input
object 
required
output
object 
required
meta
object 
required
detail
null 
required
logs
array [object] 
required
error
object 
required
message
string 
required
If you get non-null error message, here are some steps you chould follow:
Check our common error message
Retry for several times
If you have retried for more than 3 times and still not work, file a ticket on Discord and our support will be with you soon.
Example
{
  "code": 200,
  "data": {
    "task_id": "90efd2db-bcfc-413f-a0be-c893850c9d68",
    "model": "Qubico/image-toolkit",
    "task_type": "face-swap",
    "status": "pending",
    "config": {
      "webhook_config": {
        "endpoint": "",
        "secret": ""
      }
    },
    "input": {},
    "output": null,
    "meta": {},
    "detail": null,
    "logs": [],
    "error": {
      "code": 0,
      "raw_message": "",
      "message": "",
      "detail": null
    }
  },
  "message": "success"
}
Previous
Get Task
Next
Image Faceswap