图片生成
整体能力介绍
1.1. iRAG简介
百度自研的iRAG(image based RAG),检索增强的文生图技术,将百度搜索的亿级图片资源跟强大的基础模型能力相结合,就可以生成各种超真实的图片,整体效果远远超过文生图原生系统,去掉了AI味儿,而且成本很低。iRAG具备无幻觉、超真实、立等可取等特点。
1.2. 产品优势
- 解决图像生成幻觉问题的有效方法 幻觉问题是影响大模型性能的重要因素,也是大模型规模化落地应用的主要限制之一。大模型幻觉是指大模型在生成文本、图像、视频等内容时,模型可能会产生不符合事实或不准确的信息,在一本正经的“胡说八道”。RAG(检索增强生成)技术是业内解决大模型幻觉的一种有效方法,它是一种结合检索和生成的技术方法,可以提升生成内容的可靠性和准确性。
目前在文本生成方面,RAG的应用效果已很不错,但图像等多模态内容和RAG的结合还不够。完全基于大语言模型的文生图系统,生成的图片经常“一眼假”,甚至不合逻辑。比如某开源模型生成的北京天坛的照片,真正的天坛是3层建筑,却生成了4层。这是文生图领域存在的典型幻觉现象,这种现象非常普遍,在很大程度上限制了多模态大模型的规模化应用。于是,今年年初,百度决定解决图像生成的幻觉问题,自研了iRAG技术。
- 依托百度搜索提高生图准确率 准确性是评估AI生成图像效果的首要标准,生成的图像必须真实反映现实,尤其是特定人物、特定物品、特定建筑等特定事物,AI生图必须真实还原,否则可能带来信息误导,因为现在很多场景对信息真实、可靠性有很高的要求。比如你想生成一张贝克汉姆的照片,AI却给你生成了梅西,这显然是错误的。而百度搜索收录了海量特定事物的可信图片资源,大模型的生成能力与这个“外挂知识库”相结合,iRAG就可以做到在生成特定物品、特定人物以及特定人物与任意背景结合的图像时,可以提高生成图像的准确率,减少幻觉。
应用场景
iRAG在广告拍摄、营销海报、商品展示、绘本生成、文旅海报、影视作品、漫画插图、连续画本等很多领域都有广泛的应用空间,可以有效降低AI生图的幻觉问题,让生成的图片更真实、自然,而且可以帮助用户大幅降低创作成本。比如在品牌宣传场景,以前拍一组汽车在某场景的大片宣传海报动辄需要一二十万,甚至大几十万,现在有了iRAG,创作的成本接近于0。
2.1. 典型场景
文娱内容下的封面图生成、内容图生成等传统文生图场景,尤其是真实世界需求的文生图场景
文娱内容场景 | 文生图 | ||
---|---|---|---|
公众号配图 | 封面图生成 | 创意图生成 | |
描述 | 根据公众号文章生成合适的配图,降低搜索配图工作量和法务风险 | 根据文章/视频内容生成封面图,并给出大标题吸引点击兴趣 | 根据创意需求生成海报底图,或生成有冲击感的营销物料 |
样例 | 生成一张老人正在拾荒的图片 |
一张bilibili视频封面,标题是“我是秦始皇嬴政,打钱!” |
请根据美食的风格,通过棕色为主色调,结合松鼠和栗子的内容构成,设计出一个以卖糖炒栗子为主题,充分展示举个栗子的海报 |
电商营销下穿搭图生成、商品展示、广告图片生成、营销海报生成等场景
电商营销场景 | 图生图 | 文生图/图生图 | 文生图 | ||
---|---|---|---|---|---|
穿搭图生成 | 模特姿势更换 | 服装改色/车膜改色 | 品牌广告图片生成 | 营销海报生成 | |
描述 | 生成模特穿搭图 服装上身效果 换模特换背景 鞋子上脚效果 包包上身效果 给定服装图片,生成不同性别、年龄、场景的穿搭图。 | 给定模特实拍图片,生成其他姿势(站姿、坐姿)等图片。 | 给定汽车、服装和指定颜色,改变成其他颜色。 | 给定品牌logo、风格、创意素材,生成品牌广告。 | 给定风格和描述,生成营销海报。可以支持指令的图文排版 |
教育行业下儿童绘本生成,文旅海报生成等场景
教育&其他场景 | 文生图 | 图生图 | 文生图 | 文生图 |
---|---|---|---|---|
绘本生产 | 文旅海报 | |||
描述 | 通过给定形象、以及画面的描述,来完成和初始形象始终保持一致的绘本图片。 | 常见于低幼素养类教育app。通过文本给出绘本的故事描述,来通过多次抽卡,完成绘本图片的生成,形成可以给小朋友讲述的完整故事。 | 在教育课程中,会在引流课、免费课等业务中,植入课程图片/讲义的讲解,来吸引用户,进一步引导转向付费课程 | 文旅相关业务,希望能够使用文生图能力生成和景点相关的海报,并且保证相关的文字细节(比如天坛祈年殿的牌匾要正确),从而免除实际拍摄的人力和时间成本。 |
Prompt 示例
图片为示例prompt调用iRAG接口产出的真实图片,每次生图可能有随机性,效果不如预期时,可考虑丰富prompt细节后重新生成
prompt | iRAG | |
---|---|---|
1 | 生成一张东方明珠在深山里的图 | |
2 | 生成一张鱼尾狮在沙漠里的图 | |
3 | 生成一张比萨斜塔和自由女神像同框出现的图 | |
4 | 生成一张天坛在雪山上的图 | |
5 | 生成一张黄鹤楼在海边的图 | |
6 | 生成一张北京白塔在江南小镇的图 | |
7 | 生成一张福建土楼出现在现代都市里的图 | |
8 | 生成一张奥黛丽赫本写书法的图 | |
9 | 帮我画一张马斯克和一只迅猛龙在后备箱里剥豆角 | |
10 | 生成林黛玉手持机关枪的图 | |
11 | 生成一张沈眉庄和温太医的生的孩子照片 | |
12 | 帮我画一张贝多芬吃蛋糕 | |
13 | 生成一个甄嬛玩手机的图 | |
14 | 爱因斯坦打麻将的画 | |
15 | 生成一张艾玛沃特森穿旗袍的图 | |
16 | 帮我生成一张贝克汉姆打乒乓球的图 | |
17 | 帮我画一张蒙娜丽莎在公司甩臭脸的图 | |
18 | 帮我画一张济公在巴黎喂鸽子的图 | |
19 | 帮我画一幅巨石强森穿大花袄子 |
Prompt指令建议
- 文生图指令不要用LLM方式,多使用自然语言 推荐的描述方式如下:
(1)用自然语言描述画面内容(看图说话)即可,不建议用LLM式的小作文或者CoT,也不建议用早期文生图咒语的逗号串联大量修饰词
(2)根据需求,可以按这个顺序描述画面:画面风格描述、画面主体及限定描述、画面细节描述、画面背景修饰描述、特效、构图、色调要求
(3)举例:
【简单】黄昏时分地上铺满了落叶的照片
【复杂】一张照片展示了黄昏时分地上铺满了落叶的场景。树叶呈现出金黄色,与夕阳的余晖相映成趣,形成了一幅美丽的秋日黄昏画卷。背景是朦胧的天空和远处的山影,增添了画面的层次感和空间感。
- 上屏文字建议用双引号框起来 举例:一副对联,左边写着“蛇年大吉”,右边写着“心想事成”
接口使用方式
接口文档请查看:https://cloud.baidu.com/doc/WENXINWORKSHOP/s/zm696hdfq
接口示例
文生图接口示例
请求示例:
curl https://qianfan.baidubce.com/v2/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "irag-1.0",
"prompt": "梅西做饭、爬山、簪花、打羽毛球、开车、游泳"
}'
返回示例:
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"id": "as-uagimws0re",
"created": 1735910002,
"data": [
{
"url": "http://qianfan-modelbuilder-img-gen.bj.bcebos.com/irag-1.0/fbb00c440e174c81a514c4b83570f816/0ab76844d39044f9a71f853493c42757/img-688ec37f-b5da-4eda-624a-c3387093dde3.png?authorization=bce-auth-v1%2F50c8bb753dcb4e1d8646bb1ffefd3503%2F2025-01-03T13%3A13%3A22Z%2F86400%2Fhost%2Feece2e7b4bd87f838d6c16c6ed300950eb9231b19843a6721a83a06399aa83bd"
}
]
}
图生图接口示例
请求示例:
curl https://qianfan.baidubce.com/v2/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "irag-1.0",
"prompt": "请将马斯克旁边的迅猛龙换成金毛",
"refer_image": "bos url"
}
返回示例:
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"id": "as-dce2kwwbdn",
"created": 1735911220,
"data": [
{
"url": "http://qianfan-modelbuilder-img-gen.bj.bcebos.com/irag-1.0/fbb00c440e174c81a514c4b83570f816/0ab76844d39044f9a71f853493c42757/img-e04966b5-76b5-48ac-5f9b-ea919c9af21d.png?authorization=bce-auth-v1%2F50c8bb753dcb4e1d8646bb1ffefd3503%2F2025-01-03T13%3A33%3A40Z%2F86400%2Fhost%2Fdc39d478d04c127e2e228c0428487f46a0d64af46b9e4c75bc0fa28f3823ba1f"
}
]
}
OpenAI SDK兼容
原始参数
from openai import OpenAI
client = OpenAI(
api_key="bce-v3/ALTAK-xxx/xxxx", # 你的千帆api-key
base_url="https://qianfan.baidubce.com/v2", # 千帆modelbulider平台
)
response = client.images.generate(
model="irag-1.0",
prompt="帮我生成一张贝克汉姆打乒乓球的图",
)
print(response.data[0].url)
输出图片
自定义参数
from openai import OpenAI
client = OpenAI(
api_key="bce-v3/ALTAK-xxx/xxxx", # 你的千帆api-key
base_url="https://qianfan.baidubce.com/v2", # 千帆modelbulider平台
)
extra_data={
"refer_image":"https://qianfan-modelbuilder-img-gen.bj.bcebos.com/irag-1.0/13aecb615d3d465a969da44bf0719f98/13aecb615d3d465a969da44bf0719f98/img-cc991b55-a189-4c9c-707d-30ba47b1017e.png?authorization=bce-auth-v1%2F50c8bb753dcb4e1d8646bb1ffefd3503%2F2025-03-06T11%3A05%3A09Z%2F86400%2Fhost%2F6824003bdff4288924ac59d8c1c10abcca568d8ee6cbb8adcd9e4a17c12b5c45"
}
response = client.images.generate(
model="irag-1.0",
prompt="帮我生成一张贝克汉姆打乒乓球的图",
extra_body=extra_data
)
print(response.data[0].url)