资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

文心一格(精调后)

百度自主研发的跨模态图像生成大模型,创新知识增强的混合专家建模,是全球首个知识增强的AI作画大模型,在语义控制、图像细节、中文理解等方面优势显著,已作为基础模型应用在 文心一格 等相关业务上。本文介绍了经过SFT模型训练后发布的服务,调用相关API说明。

接口描述

调用本接口,根据用户输入的文本生成图片。

注意事项

调用本文API前,需先经过SFT模型训练后发布服务,相关内容请参考新手指南-平台使用快速开始

在线调试

平台提供了 API在线调试平台-示例代码 ,用于帮助开发者调试接口,平台集成快速检索、查看开发文档、查看在线调用的请求内容和返回结果、复制和下载示例代码等功能,简单易用,更多内容请查看API在线调试介绍

鉴权说明

本文API,支持2种鉴权方式。不同鉴权方式,调用方式不同,使用Header、Query参数不同,详见本文请求说明。开发者可以选择以下任一种方式进行鉴权。

请求结构

以访问凭证access_token鉴权方式为例,说明调用API请求结构,示例如下。

POST /rpc/2.0/ai_custom/v1/wenxinworkshop/text2image/[创建服务时填写的API名称]?access_token=24.4a3a19b******18992 HTTP/1.1
Host: aip.baidubce.com
Content-Type: application/json

{
  "prompt": "cat",
  "negative_prompt": "white",
  "size": "1024x1024",
  "steps": 20, 
  "n": 2,
  "sampler_index": "ddim"
}

API地址说明

创建服务时填写的API地址,相关内容请查看模型服务-在线服务-服务配置

请求头域

除公共头域外,无其它特殊头域。注意:鉴权方式不同,对应请求头域不同。

请求参数

  • Query参数

只有访问凭证access_token鉴权方式,需使用Query参数。

访问凭证access_token鉴权

名称 类型 必填 描述
access_token string 通过API Key和Secret Key获取的access_token,参考Access Token获取
  • Body参数
名称 类型 必填 描述
prompt string 提示词,即用户希望图片包含的元素。建议使用中文,效果更佳,长度限制为256字符
negative_prompt string 反向提示词,即用户希望图片不包含的元素,长度限制为256字符
size string 生成图片长宽,默认值 1024x1024,取值范围如下:
["1024x1024", "2048x2048", "1280x720", "720x1280", "2560x1440", "1440x2560", "1152x768", "2304x1536", "1024x768", "2048x1536"]
n integer 生成图片数量,说明:
· 默认值为1
· 取值范围为1-2
· 单次生成的图片较多及请求较频繁可能导致请求超时
steps integer 迭代轮次,说明:
· 默认值为20
· 取值范围为10-50
sampler_index string 采样方式,默认值ddim,可选值:
· pndm
· euler_ancestral
· dpm-solver
· ddim
seed integer 随机种子。说明:
· 不设置时,自动生成随机数
· 取值范围[10, 4294967295]
cfg_scale float 提示词相关性,说明:
· 默认值为8.0
· 取值范围 [1.0, 15.0]
style string 生成风格,可选值:
(1)可选值:
· Base:基础风格
· 3D Model:3D模型
· Analog Film:模拟胶片
· Anime:动漫
· Cinematic:电影
· Comic Book:漫画
· Craft Clay:工艺黏土
· Digital Art:数字艺术
· Enhance:增强
· Fantasy Art:幻想艺术
· Isometric:等距风格
· Line Art:线条艺术
· Lowpoly:低多边形
· Neonpunk:霓虹朋克
· Origami:折纸
· Photographic:摄影
· Pixel Art:像素艺术
· Texture:纹理
(2)默认Base
user_id string 表示最终用户的唯一标识符

响应头域

除公共头域外,无其它特殊头域。

响应参数

名称 类型 描述
id string 请求的id
object string 回包类型。image:图像生成返回
created int 时间戳
data list(image_data) 生成图片结果
usage usage token统计信息,token数 = 汉字数+单词数*1.3 (仅为估算逻辑)

image_data说明

名称 类型 描述
object string 固定值"image"
b64_image string 图片base64编码内容
index int 序号

usage说明

名称 类型 描述
prompt_tokens int 问题tokens数,包含提示词和负向提示词
total_tokens int tokens总数

请求示例

以访问凭证access_token鉴权方式为例,说明如何调用API,示例如下。

# 步骤一,获取access_token,替换下列示例中的应用API Key与应用Secret Key
curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]'

# 步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的“调用接口获取的access_token”;替换示例中的创建服务时填写的API名称

curl -X POST  'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/text2image/{创建服务时填写的API地址}?access_token=[步骤一调用接口获取的access_token]' -d '{
  "prompt": "cat",
  "negative_prompt": "white",
  "size": "1024x1024",
  "steps": 20, 
  "n": 2,
  "sampler_index": "ddim"
}' | iconv -f utf-8 -t utf-8
import requests
import json

def get_access_token():
    """
    使用 API Key,Secret Key 获取access_token,替换下列示例中的应用API Key、应用Secret Key
    """
        
    url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[应用API Key]&client_secret=[应用Secret Key]"
    
    payload = json.dumps("")
    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload)
    return response.json().get("access_token")


def main():
    """
    替换下列示例中的创建服务时填写的API名称
    """
    url = "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/text2image/{创建服务时填写的API地址}?access_token=" + get_access_token()
    
    payload = json.dumps({
        "prompt": "cat",
        "negative_prompt": "white",
        "size": "1024x1024",
        "steps": 20, 
        "n": 2,
        "sampler_index": "DPM++ SDE Karras" 
    })
    headers = {
        'Content-Type': 'application/json'
    }
    
    response = requests.request("POST", url, headers=headers, data=payload)
    
    print(response.text)
    

if __name__ == '__main__':
    main()

响应示例

{
    "id": "as-n1ykfe10iz",
    "object": "image",
    "created": 1698146755,
    "data": [
        {
            "object": "image",
            "b64_image": "图片base64",
            "index": 1
        },
        {
            "object": "image",
            "b64_image": "图片base64",
            "index": 2
        }
    ],
    "usage": {
        "prompt_tokens": 8,
        "total_tokens": 8
    }
}

错误码

若请求错误,服务器将返回的JSON文本包含以下参数:

名称 描述
error_code 错误码
error_msg 错误描述信息,帮助理解和解决发生的错误

例如Access Token失效返回:

{
  "error_code": 110,
  "error_msg": "Access token invalid or no longer valid"
}

更多其他错误码,也可以查看错误码说明

上一篇
对话Chat(精调后)
下一篇
图像理解(精调后)