mac配置stable diffusion以及模型出图优化
Published:
1. 基础stable diffusion webui安装
使用的工程是stable-diffusion-webui,直接clone下来即可。
然后创建一个conda环境,python为3.9
激活conda环境后,执行./webui.sh
即可。脚本会自动安装必要的包,然后启动网页。
默认有一个sd v1.5的checkpoint pth。我们输入cat或者dog,点击generate,能够正常生成一副怪怪的图片就可以了。这时候,在后台,terminal中会有一系列log显示:
2. 模型更换
直接使用默认的stable diffusion webui只有一个sd v1.5的 checkpoint,出图效果一般。我们测试几张图,分别使用A dog,A cat, A Nikon camera。sd v1.5的出图是下面的:
网络上有很多提供不同类模型的网站。这里推荐c站,然后切换到Models标签,使用过滤按钮来选择Checkpoint。
我们找到一个喜欢的模型,比如这个
点击下载按钮下载checkpoint即可。然后将下载的checkpoint(以.safetensors结尾)放到stable-diffusion-webui的工程的models/Stable-diffusion文件夹里面.
回到sd webui上,点击一下checkpoint的刷新按钮,然后选择刚刚新添加的checkpoint即可。
我们还是用旧的指令,看一下生成的图
相比sd v1.5的模型,生成的图确实真实不少,尤其是尼康相机。
在civitai的网站,我们下载模型的时候,有很多model types,他们具有不同的作用,我们在优化出图质量时,要根据不同的需求来下载对应的模型。
我们先大体说一下不同model type的区别:
Stable Diffusion 是一个生成式模型框架,支持多种扩展和调整方式:
1. Checkpoint
- 定义: Checkpoint 是指模型的权重文件,通常以
.ckpt
或.safetensors
格式存储。 - 作用: 包含了训练完成后的模型的全部参数,用于生成图像。
- 类型:
- 基础模型: 例如 Stable Diffusion v1.5 或 v2.x。
- 微调模型: 针对特定风格或任务微调过的模型,如动漫风格、现实风格等。
- 使用场景: 根据需求加载不同的 checkpoint 来生成符合特定风格的图像。
2. Embedding (Textual Inversion Embedding)
- 定义: 一种用于扩展文本提示词(Prompt)能力的小型模型文件,通常以
.pt
或.bin
格式存储。 - 作用: 将特定风格、人物或主题压缩到一个短语(例如
<style_A>
)中,增强生成能力。 - 特点:
- 对基础模型影响较小,加载时只需简单附加。
- 文件体积较小,通常只有几 MB。
- 使用场景: 用于生成特定人物或风格的图像,例如将现实中的人物融入生成。
3. LoRA (Low-Rank Adaptation)
- 定义: 一种轻量级微调方法,主要用于减少模型微调的资源消耗。
- 作用: 将模型的某些权重低秩分解,只需保存更新部分(通常较小)。
- 优点:
- 不需要修改原始模型。
- 占用存储空间小,加载快速。
- 使用场景: 用于快速适配特定风格、主题或领域,例如生成某种艺术风格的图像。
4. Dora
- 定义: 在 Stable Diffusion 生态中,Dora 通常指与 Dora Models 相关的扩展工具或轻量级微调模块。
- 作用: 类似于 LoRA 的小型插件或模型扩展,具体细节因应用而异。
- 备注: Dora 较少被单独提及,可能需要结合实际工具链确认具体用途。
5. ControlNet
- 定义: ControlNet 是一种扩展模块,用于在生成图像时添加额外的控制条件。
- 作用: 为生成过程添加更多输入(如边缘检测、深度图、姿态骨架等),从而精确控制输出图像的结构或内容。
- 特点:
- 可以将特定的外部信息(如草图)与提示词结合使用。
- 提高生成的灵活性和一致性。
- 使用场景: 在需要对生成图像的结构严格控制时非常有用,例如生成与草图匹配的图像。
6. VAE (Variational AutoEncoder)
- 定义: Variational AutoEncoder 是 Stable Diffusion 中用于解码潜在空间(Latent Space)的组件。
- 作用: 将潜在空间的向量解码为可视化图像。
- 特点:
- 高质量的 VAE 可以提升生成图像的细节和颜色表现。
- 通常可以单独替换 VAE 以优化模型输出。
- 使用场景: 用于提升图像生成质量,特别是在需要更高分辨率或更多细节的任务中。
7. Workflows
- 定义: Workflows 是生成图像的一系列步骤或流水线,通常由多个模型、插件或条件组合而成。
- 作用: 将复杂的生成流程模块化,例如结合文本提示词、ControlNet、LoRA 和 VAE 的多步骤生成。
- 使用场景: 自动化或批量处理任务,适合需要复合功能的复杂生成需求。
总结
| 名称 | 文件类型 | 功能特点 | 使用场景 | |————|—————–|——————————————————|———————————-| | Checkpoint | .ckpt
/ .safetensors
| 基础或微调模型权重,控制整体风格和质量 | 通用生成 | | Embedding | .pt
/ .bin
| 增强 Prompt 表达能力,加入特定风格或主题 | 特定风格或角色生成 | | LoRA | .safetensors
| 轻量级微调模型,快速加载附加风格或任务 | 灵活适配多种风格 | | Dora | 模型扩展模块 | 类似 LoRA 的插件,具体功能依工具而异 | 小范围功能扩展 | | ControlNet | .ckpt
/ .safetensors
| 增加对生成图像结构的控制 | 精确生成结构化图像 | | VAE | .ckpt
/ .safetensors
| 提升解码质量,增强图像细节 | 高质量输出 | | Workflows | 流程配置文件 | 多模型、多模块的协同生成 | 自动化复杂生成任务 |
3. webui相关扩展安装
3.1 中文包
在搜索框搜Hans,如果没有安装的话,最下面红框的地方,就会有简体中文的选项,点击install即可。
然后再安装一个bilingual,便于查看原始的英文是什么。
然后应用下载的中文包
最后点击上图右侧的 reload UI 按钮。
也可以设置双语。还是在上图的设置上,把Localization改为无,然后打开
3.2 历史生成图保存插件
插件地址为:https://github.com/zanllp/sd-webui-infinite-image-browsing.git
然后回到已安装,重启生效即可。
我们点击文生图,就可以看到之前所有用文生图生成的照片了。
也可以点击图片右上角的三点,将其发送到图生图。
3.3 主题插件
还是在extension上面搜索lobe安装
现在的主题就要美观很多,而且对于checkpoint我们可以添加一个封面,更好区分不同的checkpoint类型。
例如我们前面用过的CyberRealistic checkpoint,我们这里只有一个checkpoint的名字,没有他的具体的图片展示能让我们一下子就能看出来模型的效果。
下面我们看一下怎么添加他的效果图片。
我们还是回到C站,找到CyberRealistic,我们随便找一个他的展示图片。
然后将其保存到和checkpoint同样路径,命名为同名
再次回到webui,点一下checkpoint的刷新,就可以看到效果图片显示在checkpoint上面了。