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。如有任何问题,请随时联系我们的技术支持团队。

相关推荐
Murphy202318 小时前
.net4.0 调用API(form-data)上传文件及传参
开发语言·c#·api·httpwebrequest·form-data·uploadfile·multipart/form-
waicsdn_haha2 天前
Postman最新详细安装及使用教程【附安装包】
测试工具·api·压力测试·postman·策略模式·get·delete
Json_181790144803 天前
拍立淘按图搜索API接口需要遵循一定的步骤和注意事项
大数据·python·api
Json_181790144804 天前
淘系商品评论json数据示例参考,API接口系列
大数据·json·api
北京_宏哥5 天前
python接口自动化(三十五)-封装与调用--流程类接口关联(详解)
前端·python·api
SuperherRo7 天前
基础入门-Web应用&蜜罐系统&堡垒机运维&API内外接口&第三方拓展架构&部署影响
api·堡垒机·蜜罐·第三方应用
RacheV+TNY2642787 天前
低代码/无代码开发平台下的API接口创新实践
大数据·网络·爬虫·python·api
VIP_CQCRE7 天前
AI证件照制作 API 快速生成证件照
api
数据龙傲天8 天前
API接口性能优化:提升电商数据处理速度的关键
爬虫·python·性能优化·数据分析·api
Json_181790144808 天前
电商商品详情API接口(item get)数据分析上货
api