(1)任务一:文心ERNIE-ViLG文图生成模型的测试,生成自己的自画像。将实验过程用文字和截图的方式写在word文档里🤰,包括实验过程、实验代码和实验结果。
(2)完成任务二👦🏼:Stable Diffusion文图生成模型的测试,生成自己的自画像。将实验过程用文字和截图的方式写在word文档里,包括实验过程☎、实验代码和实验结果🗃🧑🏻。
(3)完成任务三:文图生成模型的训练🤳🏿,训练该模型具有任务一和任务二中的模型没有的图片风格🌭。将实验过程用文字和截图的方式写在word文档里👯♂️,包括实验过程🤘🏼、实验代码和实验结果⏪。
下面展示2020级人工智能专业同学们的作品🥭:




优秀实验报告:
第七组文心ERNIE-ViLG文图生成模型
20人工智能 刘彦青,陆奕哲
准备工作
首先,从清华源内安装paddle-pipelines 0.3.0版本。
(Paddle-pipelines是一个端到端智能文本产线框架,面向 NLP 全场景为用户提供低门槛构建强大产品级系统的能力👨🏽🎓,使用百万量级的人工标注的搜索数据集,对于速度和精度都进行了优化。)
再安装自然语言处理包,paddlenlp 2.4.1版本。
(paddlenlp 是飞桨自然语言处理开发库,提升飞桨开发者文本领域建模效率和提升开发者在文本领域的开发效率,并提供丰富的NLP应用示例。)

申请密钥
在ERNIE-ViLG官网申请API Key和 Secret key两个密钥。
创建完成后🧞,将申请的API Key和 Secret key替换到代码中,并运行。

定义生成图片所需的参数
设置需要生成的图片数量和图片大小(高度*宽度)👉🏽🏯。
将自身形象特点描述出来,写进prompt文本代码中,越具体越好🫓。
再选择想要生成图片的风格模式。
最后选择保存路径👩🏿⚕️,并运行。
(注意:要确保选择style风格的时候,是已经训练过的内容风格🈳,没训练过的style执行不了⛪️。)
ERNIE-ViLG官网申请API Key和Secret key两个密钥
1.3 定义生成图片所需的参数
参数解释如下🧂:
text_prompts(str): 输入的语句,描述想要生成的图像的内容💟。
style(Optional[str]): 生成图像的风格,当前支持 古风、油画、水彩、卡通🚶🏻♂️、二次元、浮世绘🤵🏼♀️、蒸汽波艺术🧖🏻、 low poly、像素风格🎓、概念艺术、未来主义🤟🏽、赛博朋克🤛🏿、写实风格🪵、洛丽塔风格、巴洛克风格、超现实主义、探索无限。
resolution(Optional[str]): 生成图像的分辨率⤴️🌙,当前支持 '1024 * 1024', '1024 * 1536', '1536 * 1024',默认为'1024 * 1024'。
topk(Optional[int]): 保存前多少张图,最多保存6张。
output_dir(Optional[str]): 保存输出图像的目录💶,默认为"ernievilg_output"🎅🏻。
2.展示图片
实验代码
1.1
!pip install paddle-pipelines==0.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
!pip install paddlenlp==2.4.1
from IPython.display import clear_output
clear_output()
print("ErniViLG环境安装成功!请重启内核👎!!")
1.2
from pipelines.nodes import ErnieTextToImageGenerator
from pipelines import TextToImagePipeline
# ERNIE-ViLG官网申请API Key和 Secret key两个密钥 (注意请替换这里的密钥🤼♀️,当前密钥已经失效⛎!!!)
api_key = "8pYG7sodosioOp3KNHfbInipZpIGXWD2"
secret_key = "RGgwGBxW51fjGzFiLkH7jwxIwSC5QeRB"
# 定义pipeline
erine_image_generator = ErnieTextToImageGenerator(ak=api_key,
sk=secret_key)
pipe = TextToImagePipeline(erine_image_generator)
1.3
# 需要返回多少张图片
topk = 1
# 指定需要返回的图片大小(高度x宽度)
size = "1024*1024"
# 需要生成的prompt文本
prompt_text= "男大学生,185cm🐚,单眼皮🗼,短发, 运动装🎵,爱笑✈️,阳光🎚,黑短发,微胖"
# 指定的风格
style = "水彩"
# 指定生成图片的保存路径
output_dir = "ernievilg_output"
# 开始生成图片
prediction = pipe.run(query=prompt_text,
params={
"TextToImageGenerator": {
"topk": topk,
"style": style,
"resolution": size,
"output_dir": output_dir
}
})
1.4
# 展示生成的图片
from PIL import Image
for image in prediction['results']:
display(Image.open(image))
实验结果

实验ErnieViLG在线体验
专业班级 | 20人工智能1班 | 学号 | 20180122、20180123 | 姓名 | 倪金成👼🏿、沈磊 |
实验内容 | 使用PP飞桨🧑🏿🚒🔟,通过调用百度文心ERNIE-ViLG 模型👇🏼,使用文字描述生成相应图形🤌。 | ||||
实验结果 (附图) | 代码一🧗🤹🏼♂️: !pip install paddlenlp==2.4.1 向内核安装百度深度学习框架。分别为文本流水线系统和自然语言处理模型库💾。并重启内核✡︎。
代码二: from pipelines.nodes import ErnieTextToImageGenerator from pipelines import TextToImagePipeline # ERNIE-ViLG官网申请API Key和 Secret key两个密钥 api_key = "MzQIiXsZbEU4piSNO0ZhnlQuYxRAVe95" secret_key = "dhqPgYXyNDzdFEt7Wh989mYNWvd1nZGW" # 定义pipeline erine_image_generator = ErnieTextToImageGenerator(ak=api_key, sk=secret_key) pipe = TextToImagePipeline(erine_image_generator) 运行之前,我们需要在ERNIE-ViLG官网申请API Key和 Secret key两个密钥
代码三: topk = 3 # 指定需要返回的图片大小(高度x宽度) size = "1024*1024" # 需要生成的prompt文本 prompt_text= "男生,戴眼镜,黑色短发,短袖,双眼皮😑,身高一米七八,阳光大男孩" # 指定的风格 style = "油画" # 指定生成图片的保存路径 output_dir = "ernievilg_output" # 开始生成图片 prediction = pipe.run(query=prompt_text, Params={ "TextToImageGenerator":{ "topk": topk, "style": style, "resolution": size, "output_dir": output_dir } }) 定义生成图片所需要的参数。
结果展示🗣:
| ||||