【Stable Diffusion】 训练方法篇

news2024/9/24 15:28:29

一、四种模型训练方法简介

Stable Diffusion 有四种训练模型的方法:Textual Inversion、Hypernetwork、LoRA 和 Dreambooth 。它们的训练方法存在一定差异,我们可以通过下面对比来评估使用哪种训练方式最适合你的项目。

如果你知道模型中已经可以产生你想要的东西,例如,某种风格,或者已经 "在里面 "的特定名人,你可以使用这个模型,但是当你发现模型里面没有你要的人或者给严重错误标识了,那你就可以收集这种人物的样本图像,创建一个 Embedding训练,并使用对应关键字标识出来。

1、Textual Inversion

Textual Inversion(也称为 Embedding)是一种使用文本提示来训练模型的方法。它根据模型引用给定的图像并选择最匹配的图像。你做的迭代越多越好,能够在保持图像质量的同时,快速生成大量图像。这种方法对计算资源要求较低,适用于需要快速生成大量高质量图像的场景。

特点:

  • 生成的模型文件小,大约几十KB
  • 通常适用于转换图像风格
  • 使用时不需要加载模型,只需要在提词中embeddings中的关键tag
  • 本地训练时对计算资源要求不高
  • 可以通过生成的PT文件覆盖在原有基础上继续训练
  • 模型关键字尽量是不常见的词语
  • 推荐训练人物

训练时关键参数设定:

  • learning_rate: 0.05:10, 0.02:20, 0.01:60, 0.005:200, 0.002:500, 0.001:3000, 0.0005
  • number of vectors per token:按图片数量设置(图片数量小于10设置为2,10-30张设置范围2~3,40-60张设置范围5~6,60-100张设置范围8-12,大于100张设置范围12~16)
  • max_train_steps: 3000(起步3000步)

2、Hypernetwork

Hypernetwork 是一种使用神经网络来生成模型参数的方法。它可以用来从模型内部找到更多相似的东西,使得生成为近似内容图像, 如果你想训练人脸或特定的风格,并且如果你想用Hypernetwork生成的 "一切 "看起来都像你的训练数据,那么Hypernetwork是一个不错的选择。你不能生成混合训练的图像,比如一组非常不同风格各异的猫。不过,你可以使用超网络进行绘画,将不同的训练数据纳入一个图像,改变图像的整个输出。

特点:

  • 生成的模型文件比Embedding大,大约几十MB
  • 通常训练艺术风格
  • 推荐训练画风

训练时关键参数设定:

  • learning_rate: 0.000005:1000,0.0000025:10000,0.00000075:20000,0.0000005:30000,0.00000025:-1
  • prompt template file: 对应风格类型文件可以编辑只留下一个 [fileword],[name] 在那里,删除多余的描述

3、Lora

Lora【Low-Rank Adaptation of Large Language Models】的缩写,是一种使用少量图像来训练模型的方法。与 Dreambooth 不同,LoRA 训练速度更快:当 Dreambooth 需要大约二十分钟才能运行并产生几个 GB 的模型时,LoRA 只需八分钟就能完成训练,并产生约 5MB 的模型,推荐使用kohya_ss GUI 进行lora训练。

特点:

  • 模型大小适中,8~140MB
  • 使用时只需要加载对应的lora模型,可以多个不同的(lora模型+权重)叠加使用
  • 可以进行lora模型其他模型的融合
  • 本地训练时需要显存适中,>=7GB
  • 推荐训练人物

4、Dreambooth

Dreambooth 是一种使用少量图像来训练模型的方法,是一种基于深度学习的图像风格转换技术。它可以将一张图片的风格应用到另一张图片上,以生成新的图像,Dreambooth 的一个优点是它可以生成高质量的艺术作品,而无需用户具备专业艺术技能。

特点:

  • 模型文件很大,2-4GB
  • 适于训练人脸,宠物和物件
  • 使用时需要 加载模型
  • 可以进行模型融合,跟其他模型文件融合成新的模型
  • 本地训练时需要高显存,>=12GB
  • 推荐训练人物*画风

训练时关键参数:

  • 高学习率和过多的训练步骤将导致过度拟合(换句话说,无论提示如何,模型只能从训练数据生成图像)。
  • 低学习率和过少的步骤会导致学习不足,这是因为模型无法生成训练过的概念。
  • 物件:400步,2e-6
  • 人脸:1500步,1e-6或2e-6
  • Training Steps Per Image (Epochs):(根据你图片的数量设定,大概值为你想训练的总步数/图片数量)
  • Sanity Sample Prompt: 是否过度训练参数设定,我们可以加上一些特征从而去判断训练过程中是否出现过度拟合如填入 person of XX red hair (说明:XX替换为你的关键字,我们在这里加入了红头发的特征,如果出训练输出图像出现了非红头发此时我们就知道过度拟合了,训练过度了)

二、VAE编解码器该如何应用

1、VAE模型原理介绍

VAE(Variational Auto-Encoder 变分自动编码器)模型有两部分,一个编码器和一个解码器。

在潜在扩散模型(Latent Diffusion Models)组成中就有VAE模型的身影

其中编码器(encoder)被用于把图片转换成低维度的潜在表征,转换完成后的潜在表征将作为U- Net 模型的输入

反之,解码器(decoder)将把潜在表征重新转回图片形式

在潜在扩散模型的训练过程中,编码器被用于取得图片训练集的潜在表征(latents),这些潜在表征被用于前向扩散过程(每一步都会往潜在表征中增加更多噪声)

在推理生成时,由反向扩散过程生成的 denoised latents 被VAE解码器部分转换回图像格式

所以说 ,在潜在扩散模型的推理生成过程中我们只需用到VAE的解码器部分

2、WebUI中的VAE

那些比较流行预训练的模型一般都是内置了训练好的VAE模型的,不用我们再额外挂载也能做正常的推理生成(挂载后生成图像的效果会有一点点细微的区别),此时VAE pt文件的作用就像HDR,增加一点点图片色彩空间之类的一些自定义模型

可如果一些预训练模型文件不内置VAE(或训练他们自己的VAE,此时通常会在他们的模型发布说明中告诉你从哪得到他们的VAE)。我们就必须给它找一个VAE挂载上去,用来将推理时反向扩散最后生成的 denoised latents 转换回图像格式,否则webui里最后生成输出给我们的就是类似彩噪的潜在表征(latents),此时VAE pt文件的作用就像解压软件,为我们解压出肉眼友好可接受的图像

3、VAE模型文件获取

社区在用的流行 VAE 文件:

  • SD 官方VAE https://huggingface.co/stabilityai/sd-vae-ft-mse-original
  • NovelAI Leak的 animevae.pt
  • WD 的 VAE https://huggingface.co/hakurei/waifu-diffusion-v1-4/tree/main/vae

4、挂载使用VAE模型文件

webUI中有两种挂载VAE模型文件的方法

  • 改名为 <model 前缀>.vae.pt 和 model 放一起
  • 将VAE文件 放到 VAE 文件夹然后在设置中选择

5、VAE文件在模型训练时一般要卸载

VAE在训练过程中自行学习,随着模型的训练,不同版本的模型实际表现可能会有所不同,如果有需求可以通过移除VAE文件的方式阻止VAE自行学习。

 

对于很多刚学习AI绘画的小伙伴而言,想要提升、学习新技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。

如果你苦于没有一份Lora模型训练学习系统完整的学习资料,这份网易的《Stable Diffusion LoRA模型训练指南》电子书,尽管拿去好了。

包知识脉络 + 诸多细节。节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

由于内容过多,下面以截图展示目录及部分内容,完整文档领取方式点击下方微信卡片,即可免费获取!

img

img

img

篇幅有限,这里就不一一展示了,有需要的朋友可以点击下方的卡片进行领取!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1677920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI图像生成-调整

一、两张图画风不相似 2、在两张图的共同输出口新添加一个空白正面提示词板块和条件合并板块 二、预处理插件&#xff08;提取人物姿态&#xff09; 1、新建节点-》ControlNet预处理器-》面部与姿态-》Openpose姿态预处理器 2、添加上传图片板块与预览图片板块 3、提取姿态 右…

java内容快速回顾+SSM+SpringBoot简要概述

文章目录 java基础知识基本知识列表面对对象堆与栈的关系值修改与引用修改异常&#xff1a;错误异常 SSMspringMVCServletSpringMVC&#xff1a;基于 Servlet的 Spring Web 框架&#xff0c; spring控制反转 IoC(Inversion of Control)面向切面 Aop MybatisJDBCMybatis SpringB…

【3DMAX教程插件】中文3DMax造雪助手造雪覆盖模拟插件使用方法

3DMax造雪助手造雪覆盖模拟插件使用教程 3DMax造雪助手&#xff0c;造雪覆盖模拟插件&#xff0c;只需点击鼠标即可创建逼真的雪。它包括5个自定义对象和6个专门为雪创建工作流设计的修改器。通过各种参数&#xff0c;可以在各种情况下获得所需的效果。 【适用版本】 3dMax201…

班组长不懂如何与下属沟通?教你用“三要四不要”沟通原则

班组长与员工关系和谐程度&#xff0c;对团队士气效率影响重大。 与员工关系融洽的班组长更能获得大家的信任和支持&#xff0c;还会促进团队凝聚力&#xff0c;激发员工的工作积极性和创新精神。 然而&#xff0c;有的班组长只有在安排工作、教导技能时充满自信&#xff0c;…

1-1 CubeMX配置第一个RTOS工程

CubeMX配置第一个RTOS工程 1&#xff1a; 打开cubeMX软件选择单片机型号 软件刚刚安装仍然需要加载 配置RCC时钟&#xff1a;开启RCC时钟 打开芯片使能仿真功能 这里使用为GD32芯片&#xff0c;芯片的引脚由原理图给出 PA8 与PE13是引脚&#xff1a;将引脚配置为输出模式 配置G…

GMV ES6直流变频多联空调机组室外机工作原理

GMV ES6直流变频多联空调机组室外机工作原理如下&#xff1a; 内机为制冷模式运行时&#xff0c;室外机根据室内机的运行负荷需求启动运行&#xff0c;室外换热器作为系统的冷凝器&#xff0c;各制冷室内机的换热器并联作为系统的蒸发器&#xff0c;通过室内机的送回风循环实现…

vue3专栏项目 -- 五、权限管理(下)

1、创建Message组件 前面我们获取到了请求错误的信息&#xff0c;所以我们接下来做一个弹出框组件&#xff0c;让错误提示展示出来 我们把这个组件做成一个全局组件&#xff0c;它不仅可以显示错误的信息&#xff0c;还可以添加成功操作的信息&#xff0c;甚至还可以显示一个…

《一文带你了解》关于ITSS认证-IT服务工程师、IT项目经理

“IT 服务工程师培训”和“IT 服务项目经理培训”为中国电子技术标准化研究院推出的 ITSS 系列培训&#xff0c;通过该培训的人员可系统掌握 IT 运维的知识&#xff0c; 提升项目管理水平&#xff0c;有效满足 GB/T 28827.1 的符合性评估要求。 我要充电学习提升自我&#xff0…

现在适合进入AIGC行业吗?

现在适合进入AIGC行业吗&#xff1f; 随着人工智能生成内容&#xff08;AIGC&#xff09;技术的快速发展&#xff0c;越来越多的人开始关注这个行业。那么&#xff0c;现在是否是进入AIGC行业的好时机呢&#xff1f;本文将从行业前景、市场需求以及个人选择与规划三个方向进行…

WebLogic Server Supported Configurations

Supported Configurations 支持的配置: 不同版本的WebLogic Server对OS、JDK、AP Server、浏览器、数据等的支持,或者说在哪些OS,JDK等的配置上进行了动作保证。 10.3以后的版本(包含10.3) 10.3以后的版本支持的配置,在以下URL中可以找对对应的excel文件下载 https://ww…

DBeaver连接数据库

前言 DBeaver是一款免费和开源的数据库管理工具&#xff0c;为开发人员和数据库管理员提供了一个通用的数据库解决方案。以下是DBeaver的主要特点和功能&#xff1a; 跨平台支持&#xff1a;DBeaver支持Windows、Linux、macOS等主流操作系统&#xff0c;用户可以在不同的平台…

打开指定文件夹下的jupyter

cd到相应路径&#xff0c;输入jupyter notebook ./ 注意./ 非常重要&#xff0c;不然又进了默认文件夹

超分辨率技术

何为超分辨率&#xff1f; 超分辨率技术&#xff08;Super Resolution&#xff09;&#xff1a;通过硬件或软件的方法提高图像或视频帧的分辨率&#xff0c; 通过一系列低分辨率图像获取到高分辨率图像的过程。 功能介绍&#xff1a;提升图像或视频分辨率最高至8K&#xff0c;…

StarCloud开源行动:激发算力调度的创新潜力

01 关于StarCloud OpenCSG StarCloud 是一个集开源系统(Kubernetes ,K8S)与高性能计算(High Performance Computing,HPC)一体的混合算力调度平台。它专注于大模型训练和推理&#xff0c;并提供一站式服务&#xff0c;包括从训练到部署&#xff0c;以及多模型比较等。除了在人…

线上剧本杀小程序开发,探索剧本杀行业的巨大发展空间

剧本杀是当下非常流行的桌游&#xff0c;也是一种新型的社交游戏方式&#xff0c;受到了众多玩家的关注&#xff0c;成为年轻人社交游戏的首选方式。目前&#xff0c;剧本杀玩家开始迷上了线上剧本杀&#xff0c;剧本杀也在线上获得了新的发展&#xff0c;让市场发展摆脱了空间…

《五》Word文件编辑软件调试及测试

上一期&#xff0c;我们已经把大致的框架给完成了&#xff0c;那么今天&#xff0c;我们就把剩下的什么复制啊&#xff0c;改变字体啊什么的给做一下。 那我们就一步一步的来就可以了&#xff1a; 新建word&#xff1a; void MyWord::fileNew() {qDebug()<<"hhh&…

用wxPython和PyMuPDF将PNG图像合并为PDF文件

在日常工作中,我们经常需要将多个图像文件合并到一个PDF文档中,以便于查看、共享或存档。虽然现有的一些工具可以实现这一功能,但开发一个自定义的GUI工具可以更好地满足特定需求,并提供更好的用户体验。 在本文中,我将介绍如何使用Python、wxPython和PyMuPDF库创建一个简单的…

idea SpringBoot + Gradle 打成zip包(包含配置文件等)

前言&#xff1a; 通过上一文章&#xff0c;我们可以通过ideagradle 构建Springboot项目并实现打成jar包&#xff0c;本文章测试通过gradle 打包成zip包并包含启动文件、配置文件等信息&#xff1b;可点击此处查看idea SpringBoot Gradle 环境配置到项目打包-CSDN博客 一、工…

Char类型、转义及字符集:Java中的字符串奥秘

在Java的8中基本数据类型中&#xff0c;char类型是较难掌握&#xff0c;处理char类型本身的用法之外&#xff0c;还要理解其与字符串的关系、转义序列、字符集。 本文将从基础概念出发&#xff0c;逐步深入探讨这些主题&#xff0c;并通过实例演示来巩固理解。 一、Char类型&…