#图片生成 API 文档
# 图片生成 API 文档 # 接口说明 根据用户输入的文字内容,生成符合语义描述的不同风格的图像;
部分开发语言demo如下,其他开发语言请参照文档进行开发,也欢迎热心的开发者到 讯飞开放平台社区 (opens new window) 分享你们的demo。 图片生成 demo go语言 (opens new window) 图片生成 demo python语言 (opens new window) 图片生成 demo java语言 (opens new window)
集成图片生成时,需按照以下要求:
内容 说明 传输方式 http[s] (为提高安全性,强烈推荐https) 请求地址 https://spark-api.cn-huabei-1.xf-yun.com/v2.1/tti 注:服务器IP不固定,为保证您的接口稳定,请勿通过指定IP的方式调用接口,使用域名方式调用 请求行 POST /v2.1/tti HTTP/1.1 Content-Type application/json;charset=UTF-8 接口鉴权 签名机制,详情请参照签名生成 (opens new window) 字符编码 UTF-8 响应格式 统一采用JSON格式 开发语言 任意,只要可以向讯飞云服务发起HTTP请求的均可 适用范围 任意操作系统,但因不支持跨域不适用于浏览器 # 鉴权说明 在调用业务接口时,请求方需要对请求进行签名,服务端通过签名来校验请求的合法性。技术咨询可直接提交工单 (opens new window)
# 鉴权方法 详情请参照下方签名生成 (opens new window)
# 鉴权结果 如果鉴权失败,则根据不同错误类型返回不同HTTP Code状态码,同时携带错误描述信息,详细错误说明如下:
HTTP Code 说明 错误描述信息 解决方法 401 缺少authorization参数 {"message":"Unauthorized"} 检查是否有authorization参数,详情见authorization参数详细生成规则 401 签名参数解析失败 {“message”:”HMAC signature cannot be verified”} 检查签名的各个参数是否有缺失是否正确,特别确认下复制的api_key是否正确 401 签名校验失败 {“message”:”HMAC signature does not match”} 签名验证失败,可能原因有很多。1. 检查api_key,api_secret 是否正确。2.检查计算签名的参数host,date,request-line是否按照协议要求拼接。3. 检查signature签名的base64长度是否正常(正常44个字节)。 403 时钟偏移校验失败 {“message”:”HMAC signature cannot be verified, a valid date or x-date header is required for HMAC Authentication”} 检查服务器时间是否标准,相差5分钟以上会报此错误 时钟偏移校验失败示例:
HTTP/1.1 403 Forbidden
Date: Mon, 22 May 2023 05:44:14 GMT
Content-Length: 116
Content-Type: text/plain; charset=utf-8
{
"message": "HMAC signature does not match, a valid date or x-date header is required for HMAC Authentication"
}
# 请求参数 在调用业务接口时,都需要在 Http Request Body 中配置以下参数,请求数据均为json字符串。 请求参数示例:
{
"header": {
"app_id": "your_appid"
},
"parameter": {
"chat": {
"domain": "general",
"width": 512,
"height": 512
}
},
"payload": {
"message": {
"text": [
{
"role": "user",
"content": "帮我画一座山"
}
]
}
}
}
请求参数说明:
注: 文生图目前仅开放单轮交互,单轮交互只需要传递一个user角色的数据
参数名 类型 必传 描述 header.app_id string 是 应用的app_id header.uid string 否 每个用户的id,非必传字段,用于后续扩展,"maxLength":32 parameter.chat.width int 图片的宽度 参考下方分辨率说明, 不同的分辨率计费不同,请选择合适的使用 parameter.chat.height int 图片的高度 参考下方分辨率说明, 不同的分辨率计费不同,请选择合适的使用 payload.message.text json/object/array 是 文本数据 payload.message.text.role string 是 角色,user:表示是用户的问题 payload.message.text.content string 是 文本内容,该角色的对话内容,不得超过1000个字符 # 分辨率说明 注: 图片生成按点数计费,不同分辨率计费不同,具体如下
分辨率(width * height) 图点数 512x512 6 640x360 6 640x480 6 640x640 7 680x512 7 512x680 7 768x768 8 720x1280 12 1280x720 12 1024x1024 14 # 返回结果 返回参数示例:
成功
{
"header": {
"code": 0,
"message": "Success",
"sid": "cht000704fa@dx16ade44e4d87a1c802",
"status": 0
},
"payload": {
"choices": {
"status": 2,
"seq": 0,
"text": [
{
"content": "base64",
"index": 0,
"role": "assistant"
}
]
}
}
}
异常
{
"header": {
"code": 10003,
"message": "xxxx",
"sid": "cht00120013@dx181c8172afb0001102",
"status": 2,
}
}
返回参数说明:
参数 类型 含义 header.code int 服务错误码 , 0表示正常,非0表示出错 header.sid string 会话的sid header.status int 会话的状态 ,文生图场景下为2 header.message string 返回消息描述 ,错误码的描述信息 payload.choices.status int 数据状态 ,0:开始, 1:开始, 2:结束(表示文本响应结束) payload.choices.seq int 数据序号,最小值:0, 最大值:9999999 payload.choices.text json object array 文本结果 ,是一个json 数组 text字段参数说明
参数 类型 含义 content string 返回的base64图片结果,默认分辨率512*512 index int 结果序号,在多候选中使用 role string 角色,assistant说明这是AI的回复 根据《人工智能生成合成内容标识办法》规定,API 接口已在生成的图片元数据中增加隐式标识
示例如下:
{"Label":"1","ContentProducer":"001191340000711771143J00000","ProduceID":"ase000fe8f5@dx19975bedcc6b832882","ReservedCode1":"","ContentPropagator":"001191340000711771143J00000","PropagateID":"ase000fe8f5@dx19975bedcc6b832882","ReservedCode2":""}
注:保存图片数据时,需要通过字节流写入的方式保存,否则元数据可能因为格式转换而丢失,代码如下:
#将base64 的图片数据存在本地
def base64_to_image(base64_data, save_path,image_name):
# 解码base64数据
img_data = base64.b64decode(base64_data)
with open(os.path.join(save_path, image_name+'.png' ),'wb') as f:
f.write(img_data)
# 错误码描述 错误码 错误信息 0 成功 10003 用户的消息格式有错误 10004 用户数据的schema错误 10005 用户参数值有错误 10008 服务容量不足 10021 输入审核不通过 10022 模型生产的图片涉及敏感信息,审核不通过 # 常见问题 # 图片生成的主要功能是什么? 答:根据用户输入的文字内容,生成符合语义描述的不同风格的图像。
# 图片生成支持什么应用平台? 答:目前支持Web API应用平台。
# 图片生成的默认大小为多少? 答:分辨率512*512。