ControlNet在云算力平台上训练fill50k数据集

ControlNet在云算力平台上训练fill50k数据集

开学老师给我布置了一个任务,训练ControlNet,可以使用公开数据集。在进行了简单的调研之后,我选择使用官方的代码库https://github.com/lllyasviel/ControlNet进行训练。但是在训练的过程中发现了一些问题。首先是由于实验室只有一个3080ti,在试了低显存运行模式+半精度训练依然无法解决显存的问题。
正好此时知道OpenBayes这个算力平台,新用户用我的邀请链接注册可以获得 4 小时 4090 的免费使用时长,支持累积,永久有效:https://openbayes.com/console/signup?r=Aa19820152_gYFy。
在这里插入图片描述
经过之前在实验室上的ControlNet配置踩坑,发现ControlNet需要提前下载一些权重以及修改代码。因为训练需要的一些模型如果通过代码自动下载的话,由于你懂得的原因,下载会报错。所以需要自行科学上网下载。
首先是Stable-Diffusion1.5的预训练模型v1-5-pruned.safetensors.下载网址在 https://huggingface.co/runwayml/stable-diffusion-v1-5/tree/main.
另外需要下载ControlNet需要的Clip模型,用来对图像和文字进行编码。下载链接是https://huggingface.co/openai/clip-vit-large-patch14/tree/main. 将这页里的所有内容都下载下来,并存在一个文件夹目录下,我的文件夹名命名为clip-vit-large-patch14,该文件夹放在项目目录openai下。
此外还需要下载用于训练的数据集,我这里使用的与官方教程一样,是fill50k。
在这里插入图片描述

如图所示,该数据集主要训练用于文生图。根据输入的文字Prompt以及控制条件Control Image,生成 Target Image。
数据集的下载网址https://huggingface.co/lllyasviel/ControlNet/tree/main/training, 数据集存放在fill50k目录下。最终我的项目文件存放如下图所示:
在这里插入图片描述

此外,我们需要修改一下代码,指定一下模型路径。修改项目内ldm/modules/encoders/modules.py。如下图所示,将这两处的代码修改为存放clip模型的路径。

在这里插入图片描述
在这里插入图片描述

接下来将项目压缩成zip,上传到OpenBayes平台。首先选择数据仓库里的数据集选项,进入后点击创建新数据集。之后输入对数据集的命名后点击创建数据集。
在这里插入图片描述
在这里插入图片描述

在进入的界面内点击上传新版本,将打包好的项目进行拖拽上传,由于项目比较大,所以需要等待较长时间。
接下来可以创建容器进行训练了。点击算力容器里的模型训练,创建新容器。注意在绑定数据里选择自己上传的项目文件。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/865ca5fab8ee41248c8c825251bf5d93.png#pic_center)

在这里插入图片描述

在对容器命名完成后,点击下一步选择算力。哈哈,选择4090,免费的3小时计算时间。再点击审核并执行。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/7ce55be02a8a4566ac17563528a8e139.png#pic_center)

之后进入Jupyter环境。点击Terminal,将input内的项目复制到home目录下。输入指令:cp -rf /input0/ . 。之后进入项目目录里,输入

conda env create -f environment.yaml
conda activate control安装实验环境,并激活。
好了之后将扩散模型权重转为ControlNet需要的样子。输入指令:python tool_add_control.py ./models/v1-5-pruned.safetensors ./models/control_sd15_ini.ckpt

最后将tutorial_train.py里的代码种的batch_size设置为1就可以运行啦。输入

python tutorial_train.py 。ControlNet, 启动!
如图,是模型训练过程的暂存图像,可以看到模型已经学会了一些东西,哈哈哈。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值