Stable Diffusion火影数据集训练:SwanLab可视化训练

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,1000CU*H 3个月
简介: **使用Stable Diffusion 1.5模型训练火影忍者风格的文生图模型。在22GB显存的GPU上,通过Huggingface的`lambdalabs/naruto-blip-captions`数据集进行训练,利用SwanLab进行监控。所需库包括`swanlab`, `diffusers`, `datasets`, `accelerate`, `torchvision`, `transformers`。代码、日志和更多资源可在GitHub和SwanLab找到。训练涉及数据下载、模型配置、训练过程可视化及结果评估。**

Stable Diffusion 1.5(SD1.5)是由Stability AI在2022年8月22日开源的文生图模型,是SD最经典也是社区最活跃的模型之一。

以SD1.5作为预训练模型,在火影忍者数据集上微调一个火影风格的文生图模型(非Lora方式),是学习SD训练的入门任务。

sd-1.png

显存要求 22GB左右

在本文中,我们会使用SD-1.5模型在火影忍者数据集上做训练,同时使用SwanLab监控训练过程、评估模型效果。

1.环境安装

本案例基于Python>=3.8,请在您的计算机上安装好Python;

另外,您的计算机上至少要有一张英伟达显卡(显存大约要求22GB左右)。

我们需要安装以下这几个Python库,在这之前,请确保你的环境内已安装了pytorch以及CUDA:

swanlab
diffusers
datasets
accelerate
torchvision
transformers

一键安装命令:

pip install swanlab diffusers datasets accelerate torchvision transformers
本文的代码测试于diffusers==0.29.0、accelerate==0.30.1、datasets==2.18.0、transformers==4.41.2、swanlab==0.3.11,更多库版本可查看 SwanLab记录的Python环境

2.准备数据集

本案例是用的是火影忍者数据集,该数据集主要被用于训练文生图模型。

该数据集由1200条(图像、描述)对组成,左边是火影人物的图像,右边是对它的描述:

sd-2.png

我们的训练任务,便是希望训练后的SD模型能够输入提示词,生成火影风格的图像:

sd-3.png


数据集的大小大约700MB左右;数据集的下载方式有两种:

  1. 如果你的网络与HuggingFace连接是通畅的,那么直接运行我下面提供的代码即可,它会直接通过HF的datasets库进行下载。
  2. 如果网络存在问题,我也把它放到百度网盘(提取码: gtk8),下载naruto-blip-captions.zip到本地解压后,运行到与训练脚本同一目录下。

3.准备模型

这里我们使用HuggingFace上Runway发布的stable-diffusion-v1-5模型。

sd-4.png

模型的下载方式同样有两种:

  1. 如果你的网络与HuggingFace连接是通畅的,那么直接运行我下面提供的代码即可,它会直接通过HF的transformers库进行下载。
  2. 如果网络存在问题,我也把它放到百度网盘(提取码: gtk8),下载stable-diffusion-v1-5.zip到本地解压后,运行到与训练脚本同一目录下。

4. 配置训练可视化工具

我们使用SwanLab来监控整个训练过程,并评估最终的模型效果。

如果你是第一次使用SwanLab,那么还需要注册一个账号,在用户设置页面复制你的API Key,然后在训练开始时粘贴进去即可:

sd-swanlab-login.png

5.开始训练

由于训练的代码比较长,所以我把它放到了Github里,请Clone里面的代码:

git clone https://github.com/Zeyi-Lin/Stable-Diffusion-Example.git

如果你与HuggingFace的网络连接通畅,那么直接运行训练:

python train_sd1-5_naruto.py \
  --use_ema \
  --resolution=512 --center_crop --random_flip \
  --train_batch_size=1 \
  --gradient_accumulation_steps=4 \
  --gradient_checkpointing \
  --max_train_steps=15000 \
  --learning_rate=1e-05 \
  --max_grad_norm=1 \
  --seed=42 \
  --lr_scheduler="constant" \
  --lr_warmup_steps=0 \
  --output_dir="sd-naruto-model"

如果你的模型或数据集用的是上面的网盘下载,那么你需要做下面的两件事:

第一步:将数据集和模型文件夹放到训练脚本同一目录下,文件结构如下:

|--- sd_config.py
|--- train_sd1-5_naruto.py
|--- stable-diffusion-v1-5
|--- naruto-blip-captions

stable-diffusion-v1-5是下载好的模型文件夹,naruto-blip-captions是下载好的数据集文件夹。

第二步:修改sd_config.py的代码,将pretrained_model_name_or_pathdataset_name的default值分别改为下面这样:

    parser.add_argument(
        "--pretrained_model_name_or_path",
        type=str,
        default="./stable-diffusion-v1-5",
    )
    parser.add_argument(
        "--dataset_name",
        type=str,
        default="./naruto-blip-captions",
    )

然后运行启动命令即可。


看到下面的进度条即代表训练开始:

sd-10.png

6. 训练结果演示

我们在SwanLab上查看最终的训练结果:

sd-5.png

可以看到SD训练的特点是loss一直在震荡,随着epoch的增加,loss在最初下降后,后续的变化其实并不大:

sd-6.png

我们来看看主观生成的图像,第一个epoch的图像长这样:

sd-7.png

可以看到詹姆斯还是非常的“原生态”,迈克尔杰克逊生成的也怪怪的。。。

再看一下中间的状态:

sd-8.png

sd-9.png

经过比较长时间的训练后,效果就好了不少。

比较有意思的是,比尔盖茨生成出来的形象总是感觉非常邪恶。。。

详细训练过程看这里:SD-Naruto - SwanLab

至此,你已经完成了SD模型在火影忍者数据集上的训练。

相关文章
|
JavaScript
Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)
近日,Bert-vits2-v2.2如约更新,该新版本v2.2主要把Emotion 模型换用CLAP多模态模型,推理支持输入text prompt提示词和audio prompt提示语音来进行引导风格化合成,让推理音色更具情感特色,并且推出了新的预处理webuI,操作上更加亲民和接地气。
Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)
技术经验分享:HLG1314火影忍者之~纲手
技术经验分享:HLG1314火影忍者之~纲手
577 0
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
Manga Image Translator:开源的漫画文字翻译工具,支持多语言翻译并嵌入原图,保持漫画的原始风格和布局
Manga Image Translator 是一款开源的漫画图片文字翻译工具,支持多语言翻译并能将翻译后的文本无缝嵌入原图,保持漫画的原始风格和布局。该工具基于OCR技术和深度学习模型,提供批量处理和在线/离线翻译功能。
572 15
Manga Image Translator:开源的漫画文字翻译工具,支持多语言翻译并嵌入原图,保持漫画的原始风格和布局
网页课程设计-期末大作业-简单设计【原神狂喜】
本文介绍了一个以“原神”为主题的网页课程设计项目,包括登录页、博客首页、文件上传页面、相册页面和留言板页面的设计与实现,并提供了完整的源代码下载链接。
网页课程设计-期末大作业-简单设计【原神狂喜】
|
12月前
|
Web App开发 JSON JavaScript
爬取王者荣耀图片
【10月更文挑战第11天】爬取王者荣耀图片。
448 2
|
12月前
Midjourney-03 收集Prompt 动漫风格 樱花 武士 魔法少女 自然 机甲 拟人动物 歌剧场景 星际飞船 神秘森林 精灵 详细记录 超多图片 多种风格 附带文本 关键词
Midjourney-03 收集Prompt 动漫风格 樱花 武士 魔法少女 自然 机甲 拟人动物 歌剧场景 星际飞船 神秘森林 精灵 详细记录 超多图片 多种风格 附带文本 关键词
301 0
|
移动开发 HTML5
动漫二次元漂亮的网站导航HTML5源码
二次元漂亮网站导航HTML源码,页面中还调用了很多外站的图片等链接需自行更换。
430 4
欢迎来到王者荣耀!
欢迎来到王者荣耀!
436 1
|
机器学习/深度学习 人工智能 编解码
AI文生图模型
8月更文挑战第16天
|
数据可视化
ggGenshin&Genshinpalette|SCI绘图遇上原神,不输于CNS正刊调色板
本文介绍了两个R包——`ggGenshin`和`Genshinpalette`,它们提供了基于热门游戏《原神》角色色彩的调色板,用于数据可视化。`ggGenshin`包包含了一系列与游戏角色相关的颜色,可以方便地应用到`ggplot2`图形中,而`Genshinpalette`包则提供了更多角色的配色选项。通过这两个包,用户可以直接使用预设的配色方案,提升图表的视觉效果。文中还展示了使用这些调色板绘制的一些示例图表。
765 0