更新时间:2024-08-17 GMT+08:00
分享

Controlnet训练

使用文本提示词可以生成一副精美的画作,然而无论再怎么精细地使用提示词来指导模型,也无法描述清楚人物四肢的角度、背景中物体的位置、光线照射的角度,使用Controlnet可以通过图像特征来为扩散模型的生成过程提供更加精细控制的方式。

将Controlnet适配到昇腾卡进行训练,可以提高能效、支持更大模型和多样化部署环境,提升昇腾云在图像生成和编辑场景下的竞争力。

本章节介绍SDXL&SD 1.5模型的Controlnet训练过程。

Step1 处理fill50k数据集

使用ma-user用户在容器上执行如下命令解压数据集。

cd /home/ma-user/datasets/fill50k 
unzip conditioning_images.zip 
unzip images.zip

接着修改fill50k.py文件,如果机器无法访问huggingface网站,则需要将脚本文件中下载地址替换为容器本地目录。

56     def _split_generators(self, dl_manager):      
57         #metadata_path = dl_manager.download(METADATA_URL)      
58         #images_dir = dl_manager.download_and_extract(IMAGES_URL)      
59         #conditioning_images_dir = dl_manager.download_and_extract(      
60         #    CONDITIONING_IMAGES_URL      
61         #)      
62         metadata_path = "/home/ma-user/datasets/fill50k/train.jsonl"      
63         images_dir = "/home/ma-user/datasets/fill50k"      
64         conditioning_images_dir = "/home/ma-user/datasets/fill50k"

Step2 启动SD1.5训练服务

使用ma-user用户执行如下命令运行训练脚本。

cd /home/ma-user/diffusers
sh diffusers_controlnet_train.sh

Step3 启动sdxl训练服务

使用ma-user用户执行如下命令运行训练脚本。
cd /home/ma-user/diffusers
sh diffusers_sdxl_controlnet_train.sh

训练执行成功如下图所示。

图1 训练执行成功

相关文档