LogoAICore Docs
图像API接口

Remove-object (物体消除)

智能物体擦除和修复API接口,提供智能物体擦除功能,可以精确移除图片中不需要的物体,并智能填充背景内容,保持画面的自然连贯

📋 基本信息

属性
接口地址POST /v1/chat/completions
模型名称remove-object

📝 请求参数

路径参数类型必填说明默认
-modelstring模型名称,固定为 remove-object-
-messagesarray消息数组,包含用户输入的文本和图片-
messages[]rolestring消息角色,固定为 user-
messages[]contentarray内容数组,包含文本和图片元素-
content[]typestring内容类型:textimage_url-
content[]textstring当 type 为 text 时的文本内容"a person"
content[]image_urlobject当 type 为 image_url 时的图片对象-
image_urlurlstring图片的URL地址(当type为image_url时必填)-

注意:remove-object 模型需要两个图片:

  • 第一个图片:遮罩图片(mask),标记要消除的部分
  • 第二个图片:源图片(image),要处理的原始图片

📝 请求示例

curl https://api.xty.app/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxx" \
  -d '{
    "model": "remove-object",
    "messages": [
      {
        "role": "user",
        "content": [
          {"type": "text", "text": "a person"},
          {
            "type": "image_url",
            "image_url": {
              "url": "https://image.xty.app/pbxt/JEd3XamngYYznrLZH70ecBlkKm5ga11IMtKEuKkT6uZ3JkyV/mask_1.png"
            }
          },
          {
            "type": "image_url",
            "image_url": {
              "url": "https://image.xty.app/pbxt/JEd3XXLFAJBo7XiG4aK6BViXwnXRsIO9B32jEoooLJtSzLlp/dog.png"
            }
          }
        ]
      }
    ]
  }'
import requests
import json

url = "https://api.xty.app/v1/chat/completions"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer sk-xxxxx"
}
data = {
    "model": "remove-object",
    "messages": [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "a person"},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://image.xty.app/pbxt/JEd3XamngYYznrLZH70ecBlkKm5ga11IMtKEuKkT6uZ3JkyV/mask_1.png"
                    }
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://image.xty.app/pbxt/JEd3XXLFAJBo7XiG4aK6BViXwnXRsIO9B32jEoooLJtSzLlp/dog.png"
                    }
                }
            ]
        }
    ]
}

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="remove-object",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "a person"},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://image.xty.app/pbxt/JEd3XamngYYznrLZH70ecBlkKm5ga11IMtKEuKkT6uZ3JkyV/mask_1.png"
                    }
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://image.xty.app/pbxt/JEd3XXLFAJBo7XiG4aK6BViXwnXRsIO9B32jEoooLJtSzLlp/dog.png"
                    }
                }
            ]
        }
    ]
)

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: "remove-object",
    messages: [
      {
        role: "user",
        content: [
          {type: "text", text: "a person"},
          {
            type: "image_url",
            image_url: {
              url: "https://image.xty.app/pbxt/JEd3XamngYYznrLZH70ecBlkKm5ga11IMtKEuKkT6uZ3JkyV/mask_1.png"
            }
          },
          {
            type: "image_url",
            image_url: {
              url: "https://image.xty.app/pbxt/JEd3XXLFAJBo7XiG4aK6BViXwnXRsIO9B32jEoooLJtSzLlp/dog.png"
            }
          }
        ]
      }
    ]
  })
})
.then(response => response.json())
.then(data => console.log(data));

📤 响应示例

成功响应

{
  "id": "xty-1704067200000",
  "object": "chat.completion",
  "created": 1704067200,
  "model": "remove-object",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": {
        "role": "assistant",
        "content": "https://file.xty.app/docs/remove_object.png"
      }
    }
  ],
  "usage": {
    "prompt_tokens": 0,
    "completion_tokens": 0,
    "total_tokens": 0
  }
}

错误响应

{
  "error": {
    "message": "remove-object模型需要两个图片(mask和image),请确保在请求中包含两个图片",
    "type": "invalid_request_error",
    "param": null,
    "code": null
  }
}

🖼️ 效果展示

输入示例

输入文字:请移除这张图片中的指定对象

输入图片1(遮罩图片)输入图片1 - 遮罩图片

输入图片2(原图)输入图片2 - 原图

输出结果

输出图片输出图片 - 移除对象后的结果

🎯 遮罩制作指南

遮罩图片要求

  • 格式:PNG格式,支持透明度
  • 颜色:白色区域表示要保留的部分,黑色区域表示要擦除的部分
  • 分辨率:与源图片相同分辨率
  • 精确度:遮罩边缘越精确,处理效果越好

💡 使用技巧

图片质量要求

  • 清晰度:使用高分辨率、清晰的图片
  • 遮罩精度:遮罩边缘越精确,擦除效果越自然
  • 背景复杂度:简单背景的修复效果更好

最佳实践

  1. 遮罩制作:确保遮罩准确标记要擦除的区域
  2. 物体大小:避免擦除过大的物体,可能影响画面完整性
  3. 边缘处理:对于复杂边缘,制作更精确的遮罩

⚠️ 注意事项

  1. 图片数量:remove-object 模型必须提供两个图片(mask和image),否则会返回错误
  2. 遮罩精度:遮罩越精确,擦除效果越自然
  3. 背景复杂度:简单背景的修复效果更好
  4. 图片格式:支持通过URL和base64提供的图片,格式包括 JPEG、PNG、WebP 等
  5. 文件大小:建议每张图片不超过 10MB
  6. 处理时间:根据图片复杂度,处理时间在10-30秒之间
  7. URL有效期:返回的图像URL地址有效期为1个小时,请及时保存或下载

🔗 相关链接