文章目录
- 摘要
- PaddleHub能力简介
- 文心ERNIE-ViLG介绍
- 配置环境
- 模型加载推理
- Prompt 设计原则
摘要
根据文字生成图像,是近几年大模型领域比较热门的研究。我这篇文章主要记录如何使用百度的文心大模型实现文字生成图像。
PaddleHub能力简介
PaddleHub旨在为开发者提供丰富的、高质量的、直接可用的预训练模型
- 【模型种类丰富】: 涵盖大模型、CV、NLP、Audio、Video、工业应用主流六大品类的 360+ 预训练模型,全部开源下载,离线可运行
- 【超低使用门槛】:无需深度学习背景、无需数据与训练过程,可快速使用AI模型
- 【一键模型快速预测】:通过一行命令行或者极简的Python API实现模型调用,可快速体验模型效果
- 【一键模型转服务化】:一行命令,搭建深度学习模型API服务化部署能力
- 【十行代码迁移学习】:十行代码完成图片分类、文本分类的迁移学习任务
- 【跨平台兼容性】:可运行于Linux、Windows、MacOS等多种操作系统
文心ERNIE-ViLG介绍
文心ERNIE-ViLG参数规模达到100亿,是目前为止全球最大规模中文跨模态生成模型,在文本生成图像、图像描述等跨模态生成任务上效果全球领先,在图文生成领域MS-COCO、COCO-CN、AIC-ICC等数据集上取得最好效果。你可以输入一段文本描述以及生成风格,模型就会根据输入的内容自动创作出符合要求的图像。
目前ERNIE-ViLG的文心大模型API已经登入PaddleHub,只需通过4行代码就能实现强大的图文生成能力! 你可以输入一段文本描述以及生成风格,模型就会根据输入的内容自动创作出符合要求的图像。
例如:
配置环境
1、安装PaddlePaddle
链接:https://www.paddlepaddle.org.cn/
如果只是为了体验图文生成的功能,可以安装CPU版本。
conda install paddlepaddle==2.3.2 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/
更详细的安装步骤:https://www.paddlepaddle.org.cn/documentation/docs/zh/install/conda/windows-conda.html#anchor-0
2、安装PaddleHub
pip install --upgrade paddlehub
pip install docarray
模型加载推理
新建个python脚本,插入下面的代码即可生成图像。
import paddlehub as hub
from docarray import DocumentArray,Documenterniv_vilg_module=hub.Module(name='ernie_vilg')result=erniv_vilg_module.generate_image(text_prompts='香山,天鹅,亭子,古风,枫叶,概念艺术',style='水彩',output_dir='./output')DocumentArray([Document().load_pil_image_to_datauri(image) for image in result[:6]]).plot_image_sprites()
参数:
- text_prompts(str): 输入的语句,描述想要生成的图像的内容。
- style(Optional[str]): 生成图像的风格,当前支持’油画’,‘水彩’,‘粉笔画’,‘卡通’,‘儿童画’,‘蜡笔画’。
还有一些其他风格也是支持的,比如:
二次元、浮世绘、蒸汽波艺术、low poly、像素风格、概念艺术、未来主义、赛博朋克、写实风格、洛丽塔风格、巴洛克风格、超现实主义等。 - topk(Optional[int]): 保存前多少张图,最多保存10张。
- output_dir(Optional[str]): 保存输出图像的目录,默认为"ernievilg_output"。
返回
- images(List(PIL.Image)): 返回生成的所有图像列表,PIL的Image格式。
Prompt 设计原则
Prompt:简单原则:清楚地陈述 除了公式之外,也有一些简单的prompt设计原则分享给大家
这里的第一条原则是 要清楚的陈述
例如我们如果是简单的输入 风景的话,往往模型不知道我们想要的风景是什么样子的
我们要去尽量的幻想我们风景的样子,然后变成语言描述
例如我想想的是日落时,海边的风景
那我就构造了prompt
进一步的,我想风格化我的图像,所以我在结尾的部分,增加了 胶片感来让图片的色彩更加好看一些
但是云彩的细节丢失了一些
进一步的我再增加天边巨大云朵这一个细节,让我的图片朝着我想要的样子靠的更进一步
详见:https://wenxin.baidu.com/wenxin/docs#Ol7ece95m
下面举几个例子:
1、火焰,凤凰,少女,未来感,高清,3d, 精致面容,cg感,古风,唯美,毛发细致,全身立绘
result=erniv_vilg_module.generate_image(text_prompts='火焰,凤凰,少女,未来感,高清,3d, 精致面容,cg感,古风,唯美,毛发细致,全身立绘',style='古风',output_dir='./output')
输出结果:
2、巨狼,飘雪,蓝色大片烟雾,毛发细致,烟雾缭绕,高清,3d,cg感,侧面照
result=erniv_vilg_module.generate_image(text_prompts='巨狼,飘雪,蓝色大片烟雾,毛发细致,烟雾缭绕,高清,3d,cg感,侧面照',style='写实风格',output_dir='./output')
如果不想安装环境也可以在百度的网站上体验,链接:
https://wenxin.baidu.com/moduleApi/ernieVilg