You need to enable JavaScript to run this app.
文档中心
veImageX

veImageX

复制全文
下载 pdf
AI 能力组件 2.0
图像修复
复制全文
下载 pdf
图像修复

图像修复附加组件利用 AI 能力,能够自动检测并擦除图像中的常见图标或指定区域内容,并对擦除区域进行背景智能填充,实现自然修复效果。本文介绍如何使用图像修复附加组件。
Image

使用场景
  • 图标擦除:批量去除图像中的常见标志(如水印、Logo、牛皮癣广告),方便您复用优质图像素材。适用于影视制作、视频剪辑和图片拼接等场景。
  • 其他擦除:自定义擦除范围,去除图像中的多余物体(如人像、杂物),并自动填充背景。适用于美图、拍照、设计类 App 及小程序等业务场景。

使用限制

为确保能够生成图像,请满足以下限制。

  • 输入大小:单张图 <= 10 MB。如果超出 10 MB,请先通过模板压缩图片大小。
  • 输入分辨率:10 px ≤ 短边 ≤ 1440 px,10 px ≤ 长边 ≤ 2560 px。如果为其他分辨率,请先通过模板变更图片分辨率。
  • 输入格式:.png、.jpg、.jpeg、.webp、.tiff、.bmp、.heic。如果为其他格式,请先通过模板变更图片格式。
  • 输出大小:单张图 <= 10 MB。
  • 输出格式:.png、.jpeg、.webp、.heic。可通过模板二次处理为其他格式。

使用方法

前提条件

  • 开通 veImageX 产品服务创建服务
  • 已开通智能处理计费配置
  • (可选)如需完成以下操作,确保已新建模板
    • 处理输入图像:如果输入图像不符合输入限制,您可以通过模板来压缩图片大小或变更图片格式等,再将处理后的图片作为输入图像。
    • 处理生成图像:对生成的图像进行二次处理,例如添加水印或调整分辨率。

步骤一:调用 AI 能力

方式一:通过 API 调用

同步处理

调用同步处理接口 AIProcess,提交一条 URL 或 URI 资源执行同步 AI 图像处理任务。
请求示例

POST https://imagex.volcengineapi.com/?Action=AIProcess&Version=2023-05-01
{
    "ServiceId": "91**2g", // 必选。服务 ID。
    "WorkflowTemplateId": "system_workflow_erasev2", // 必选。模板 ID。
    "WorkflowParameter": "{\"Input\":{\"ObjectKey\":\"a.png\",\"DataType\":\"uri\"},\"InpaintParam\":{\"ModelId\":\"aigc_erase\",\"MaskUri\":\"test01.png\",\"Prompt\":\"擦除图像中的文字\",\"OutputFormat\":\"jpeg\"}}" // 必选。模板参数。
}

其中,

  • ServiceId:服务 ID,可从服务管理页面获取。
  • WorkflowTemplateId:取值固定为 system_workflow_erasev2
  • WorkflowParameter:根据输入参数,设置该参数取值。

返回示例

{
    "ResponseMetadata": {
        "RequestId": "20230604110420****100232280022D31",
        "Action": "AIProcess",
        "Version": "2023-05-01",
        "Service": "ImageX",
        "Region": "cn-north-1"
    },
    "Result": {
        "Output": "{\"ObjectKey\":\"a.jpeg\",\"Size\":54509,\"Format\":\"jpeg\"}"
    }
}

Output 的参数含义详见输出参数

异步处理

批量执行 AI 图像处理任务。

注意

确保已新建并启动批量处理任务队列。详见步骤一:新建并启动任务队列

  1. 调用异步处理接口 CreateImageAITask,创建批量处理任务。
    请求示例

    POST https://imagex.volcengineapi.com/?Action=CreateImageAITask&Version=2023-05-01
    {
        "ServiceId": "5s****fo", // 必选。服务 ID。
        "DataType": "uri", // 必选。图片地址类型,支持取值 uri 和 url。
        "DataList": [
            "a.png",
            "uridemo.png"
        ], // 必选。图片 URI 或 URL 列表(URI 不包含 tos-*-i-* 前缀)。
        "CallbackConf": { // 可选。回调配置。
            "Method": "HTTP", // 必选。回调方式,取值固定为 HTTP。
            "Endpoint": "https://demo.com", // 必选。回调地址,用于接收处理结果。
            "DataFormat": "JSON", // 可选。回调数据格式,支持取值 XML 和 JSON。
            "Args": "product id", // 可选。业务自定义回调参数。
            "Type": "task" // 可选。回调触发类型,支持取值 task 和 entry。默认值为 entry。
        },
        "WorkflowParameter": "{\"InpaintParam\":{\"ModelId\":\"aigc_erase\",\"MaskUri\":\"test01.png\",\"Prompt\":\"擦除图像中的文字\",\"OutputFormat\":\"jpeg\"}}", // 必选。模板参数。
        "WorkflowTemplateId": "system_workflow_erasev2", // 必选。模板 ID。
        "QueueId": "62f224ce61****826e38c29a" // 必选。队列 ID。
    }
    

    其中,

    • WorkflowTemplateId:取值固定为 system_workflow_erasev2
    • WorkflowParameter:根据输入参数,设置该参数取值。
      返回示例
    {
        "ResponseMetadata": {
            "RequestId": "20230604110420****100232280022D31",
            "Action": "CreateImageAITask",
            "Version": "2023-05-01",
            "Service": "ImageX",
            "Region": "cn-north-1"
        },
        "Result": {
            "TaskId": "649b9d3****5537684010a7", // 任务 ID。
            "QueueId": "62f224ce61****826e38c29a" // 队列 ID。
        }
    }
    
  2. 通过以下任一方式获取图像处理结果。

    • 回调通知:如果您在上一步设置了回调地址(Endpoint),则当任务完成后,veImageX 会向该回调地址发送回调消息。详见回调
    • 主动查询:如果您未设置回调地址,调用 GetImageAIDetails 接口,获取图像处理结果。

方式二:通过服务端 SDK 调用

veImageX 提供了以下编程语言的 SDK,方便您调用 API。

前提条件

调用接口前,请先完成 Golang SDK 的安装及初始化操作。

同步处理

提交一条 URL 或 URI 资源执行同步 AI 图像处理任务。详见同步处理

package imagex_test

import (
        "context"
        "encoding/json"
        "fmt"
        "testing"

        "github.com/volcengine/volc-sdk-golang/base"
        imagex "github.com/volcengine/volc-sdk-golang/service/imagex/v2"
)

func Test_AIProcess(t *testing.T) {
        instance := imagex.NewInstance()

        instance.SetCredential(base.Credentials{
              // 强烈建议不要把 ak 和 sk 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
      // 本示例通过从环境变量中读取 ak 和 sk,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ak 和 sk。
                AccessKeyID:     "ak",
                SecretAccessKey: "sk",
        })

        param := &imagex.AIProcessReq{
                AIProcessBody: &imagex.AIProcessBody{
                  ServiceID: "91**2g", // 必选。服务 ID。
                  WorkflowTemplateID: "system_workflow_erasev2",   // 必选。模板 ID。固定取值。
                  WorkflowParameter: "{\"Input\":{\"ObjectKey\":\"a.png\",\"DataType\":\"uri\"},\"InpaintParam\":{\"ModelId\":\"aigc_erase\",\"MaskUri\":\"test01.png\",\"Prompt\":\"擦除图像中的文字\",\"OutputFormat\":\"jpeg\"}}", // 必选。根据本文模板说明 > 输入参数,设置该参数取值。
 },
        }
        
        resp, err := instance.AIProcess(context.Background(), param)

        if err != nil {
                fmt.Printf("error %v", err)
        } else {
                t, _ := json.Marshal(resp)
                fmt.Printf("success %v", string(t))
        }
}

异步处理

  1. 创建批量处理任务。接口参数说明详见 CreateImageAITask

    package imagex_test
    
    import (
            "context"
            "encoding/json"
            "fmt"
            "testing"
    
            "github.com/volcengine/volc-sdk-golang/base"
            imagex "github.com/volcengine/volc-sdk-golang/service/imagex/v2"
    )
    
    func Test_CreateImageAITask(t *testing.T) {
            instance := imagex.NewInstance()
    
            instance.SetCredential(base.Credentials{
                  // 强烈建议不要把 ak 和 sk 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
                  // 本示例通过从环境变量中读取 ak 和 sk,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ak 和 sk。        
                    AccessKeyID:     "ak",
                    SecretAccessKey: "sk",
            })
    
            param := &imagex.CreateImageAITaskReq{
                CreateImageAITaskBody: &imagex.CreateImageAITaskBody{
                   ServiceID: "5s****fo",                       // 必选。服务 ID。
                   QueueID:   "649a9dbc32**064d44cf5b0",        // 必选。队列 ID。
                   DataType:  "uri",                            // 必选。图片地址类型,支持取值 uri 和 url。
                   DataList:  []string{"a.png", "uridemo.png"}, // 必选。图片 URI 或 URL 列表(URI 不包含 tos-*-i-* 前缀)。
                   CallbackConf: &imagex.CreateImageAITaskBodyCallbackConf{ // 可选。回调配置。
                      Method:     "HTTP",             // 必选。回调方式,取值固定为 HTTP。
                      Endpoint:   "https://demo.com", // 必选。回调地址,用于接收处理结果。
                      DataFormat: "JSON",             // 可选。回调数据格式,支持取值 XML 和 JSON。
                      Args:       "productid",        // 可选。业务自定义回调参数。
                      Type:       "task",             // 可选。回调触发类型,支持取值 task 和 entry。默认值为 entry。
                   },
                   WorkflowParameter:  "{\"InpaintParam\":{\"ModelId\":\"aigc_erase\",\"MaskUri\":\"test01.png\",\"Prompt\":\"擦除图像中的文字\",\"OutputFormat\":\"jpeg\"}}", // 必选。根据本文模板说明 > 输入参数,设置该参数取值。
                   WorkflowTemplateID: "system_workflow_erasev2",                                                // 必选。模板 ID。固定取值。
                },
            }
    
            resp, err := instance.CreateImageAITask(context.Background(), param)
    
            if err != nil {
                    fmt.Printf("error %v", err)
            } else {
                    t, _ := json.Marshal(resp)
                    fmt.Printf("success %v", string(t))
            }
    }
    
  2. 通过以下任一方式获取图像处理结果。

    • 回调通知:如果您在上一步设置了回调地址,则当任务完成后,veImageX 会向该回调地址发送回调消息。详见回调
    • 主动查询:如果您未设置回调地址,需主动获取图像处理结果。接口参数说明详见 GetImageAIDetails
      package imagex_test
      
      import (
              "context"
              "encoding/json"
              "fmt"
              "testing"
      
              "github.com/volcengine/volc-sdk-golang/base"
              imagex "github.com/volcengine/volc-sdk-golang/service/imagex/v2"
      )
      
      func Test_GetImageAIDetails(t *testing.T) {
              instance := imagex.NewInstance()
      
              instance.SetCredential(base.Credentials{
                    // 强烈建议不要把 ak 和 sk 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。
                    // 本示例通过从环境变量中读取 ak 和 sk,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 ak 和 sk。              
                      AccessKeyID:     "ak",
                      SecretAccessKey: "sk",
              })
      
              param := &imagex.GetImageAIDetailsQuery{
                  QueueID: "649a9dbc32**064d44cf5b0", // 必选。队列 ID。
                  TaskID: "67174744a**54449623155b9", // 必选。任务 ID。
                  StartTime: 1684713599, // 必选。查询开始时间。Unix 秒级时间戳。
                  EndTime: 1684913599, // 必选。查询结束时间。Unix 秒级时间戳。
                  Status: "Success", // 可选。任务执行状态。默认返回所有任务。
                  SearchPtn: "test", // 可选。图片 URI 或 URL 关键字。默认返回所有任务。
                  Limit: 10, // 必选。分页条数。取值范围为 (0, 100]。
                  Offset: 0, // 可选。分页偏移量。
                  ServiceID: "5s****fo", // 必选。服务 ID。
              }
      
              resp, err := instance.GetImageAIDetails(context.Background(), param)
      
              if err != nil {
                      fmt.Printf("error %v", err)
              } else {
                      t, _ := json.Marshal(resp)
                      fmt.Printf("success %v", string(t))
              }
      }
      

步骤二:查看结果图

通过调用服务端 SDK 获取资源地址(推荐)

veImageX 提供了以下编程语言的 SDK,方便您调用 API。详见方式一:通过调用服务端 SDK 获取资源地址(推荐)

通过控制台获取资源地址

资源管理页面完成以下操作,获取资源地址。
Image

模板说明

模板 ID

system_workflow_erasev2

输入参数

输入参数需要将 JSON 序列化为字符串后作为 AIProcessCreateImageAITask 接口的 WorkflowParameter 参数传入。

参数
类型
是否必选
示例值
说明
Input
Object
-
输入图像的信息。
仅在调用同步处理接口 AIProcess 时必选。
InpaintParam
Object
-
图像修复参数。

输出参数

veImageX 服务会将输出参数序列化为 JSON 字符串后作为 AIProcess 接口、回调GetImageAIDetails 接口的 Output 参数返回。

说明

生成的图像在控制台资源管理页面默认不展示,仅支持通过不包含 tos-*-i-* 前缀的存储 URI 搜索。

参数

类型

示例值

说明

ObjectKey

String

a.jpeg

生成图像在指定服务 ID 下不包含 tos-*-i-* 前缀的存储 URI。

Size

Integer

38656

生成图像的大小,单位为字节。

Format

String

jpeg

生成图像的格式。

最近更新时间:2026.05.15 19:43:04
这个页面对您有帮助吗?
有用
有用
无用
无用