AI绘画Stable diffusion小白入门:文生图精讲,超全干货一定要看!

news2025/1/17 15:17:57

大家好,我是设计师阿威

今天,我们将深入了解Stable diffusion的文生图功能,让你也能生成满意的图片!

如上图,这是Stable diffusion的文生图界面,这个界面总体可以分为五个区域:

  • 模型区:调整/更换模型的地方

  • 提示词区:撰写提示词的地方

  • 参数调整区:调整模型参数的地方

  • 插件区:SD的各种插件

  • 出图区:就是展示生成图片的地方

1、模型区

第一个区域是我们的模型区,这块区域可以选择不同的模型,模型决定了我们的出图风格,比如你的大模型是一个二次元模型,那么你最终出图的效果就会倾向于二次元;如果是真实系模型,最终出图就会比较像真人。

像秋叶大佬的整合包自带的 anything-v5-PrtRE 模型,就属于二次元模型,比如你输入提示词 1girl,最终大概率会得到一张二次元的女孩照片。

但SD的模型远比上面讲的要复杂得多,不仅有多种模型后缀,而且还有几种微调模型,如VAE和Lora等,想知道其中不同的模型有什么区别,可以看这边教程 关于AI绘画Stable diffusion的各种模型,看这篇就可以了!

2、提示词区

第二个区域是我们的提示词区,也就是写提示词的地方,提示词在文生图中的重要性不亚于上面提到的模型,准确有效的提示词是出好图的关键。

提示词分为两种,分别是正向提示词和反向提示词,正向提示词就是你想让SD展示的内容,反向提示词就是你不想让SD展示的内容(比如)。

如果你使用的 stable-diffusion-webui,那么在提示词这块可能会有点无从下手,因为需要自己去网上寻找提示词

但如果你用秋叶整合包,这个问题就得到很好的解决,因为它已经事先集成了很多我们常用的提示词,并分类好(这也是我为什么推荐新手小白使用的原因)

提示词这块其实还有复杂的用法,比如通过英文括号() 等控制提示词的权重,这个也不用担心,我后面也会单独出一篇文章进行说明

3、参数调整区

第三个区域是我们的参数调整区,这块的概念相对比较难理解,建议自己多尝试几遍

3.1 采样方法

要理解采样的工作原理,首先要理解Stable diffusion的一个出图原理。Stable diffusion的出图一共分为两步:

第一步是前向扩散,在这一步中,Stable diffusion会在一张图片上逐渐添加噪点,最后完全变成一张类似完全黑白的噪点图像,如下图(好比一滴墨水滴在清水上,然后逐渐扩散的过程)。

第二步可以理解为逆向扩散,在这一步中,Stable diffusion会对这张图片多次去噪,也就是逐步削减图片上噪点,最终变成一张清晰的,基于文本描述生成的图像,如下图

上面第二步中的去噪过程就被称为采样(sampling),这个过程采用的方法也称为采样方法(也可以通俗地将采样方法理解为SD的画图手法)。

说实话采样方法是挺让人困惑的,因为太多了,对于新手而言常常不知道要选哪种比较好!通过阅读一些书籍和网上的文章,我粗略地将其分为下面几类:

  • 1、老式常微分采样:如 Euler、Henu、LMS,这类采样方法的特点是简单、快速、效果也还OK,基本20-30 steps 就能生成较好的图片

  • 2、祖先采样(ancestral sampler):如 Euler a、DPM2 a、DPM++2S a等,这种采样一般名字里都会带有一个“字母a“。祖先采样属于随机采样,意图通过较少的steps 产生多样化的结果,但缺点就是图像不会收敛,也就是随着step的增加,图像并不会趋于稳定,而是多变的,所以如果你想得到稳定、可重现的图像,尽量避免使用祖先采样

  • 3、Karras采样:如LMS Karras、DPM2 Karras 等,这种采样方法在开始时图片的噪声会比较多,但后期噪声比较少,有助于图像的质量提升,所以建议steps至少大于15步

  • 4、已过时采样:如DDIM和PLMS,网上的说法是这两个采样方法已经过时,简单试了下,效果确实不太行,生成的图片感觉怪怪的

  • 5、DPM采样:粗略看了下,DPM家族的采样方法是最多的,从DPM、DPM2、DPM++、DPM++ 2M等。DPM是一种扩散概率模型求解器,DPM2和DPM差不多,但它是二阶的,准确性更高但是速度稍慢;DPM++是对DPM的改进,速度更快,可以用更少的steps实现相同的效果;DPM++ 2M结果与Euler相似,但在速度和质量方面有很好的平衡;DPM fast 是DPM的快速版本,速度更快但牺牲了部分质量;DPM++ SDE使用的是随机微分方程(SDE)求解扩散过程,所以它和祖先采样方法一样是不收敛的。

  • 6、UniPC采样:2023年发布的新采样方法,是目前最快最新的采样方法,可以在较少的steps内生成高质量的图片

看了那么多,可能大家还是很迷,这里给下自己用的一些采样方法:

  • 如果是想生成简单普通的图片,对效果要求不是非常高,则可以试试老式常微分采样

  • 如果是想生成新颖且质量不错的,可以试试DPM++ 2M Karras 和 UniPC

  • 如果想得到质量不错,但是不关心图片是否收敛的,可以试试 DPM++ SDE Karras

如果想看不同采样方法下的图片生成对比,可以看看这篇文章[1]

注:这里只是给出部分对比

3.2 迭代步数

迭代步数理解起来比较简单,指的是在生成图片时进行多少次扩散计算,也就是上面去除图片噪声的次数。迭代的步数越多,花费的时间也越长。

然而迭代步数并不是越多越好,跟上面提到的采样方法其实密切相关。比如你想得到一张稳定的图片,但却选择了祖先采样的采样方法,那么过多的步数其实作用不大。目前迭代步数一般在20-40即可,太少的步数可能由于噪声没有完全去除,所以生成的图片噪点很多,看起来可能比较模糊;而太多则是一种时间和资源的浪费。

3.3 高分辨率修复

高分辨率修复简单来说就是将生成的图片放大为分辨率更高的高清图片,像我们用SD生成图片,图片的尺寸一般在512-1024,这样尺寸的图片清晰度是不太够的,所以需要通过高分辨率修复功能提高图片清晰度。

3.4 图片精修Refiner

精修的作用就是将图片打磨得更漂亮,跟我们通常理解的图片精修是一个意思。Refiner有两个参数,第一个参数是选择精修的大模型,第二个参数是选择精修的时机,像下图迭代步数为20,切换时机为0.5,则从第20 * 0.5 = 10步开始精修。

3.5 面部修复

如果你的SD不是秋叶整合包,可能在高分辨率修复旁边还能看到一个面部修复,这个在秋叶整合包其实也是存在的,只不过位置不一样,移到后期处理Tab了。

之所以有面部修复,是因为图片本身尺寸较小,所以如果画人的话留给脸部的像素其实不多,这样AI其实不能画得很好,这时候就可以通过面部修复对面部进行“精修”

3.6 总批次数/单批数量

  • 总批次数即一共执行多少次图片生成任务,默认值为1,最大值为100。

  • 单批数量即每次任务生成多少张图片,默认值为1,最大值为8。

如果需要批量生成4张图片,设置“总批次数为4、单批数量为1”和设置“总批次数为1,单批数量为4”效果是一样的,但后者会更快一些,同时后者也需要更大的显存支持。如果显存较小的朋友,建议将单批数量置为1,通过调整总批次数来一次出多张图,相当于用时间换显存。

还有一个小细节就是,使用总批次数/单批数量,后一张图片的迭代步数是前一张图片的基础上加1,这样可以保证图片有变化,同时变化不太大。

3.7 提示词引导系数(CFG Scale)

这个参数决定了提示词对作图的影响,如果这个值越大,AI就会越严格地按照提示词进行创作;如果这个值越小,AI会越倾向于自由发挥。

比如我的提示词如下:1girl,red hair,tuxedo,high_heels( 1个女孩,红色头发,燕尾服,高跟鞋)

当引导系数的值为20的时候,生成的图片如下:

但当引导系数的值为3.5时,生成多几次,出现了这样的图片(违反了前面1个女孩的设定)

但这个也不是就那么绝对,我也试过在引导系数较大的情况下,多生成几次也出现了多人的情况,所以这个就是一个概率高低问题,一般我将其设置为 7-12 这个范围,这时候图片效果较好,既有创意又能围绕我们的提示词。

3.8 随机数种子

这玩意就好比画画时的线稿,如果你使用了上一张图片的随机数,那么这一次生成的图片大概率与上一张图片不会有太大的偏差。如果随机数种子设置为-1,则表示随机生成。

这个一般用于重复生成某张图片,因为就算你使用相同的提示词,采样方法和迭代步数,如果随机数相差较大,生成的图片差异也会很大,而如果这时候再使用相同的随机数,则能够在下一次生成图片的时候最大限度地进行还原(没办法保证100%,还是有随机性)

举个例子,上面的那张美女图片,我控制了相同的提示词,采样方法、迭代步数和随机数,最后出图的效果如下:

四、插件区和出图区

插件区域这块对于小白而言比较复杂,里面的功能暂时还用不到,等有对应的实战案例再单独讲下。

关于出图区,其实也比较简单,SD每次生成的图片都会保存下来,可以点击图像输出目录查看,另外几个其实都有对应中文说明,比如将图片发送到图生图选项卡,总结而言都是一些提升效率的快捷方式。

以上就是本次内容了,比较着重讲述的就是五大区域里面的参数调整区,因为这块区域对于小白而言用处较大,但是又有一定的复杂性,如果觉得本次内容对你有所帮助,还请多多点赞、在看支持!

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

若有侵权,请联系删除

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

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

相关文章

NegativePrompt:利用心理学通过负面情绪刺激增强大型语言模型

【摘要】大型语言模型 (LLM) 已成为各种应用不可或缺的一部分,从传统的计算任务到高级人工智能 (AI) 应用。这种广泛的应用促使社会科学等各个学科对 LLM 进行了广泛的研究。值得注意的是,研究表明 LLM 具有情商,可以通过积极的情绪刺激进一步…

UNION的使用

UNION的使用 给出将多条查询语句组合成单个结果集,两个表对应的列数和数据类型必须相同 UNION操作符: 返回两个查询结果集的并集,并去除重复记录 UNION ALL操作符 返回两个查询的结果集的并集。不去掉两个结果集的重复部分,重…

为什么说change Buffer写缓冲区,仅适用于辅助索引页

change buffer: 写缓冲区,是针对于二级索引页的更新优化措施。 change Bufer作用:在进行DML操作的时候,如果请求的是辅助索引(非唯一索引)并且没有在缓冲池中,并不会立刻将磁盘页加载到缓冲池,而是在CB记录缓冲变 更&#xff0c…

JVM(7):虚拟机性能分析和故障解决工具之jstat工具

1 jstat(JVM Statistics Monitoring Tool)作用 监视虚拟机各种运行状态信息,可以显示本地或者是远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据 2 命令格式 jstat [options vmid [interval[count]]] 参数解释 第一个参数:options 代…

linux:信号深入理解

文章目录 1.信号的概念1.1基本概念1.2信号的处理基本概念1.3信号的发送与保存基本概念 2.信号的产生2.1信号产生的五种方式2.2信号遗留问题(core,temp等) 3.信号的保存3.1 信号阻塞3.2 信号特有类型 sigset_t3.3 信号集操作函数3.4 信号集操作函数的使用 4.信号的处理4.1 信号的…

CSS学习笔记之中级教程(三)

14、CSS 下拉菜单 14.1 示例1&#xff1a;普通弹窗 思路&#xff1a;弹窗内容先隐藏display: none;&#xff0c;:hover时候修改弹窗部分的 display: block; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><me…

IT学习笔记--Kafka

Kafka概述: 定义: Kafka是一个分布式的基于发布/订阅模式的消息队列&#xff0c;主要应用于大数据实时处理领域。 消息队列消息队列的两种模式: 点对点模式: 消息生产者生产消息发送到Queue中&#xff0c;然后消息消费者从Queue中取出并且消费消息。 消息被消费以后&#…

C语言游戏实战(12):植物大战僵尸(坤版)

植物大战僵尸 前言&#xff1a; 本游戏使用C语言和easyx图形库编写&#xff0c;通过这个项目我们可以深度的掌握C语言的各种语言特性和高级开发技巧&#xff0c;以及锻炼我们独立的项目开发能力&#xff0c; 在开始编写代码之前&#xff0c;我们需要先了解一下游戏的基本规则…

git拉取项目前需要操作哪些?

1.输入 $ ssh-keygen -t rsa -C "秘钥说明" 按enter键 2.出现 ssh/id_rsa&#xff1a;(输入也可以不输入也可以) 然后按enter键 3.出现empty for no passphrase&#xff1a;(输入也可以不输入也可以) 然后按enter键 4.出现same passphrase again: (输入也可以不输入也…

FreeRTOS_互斥量_学习笔记

互斥量 数值只有0或1 谁获得互斥量&#xff0c;就必须由谁释放同一个互斥量。 但其实在freeRTOS中&#xff0c;任务A获取的互斥锁&#xff0c;任务B也能释放。因此谁上锁谁开锁只是约定&#xff0c;在程序实现上不是强制的。 “可重入的函数"是指&#xff1a;多个任务同时…

Python筑基之旅-MySQL数据库(一)

目录 一、MySQL数据库 1、简介 2、优点 2-1、开源和免费 2-2、高性能 2-3、可扩展性 2-4、易用性 2-5、灵活性 2-6、安全性和稳定性 2-7、丰富的功能 2-8、结合其他工具和服务 2-9、良好的兼容性和移植性 3、缺点 3-1、对大数据的支持有限 3-2、缺乏全文…

OSPF路由聚合

原理概述 与RIP不同&#xff0c;OSPF不支持自动路由聚合&#xff0c;仅支持手动路由聚合。OSPF的路由聚合有两种机制&#xff1a;区域间路由聚合和外部路由聚合。区域间路由聚合必须配置在ABR路由器上&#xff0c;指的是ABR在把与自己直接相连区域&#xff08;Area&#xff09…

运营美区TikTok小店常见问题汇总,你中了几个?

大家好&#xff0c;我是IPdodo的小编&#xff0c;专注于分享出海网络解决方案&#xff0c;致力于为TikTok运营人提供解决视频0播放、直播间卡顿、不进人甚至封号等问题的跨境网络专线。目前已经帮助数千位用户成功开启跨境业务。 今天&#xff0c;将针对美区TikTok小店的常见问…

树莓派学习笔记——树莓派的三种GPIO编码方式

1、板载编码&#xff08;Board pin numbering&#xff09;: 板载编码是树莓派上的一种GPIO引脚编号方式&#xff0c;它指的是按照引脚在树莓派主板上的物理位置来编号。这种方式对于初学者来说可能比较直观&#xff0c;因为它允许你直接根据引脚在板上的位置来编程。 2、BCM编…

CasaOS系统玩客云安装内网穿透工具实现无公网IP远程访问

文章目录 前言1. CasaOS系统介绍2. 内网穿透安装3. 创建远程连接公网地址4. 创建固定公网地址远程访问 前言 2月底&#xff0c;玩客云APP正式停止运营&#xff0c;不再提供上传、云添加功能。3月初&#xff0c;有用户进行了测试&#xff0c;局域网内的各种服务还能继续使用&am…

“手撕”String类+练习题

一、什么是String类 简单讲&#xff1a;是一个类&#xff01;创建字符串和字符串方法的类。 用 圈起来的叫字符&#xff0c;比如&#xff1a;a,b....里面只能有一个char类型的字符。 用" "圈起来的叫字符串&#xff0c;比如&#xff1a;"abc"..里面可以连…

2024年5月20日优雅草蜻蜓API大数据服务中心v2.0.4更新

v2.0.4更新 v2.0.4更新 2024年5月20日优雅草蜻蜓API大数据服务中心v2.0.4更新-增加ai绘画接口增加淘宝联想词接口底部增加联系方式 更新日志 底部增加联系方式 增加ai绘画接口 增加淘宝联想词接口 增加用户中心充值提示 用户中心内页颜色改版完成 截图 部分具体更新接口信…

Python 渗透测试:Redis 数据库 弱密码测试.(6379端口)

什么是 Redis 数据库 Redis (Remote Dictionary Server) 是一个开源的、内存中的数据结构存储系统&#xff0c;它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等&#xff0…

9、QT—SQLite使用小记

前言 开发平台&#xff1a;Win10 64位 开发环境&#xff1a;Qt Creator 13.0.0 构建环境&#xff1a;Qt 5.15.2 MSVC2019 64位 sqlite版本&#xff1a;sqlite3 文章目录 一、Sqlite是什么二、sqlite使用步骤2.1 下载2.2 安装2.3 使用 三、Qt集成sqlite33.1 关键问题3.2 封装sql…

JAVA开发 基础Jaccard来计算两个字符串之间的重复率

计算两个字符串之间的重复率 Jaccard实现代码基于最长公共子序列来计算两个字符串之间的重复率 Jaccard Jaccard方法&#xff0c;也称为Jaccard相似度或Jaccard相似系数&#xff0c;是一种用于衡量两个集合相似程度的指标。其逻辑基于集合之间的交集与并集的关系来衡量它们的相…