使用google colab训练stable diffusion AI模型
  FT5dbaNQcmaA 2023年11月02日 44 0

一、说明

在读本文之前,我想你一定使用过sd作图程序,并且对ai工具有一定的了解,本文主要介绍如何使用免费的Google GPU算力训练自己的ai模型,并将其应用到你的stable diffusion程序中。 毕竟如果要自己购买一套中高端性能的GPU服务器用来训练,成本还是挺高的。

二、Google colab介绍

Google Colab是一个基于云的编程环境, 你可以把它想成是一个云端虚拟服务器,然后Google给你提供了一套开发套件,你可以在里面直接运行python程序或者编写markdown文档,最主要的是你可以直接切换运算核心:CPU或者GPU,并且这一切都是免费的,只需要你拥有一个google账号。

默认情况下Google Colab就像一台没有硬盘的电脑,里面的所有内容都是即时重置的,只在你的这一次会话过程中存在,一旦你退出本次使用,里面的东西会全部被重置。不过我们不用担心,Google Colab允许和Google云硬盘搭配使用,你可以将google云硬盘直接挂载到Google Colab运行环境中,然后你就可以像一般的电脑一样使用它,你所有的文件都可以直接存档到云硬盘中,再也不用担心工作进度丢失,正确的运行环境如下:

使用google colab训练stable diffusion AI模型_Google

三、环境配置

3.1:准备工作

》国内用户需要科学上网

》需要一个Google账号(没有的自己想办法注册,这里不再详细介绍注册步骤)

3.2:打开Colab环境

https://colab.research.google.com/https://colab.research.google.com/

使用google colab训练stable diffusion AI模型_Google_02

3.3:选择GPU计算核心

3.4:链接启动colab环境

3.5:挂载Google云硬盘

使用google colab训练stable diffusion AI模型_Google_03

使用google colab训练stable diffusion AI模型_python_04

使用google colab训练stable diffusion AI模型_git_05

四、开始训练

4.1:模型知识

Ai模型的本质其实是一套计算规则,这套规则里面包含了绘图的风格,关键词,拟合信息,生成算法等内容, 然后GPU通过加载模型进行并行计算,最终生成一张符合该模型风格的图像。实际上ai的出图过程跟我们人脑作图的过程是差不多的,通过下图我们可以做一下类比:

使用google colab训练stable diffusion AI模型_python_06

使用google colab训练stable diffusion AI模型_git_07

所以我们可以把模型类比做我们人类的技能点,训练模型的过程其实就是我们人类学习某项技能的过程。

4.2:训练过程

同样我们类比人脑学习技能的过程,我们学习一项技能所需的要素内容如下:

人脑技能

模型规则

说明

技能示例

训练图

明确目标是什么

技能介绍

文本摘要

介绍讲解目标

学习方法

训练算法

如何达到目标

学习过程

训练过程

重复训练,达到目标

我们看到其实模型训练主要有4个要素,下面我们依次看一下这几个要素

4.2.1:训练图

训练图其实就是我们想要达到什么样的效果,如下图:

使用google colab训练stable diffusion AI模型_git_08

现在我们要训练一个给人自动更换这套衣服的模型,那么我们就需要先找一批这套衣服的示例图,最好是高清模特图,一般需要8张以上不同角度的同类型模特图:

使用google colab训练stable diffusion AI模型_git_09

图片不能过少,否则训练的效果不佳,尽量保证图片数量为偶数。

然后我们需要对图片进行技术调整,去掉杂色背景,去掉头和脚(因为我们只换衣服),调整为正方形(边长>512):

使用google colab训练stable diffusion AI模型_git_10

最终我们得到10张纯白背景的训练图。

4.2.2:文本摘要

文本摘要其实就是对这10张训练图进行一个关键字提取,主要是用在文生图模式下,通过文本关键字能够匹配到这个模型效果,我们自己写肯定不太合适,还是交给训练脚本吧,训练脚本会自动对这10张图进行翻译,输出一套关键字摘要:

首先我们要把这10张图上传到Google云硬盘,然后在Colar可以看到:

使用google colab训练stable diffusion AI模型_python_11

然后我们下载训练程序,开源社区有很多的训练程序,这里选一个比较受欢迎的kohya-ss/sd-scripts

https://github.com/kohya-ss/sd-scripts.githttps://github.com/kohya-ss/sd-scripts.git

使用google colab训练stable diffusion AI模型_python_12

!git clone https://github.com/kohya-ss/sd-scripts.git
!pip install --upgrade -r /content/sd-scripts/requirements.txt

使用google colab训练stable diffusion AI模型_python_13

执行摘要提取程序,提取训练图关键字

使用google colab训练stable diffusion AI模型_Google_14

!python3 "/content/sd-scripts/finetune/make_captions.py" \
--batch_size="8" \
--num_beams="10" \
--top_p="0.9" \
--max_length="75" \
--min_length="22" \
--beam_search \
--caption_extension=".txt" \
"/content/drive/MyDrive/lora/chilloutmix/input/girl_clothes/150_pics/" \
--caption_weights="https://storage.googleapis.com/sfr-vision-language-research/BLIP/models/model_large_caption.pth"

使用google colab训练stable diffusion AI模型_git_15

摘要提取完成

使用google colab训练stable diffusion AI模型_python_16

提取完成的摘要,我们需要做一下后置处理

使用google colab训练stable diffusion AI模型_Google_17

4.2.3:训练算法

其实这个要素是最简单的,因为开源社区都帮我们做了,我们这里用训练程序的实际就是上一步中的kohya-ss/sd-scripts, 执行过第二步之后,本要素不需要再额外安装

4.2.4:训练过程

紧接着上一步,我们新建训练代码,继续执行训练程序

使用google colab训练stable diffusion AI模型_Google_18

基础大模型站内下载地址https://download.csdn.net/download/ma_jian_ping/88380149

!pip install xformers
!python3 "/content/sd-scripts/train_network.py" \
  --enable_bucket \
  --pretrained_model_name_or_path="/content/drive/MyDrive/lora/chilloutmix/safetensors.safetensors" \
  --train_data_dir="/content/drive/MyDrive/lora/chilloutmix/input/girl_clothes" \
  --resolution=768,768 \
  --output_dir=trainDir+"/content/drive/MyDrive/lora/chilloutmix/output" \
  --network_alpha="96" \
  --save_model_as=safetensors \
  --network_module=networks.lora \
  --text_encoder_lr=5e-5 --unet_lr=0.0001 \
  --network_dim=96 \
  --cache_latents\
  --output_name="ports_printed_panel_dress_2023_model" \
  --lr_scheduler_num_cycles="1" --learning_rate="0.0001" \
  --lr_scheduler="constant" \
  --train_batch_size="2" --max_train_steps="750" \
  --save_every_n_epochs="1" --mixed_precision="fp16"\
  --save_precision="fp16" --optimizer_type="AdamW8bit"\
  --max_data_loader_n_workers="1" \
  --caption_extension=".txt" \
  --clip_skip=2 \
  --max_bucket_reso=2048 \
  --xformers

这个训练过程比较漫长,主要跟训练程序参数中设置的训练次数有关,训练次数越多,模型越精确,但是相应的耗时也会更长。

最大训练次数 =  图片目录名前缀(150) * 图片数量(10) / 2

本示例中:750 = 150 * 10 / 2

使用google colab训练stable diffusion AI模型_git_19

耐心等待训练程序完成

使用google colab训练stable diffusion AI模型_python_20

4.3:测试模型

将上一步训练后下载的模型文件放到stable diffusion web ui的model目录,然后我们测试一下该模型

选择文生图模式

使用google colab训练stable diffusion AI模型_Google_21


使用google colab训练stable diffusion AI模型_Google_22


使用google colab训练stable diffusion AI模型_git_23

我们看到,stable diffusion 已经正确的生成了我们想要的衣服款式。说明我们的模型生效了。

五、训练中遇到的问题

问题1:生成图片摘要的那一步,训练程序依赖安装报错

使用google colab训练stable diffusion AI模型_git_24

解决方案:这个错误是因为下载的sd-scripts的requirement文件格式有问题,导致自动安装依赖失败,解决如下

使用google colab训练stable diffusion AI模型_python_25

问题2:生成图片摘要的那一步,摘要程序报错,找不到依赖

使用google colab训练stable diffusion AI模型_python_26

解决方案:这个错误的原因是,Colab默认运行目录不是sd-scripts根目录,所以执行sd程序的时候,运行路径不正确,导致找不到正确的依赖程序,正确的解决方案是切换执行目录,

但是免费版的Colab不允许切换执行目录,所以我们要采用迂回的方式解决这个问题,如下图:

使用google colab训练stable diffusion AI模型_Google_27



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2Fnpj8K6xSCR   2024年05月17日   93   0   0 Python
  xKQN3Agd2ZMK   2024年05月17日   67   0   0 Python
  Ugrw6b9GgRUv   2024年05月17日   39   0   0 Python
FT5dbaNQcmaA