以下文章用于介绍如何使用stable diffusion, 基于真人照片的pt文件制作
照片随机抓取至网络。原始照片举例:
经过训练后,由stabel diffusion 生成的照片举例
以下基于深度学习的一般流程,介绍一下基于真人照片的pt批处理文件流程
1- 数据处理
首先是原始数据的获得,一般通过网络公开渠道都可以获得原始的训练数据。
1.1 数据清洗
但是我们从网络上获得的大部分数据都需要做一个初步的处理,比如对于过于花哨的背景,需要进行抠像处理;过于模糊的照片或者本身已经失真的照片需要剔除;部分照片如脸上有特效,头发遮住一部分脸庞,身上衣服有大范围的数字和字母、文字,纹身等等,最好予以剔除。
最后得到的初始照片大致如下:
1.2 数据预处理
首先在启动stabel diffusion 之前,进入VAE文件夹,将model.vae.pt文件改为1model.vae.pt,这一步很重要,VAE若自动加载,则训练必失败。
随后启动stabel diffusion对于上述图像进行预处理。
设置反推提示词如下
记得“保存设置”,切记!!!
1.3 随后进入训练页签,对于图像进行预处理
输入embedding的名字,这个也决定了这个pt的后续名字,方便记忆即可。
初始化文字越简单越好,如果是人像输入1girl即可;如果是画风训练则输入画师的名字即可,方便区分和记忆即可。
每个token的向量数是很重要的,一般与你的初始图片数量有关,如果是人像训练,一般设置数字为6-12, 如果是画风训练则一般10以上。
举例我如果是20张照片,我设置为6;如果40张照片,我一般设置为8或者9;如果有100张照片,我一般设置为16.
点击生成embedding文件,显示成功生成pt文件
1.4 对于原始图像进行预处理
在stable diffusion程序文件夹内,创建一个train文件夹,在train文件夹下,输入你这个人像训练或画风训练的embedding文件夹,在这个文件夹下,再创建一个old文件夹。
将你前期经过抠像的图片存储入上述创建的old文件夹
1.5 由SD进行图像的预处理
源目录为上述创建的old目录绝对路径。
目标目录和上述目录路径相同,将最后的old改为new
如果是独立显存8G,则宽度高度保持默认的512*512即可;如果是独立显存6G,则宽度高度改为384*384,不然容易爆显存。
另外,即使你的初始照片为1024*768或其他比例,这里也建议保留原始的宽度高度512*512不要修改,不然生成的照片比例会很奇怪。
最下面的选项如图片选择即可。
后台显示对于初始文件进行预处理
SD会自动创建new文件夹,并对于初始照片进行处理
2 训练配置
进入文生图页面,prompt输入简单内容即可,一般将embedding名字放在最后,不要加太多的prompt,如1girl, realistic即可。
回到训练页面
embedding选择自己刚才创建的embedding名字
学习率保持默认即可
数据集目录,设置为之前的new文件夹,用预处理过的图像作为数据集目录
日志目录为textual_inversion,如果是画风训练,则下方应选择为style_filewords,如果是人像训练,则下方应选择为subject_fileword。
宽度高度保持不变,依旧512*512
最大迭代步数由100000改为10000或20000
下面步数默认500或者250都可以。
点击“训练embedding”,开始训练模型
3 SD后台开始训练embedding文件
4 查看训练结果
在textual_inversion文件夹下,会自动创建一个当天日期的文件夹
在当天日期文件夹下,会自动创建一个embedding名字的子文件夹
在images下面,会看到每隔500个结果,保存的照片
一般这时候照片会比较难看,但是如果只要还看的出来是原来的画风和人像,就可以不要打断SD,让他继续训练下去,直至完成。
5 校验,调整
20000个图像训练完成
训练完成后,我们就可以直接使用刚才的embedding作为prompt生成照片了
进入文生图页面
6 图像模型优化
如果训练完的照片还是不像怎么办?
在image_embedding目录之下,逐个查看,记住比较像的或者符合你审美的过程照片
进入上述文件夹同级的embedding文件,找到和之前所挑选数字对应的两个pt文件
进入SD安装目录下的 embedding文件夹,将上述两个pt文件复制粘贴进来
在文生图页面下,记得输入刚才粘贴的pt文件名字
7 锁定seed,进一步优化
在上述生成照片的十几张照片中,找到一张最顺眼的照片,
点击随机种子选项中的“Reuse seed……”按钮,锁定seed
再次基于锁定seed,重新文生图
8最终效果举例