Spaces:
Runtime error
A newer version of the Gradio SDK is available:
4.44.1
PaddleHub ERNIE-ViLG
目录
一、模型基本信息
模型名称 | ernie_vilg |
---|---|
类别 | 图像-文图生成 |
网络 | ERNIE-ViLG |
数据集 | - |
是否支持Fine-tuning | 否 |
模型大小 | - |
最新更新日期 | 2022-08-02 |
数据指标 | - |
应用效果展示
输入文本 "戴眼镜的猫" 风格 "油画"
输出图像
模型介绍
文心ERNIE-ViLG参数规模达到100亿,是目前为止全球最大规模中文跨模态生成模型,在文本生成图像、图像描述等跨模态生成任务上效果全球领先,在图文生成领域MS-COCO、COCO-CN、AIC-ICC等数据集上取得最好效果。你可以输入一段文本描述以及生成风格,模型就会根据输入的内容自动创作出符合要求的图像。
二、安装
1、环境依赖
paddlepaddle >= 2.0.0
paddlehub >= 2.2.0 | 如何安装PaddleHub
2、安装
$ hub install ernie_vilg
- 如您安装时遇到问题,可参考:零基础windows安装
| 零基础Linux安装 | 零基础MacOS安装
三、模型API预测
1、命令行预测
$ hub run ernie_vilg --text_prompts "宁静的小镇" --style "油画" --output_dir ernie_vilg_out
2、预测代码示例
import paddlehub as hub module = hub.Module(name="ernie_vilg") text_prompts = ["宁静的小镇"] images = module.generate_image(text_prompts=text_prompts, style='油画', output_dir='./ernie_vilg_out/')
3、API
def generate_image( text_prompts:str, style: Optional[str] = "油画", topk: Optional[int] = 6, output_dir: Optional[str] = 'ernievilg_output')
文图生成API,生成文本描述内容的图像。
参数
- text_prompts(str): 输入的语句,描述想要生成的图像的内容。
- style(Optional[str]): 生成图像的风格,当前支持'油画','水彩','粉笔画','卡通','儿童画','蜡笔画','探索无限'。
- topk(Optional[int]): 保存前多少张图,最多保存6张。
- output_dir(Optional[str]): 保存输出图像的目录,默认为"ernievilg_output"。
返回
- images(List(PIL.Image)): 返回生成的所有图像列表,PIL的Image格式。
四、服务部署
PaddleHub Serving可以部署一个在线文图生成服务。
第一步:启动PaddleHub Serving
运行启动命令:
$ hub serving start -m ernie_vilg
这样就完成了一个文图生成的在线服务API的部署,默认端口号为8866。
NOTE: 如使用GPU预测,则需要在启动服务之前,请设置CUDA_VISIBLE_DEVICES环境变量,否则不用设置。
第二步:发送预测请求
配置好服务端,以下数行代码即可实现发送预测请求,获取预测结果。
import requests import json import cv2 import base64 from io import BytesIO from PIL import Image # 发送HTTP请求 data = {'text_prompts': '巨大的白色城堡'} headers = {"Content-type": "application/json"} url = "http://127.0.0.1:8866/predict/ernie_vilg" r = requests.post(url=url, headers=headers, data=json.dumps(data)) # 获取返回结果 for i, result in enumerate(r.json()["results"]): image = Image.open(BytesIO(base64.b64decode(result))) image.save('result_{}.png'.format(i))
五、更新历史
1.0.0
初始发布
$ hub install ernie_vilg == 1.0.0
六、 Prompt 指南
这是一份如何调整 Prompt 得到更漂亮的图片的经验性文档。我们的结果和经验都来源于文心 ERNIE-ViLG Demo 和社区的资料。
什么是 Prompt?Prompt 是输入到 Demo 中的文字,可以是一个实体,例如猫;也可以是一串富含想象力的文字,例如:『夕阳日落时,天边有巨大的云朵,海面波涛汹涌,风景,胶片感』。不同的 Prompt 对于生成的图像质量影响非常大。所以也就有了下面所有的 Prompt 的一些经验性技巧。
前言
Prompt 的重要性如此重要,以至于我们需要构造一个示例来进行一次说明。
如下图,文心 ERNIE-ViLG Demo 中,『卡通』模式下,输入的 Prompt 为『橘猫』,以及 『卡通』模型式下『极乐迪斯科里的猫, 故障艺术』两个示例,能够看出来后者的细节更多,呈现的图片也更加的风格化。
开放风格限制(本质上就是在 Prompt 中不加入风格控制词),即下图图3,得到的图片细节更多、也更加真实,同时还保留了比较强烈的风格元素。所以后面的所有内容,都将围绕着如何构造更好的 Prompt 进行资料的整理。
呼吁与准则
机器生成图片的最终目的还是便捷地为人类创造美的作品。而技术不是十全十美的,不能保证每次生成的图像都能够尽善尽美。因此呼吁所有相关玩家,如果想分享作品,那就分享那些美感爆棚的作品!
算法生成的图片难免会受到数据的影响,从而导致生成的图片是有数据偏见的。因此在分享机器生成图片到社交媒体之前,请三思当前的图片是不是含有:令人不适的、暴力的、色情的内容。如果有以上的内容请自行承担法律后果。
Prompt 的设计
如何设计 Prompt,下文大概会通过4个方面来说明:Prompt 公式,Prompt 原则,Prompt 主体、Prompt 修饰词。
需要注意的是,这里的 Prompt 公式仅仅是个入门级别的参考,是经验的简单总结,在熟悉了 Prompt 的原理之后,可以尽情的发挥脑洞修改 Prompt。
Prompt 公式
按照这个公式,我们首先构造一个形容词加主语的案例。 这里我构造的是 戴着眼镜的猫, 风格我选择的是油画风格,然后我再添加一些细节设定,这里我给的是 漂浮在宇宙中, 可以看到 ,猫猫的后面出现了很多天体。
最后我们想让我们的照片风格更加有艺术性的效果, 我们选择的艺术家是高更, 可以看到图像的画风有了更强的艺术风格。
Prompt 设计原则
Prompt 简单原则: 清楚地陈述
除了公式之外,也有一些简单的 Prompt设计原则分享给大家:即清楚的陈述。
例如我们如果是简单的输入风景的话,往往模型不知道我们想要的风景是什么样子的(下图1)。我们要去尽量的幻想风景的样子,然后变成语言描述。 例如我想像的是日落时,海边的风景, 那我就构造了 Prompt 『夕阳日落时,阳光落在云层上,海面波光粼粼,风景』(下图2)。 进一步的,我想风格化我的图像,所以我在结尾的部分,增加了『胶片感』来让图片的色彩更加好看一些(下图3)。但是云彩的细节丢失了一些,进一步的我再增加天边巨大云朵这一个细节,让我的图片朝着我想要的样子靠的更进一步(下图4)。
Prompt 主体的选择
Prompt 的主体可以是千奇百怪、各种各样的。这里我挑了几个简单的容易出效果的主体示例和一些能够营造特殊氛围的氛围词来激发大家的灵感。
Prompt 修饰词
如果想让生成的图片更加的艺术化、风格话,可以考虑在 Prompt 中添加艺术修饰词。艺术修饰词可以是一些美术风格(例如表现主义、抽象主义等),也可以是一些美学词汇(蒸汽波艺术、故障艺术等),也可以是一些摄影术语(80mm摄像头、浅景深等),也可以是一些绘图软件(虚幻引擎、C4D等)。
按照这样的规律,我们在两个输入基准上 :
一只猫坐在椅子上,戴着一副墨镜
日落时的城市天际线
通过构造『输入 + Prompt 修饰词』来展示不同修饰词的效果 (这里的策略参考了资料)。
需要注意的是,不是所有的 Prompt 对于所有的修饰词都会发生反应。所以查阅 Prompt 修饰词的过程中,会发现部分的 Prompt 修饰词只能对两个基准中的一个生效。这是很正常的,因为 Prompt 的调优是一个反复的试错的过程。接下来,大家结合如下的 Prompt 修饰词, Happy Prompting 吧!
复古未来主义风格
粉彩朋克风格
史前遗迹风格
波普艺术风格
迷幻风格
赛博朋克风格
纸箱风格
未来主义风格
抽象技术风格
海滩兔风格
粉红公主风格
嬉皮士风格
幻象之城风格
美人鱼风格
迷宫物语风格
仙女风格
Low Poly 风格
浮世绘风格
矢量心风格
摩托车手风格
孟菲斯公司风格
泥塑风格
苔藓风格
新浪潮风格
嘻哈风格
矢量图
铅笔艺术
女巫店风格
4D 建模
水彩墨风格
酸性精灵风格
海盗风格
古埃及风格
风帽风格
装饰艺术风格
极光风格
秋天风格
巴洛克风格
立体主义风格
黑暗自然主义风格
表现主义风格
野兽派风格
鬼魂风格
印象主义风格
卡瓦伊风格
极简主义风格
水井惠郎风格
照片写实风格
像素可爱风格
雨天风格
湿漉漉的风格
维京人风格
后印象主义
素人主义
碎核风格
Prompt 更多信息
概念组合
ShowCase
更多 ShowCase 和创意 Prompt,可以参考我的社交账号 或者是 http://youpromptme.cn/#/gallery/ (建设中)
故障艺术
_时钟故障,时间故障,概念艺术,艺术站总部,pixiv趋势,cgsociety,蒸汽波艺术 | 巨大的纯白色城堡-油画,故障艺术 | Yggdrasil,世界树和地球融合在一起,故障艺术 | 在百货公司和工厂的高商业需求中,未来复古科幻幻想对象或设备的专业概念艺术,故障艺术 |
蒸汽波艺术
包豪斯艺术
概念艺术
像素艺术
艺术家
附录
常见的艺术家和艺术风格整理
艺术类型 | 艺术家 | 常用艺术风格 |
---|---|---|
肖像画 | 文森特·梵高 | 印象主义 |
风景画 | 尼古拉斯·罗伊里奇 | 现实主义 |
风俗画 | 皮埃尔-奥古斯特·雷诺阿 | 浪漫主义 |
宗教绘画 | 克劳德·莫内 | 表现主义 |
抽象画 | 彼得·孔查洛夫斯基 | 后印象主义 |
都市风景画 | 卡米尔·毕沙罗 | 象征主义 |
素描与草图 | 约翰·辛格·萨金特 | 新艺术主义 |
静物 | 伦勃朗 | 巴洛克风格 |
裸体画 | 马克·夏加尔 | 抽象表现主义 |
插画 | 巴勃罗·毕加索 | 北欧文艺复兴 |
古斯塔夫·多雷 | 素人艺术,原始主义 | |
阿尔布雷特·丢勒 | 立体主义 | |
鲍里斯·库斯妥基耶夫 | 洛可可 | |
埃德加·德加 | 色域绘画 | |
波普艺术 | ||
文艺复兴开端 | ||
文艺复兴全盛期 | ||
极简主义 | ||
矫饰主义,文艺复兴晚期 |
常见的摄影风格词整理
可以加入到 Prompt 中的摄影词 | |
---|---|
浅景深 | 仰拍 |
负像 | 动态模糊 |
微距 | 高反差 |
双色版 | 中心构图 |
角度 | 逆光 |
三分法 | 长曝光 |
抓拍 | 禅宗摄影 |
软焦点 | 抽象微距镜头 |
黑白 | 暗色调 |
无镜反射 | 长时间曝光 |
双色调 | 框架,取景 |
颗粒图像 |
相关链接
美学相关的词汇: https://aesthetics.fandom.com/wiki/List_of_Aesthetics
DALL-E 2 的 Prompt 技巧资料:https://docs.google.com/document/d/11WlzjBT0xRpQhP9tFMtxzd0q6ANIdHPUBkMV-YB043U/edit
DiscoDiffusion Prompt 技巧资料:https://docs.google.com/document/d/1l8s7uS2dGqjztYSjPpzlmXLjl5PM3IGkRWI3IiCuK7g/edit