接口文档
接口说明
ERNIE-ViLG AI作画大模型:文心ERNIE-ViLG2.0 是基于用户输入文本、或文本加图片生成图像及图像编辑功能的技术,主要为用户提供跨模态的文本生成图像的大模型技术服务。
其中,参考图功能是需要用户上传一张符合要求的图片,再输入prompt文本,选择相应的参数设置,即可生成新的图像。
- 温馨提示:
- 使用须知
在您使用文心ERNIE-ViLG2.0大模型服务的API接口调用前,请您仔细阅读《服务协议》的相关内容,并遵守《服务使用规范》的相关要求进行合规的大模型API服务调用。
- 其他生图途径
您还可前往百度智能云按需购买您的用量,届时您将在百度智能云控制台内调用AI作画大模型的API接口及查看使用详情,文心官网将无法使用您的购买额度。
获取API Key
文心官网密钥
您可以登录文心大模型API服务平台个人中心获取您的专属API Key(AK)和Secret Key(SK),查看您的AK/SK。请注意保护您的密钥信息,避免泄露。您可以通过删除已泄露的密钥来保护您的账户安全。
百度智能云密钥
- 如您进入百度智能云开放平台进行付费提额,您可在百度智能云控制台里创建生成您的AK/SK进行查看和使用。请注意保护您的密钥信息,避免泄露。
- 在百度智能云控制台使用时,请您查看百度AI开放平台的接口文档并以其提供的信息为准,如有使用差异时请以所在付费平台提供的API接口文档为准。
调用方式
在本地Python环境调用接口
- 安装wenxin-api工具包
pip install --upgrade wenxin-api
*注意:建议python版本在python 3.7及以上版本
- 如何调用
(调用分为两种类型)
类型1:普通的文生图
# -*- coding: utf-8 -*
import wenxin_api # 可以通过"pip install wenxin-api"命令安装
from wenxin_api.tasks.text_to_image import TextToImage
wenxin_api.ak = "your_ak"
wenxin_api.sk = "your_sk"
num = 1
input_dict = {
"text": "睡莲",
"style": "油画",
"resolution":"1024*1024",
"num": num
}
rst = TextToImage.create(**input_dict)
print(rst)
- 等待过程返回信息
2022-08-12 02:23:15,488 - model is painting now!, taskId: 1023101, waiting: 2m
2022-08-12 02:23:35,641 - model is painting now!, taskId: 1023101, waiting: 1m
2022-08-12 02:23:55,982 - model is painting now!, taskId: 1023101, waiting: 1m
- 返回结果示例
{
"imgUrls":[
"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fbex",
"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fbi4",
"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fb5q",
"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fb30",
"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fbv9",
"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fba2",
"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fbbf",
"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fbms",
"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fbu7",
"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fbct"
]
}
类型2:带参考图的文生图
# -*- coding: utf-8 -*
import wenxin_api # 可以通过"pip install wenxin-api"命令安装
from wenxin_api.tasks.text_to_image import TextToImageRef
wenxin_api.ak = "your_ak"
wenxin_api.sk = "your_sk"
ref_img = "本地参考图文件,jpg或png格式"
num = 1
resolution = "1024*1024"
input_dict = {
"text": "睡莲",
"style": "油画",
"ref_img": ref_img,
"resolution": resolution,
"num": num
}
rst = TextToImageRef.create(**input_dict)
print(rst)
- 等待过程返回信息
2022-08-12 02:23:15,488 - model is painting now!, taskId: 1023101, waiting: 2m
2022-08-12 02:23:35,641 - model is painting now!, taskId: 1023101, waiting: 1m
2022-08-12 02:23:55,982 - model is painting now!, taskId: 1023101, waiting: 1m
- 返回结果示例
{
"imgUrls":[
"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fbex",
]
}
其他语言调用接口
ERNIE-ViLG API包含两个接口,一个是提交请求接口,一个是查询结果接口。
shell代码示例
获取accessToken
-
向授权服务地址 https://wenxin.baidu.com/moduleApi/portal/api/oauth/token发送请求(使用POST),并在URL中带上以下参数:
- grant_type: 必须参数,固定为client_credentials;
- client_id: 必须参数,应用的API Key(AK) 从链接专区申请;
- client_secret: 必须参数,应用的Secret Key(SK) 从链接专区申请;
- Content-Type:application/x-www-form-urlencoded
- 需要将{your_ak}、{your_sk}替换成您的AK、SK(注意:连同花括号也一起替换)
- token有效期为24小时
curl -XPOST "https://wenxin.baidu.com/moduleApi/portal/api/oauth/token?grant_type=client_credentials&client_id={your_ak}&client_secret={your_sk}" -H "Content-Type:application/x-www-form-urlencoded"
返回结果
- 得到accessToken(参数data的值即为accessToken)
# 输出的data值就是accessToken
{
"code":0,
"msg":"success",
"data":"24.821bce8e36a147127bbb820359f16994.86400000.1660985554034.beaabb134e7a26eabb9e2f1e17678d29-100063"
}
创建预测任务
⚠️需要将{accessToken}替换成上一步得到的data值(注意:连同花括号也一起替换)
curl -i -k "https://wenxin.baidu.com/moduleApi/portal/api/rest/1.0/ernievilg/v1/txt2img?access_token=${access_token}" --data-urlencode "text=睡莲" --data-urlencode "style=油画" --data-urlencode "resolution=1024*1024" --data-urlencode "num=4" #分辨率和数量非必须参数,默认resolution=1024*1024、number=4
返回创建任务的结果示例:
(返回结果包括,返回的参数code:错误码、msg:错误信息、data:结果对象)
{
"code":0,
"msg":"success",
"data":{
"requestId":"2d975c829235d84aba5d1b3f54cb1a03",
"taskId":1037117
}
}
查询任务
⚠️注意:需要将{access_token}替换成第一步输出的data值;{task_id}替换成上面输出的data里的taskId值。
(注意:连同花括号也一起替换)
curl -i -k "https://wenxin.baidu.com/moduleApi/portal/api/rest/1.0/ernievilg/v1/getImg?access_token={access_token}" --data-urlencode "taskId={task_id}"
返回查询任务的结果示例1(排队中):
{
"code":0,
"msg":"success",
"data":{
"img":"",
"waiting":"30s",
"imgUrls":[
],
"createTime":"2022-08-19 17:26:42",
"requestId":"8247a420fb5167bd028b1bc77403070a",
"style":"油画",
"text":"睡莲",
"resolution":"1024 * 1024",
"taskId":1037124,
"status":0
}
}
返回查询任务的结果示例2(预测成功):
{
"code":0,
"msg":"success",
"data":{
"img":"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/2b5718c69aef65137945df4aac0ecf1cex",
"waiting":"0",
"imgUrls":[
{
"image":"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/2b5718c69aef65137945df4aac0ecf1cex",
"score":null
},
{
"image":"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/2b5718c69aef65137945df4aac0ecf1ci4",
"score":null
},
{
"image":"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/2b5718c69aef65137945df4aac0ecf1c5q",
"score":null
},
{
"image":"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/2b5718c69aef65137945df4aac0ecf1c30",
"score":null
}
],
"createTime":"2022-08-19 17:07:02",
"requestId":"2883dd9e9dc54d6ee00894d7b37f022a",
"style":"油画",
"text":"睡莲",
"resolution":"1024 * 1024",
"taskId":1037013,
"status":1
}
}
1. ERNIE-ViLG跨模态文生图—提交请求接口
接口要求
内容 | 说明 |
---|---|
传输方式 | https (为提高安全性,强烈推荐https) |
请求地址 | https://wenxin.baidu.com/moduleApi/portal/api/rest/1.0/ernievilg/v1/txt2img |
字符编码 | UTF-8 |
响应格式 | 统一采用JSON格式 |
开发语言 | 任意,只要可以向服务发起HTTP请求的均可 |
适用范围 | 任意操作系统,但因不支持跨域不适用于浏览器,请在后端调用接口 |
请求行 | POST |
请求QPS限制 | 1 |
平均响应时间 | 1024*1024的响应时长平均30s,1024*1536和1536*1024的响应时长平均50s |
接口调用流程
- 将请求参数放在Http Request Body中,以POST表单的形式提交,详见下方 请求参数 。
- 向服务器端发送Http请求后,接收服务器端的返回结果。
请求参数
- 在调用业务接口时,配置以下参数。
- header 信息
参数名 | 值 |
---|---|
Content-Type | application/x-www-form-urlencoded |
- 参数:
参数名 | 类型 | 是否必传 | 描述 |
---|---|---|---|
access_token | string | 是 | |
text | string | 是 | 输入内容,长度不超过100个字 |
style | string | 是 | 图片风格,目前支持风格有:古风、二次元、写实风格、浮世绘、low poly 、未来主义、像素风格、概念艺术、赛博朋克、洛丽塔风格、巴洛克风格、超现实主义、水彩画、蒸汽波艺术、油画、卡通画 |
resolution | string | 是 | 图片尺寸,目前支持的有:1024*1024 方图、1024*1536 长图、1536*1024 横图 |
num | int | 是 | 图片数量,目前默认4张 |
image | file | 否 | 用该字段时 请将访问类型设置为: Content-Type 设置为 application/form-data |
-
获取access_token 向授权服务地址 https://wenxin.baidu.com/moduleApi/portal/api/oauth/token 发送请求(使用POST),并在URL中带上以下参数:
- grant_type: 必须参数,固定为client_credentials;
- client_id: 必须参数,应用的API Key(AK) 从链接专区申请;
- client_secret: 必须参数,应用的Secret Key(SK) 从链接专区申请;
- 返回参数
参数名 | 类型 | 描述 |
---|---|---|
code | int | 错误码 |
msg | string | 错误信息 |
data | object | 结果对象,返回 task id。任务完成后,作为获取图片的依据 |
taskId | int | 图片生成任务id,作为查询接口的入参 |
- 错误码
错误码 | 错误描述 |
---|---|
4001 | 请求参数格式错误,不是标准的JSON格式 |
4002 | 请求参数格式错误,请检查必传参数是否齐全,参数类型等 |
4003 | text长度超过模型要求的最大值 |
4004 | API服务内部错误,可能引起原因有请求超时、模型推理错误等 |
2. ERNIE-ViLG跨模态文生图—查询结果接口
ERNIE-ViLG 跨模态文生成图,提交请求后,查询生成的图片。
接口要求
内容 | 说明 |
---|---|
传输方式 | https (为提高安全性,一致采用https) |
请求地址 | https://wenxin.baidu.com/moduleApi/portal/api/rest/1.0/ernievilg/v1/getImg |
字符编码 | UTF-8 |
响应格式 | 统一采用JSON格式 |
开发语言 | 任意,只要可以向服务发起HTTP请求的均可 |
适用范围 | 任意操作系统,但因不支持跨域不适用于浏览器,请在后端调用接口 |
请求行 | POST |
接口调用流程
- 将请求参数以POST表单的形式提交,详见下方 请求参数 。
- 向服务器端发送Http请求后,接收服务器端的返回结果。
请求参数
- 在调用业务接口时,配置以下参数。
- 参数
参数名 | 类型 | 是否必传 | 描述 |
---|---|---|---|
access_token | string | 是 | 与上述获取方式一致 |
taskId | string | 是 | 从上一章节的提交接口的返回值中获取 |
返回参数
参数名 | 类型 | 描述 |
---|---|---|
code | int | 错误码 |
msg | string | 错误信息 |
data | object | task_id对应请求的任务状态和生成结果 |
img | string | 生成结果地址 后期去掉 使用 imgUrls |
imgUrls | array | 生成结果数组 目前默认生成10张图 |
waiting | string | 预计等待时间 |
createTime | string | 任务创建时间 |
style | string | 请求内容中的图片风格 |
text | string | 请求内容中的文本 |
taskId | int | 对应任务的id |
status | int | 0或1。"1"表示已生成完成,"0"表示任务排队中或正在处理。 |
resolution | string | 请求内容的图片尺寸 |
num | int | 请求生成图片的数量 |
image | file | 上传参考图的图片 |
参考图功能
1. reference image
POST application/form-data /moduleApi/portal/api/rest/1.0/ernievilg/v1/txt2img
2. 响应
{
"code": 0,
"msg": "success",
"data": {
"taskId": 23001
},
"requestId": "549eb16b46ae419b368b287a3dcad196"
}
3. 调用示例
错误码
错误码 | 错误描述 |
---|---|
4001 | 请求参数格式错误 |
4002 | 请求参数格式错误,请检查必传参数是否齐全,参数类型等 |
4003 | 请求参数中,图片风格不在可选范围内 |
4004 | API服务内部错误,可能引起原因有请求超时、模型推理错误等 |
1 | 请求内容触发黄反算子和敏感词过滤,提示文本:暂不支持创作该内容,请修改后再试 |