AnyText图文融合API详情

AnyText图文融合

说明

支持的领域 / 任务:aigc /AnyText图文融合

通义万相-AnyText图文融合,支持图文生成和文字编辑功能,可广泛应用于电商海报、Logo设计、创意涂鸦、表情包、儿童绘本等诸多场景。

AnyText模型支持两种调用模式:

  • 文字生成:输入一段描述,以及一张标识文字位置的图片,即可生成一张带有文字的图片。例如:

    "一个儿童蜡笔画,森林里有一个可爱的蘑菇形状的房子,标题是“森林小屋”"+image=image

  • 文字编辑:输入一张要编辑的原图,以及一张标识文字位置的图片,即可生成一张在指定位置做编辑的图片。例如:

    image.png + image.png + "精美的书法作品,上面写着“志” “存” “高” “远”" = image.png

说明

上述两种模式中,标识文字位置的图片要求代表位置区域的像素值为0,其余区域不为0即可。

模型概览

模型名

模型简介

wanx-anytext-v1

AnyText图文融合

说明

使用限制:模型正在公测中,免费额度300张图片。并发任务数量限制为1。

HTTP调用接口

功能描述

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

前提条件

已开通服务并获得API-KEY:API-KEY的获取与配置

作业提交接口调用

https://dashscope.aliyuncs.com/api/v1/services/aigc/anytext/generation

入参描述

传参方式

字段

类型

必选

描述

示例值

Header

Content-Type

String

请求类型:application/json

application/json

Authorization

String

API-Key。

Bearer d1**2a

X-DashScope-Async

String

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

enable

Body

model

String

指明需要调用的模型,固定值。

wanx-anytext-v1

input.prompt

String

提示词,描述图像的内容。

说明
  1. 支持中文和英文。

  2. 每一行待生成的文字内容放在双引号内, 全角或半角双引号均可,半角双引号前需加反斜杠转义字符。

一只浣熊站在黑板前,上面写着\"深度学习\"

input.mask_image_url

String

一张标识文字生成位置的图片的URL地址。

说明
  1. 支持格式:JPG/JPEG/PNG/BMP。

  2. 图片宽高需介于64px~7000px之间。

  3. 如果为“文字生成”模式,宽高需要与入参image_width/image_height一致。

  4. 如果为“文字编辑”模式,宽高需要与base_image一致。

  5. 图像文件不超过5MB,该图片中表示位置的像素值为0,其余背景像素值为非0。

http://aliyun.com/a.jpg

input.base_image_url

String

一张待编辑的图片的URL地址。

说明
  1. 支持格式:JPG/JPEG/PNG/BMP。

  2. 图片宽高需介于64px~7000px之间。

  3. 图像文件不超过5 MB。

  4. 传入该参数则为“文字编辑”模式,不传入则为“文字生成”模式。

http://aliyun.com/a.jpg

input.appended_prompt

String

附加提示词。通常用于提升图片效果。

例如:“高清,精美的图片,没有水印”。如果不填,则采用默认值。

best quality, extremely detailed,4k, HD, supper legible text, clear text edges, clear strokes, neat writing, no watermarks [默认值]

input.negative_prompt

String

负向提示词。

low-res, bad anatomy, extra digit, fewer digits, cropped, worst quality, low quality, watermark, unreadable text, messy words, distorted text, disorganized writing, advertising picture [默认值]

parameters.layout_priority

String

需要生成或编辑多行文字时,mask_image中的每个位置按照一定规则排序后与文字行做对应,用于确定排序时优先从上到下还是从左到右。

"vertical":从上到下 [默认值]

"horizontal":从左到右

parameters.text_position_revise

Bool

是否使用渲染文字的外接矩形对mask_image中的文字位置做修正,以防止文字位置与待生成文字的尺寸偏差较大。

false:不修正 [默认值]

true:修正

parameters.n

Integer

生成图片个数,要求范围1~16。

1 [默认值]

parameters.steps

Integer

采样步数,要求范围1~100。

20 [默认值]

parameters.image_width

Integer

图像宽度,仅在“文字生成”模式下有效,要求范围256px~768px。

说明

必须为64px的整数倍。

512 [默认值]

parameters.image_height

Integer

图像高度,仅在“文字生成”模式下有效,要求范围256px~768px。

说明

必须为64px的整数倍。

512 [默认值]

parameters.strength

Float

文字控制模块的控制力度,要求范围0.0-2.0。

1.0 [默认值]

parameters.cfg_scale

Float

Classifier-Free Guidance(CFG)强度参数,要求范围0.1~30.0。

9.0 [默认值]

parameters.eta

Float

DDIM采样算法的eta参数,要求范围0~1.0。

0.0 [默认值]

parameters.seed

Integer

种子数,范围-1~99999999。

-1(随机) [默认值]

出参描述

字段

类型

描述

示例值

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 'https://dashscope.aliyuncs.com/api/v1/services/aigc/anytext/generation' \
--header 'X-DashScope-Async: enable' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "model": "wanx-anytext-v1",
    "input": {
        "prompt": "一只浣熊站在黑板前,上面写着“深度学习”",
        "mask_image_url": "http://public-vigen-video.oss-cn-shanghai.aliyuncs.com/yuxiang.tyx/test_anytext/gen1.png"
    },
    "parameters": {
       "seed": 81808278
    }
}'

文字编辑示例:

curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/anytext/generation' \
--header 'X-DashScope-Async: enable' \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "model": "wanx-anytext-v1",
    "input": {
        "prompt": "精美的书法作品,上面写着“志” “存” “高” “远”",
        "mask_image_url": "http://public-vigen-video.oss-cn-shanghai.aliyuncs.com/yuxiang.tyx/test_anytext/edit10.png",
        "base_image_url": "http://public-vigen-video.oss-cn-shanghai.aliyuncs.com/yuxiang.tyx/test_anytext/ref10.jpg"
    },
    "parameters": {
       "seed": 98053044
    }
}'

响应示例

{
    "output": {
      "task_id": "xxxxxxxx", 
      "task_status": "PENDING"
    }
    "request_id": "7574ee8f-38a3-4b1e-9280-11c33ab46e51"
}

异常响应示例

在提交作业请求出错的情况下,输出的结果中会通过 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} --header 'Authorization: <YOUR-DASHSCOPE-API-KEY>'

入参描述

传参方式

字段

类型

必选

描述

示例值

Url Path

task_id

String

需要查询作业的 task_id

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

Header

Authorization

String

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

Bearer d1**2a

出参描述

字段

类型

描述

示例值

header.status_code

Integer

http返回码。

成功:200;客户端错误:4xx;服务端错误:5xx

header.status_name

String

错误码。

"Success"代表成功,其他代表失败

header.status_message

String

错误信息。

参见状态码说明

output.task_id

String

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

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

output.task_status

String

被查询作业的作业状态。

任务状态:

  • PENDING:排队中

  • RUNNING:处理中

  • SUCCEEDED:成功

  • FAILED:失败

  • UNKNOWN:作业不存在或状态未知

output.result_url

List

如果作业成功,包含模型生成的结果图像的 URL的列表,可以在 24 小时之内随时下载。

"result_url": ["http://oss.aliyuncs.com/xxx/abc.jpg"]

output.warning

String

算法内部的警告信息(如有)。

"warning": ""

usage.image_count

Integer

本次请求生成图像计量。

"image_count": 1

request_id

String

本次请求的系统唯一码。

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

请求示例

以下示例展示通过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。

{
    "request_id":"e5d70b02-ebd3-98ce-9fe8-759d7d7b107d",
    "output":{
        "task_id":"86ecf553-d340-4e21-af6e-a0c6a421c010",
        "task_status":"RUNNING"
        }
    }
}

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

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

{
    "request_id":"<your request id>",
    "output":{
        "task_id":"<your task id>",
        "task_status":"SUCCEEDED",
        "submit_time":"xxx",
        "scheduled_time":"xxx",
        "end_time":"xxx",
        "result_url":["http://oss.aliyuncs.com/xxx/abc.jpg"],
        "warning": ""
    },
    "usage":{
        "image_count":1
    }
}

响应示例(作业失败)

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

异常1,图片下载失败

{
  "header": {
    "status_code": 400, 
    "status_name": "InvalidURL", 
    "status_message": "Image download fail, please check the request URL"
  }, 
  "payload": {
    "output": {
      "output_img": [],
      "warning": ""
    }, 
    "usage": {
      "image_count": 0
    }
  }
}

异常2, 传入图片的尺寸太大或太小

{
  "header": {
    "status_code": 400, 
    "status_name": "InvalidFile.Resolution", 
    "status_message": "[draw_pos] Resolution needs to be between 64 and 7000"
  }, 
  "payload": {
    "output": {
      "output_img": [], 
      "warning": ""
    }, 
    "usage": {
      "image_count": 0
    }
  }
}

异常3, 传入的图片格式不对(非图像格式)

{
  "header": {
    "status_code": 400, 
    "status_name": "InvalidURL", 
    "status_message": "Image decode fail, please check the request image format is one of the following types: JPEG, JPG, PNG, BMP"
  }, 
  "payload": {
    "output": {
      "output_img": [],
      "warning": ""
    }, 
    "usage": {
      "image_count": 0
    }
  }
}

异常4,算法内部报错(传入的图片大小不对)

{
  "header": {
    "status_code": 500, 
    "status_name": "InternalError.Algo", 
    "status_message": "An internal error occurs during computation"
  }, 
  "payload": {
    "output": {
      "output_img": [],
      "warning": ""
    }, 
    "usage": {
      "image_count": 0
    }
  }
}

异常5,传入的图片文件超限

{
  "header": {
    "status_code": 400, 
    "status_name": "InvalidURL", 
    "status_message": "mask_image_url file size (7.23MB) exceeds the maximum limit: 5MB"
  }, 
  "payload": {
    "output": {
      "output_img": [], 
      "warning": ""
    }, 
    "usage": {
      "image_count": 0
    }
  }
}

状态码说明

DashScope通用状态码请查阅:返回状态码说明

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

http 返回码*

错误码(code)

错误信息(message)

含义说明

400

InvalidParameter

Request format is illegal :XXX(具体的参数错误信息)

请求参数的格式不合法

400

InvalidURL

Image file size exceed limit: 5MB

输入图像的文件大小超限

400

InvalidURL

Image download fail, please check the request URL

输入图像的URL下载文件失败

400

InvalidURL

Image decode fail, please check the request image format is one of the following types: JPEG, JPG, PNG, BMP

输入图像解码失败,需检查文件格式

400

InvalidFile.Resolution

Resolution needs to be between 64 and 7000

输入图片的分辨率过大或过小

500

InternalError.Algo

An internal error occurs during computation

算法内部错误