Stable Diffsuion资源目录

  • SD简述
  • sd安装
  • 模型下载
  • 关键词,描述语句
  • 插件管理
  • controlNet
  • 自己训练模型

SD简述

Stable Diffusion是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词指导下产生图生图的翻译。


s用到的技术原理叫做扩散算法,具体的算法设计是很复杂的一门学科。大概的原理就是把一张图模糊化处理,然后再根据关键词一点一点儿的把内容给具体化。最后就得到了我们描述的内容。

从去年也就是2022年9月份开始,我就知道了这个技术。但是没有详细的了解过这个技术的实操方案。
今年断断续续的也看了看这个技术的阿里云操作和一些公众号的内容。还有比较火的隐藏式二维码,隐藏文字的光影街道图,也在关注。但是并没有实际操练起来。
这个周末我把我之前看到过的材料又重新找到重新看了一下,实操了一下。下面是我对这个技术的总结。

sd安装

sd 在本地操作的话,需要不错的独立显卡支持。如果达不到这个显卡要求的化可以选择阿里云服务器或者一些云桌面上进行操作。

  • 本地安装环境分成三个步骤,先安装python环境,要配置到环境变量中。其次要安装先去支持的cuda支持,通过nvidia-smi可以查看自己设备所支持的CUDA version版本。
  • 可以通过cuda下载地址这个连接下载对应版本的cuda
  • 然后还需要安装git,因为需要从github上克隆webui的项目,还有一些插件也可以通过git的方式clone,github上的webui项目地址

  • 除了这种全手动的方式,还可以从B站上找一些大神的启动器安装包。安装包都都是把运行环境打包好的,用起来很省心。

模型下载

项目启动后,就需要下载一些所必须的大模型了,sd需要的模型有很多中。

  • checkpoint 这个是sd运行所需要的数据来源。大模型的文件大小都很大。一般都会在2个G以上。相当于sd作画是所需要的一个大字典。
  • VAE这个是给画面上色的,可以理解成滤镜。让画面更加鲜艳动人,吸引眼球。
  • Embeddingsd创作画面都是需要由文本描述也就是关键词的,这个模型就相当于把一部分关键词直接打包了。在描述的时候不需要描述很多内容,直接把模型引入到对应的文件夹。然后在关键词那里填写对应的Embedding即可。
  • Hypernetwork这个相当于是书签,因为字典很大,有这个可以让sd做出来的画更加符合我们的要求。
  • LoraLora相当于是Hypernetwork的升级版本。都是相当于在大模型的基础上进行更加详尽的描述,把需求描述的更加详细。对大模型的结果进行微调。
  • LyCORISLyCORIS是对Lora的升级,在算法生更加精进,调整力度更大。

所有的模型都是为了让我们的描述内容有一个依托,让sd作画有一个范围,因为训练大模型的时候数据集很大,在实际运行的时候又需要通过其他的小一些的模型来进行精确的控制。所以就有了这些模型。
下面是一些常用的模型下载地址:

  1. civitai
  2. huggingface
  3. esheep(连接先对前面两个更稳定)
  4. liblibai(连接先对前面两个更稳定)
  5. openart

关键词,描述语句

提示词:正向文提示词,反向文提示词
最主要的还是要确认自己想要表现的内容是什么,即主题,因为内容都是为主题服务的

  1. 人物及主体特征
  2. 场景特征
  3. 环境光照
  4. 补充,画幅视角

除了对内容的描述,还需要一些对画质的描述关键词

  1. 高画质
  2. 特定的高分辨率
  3. 画风提示词(插画、二次元、写实)

提示词权重:可以通过加小括号的方式提高权重,也可以通过关键词后面添加具体倍数的方式控制
提示词网站:

  1. dawnmark
  2. atoolbox

插件管理

从github上安装sd后,即可进行出图操作了。但是为了让软件更好用,我们可以安装一些插件让sd更好用

  1. 中文汉化语言插件
  2. 图库浏览器插件(image broswer)
  3. 提示词插件
  4. Ultimate Upscale(图片放大,在文生图里以脚本的方式出现)
  5. Local Latent Couple(LLUl)(局部细节优化插件)
  6. after-detailer(帮助美化脸部或手的细节)
  7. controlNet
    插件基本都是在github上管理的,也可以通过gitee等其他的代码平台下载安装。
  • gitcode
  • 码云

controlNet

controlNet是对画面进行精细化控制的插件。需要借助画面的一些元数据,例如通道信息,通过ps可以获得这些信息。

  1. 对姿势进行控制
  2. 对画面深度进行控制
  3. 对画面边缘进行控制
  4. 对光影进行控制
  5. 生成艺术二维码

自己训练模型

如果以上内容还不够满足自己的要求,那我们可以自己进行模型训练

  1. 找到数据源,对某个对象的一些照片
  2. 通过sd对如片进行打标签,即标识画面上的内容。作为学习的依据
  3. 交给sd来学习
  • 数据源最好是统一大小的
  • 如果本地显卡不够可以通过aliyun来获得三个月的免费PAI的云服务
  • 借助github上的项目,colab上的Lora_Trainer来进行数据训练
  • 训练完成后需要通过sd的xyz脚本来选择效果最好的那个模型