图像API接口
Face-swap (AI换脸)
高精度AI换脸技术API接口,提供高精度的人脸替换功能,可以将目标图片中的人脸替换为指定的源人脸,保持自然逼真的效果
📋 基本信息
| 属性 | 值 |
|---|---|
| 接口地址 | POST /v1/chat/completions |
| 模型名称 | face-swap |
📝 请求参数
| 路径 | 参数 | 类型 | 必填 | 说明 | 默认 |
|---|---|---|---|---|---|
| - | model | string | ✅ | 模型名称,固定为 face-swap | - |
| - | messages | array | ✅ | 消息数组,包含用户输入的文本和图片 | - |
messages[] | role | string | ✅ | 消息角色,固定为 user | - |
messages[] | content | array | ✅ | 内容数组,包含文本和图片元素 | - |
content[] | type | string | ✅ | 内容类型:text 或 image_url | - |
content[] | text | string | ❌ | 当 type 为 text 时的文本内容 | "a person" |
content[] | image_url | object | ❌ | 当 type 为 image_url 时的图片对象 | - |
image_url | url | string | ✅ | 图片的URL地址(当type为image_url时必填) | - |
注意:face-swap 模型需要两个图片:
- 第一个图片:要替换的人脸图片(swap_image)
- 第二个图片:目标图片(input_image)
📝 请求示例
curl https://api.xty.app/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxx" \
-d '{
"model": "face-swap",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "a person"},
{
"type": "image_url",
"image_url": {
"url": "https://file.xty.app/docs/msk.jpg"
}
},
{
"type": "image_url",
"image_url": {
"url": "https://file.xty.app/docs/lbt.jpg"
}
}
]
}
]
}'import requests
import json
url = "https://api.xty.app/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer sk-xxxxx"
}
data = {
"model": "face-swap",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "a person"},
{
"type": "image_url",
"image_url": {
"url": "https://file.xty.app/docs/msk.jpg"
}
},
{
"type": "image_url",
"image_url": {
"url": "https://file.xty.app/docs/lbt.jpg"
}
}
]
}
]
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.json())from openai import OpenAI
import httpx
client = OpenAI(
base_url="https://api.xty.app/v1",
api_key="sk-xxxxx",
http_client=httpx.Client(
base_url="https://api.xty.app/v1",
follow_redirects=True,
),
)
response = client.chat.completions.create(
model="face-swap",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "a person"},
{
"type": "image_url",
"image_url": {
"url": "https://file.xty.app/docs/msk.jpg"
}
},
{
"type": "image_url",
"image_url": {
"url": "https://file.xty.app/docs/lbt.jpg"
}
}
]
}
]
)
print(response)fetch('https://api.xty.app/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer sk-xxxxx'
},
body: JSON.stringify({
model: "face-swap",
messages: [
{
role: "user",
content: [
{type: "text", text: "a person"},
{
type: "image_url",
image_url: {
url: "https://file.xty.app/docs/msk.jpg"
}
},
{
type: "image_url",
image_url: {
url: "https://file.xty.app/docs/lbt.jpg"
}
}
]
}
]
})
})
.then(response => response.json())
.then(data => console.log(data));📤 响应示例
成功响应
{
"id": "xty-1704067200000",
"object": "chat.completion",
"created": 1704067200,
"model": "face-swap",
"choices": [
{
"index": 0,
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "https://file.xty.app/docs/msk-face.jpg"
}
}
],
"usage": {
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0
}
}错误响应
{
"error": {
"message": "face-swap模型需要两个图片,请确保在请求中包含两个图片",
"type": "invalid_request_error",
"param": null,
"code": null
}
}🖼️ 效果展示
输入示例
输入文字:a person
输入图片1(换脸源图片):

输入图片2(目标图片):

输出结果
输出图片:

💡 使用技巧
图片质量要求
- 源人脸图片(第一个图片):建议使用正面、清晰的人脸照片,光线均匀
- 目标图片(第二个图片):确保人脸区域清晰可见,角度与源人脸相近
- 分辨率:建议使用高分辨率图片以获得更好效果
最佳实践
- 光线条件:选择光线均匀的照片,避免过暗或过亮
- 角度匹配:源人脸角度与目标人脸角度相近效果更好
- 表情一致:相似的面部表情有助于提升自然度
- 图片顺序:第一个图片是要替换的人脸,第二个图片是目标图片
⚠️ 注意事项
- 图片数量:face-swap 模型必须提供两个图片,否则会返回错误
- 隐私保护:请确保有权使用所提供的人脸图像
- 合规使用:严禁用于非法用途或未经授权的身份冒用
- 图片格式:支持 JPEG、PNG、WebP 等格式
- 文件大小:建议每张图片不超过 10MB
- 处理时间:根据图片复杂度,处理时间在10-30秒之间
- URL有效期:返回的图像URL地址有效期为1个小时,请及时保存或下载