文心一格(精调后)
更新时间:2025-02-27
百度自主研发的跨模态图像生成大模型,创新知识增强的混合专家建模,是全球首个知识增强的AI作画大模型,在语义控制、图像细节、中文理解等方面优势显著,已作为基础模型应用在 文心一格 等相关业务上。本文介绍了经过SFT模型训练后发布的服务,调用相关API说明。
功能介绍
调用本接口,根据用户输入的文本生成图片。
注意事项
- 调用本文API前,需先经过SFT模型训练后发布服务,相关内容请参考新手指南-平台使用快速开始。
- 支持通过Python SDK、Go SDK、Java SDK和Node.js SDK调用,调用流程请查看SDK安装及使用流程。
SDK调用
调用示例
对于用户自行发布的模型服务,如文心一格(精调后),通过使用endpoint
进行调用,示例如下。
1import os
2import qianfan
3from PIL import Image
4import io
5
6# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
7os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
8os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
9
10t2i = qianfan.Text2Image()
11resp = t2i.do(prompt="A Ragdoll cat with a bowtie.", with_decode="base64",endpoint="your_custom_endpoint")
12img_data = resp["body"]["data"][0]["image"]
13
14img = Image.open(io.BytesIO(img_data))
15img.show(img)
1import com.baidubce.qianfan.Qianfan;
2import com.baidubce.qianfan.model.image.Text2ImageResponse;
3
4public class Main {
5 public static void main(String[] args) {
6 // 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
7 Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");
8
9 // 调用文生图模型
10 Text2ImageResponse response = qianfan.text2Image().endpoint("your_custom_endpoint")
11 .prompt("A Ragdoll cat with a bowtie")
12 .execute();
13
14 // 返回信息,返回图片base64编码信息等
15 System.out.println("created: "+response.getCreated());
16 System.out.println("id: "+response.getId());
17 System.out.println("prompttokens: "+response.getUsage().getPromptTokens());
18 System.out.println("totaltokens: "+response.getUsage().getTotalTokens());
19 System.out.println("b64image: "+response.getData().getFirst().getB64Image());
20 System.out.println("image: "+ Arrays.toString(response.getData().getFirst().getImage()));
21 System.out.println("index: "+response.getData().getFirst().getIndex());
22 System.out.println("object: "+response.getObject());
23
24}
1package main
2
3import (
4 "context"
5 "encoding/base64"
6 "fmt"
7 "os"
8
9 "github.com/baidubce/bce-qianfan-sdk/go/qianfan"
10)
11
12func main() {
13// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
14 os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
15 os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")
16
17 text2img := qianfan.NewText2Image(
18 qianfan.WithEndpoint("your_custom_endpoint"),
19 )
20
21 resp, err := text2img.Do(context.TODO(), &qianfan.Text2ImageRequest{
22 Prompt: "A Ragdoll cat with a bowtie.",
23 })
24 if err != nil {
25 panic(err)
26 }
27
28 img := resp.Data[0].Base64Image
29 imgData, err := base64.StdEncoding.DecodeString(img)
30 if err != nil {
31 panic(err)
32 }
33
34 outputFile := "output.jpg"
35 f, err := os.Create(outputFile)
36 if err != nil {
37 panic(err)
38 }
39 defer func() {
40 if err := f.Close(); err != nil {
41 panic(err)
42 }
43 }()
44
45 _, err = f.Write(imgData)
46 if err != nil {
47 panic(err)
48 }
49 fmt.Printf("Image saved to %s\n", outputFile)
50}
1import * as http from 'http';
2import {Text2Image, setEnvVariable} from "@baiducloud/qianfan";
3// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
4setEnvVariable('QIANFAN_ACCESS_KEY','your_iam_ak');
5setEnvVariable('QIANFAN_SECRET_KEY','your_iam_sk');
6
7const client = new Text2Image({Endpoint: 'your_custom_endpoint'});
8
9async function main() {
10 const resp = await client.text2Image({
11 prompt: 'A Ragdoll cat with a bowtie.',
12 });
13
14 const base64Image = resp.data[0].b64_image;
15 // 创建一个简单的服务器
16 const server = http.createServer((req, res) => {
17 res.writeHead(200, {'Content-Type': 'text/html'});
18 let html = `<html><body><img src="data:image/jpeg;base64,${base64Image}" /><br/></body></html>`;
19 res.end(html);
20 });
21
22 const port = 3002;
23 server.listen(port, () => {
24 console.log(`服务器运行在 http://localhost:${port}`);
25 });
26}
27
28main();
返回示例
1QfResponse(code=200,
2 headers={...},
3 body={'created': 1111,
4 'data': [{'b64_image': 'xxxxx',
5 'image': 'xx',
6 'index': 1,
7 'object': 'image'}],
8 'id': 'as-xxx',
9 'object': 'image',
10 'usage': {'prompt_tokens': 28, 'total_tokens': 28}})
1# 返回JSON格式部分字段如下:
2{
3 "data": [
4 {
5 "object": "image",
6 "b64Image": "/9j/xxxxxx",
7 "index": 1
8 }
9 ],
10 "usage": {
11 "promptTokens": 27,
12 "totalTokens": 27
13 },
14 "id": "as-p11zrni3y6",
15 "object": "image",
16 "created": 1717400385,
17 "headers": {
18 ...
19 }
20}
1{
2 Id: as-zru0xxxq
3 Object: image
4 Created: 1715928380
5 Usage:{
6 PromptTokens: 28
7 CompletionTokens: 0
8 TotalTokens: 28
9 }
10 Data:[
11 {
12 Object:image
13 Base64Image:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/
14 Index:1
15 }
16 ]
17}
1{
2 id: 'as-6i718v0pun',
3 object: 'image',
4 created: 1709801635,
5 data: [
6 {
7 object: 'image',
8 b64_image: '/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIxxxxx',
9 index: 1
10 }
11 ],
12 usage: { prompt_tokens: 9, total_tokens: 9 }
13}
请求参数
注意:以下为Python SDK参数说明,其他SDK参数相关说明请参考Go SDK-图像Images参数相关说明、Java SDK参数相关说明、Node.js SDK参数相关说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
prompt | string | 是 | 提示词,即用户希望图片包含的元素。说明:该字段建议使用中文,效果更佳,长度限制为256字符 |
with_decode | string | 否 | 是否自动decode,如果不指定将返回原始的based64 encoded二进制数据,可选值:base64 |
negative_prompt | string | 否 | 反向提示词,即用户希望图片不包含的元素,长度限制为256字符 |
size | string | 否 | 生成图片长宽,取值范围如下:["1024x1024", "2048x2048", "1280x720", "720x1280", "2560x1440", "1440x2560", "1152x768", "2304x1536", "1024x768", "2048x1536"] |
n | int | 否 | 生成图片数量,说明: (1)默认值为1 (2)取值范围为1-2 (3)单次生成的图片较多及请求较频繁可能导致请求超时 |
steps | int | 否 | 迭代轮次,说明: (1)默认值为20 (2)取值范围为10-50 |
sampler_index | string | 否 | 采样方式,说明: (1)默认值ddim (2)可选值如下: · pndm · euler_ancestral · dpm-solver · ddim |
endpoint | string | 是 | 用于指定用户自行发布的模型服务,说明:该字段值可以通过查看服务地址获取,详情请查看新手指南-平台使用快速开始: 在创建服务页面,选择模型后,API地址会自动新增个后缀。例如选择模型后,输入API地址为“test1”,endpoint的取值即为“ngxxxol8_test1”,如下图所示, ![]() |
retry_count | int | 否 | 重试次数,默认1次 |
request_timeout | float | 否 | 请求超时时间,默认60秒 |
backoff_factor | float | 否 | 请求重试参数,用于指定重试的策略,默认为0 |
seed | integer | 否 | 随机种子,说明: · 不设置时,自动生成随机数 · 取值范围 [0, 4294967295] |
cfg_scale | float | 否 | 提示词相关性,说明:默认值为5,取值范围0-30 |
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编码内容 |
image | string | 图片解码后数据,可以直接使用,仅传入with_decode="base64"时候会返回 |
index | int | 序号 |
usage说明
名称 | 类型 | 描述 |
---|---|---|
prompt_tokens | int | 问题tokens数,包含提示词和负向提示词 |
total_tokens | int | tokens总数 |