文档

图像擦除补全

更新时间:

图像擦除补全

说明

支持的领域 / 任务:aigc /图像生成/图像擦除补全

图像擦除补全通过指定图像mask中要删除的人体、宠物、物品、文字、水印等图像区域,在保留背景的同时移除图像中的一个或多个人物、物体、文字等元素,此功能不支持输入prompt的消除。擦除补全技术结合AIGC inpainting等先进技术,可以在多种场景下应用,从而满足用户对隐私保护、内容创作和图像编辑等方面需求。

推荐配合使用人物实例分割API详情接口来进行人体消除,选择完整人体mask区域来消除一个或多个人物,能准确地画出每一个对象边界的像素级掩码(mask)。

输入内容&效果示意

示例输入:原图

人物实例分割掩码图像

示例输入:擦除/保留区域掩码图像

示例输出

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

应用场景

  • 个人隐私保护:在社交媒体平台上分享照片时,需要移除照片中的某些人物或敏感信息(如特定人物、地址、电话号码等)。擦除补全功能能够快速移除这些元素,避免个人信息泄露。

  • 电商商品图制作:在电商平台上展示产品时,需要去除产品图片上的水印、商标或其他不需要的元素。擦除补全能够识别并移除这些元素,使产品图片更加干净、专业,提升用户体验。

  • 营销广告制作:在广告制作中,需要将产品图片与特定场景或人物结合,但原始图片中可能包含不需要的元素。AI消除功能能够轻松移除这些图像元素,增强海报或广告视觉创意效果。

  • 社交媒体创作:用户在社交媒体上分享照片时,可能希望移除照片中的路人、杂乱背景等。AI擦除补全功能让用户能够轻松实现这一需求,提升照片的质量和美观度。

特色优势

  • AI擦除补全技术能够智能填补被移除元素留下的空白区域,使修复后的图像看起来自然无痕,又保持视觉效果的和谐与专业性,无需担心人工合成的痕迹。

  • AI擦除补全功能能够自动识别和移除图像中的多种图像格式和尺寸元素的对象,精确识别图像中的对象,确保擦除对象的准确性和补全对象的一致性&自然性。

  • 企业级平台服务提供在高并发、大流量下的稳定写真图片生成响应和99.9%的可靠性保障,可直接调用的简单推理API接口,服务简单易用,易被集成,兼容性强。

模型概览

模型名

模型简介

image-erase-completion

图像擦除补全通过指定图像mask中要删除的人体、宠物、物品、文字、水印等图像区域,在保留背景的同时移除图像中的一个或多个人物、物体、文字等元素,此功能不支持输入prompt的消除。擦除补全技术结合了计算机视觉、AIGC inpainting等先进技术,可以在多种场景下应用,从而满足用户对隐私保护、内容创作和图像编辑等方面需求。

输入限制

图像输入限制:

  • 图片分辨率:可支持输入分辨率范围:单边不小于512且不超过4096。

  • 图片格式:JPEG,PNG,JPG,BMP,WEBP。

  • 图片大小:不超过10M。

  • URL地址中不能包含中文字符。

HTTP调用接口

功能描述

本模型需要相对较长的算法调用时间,所以在接口层面采用了异步调用的方式进行任务提交,在通过任务接口提交作业之后,系统会返回对应的作业ID,随后可以通过对应的异步作业查询接口获取任务的状态并且在作业到达最终完成态后取回对应的作业结果。

前提条件

说明

接口限制:对单账户(含主账号与RAM子账号)任务下发接口限制QPS为2,并发任务数量限制为1。

作业提交接口调用

POST https://dashscope.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis

入参描述

传参方式

字段

类型

必选

描述

示例值

Header

Content-Type

String

请求类型:application/json

application/json

Authorization

String

API-Key,例如:Bearer d1**2a

Bearer d1**2a

X-DashScope-Async

String

固定使用 enable,表明使用异步方式提交作业。

enable

Body

model

String

指明需要调用的模型。

image-erase-completion

input.image_url

String

输入图像url地址,图片格式JPG/JPEG、PNG、HEIF、WEBP,

输入图像分辨率不低于512*512且不超过4096*4096,单边范围为512-4096。

例如:http://xxx/image.png

input.mask_url

String

输入擦除区域掩码图像url地址,图片格式JPG/JPEG、PNG、HEIF、WEBP,

输入图像分辨率不低于512*512且不超过4096*4096,单边范围为512-4096。

在与图像相同大小的空白画布进行涂抹,非0值区域为擦除掩码区域;也可选用人物实例分割API详情直接产生人物的分割结果作为擦除掩码区域。

例如:http://xxx/mask.png

input.foreground_url

String

输入保留区域掩码图像url地址,图片格式JPG/JPEG、PNG、HEIF、WEBP,

输入图像分辨率不低于512*512且不超过4096*4096,单边范围为512-4096。

在与图像相同大小的空白画布进行涂抹,非0值区域为保留掩码区域;也可选用人物实例分割API详情,通过指定人物id的方式分离该人物的掩码区域,保留该人物不被擦除。

例如:http://xxx/foreground.png

parameters.dilate_flag

Bool

默认为true,建议值:

若擦除mask为算法分割结果,设置为true;

若擦除mask为涂抹结果,设置为false。

true

出参描述

字段

类型

描述

示例值

output.task_id

String

本次请求的异步任务的作业 id,实际作业结果需要通过异步任务查询接口获取。

13b1848b-5493-4c0e-8c44-68d038b492af

output.task_status

String

提交异步任务后的作业状态。

PENDING

request_id

String

本次请求的系统唯一码

7574ee8f-38a3-4b1e-9280-11c33ab46e51

请求示例

以下示例展示通过CURL命令来调用本模型的脚本。

说明

需要使用您的API-KEY替换示例中的 YOUR-DASHSCOPE-API-KEY,代码才能正常运行。

curl --location --request POST 'https://dashscope.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header 'Authorization: Bearer YOUR-DASHSCOPE-API-KEY' \
--header 'Content-Type: application/json' \
--header 'X-DashScope-DataInspection: enable' \
--data-raw '{
    "model": "image-erase-completion",
    "input": {
            "image_url": "http://xxx/input.png",
            "mask_url": "http://xxx/mask.png",
            "foreground_url": "http://xxx/foreground.png"
        },
    "parameters":{
        "dilate_flag":true
    }
}'

响应示例

{
    "output": {
        "task_status": "PENDING",
        "task_id": "53950fb7-281a-4e60-b543-818c4100ac9e"
    },
    "request_id": "1027557e-8c3f-9db5-8cd2-cfa42ee161dc"
}

异常响应示例

在提交作业请求出错的情况下,输出的结果中会通过 code 和 message 指明出错原因。

{
    "code":"InvalidApiKey",
    "message":"Invalid API-key provided.",
    "request_id":"fb53c4ec-1c12-4fc4-a580-cdb7c3261fc1"
}

作业任务状态查询和结果获取接口

GET https://dashscope.aliyuncs.com/api/v1/tasks/task_id

入参描述

传参方式

字段

类型

必选

描述

示例值

Url Path

task_id

String

需要查询作业的 task_id

13b1848b-5493-4c0e-8c44-68d038b492af

Header

Authorization

String

API-Key,例如:Bearer d1**2a

Bearer d1**2a

出参描述

字段

类型

描述

示例值

status_code

Int

200(HTTPStatus.OK)表示请求成功,否则表示请求失败,可以通过code获取错误码,通过message字段获取错误详细信息。

200

request_id

String

系统对一次API调用赋予的唯一标识。当排查问题的时候,开发者可以将 request_id 进行反馈以定位某次调用。

e5d70b02-ebd3-98ce-9fe8-759d7d7b107d

code

String

如果失败表示错误码,参考错误码表。

Invalid Image Url

message

String

如果失败,内容为失败详细信息。

image download error

usage.image_count

Int

生成图像的数量

1

output.output_image_url

String

结果图像url地址,限制输出图像长宽比范围为1:10-10:1。

http://xxx/result.jpg

output.task_status

String

任务执行是否成功,SUCCEEDED或者FAILED

SUCCEEDED

请求示例

以下示例展示通过CURL命令来调用本模型的脚本。

说明

需要使用您的API-KEY替换示例中的 YOUR-DASHSCOPE-API-KEY ,代码才能正常运行。

curl -X GET \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
https://dashscope.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-af6e-a0c6a421c010

响应示例(作业执行中)

作业提交后将处于排队状态,在得到调度之后将转为运行状态,此时作业的状态为RUNNING,task_metrics将给出具体batch状态;

{
    "request_id":"7574ee8f-38a3-4b1e-9280-11c33ab46e51",
    "output":{
        "task_id":"86ecf553-d340-4e21-af6e-a0c6a421c010",
        "task_status":"RUNNING",
        "task_metrics":{
            "TOTAL":1,
            "SUCCEEDED":1,
            "FAILED":0
        }
    }
}

响应示例(作业成功执行完毕)

如果作业执行完成并成功之后,再次查询作业状态,接口将在告知作业状态的同时,一并将作业的结果返回。对于本模型,作业在结束之后的状态会持续保留24小时以备客户随时查询,24小时之后,作业将从系统中清除,相关的结果也将一并清除;对应的,作业生成的结果为图像的URL地址,出于安全考虑,该URL的下载有效期也是24小时,需要用户在获取作业结果后根据需要及时使用或者转存。

{
    "request_id": "b67df059-ca6a-9d51-afcd-9b3c4456b1e2",
    "output": {
        "task_id": "d76ec1e8-ea27-4038-8913-235c88ef0f70",
        "task_status": "SUCCEEDED",
        "submit_time": "2024-05-16 13:50:01.247",
        "scheduled_time": "2024-05-16 13:50:01.354",
        "end_time": "2024-05-16 13:50:27.795",
        "output_image_url": "http://xxx/result.png"
    },
    "usage": {
        "image_count": 1
    }
}

响应示例(作业成功执行失败)

{
    "request_id": "dccfdf23-b38e-97a6-a07b-f35118c1ada6",
    "output": {
        "task_id": "4cbabbdf-2c1f-43f4-b983-c2cc47f4c115",
        "task_status": "FAILED",
        "submit_time": "2024-05-16 14:15:14.103",
        "scheduled_time": "2024-05-16 14:15:14.154",
        "end_time": "2024-05-16 14:15:14.694",
        "code": "InvalidParameter.FileDownload",
        "message": "download for input_image error"
    }
}
{
   "request_id":"4246a1de-2aab-9b49-ba87-e0d12e221a06",
   "output":{
      "task_id":"14a016cb-baee-4cd6-b4b5-281f77c13ef4",
      "task_status":"FAILED",
      "submit_time":"2024-03-22 12:07:07.183",
      "scheduled_time":"2024-03-22 12:07:07.253",
      "end_time":"2024-03-22 12:07:07.604",
      "code":"InternalError.Algo",
      "message":"video generation error"
   }
}

响应示例(作业失败)

如果因为某种原因作业失败,则作业状态会设置为FAILED,并且通过code和message字段指明错误原因。

{
    "request_id": "7574ee8f-38a3-4b1e-9280-11c33ab46e51"
  	"output": {
      "task_id": "a8532587-fa8c-4ef8-82be-0c46b17950d1", 
    	"task_status": "Failed",
    	"code": "xxx", 
    	"message": "xxxxxx", 
    }  
}

状态码说明

DashScope灵积模型服务通用状态码请查阅:返回状态码说明

同时本模型还有如下特定错误码:

http 返回码*

错误码(code)

错误信息(message)

含义说明

400

InvalidParameter.JsonPhrase

input json error

输入json错误

400

InvalidParameter.FileDownload

oss download error

输入图像下载失败

400

InvalidParameter.ImageFormat

read image error

读取图像失败

400

InvalidParameter.ImageContent

The image content does not comply with green network verification.

图像内容不合规

400

InvalidParameter

the parameters must conform to the specification: xxx

输入参数超出范围

500

InternalError.Algo

algorithm process error

算法错误

500

InternalError.FileUpload

oss upload error

文件上传失败