stable diffusion学习笔记——文生图(一)

模型设置

基本模型

基本模型也就是常说的checkpoint(大模型),基本模型决定了生成图片的主体风格。

如上图所示,基本模型的后缀为.safetensors。需要存放在特定的文件夹下。

如果用的是启动器,可以在启动器内直接下载。

vae模型

vae模型的全名叫变分自编码器,这里先不讲解原理。在AI绘图中主要的作用是起到画面滤镜的效果。目前较多的大模型都是自带vae的,因此这里不需要额外设置,修改成NONE即可。

在启动器中也可以直接下载。如果生成画面的饱和度看起来不太正常,可以检查下是不是使用了不合适的vae模型。

终止层数

可以将stable diffusion看做一个扩散模型,终止层数就是指到倒数第几层停止。

终止层数设置的很小,提示词的体现在画面中就更多,但是运算时间会增加;反之,终止层数设置的较大,会导致处理提前停止,丢失的提示词信息会更多,运算时间会相应的减少。

通常这个值默认为2,即倒数第二层的时候停止处理,我们通常不需要修改这个值。

提示词书写

stable diffusion通过提示词来控制图像中应当出现以及不应当出现的元素。

正向提示词

正向提示词用于描述图片想要表现出的内容。正向提示词的语法如下:

(1girl):权重为1.1倍
((1girl)):权重为1.1*1.1 = 1.21倍
evening_gown:1.2:权重为1.2倍
[colorful]:权重为0.9倍

提示词权重越高,在画面中出现的概率越大。

反向提示词

反向提示词主要作用是抑制图像中的元素。提示词的语法与正向提示词相同。

图片生成

图片生成部分涉及的配置较多。

采样方法与迭代步数

采样的原理可以参考官网:Stable Diffusion Samplers: A Comprehensive Guide - Stable Diffusion Art (stable-diffusion-art.com)

简单讲,stable diffusion会随机生成一个充满噪声点的原始图像,随后一步步迭代去除噪声,最终得到一张清晰的图片。

在这个过程中,去噪的执行步数就是迭代步数;去噪的方式就是采样方法。

显然,迭代步数过低会导致画面不清晰;而迭代步数过高也会增加处理时间。通常迭代步数在20步之后画面的变化就不明显了。因此迭代步数设置为20即可。

采样方法涉及到较多的数学原理,刚上手的话可以参考如下结论:

如果你想使用快速且质量不错的东西,那么最好的选择是DPM++2M Karras,UniPC
如果你想要高质量的图像并且不关心收敛,那么不错的选择是DPM++SDE Karras
如果你喜欢稳定、可重复的图像,请避免使用任何ancestral samplers(后缀加a的采样器)。
如果你喜欢简单的东西,Euler和Heun是不错的选择

图片尺寸

设置图片尺寸受以下因素影响:

  1. 显卡的显存大小。图片的尺寸(分辨率)设置过大会导致爆显存,无法生成图片。
  2. 大模型设置时训练图片的大小。很多大模型是用分辨率不高的图片训练的,这样的模型生成图片时尽量不要把图片尺寸设置的过大;部分模型使用分辨率高的图片训练(通常发布网站上会有说明),这样的模型生成图片时要将图片尺寸设置大一些,不然会很影响出图效果。
  3. 预期的构图。如果预期得到一张人物的全身图,适当减少图片尺寸的宽高比会有较好的表现。

同样比例的图片精度不等于放大后为同样比例的图片精度。比如原本尺寸为1024*1024的图片精度不如512*512经过放大算法放大至1024*1024的图片精度,这是因为“改善总是比创造更容易的”,1024*1024会和原来一样生成瑕疵,但重绘是将这些瑕疵渐渐减少 

综上,大部分生成图片的case中,应当以小分辨率生成图片,再用高分辨率修复生成更加高清的图片

引导系数

引导系数用于控制模型应尊重你的提示的程度。如果CFG值太低,稳定扩散将忽略你的提示。太高时图像的颜色会饱和。

通常设置在4-10之间,可以先用默认值7观察下效果。

种子

种子控制图像的内容。生成的每个图像都有自己的种子值。如果设置为-1,stable diffusion将使用随机种子值;如果设置为一个固定的种子值(比如用那个绿色的回收图标定为之前的图片样式),你可以增加或替换关键词达到在图片上增加或替换的效果。

简单讲,如果想要每次生成一张完全随机的图片,应当把种子设置为-1。如果想要一定程度上复制某张图片,应当将该图片的种子设置为当前种子值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年黑龙江省安全员C证证考试题库及黑龙江省安全员C证试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2024年黑龙江省安全员C证证考试题库及黑龙江省安全员C证试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考…

(java)idel中将对与json的相互转

1、目录结构 2、导入包 在模块下面建立lib目录将包导入模块中 包的百度网盘 链接:https://pan.baidu.com/s/1abNF8cOTeNb00rM7tp04iQ?pwd39wc 提取码:39wc 3、建立两个测试类person和dog类 public class Dog {private String name;private int age…

STM32标准库——(5)EXTI外部中断

1.中断系统 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行 中断优先级&#xff…

CMake 完整入门教程(一)

1 前言 每一次学习新东西都是很有乐趣的,虽然刚开始会花费时间用来学习,但是实践证明,虽然学习新东西可能会花费一些时间,但是它们带来的好处会远远超过这些花费的时间。学习新东西是值得的,也是很有乐趣的。 网络上…

六、Kotlin 类型进阶

1. 类的构造器 & init 代码块 1.1 主构造器 & 副构造器在使用时的注意事项 & 注解 JvmOverloads 推荐在类定义时为类提供一个主构造器; 在为类提供了主构造器的情况下,当再定义其他的副构造器时,要求副构造器必须调用到主构造器…

安全防御{第三次作业(在第二次作业上添加点需求)}

目录 需求: 拓扑图: 注意:先打开防火墙web界面,在此不做演示 1.要求一:,生产区在工作时间内可以访问服务器区,仅可以访问http服务器 2.要求二:办公区全天可以访问服务器区&#…

RISC-V RVWMO 内存模型解释

RISC-V RVWMO 内存模型解释 引言 本文介绍 RISC-V RVWMO 内存模型。RVWMO 内存模型定义了什么样的全局内存顺序才是合法的。本引言部分将解释为什么会出现不合法的全局内存顺序,以及为什么需要内存模型。 首先引起乱序的全局内存顺序(指令重排序&…

静态分析C语言生成函数调用关系的利器——cally和egypt

大纲 准备工作安装graphviz安装cally安装egypt简单分析GCC产生RTL(Register transfer language)文件callyegypt总结 高级分析callyegypt 总结参考资料 在《静态分析C语言生成函数调用关系的利器——cflow》和《静态分析C语言生成函数调用关系的利器——c…

What is `@Scheduled` does?

Scheduled 是Spring框架中用于定时任务调度的注解,它允许我们在类的方法上声明一个方法作为定时任务,由Spring容器统一管理和执行。使用此注解后,Spring会根据注解中的属性配置,按照指定的时间规则自动调用该方法。 public class…

网络编程小总结

【一】网络编程 互联网的本质就是一些网络协议 【1】网络开发架构 ( 1 ) C / S 架构 C : client (客户端) S: server (服务端) APP - 就是服务端 C/S 架构通过客户端软件和服务器之间的交互,实现了前端界面和后…

项目部署上线过程

写在前面 你应该去喜欢那些,让你觉得自己很美好,由衷感受到幸福的人,而不是那些让你卑微到尘埃里,让你觉得自己很没用的人。 …

【大数据】Flink 架构(一):系统架构

Flink 架构(一):系统架构 1.Flink 组件1.1 JobManager1.2 ResourceManager1.3 TaskManager1.4 Dispatcher 2.应用部署2.1 框架模式2.2 库模式 3.任务执行4.高可用设置4.1 TaskManager 故障4.2 JobManager 故障 Flink 是一个用于状态化并行流处…

关于AOP的@Around特殊处理RequestBody的使用小结

目录 1. 概述 1.1 背景 1.2 源码 2. 测试 2.1 Controller 2.2 SpecialName配置 2.3 RequestConverter 2.4 测试 最近项目上遇到一个这样的需求:用户请求的时候传过来A,在api处理过程中要把A当成B去处理,但是返回的标识中又必须是A作为…

可以运行在浏览器的Windows 2000

Windows 2000 可以在浏览器里跑了,缺点就是速度慢。 JSLinux JSLinux 在浏览器中运行 Linux 或其他操作系统! 可以使用以下仿真系统: 中央处理器操作系统用户 界面VF同步 访问启动 链接TEMU 配置评论x86阿尔派Linux 3.12.0安慰是的点击这…

数据处理方法—— 7 种数据降维操作 !!

文章目录 数据降维 1. 主成分分析(PCA) 2. 线性判别分析(LDA) 3. t-分布随机邻域嵌入(t-SNE) 4. 局部线性嵌入(LLE) 5. 多维缩放(MDS) 6. 奇异值分解(SVD) 7. 自动编码器…

前端实现弹小球功能

这篇文章将会做弹小球游戏,弹小球游戏大家小时候都玩过,玩家需要在小球到达游戏区域底部时候控制砖块去承接小球,并不断的将小球弹出去。 首先看一下实现的效果。 效果演示 玩家需要通过控制鼠标来实现砖块的移动,保证在小球下落…

Linux操作系统运维-用户与用户组管理

Linux操作系统运维-用户与用户组管理 用户种类与标识查看 超级用户(root):可以不受限制地执行所有操作,拥有系统最高权限,修改系统设置与管理用户均需要root权限系统用户(system):…

Flutter App 生命周期观察监听

前言 本文主要讲解两种 Flutter生命周期观察监听 方式一:Flutter SDK 3.13 之前的方式,WidgetsBindingObserver; 方式二:Flutter SDK 3.13 开始的新方式,AppLifecycleListener; 测试平台:IO…

《HelloGitHub》第 94 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 …

宏景-eHR-frcodeaddtreeservlet接口存在SQL注入

指纹特征 FOFA&#xff1a;icon_hash"947874108" || body<div class"hj-hy-all-one-logo" || app"HJSOFT-HCM" 漏洞复现 POST /templates/attestation/../../servlet/FrCodeAddTreeServlet HTTP/1.1 Host: User-Agent: Mozilla/5.0 (Windo…