Face Swap API 的对接和使用

Face Swap API 的主要功能是通过输入一张源图片和一张目标图片来将目标图片的人脸换到源图片的人脸之中。

本文档将详细介绍 Face Swap API 的对接说明,帮助您轻松集成并充分利用该 API 的强大功能。通过 Face Swap API ,您可以轻松实现将目标图片的人脸换到源图片的人脸之中。

申请流程

要使用 Face Swap API,需要先到 申请页面 Face Swap API申请相应的服务,进入页面之后,点击「Acquire」按钮,如图所示:

如果您尚未登录或注册,会自动跳转到登录页面邀请您来注册和登录,登录注册之后会自动返回当前页面。

首次申请时会有免费额度赠送,可以免费使用该 API。

请求示例

我们以俩种图片为示例,演示如何使用该 API。假设源图片为下图所示:

目标图片为:

接下来演示如何将目标图片的人脸换到源图片的人脸之中。

设置请求头和请求体

Request Headers 包括:

  • accept:指定接收 JSON 格式的响应结果,这里填写为 application/json
  • authorization:调用 API 的密钥,申请之后可以直接下拉选择。

Request Body 包括:

  • source_image_url:上传的源图片链接。
  • target_image_url:上传的目标图片链接。

设置如下图所示:

代码示例

可以发现,在页面右侧已经自动生成了各种语言的代码,如图所示:

部分代码示例如下:

CURL

bash 复制代码
curl -X POST 'https://api.acedata.cloud/face/swap' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "source_image_url": "https://cdn.acedata.cloud/n1lmd8.png",
  "target_image_url": "https://cdn.acedata.cloud/3np95r.png"
}'

Python

python 复制代码
import requests

url = "https://api.acedata.cloud/face/swap"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "source_image_url": "https://cdn.acedata.cloud/n1lmd8.png",
    "target_image_url": "https://cdn.acedata.cloud/3np95r.png"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)

响应示例

请求成功后,API 将返回换脸后端图片结果信息。例如:

json 复制代码
{
  "image_url": "https://platform.cdn.acedata.cloud/face/4b13bdeb-1b19-4ea5-bddf-c2da14ba72e3.png",
  "image_width": 2008,
  "image_height": 1942,
  "image_size": 4006213,
  "task_id": "4b13bdeb-1b19-4ea5-bddf-c2da14ba72e3"
}

可以看到,结果中有一个 image_url 字段,里面包含了将目标图片的人脸换掉原图片的人脸后的图片链接,其它信息如下图所示:

  • image_url,生成图片的链接。
  • image_width,生成图片的宽度。
  • image_height,生成图片的长度。
  • image_size,生成图片的大小。
  • task_id,此次生成任务的 ID。

生成图片结果为:

可明显看到该图片已经成功将目标图片的人脸换到源图片的人脸之中。

异步回调

由于 Face Swap 生成的时间相对较长,大约需要 1-2 分钟,如果 API 长时间无响应,HTTP 请求会一直保持连接,导致额外的系统资源消耗,所以本 API 也提供了异步回调的支持。

整体流程是:客户端发起请求的时候,额外指定一个 callback_url 字段,客户端发起 API 请求之后,API 会立马返回一个结果,包含一个 task_id 的字段信息,代表当前的任务 ID。当任务完成之后,生成 Face Swap 的结果会通过 POST JSON 的形式发送到客户端指定的 callback_url,其中也包括了 task_id 字段,这样任务结果就可以通过 ID 关联起来了。

下面我们通过示例来了解下具体怎样操作。

首先,Webhook 回调是一个可以接收 HTTP 请求的服务,开发者应该替换为自己搭建的 HTTP 服务器的 URL。此处为了方便演示,使用一个公开的 Webhook 样例网站 webhook.site/,打开该网站即可得到一... Webhook URL,如图所示:

将此 URL 复制下来,就可以作为 Webhook 来使用,此处的样例为 webhook.site/3b76eba5-45...

接下来,我们可以设置字段 callback_url 为上述 Webhook URL,同时填入相应的参数,如图所示:

点击运行,可以发现会立即得到一个结果,如下:

json 复制代码
{
  "task_id": "9cba9d36-3b14-43c9-85b6-86f6dfc3b096"
}

稍等片刻,我们可以在 webhook.site/3b76eba5-45... 上观察到生成 Face Swap 的结果,如图所示:

内容如下:

json 复制代码
{
  "success": true,
  "task_id": "9cba9d36-3b14-43c9-85b6-86f6dfc3b096",
  "image_url": "https://platform.cdn.acedata.cloud/face/9cba9d36-3b14-43c9-85b6-86f6dfc3b096.png",
  "image_width": 2008,
  "image_height": 1942,
  "image_size": 4006481
}

可以看到结果中有一个 task_id 字段,其他的字段都和上文类似,通过该字段即可实现任务的关联。

错误处理

在调用 API 时,如果遇到错误,API 会返回相应的错误代码和信息。例如:

  • 400 token_mismatched:Bad request, possibly due to missing or invalid parameters.
  • 400 api_not_implemented:Bad request, possibly due to missing or invalid parameters.
  • 401 invalid_token:Unauthorized, invalid or missing authorization token.
  • 429 too_many_requests:Too many requests, you have exceeded the rate limit.
  • 500 api_error:Internal server error, something went wrong on the server.

错误响应示例

json 复制代码
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

结论

通过本文档,您已经了解了如何使用 Face Swap API 实现将将目标图片的人脸换到源图片的人脸之中。希望本文档能帮助您更好地对接和使用该 API。如有任何问题,请随时联系我们的技术支持团队。

相关推荐
Rose 使者11 天前
基站定位接口如何如何用PHP实现调用?
api·基站
zandy101114 天前
嵌入式BI实战指南:通过衡石API/SDK深度集成数据分析能力
数据挖掘·数据分析·api·嵌入式bi·sdk工具
胖墩会武术15 天前
OpenAI API调用教程
python·openai·api
百锦再15 天前
自动打电话软件设计与实现
python·django·html·api·语音·打电话
栗子味清清16 天前
API 管理系统实践指南:监控、安全、性能全覆盖
安全·ai·ai作画·架构·api·数据安全
一个专注api接口开发的小白17 天前
亚马逊 API 实战:商品详情页实时数据采集接口开发与调用
前端·数据挖掘·api
tanshu-API喵喵君17 天前
全网手机二次放号查询API功能说明和Python调用示例
python·api·手机二次放号
羑悻的小杀马特17 天前
从信息孤岛到智能星云:学习助手编织高校学习生活的全维度互联网络
c++·学习·生活·api
用户2680013791918 天前
京东商品详情数据采集的格式参考,json数据示例参考
api
dearxue18 天前
你需要的企业级MCP开发来了-Apihug 1.4.1-RELEASE + Plugin 0.7.5 一键让你 Spring 程序拥有企业级MCP 功能!
spring·api·mcp