当前位置: 首页 > news >正文

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。如果想要一定程度上复制某张图片,应当将该图片的种子设置为当前种子值。

相关文章:

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

模型设置 基本模型 基本模型也就是常说的checkpoint(大模型),基本模型决定了生成图片的主体风格。 如上图所示,基本模型的后缀为.safetensors。需要存放在特定的文件夹下。 如果用的是启动器,可以在启动器内直接下载。…...

Linux下安装openresty

Linux下安装openresty 十一、Linux下安装openresty11.1.概述11.2.下载OpenResty并安装相关依赖:11.3.使用wget下载:11.4.解压缩:11.5.进入OpenResty目录:11.6.编译和安装11.7.进入OpenResty的目录,找到nginx:11.8.在conf目录下的nginx.conf添…...

【IM】如何保证消息可用性(一)

目录 1. 基本概念1.1 长连接 和 短连接1.2 PUSH模式和PULL模式 2. 背景介绍2.1 理解端到端的思想 3. 方案选型3.1 技术挑战3.2 技术目标 1. 基本概念 在讲解消息可用性之前,需要理解几个通信领域的基本概念。 1.1 长连接 和 短连接 什么是长连接,短连接…...

js直接下载附件和通过blob数据类型下载文件

js下载文件方式有使用a标签的,也有直接用window.open的,还有用form表单的;这里采用的是a标签的下载方式,一种是url直接下载,另一种是文件的blob数据类型进行下载。 文件blob数据类型的获取一般是后端返回文件的二进制流…...

第2章-神经网络的数学基础——python深度学习

第2章 神经网络的数学基础 2.1 初识神经网络 我们来看一个具体的神经网络示例,使用 Python 的 Keras 库 来学习手写数字分类。 我们这里要解决的问题是, 将手写数字的灰度图像(28 像素28 像素)划分到 10 个类别 中(0…...

【Docker】Docker学习⑧ - Docker仓库之分布式Harbor

【Docker】Docker学习⑧ - Docker仓库之分布式Harbor 一、Docker简介二、Docker安装及基础命令介绍三、Docker镜像管理四、Docker镜像与制作五、Docker数据管理六、网络部分七、Docker仓库之单机Dokcer Registry八、 Docker仓库之分布式Harbor1 Harbor功能官方介绍2 安装Harbor…...

一行命令在 wsl-ubuntu 中使用 Docker 启动 Windows

在 wsl-ubuntu 中使用 Docker 启动 Windows 0. 背景1. 验证我的系统是否支持 KVM?2. 使用 Docker 启动 Windows3. 访问 Docker 启动的 Windows4. Docker Hub 地址5. Github 地址 0. 背景 我们可以在 Windows 系统使用安装 wsl-ubuntu,今天玩玩在 wsl-ub…...

Datawhale 组队学习之大模型理论基础 Task7 分布式训练

第8章 分布式训练 8.1 为什么分布式训练越来越流行 近年来,模型规模越来越大,对硬件(算力、内存)的发展提出要求。因为内存墙的存在,单一设持续提高芯片的集成越来越困难,难以跟上模型扩大的需求。 为了…...

05-使用结构体构建相关数据

上一篇: 04-了解所有权 结构体(struct)是一种自定义数据类型,可以将多个相关值打包命名,组成一个有意义的组。如果你熟悉面向对象的语言,那么结构体就像是对象的数据属性。在本章中,我们将对元组…...

【Android】Android中的系统镜像由什么组成?

文章目录 总览Boot Loader 的加锁与解锁Boot 镜像内核RAM diskARM 中的设备树 (Device Tree) /System 和/Data 分区镜像参考 总览 各种Android设备都只能刷专门为相应型号的设备定制的镜像。 厂商会提供一套系统镜像把它作为“出厂默认”的 Android 系统刷在设备上。 一个完…...

仿真机器人-深度学习CV和激光雷达感知(项目2)day7【ROS关键组件】

文章目录 前言Launch 文件了解 XML 文件Launch 文件作用Launch 文件常用标签实例--作业1的 Launch 文件TF Tree介绍发布坐标变换--海龟例程获取坐标变换--海龟自动跟随例程rqt_工作箱前言 💫你好,我是辰chen,本文旨在准备考研复试或就业 💫本文内容是我为复试准备的第二个…...

解锁一些SQL注入的姿势

昨天课堂上布置了要去看一些sql注入的案例,以下是我的心得: ​​​​​​​ ​​​​​​​ ​​​​​​​ 1.新方法 打了sqli的前十关,我发现一般都是联合查询,但是有没有不是联合查询的方法呢&#xf…...

Qt 拖拽事件示例

一、引子 拖拽这个动作,在桌面应用程序中是非常实用和具有很友好的交互体验的。我们常见的譬如有,将文件拖拽到某个窗口打开,或者拖拽文件到指定位置上传;在绘图软件中,选中某个模板、并拖拽到画布上,画布上变回绘制该模板的图像… 诸如此类,数不胜数。 那么,在Qt中我…...

Linux:命名管道及其实现原理

文章目录 命名管道指令级命名管道代码级命名管道 本篇要引入的内容是命名管道 命名管道 前面的总结中已经搞定了匿名管道,但是匿名管道有一个很严重的问题,它只允许具有血缘关系的进程进行通信,那如果是两个不相关的进程进行通信&#xff0…...

实习记录——第五天

今天我的心情不是很美丽,昨天晚上没怎么睡好,因为我一直在想离不离开实验室?该怎么说的事情?但是又觉得这个项目还没有完全结束,冒昧提这个事情是不是不好?最终也没得出一个结论,晚上睡得也不踏…...

Kotlin 教程(环境搭建)

Kotlin IntelliJ IDEA环境搭建 IntelliJ IDEA 免费的社区版下载地址:Download IntelliJ IDEA – The Leading Java and Kotlin IDE 下载安装后,我们就可以使用该工具来创建项目,创建过程需要选择 SDK, Kotlin 与 JDK 1.6 一起使…...

04.领域驱动设计:了解聚合和聚合根,怎样设计聚合-学习总结

目录 1、概述 2、聚合 3、聚合根 4、怎么设计聚合 4.1 聚合的构建过程主要步骤 第 1 步:采用事件风暴。 第 2 步:选出聚合根。 第 3 步:找出与聚合根关联的所有紧密依赖的实体和值对象。 第 4 步:画出对象的引用和依赖模型…...

cmake-find_package链接第三方库

文章目录 基本调用形式和模块模式使用方式 之前我们是使用了绝对路径来链接OpenCV第三方库,但是现在很多库一般会自己写一些cmake文件提供给用户,用户可以直接使用其中的内置变量即可。使用的命令就是find_package。 基本调用形式和模块模式 find_packa…...

obsidian阅读pdf和文献——与zotero连用

参考: 【基于Obsidian的pdf阅读、标注,构建笔记思维导图,实现笔记标签化、碎片化,便于检索和跳转】 工作流:如何在Obsidian中阅读PDF - Eleven的文章 - 知乎 https://zhuanlan.zhihu.com/p/409627700 操作步骤 基于O…...

走方格(动态规划)

解题思路: 找边界,即行为1,列为1。 拆分问题,拆分成一次走一步,只能向右或者向下走。 解题代码: public static void main(String[] args) {int [][]arrnew int[31][31];Scanner scnew Scanner(Sys…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

云计算——弹性云计算器(ECS)

弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...

五子棋测试用例

一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏&#xff0c;有着深厚的文化底蕴。通过将五子棋制作成网页游戏&#xff0c;可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家&#xff0c;都可以通过网页五子棋感受到东方棋类…...