文档简介:
接口说明
ERNIE-ViLG AI作画大模型:文心ERNIE-ViLG2.0 是基于用户输入文本、或文本加图片生成图像及图像编辑功能的技术,主要为用户提供跨模态的文本生成图像的大模型技术服务。
其中,参考图功能是需要用户上传一张符合要求的图片,再输入prompt文本,选择相应的参数设置,即可生成新的图像。
- 温馨提示:
- 使用须知
在您使用文心ERNIE-ViLG2.0大模型服务的API接口调用前,请您仔细阅读《服务协议》的相关内容,并遵守《服务使用规范》的相关要求进行合规的大模型API服务调用。
- 功能申请
您在调用API服务时如仅使用基础文生图的模型服务时无须申请即可直接使用,如您想解锁使用更多高级功能,请您在体验专区先提交功能使用申请,申请通过后,您即可调用大模型API接口内所有的线上服务,将不会受到任何的功能使用限制。
-
特别说明:您只需提交一次使用申请,申请通过后将永久拥有所有新功能的使用权限。
3.额度说明
您首次登录文心官网后,将会获得在一定期限内发放的免费赠额,您可直接在体验专区试用AI作画大模型相关的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_a
pi.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://wenx
in.baidu.com/younger/file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fb30", "https://wenxin.baidu
.com/younger/file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fbv9", "https://wenxin.baidu.com/y
unger/file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fba2", "https://wenxin.baidu.com/younger/
file/ERNIE-ViLG/61157afdaef4f0dfef0d5e51459160fbbf", "https://wenxin.baidu.com/younger/file/E
RNIE-ViLG/61157afdaef4f0dfef0d5e51459160fbms", "https://wenxin.baidu.com/younger/file/ERNIE-V
iLG/61157afdaef4f0dfef0d5e51459160fbu7", "https://wenxin.baidu.com/younger/file/ERNIE-ViL
G/61157afdaef4f0dfef0d5e51459160fbct" ] }
类型2:带参考图的文生图
# -*- coding: utf-8 -* import wenxin_api # 可以通过"pip install wenxin-api"命令安装 from we
nxin_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=clie
nt_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.821bce8e36a147127b
bb820359f16994.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":"8247a420fb5167bd028b1bc774
03070a", "style":"油画", "text":"睡莲", "resolution":"1024 * 1024", "taskId":1037124, "status":0 } }
返回查询任务的结果示例2(预测成功):
{ "code":0, "msg":"success", "data":{ "img":"https://wenxin.baidu.com/younger/file/ERNIE-ViLG/2b571
8c69aef65137945df4aac0ecf1cex", "waiting":"0", "imgUrls":[ { "image":"https://wenxin.baidu.com/young
er/file/ERNIE-ViLG/2b5718c69aef65137945df4aac0ecf1cex", "score":null }, { "image":"https://wenxin.bai
du.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":"2883dd9e9dc54d6ee00894d7b37f0
22a", "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 | 是 | 图片数量,目前支持可选1到6张 |
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服务内部错误,可能引起原因有请求超时、模型推理错误等 |
请求参数
您可以在ERNIE-ViLG体验专区查看和复制代码进行API调用,我们提供了shell和python两种调用方式。
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 | 请求内容触发黄反算子和敏感词过滤,提示文本:暂不支持创作该内容,请修改后再试 |