最近做了一个AI绘画的硬件性能分析视频(BV1EL411v7LE),这当中使用了从百度AI Studio那儿白嫖的V100和A100。目前百度AI Studio只需要每天登陆运行项目就送8点算力卡,V100 16G每小时消耗0.5算力卡,在百度AI Studio中白嫖显卡是目前最划算的LoRA训练方式,因为它的成本就是0。
但是,百度AI Studio只允许运行paddlepaddle,不允许运行pytorch,这让许多小伙伴头皮发麻,因为自己最常用的webui整合包需要pytorch模型才能运行,而paddle的lora训练脚本只能输出pdparams,只能被paddle读取,不兼容pytorch。
因此,我在ppdiffusers的LoRA训练脚本的基础上,修改了模型保存阶段的代码,用pytorch safetensors保存LoRA模型,大家可以点击这个链接尝试:https://aistudio.baidu.com/aistudio/projectdetail/6047468
首先,点开上面的链接,在右上角注册/登陆一个AI Studio账号
然后,再次点开上面的链接,点击启动环境
如果你没有算力卡,先选择CPU,启动环境之后再回到刚才的页面点击停止关掉,系统会在你启动环境之后自动送你8点算力卡
进入环境之后,在train_data文件夹内,放上你需要训练的图片,如果你没有裁切也没关系,脚本会进行自动缩放,默认会缩放到512*512
在准备好图片之后,就可以着手安装环境了,BML Codelab默认是没有ppdiffusers的,这里我们需要打开项目目录下的main.ipynb进行安装,点击播放按钮运行代码安装,安装之后记得点击重启内核
重启内核后还是在main.ipynb内,继续往下翻,是运行脚本的代码,脚本后面的参数看链接(https://github.com/PaddlePaddle/PaddleNLP/tree/develop/ppdiffusers/examples/dreambooth)内的说明,这里帮大家填写好了默认的参数。模型可以使用huggingface和Civitai社区的,这里示例是chilloutmix,如果使用自己的模型,记得要先转换成diffuser格式再上传。训练好的LoRA模型会在lora_outputs目录里。
除了模型名称之外,还有两个重要的参数你是一定会需要修改的,那就是prompt。在这里我们使用百度的示例,自己实际训练的时候,以让模型认识新角色为例,可以把这两个prompt中的sks dog全部改成新角色的名称。
如果你是下载的模型,可以看看这一段,通过work目录保存下载的模型,这样就不用每次都打开了,公开项目不能接受那么大的文件体积,所以就没有了,大家自己运行的时候可以用这个。
最后是看看训练好的LoRA的效果,读取刚才训练好的safetensors,特别注意在AI Studio中只能使用ppdiffusers,好在ppdiffusers支持加载pytorch模型,因此我们依旧可以在这里预览模型效果。
Enjoy it!