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

零基础光速入门AI绘画,SD保姆攻略

前言

大家好,我是AI绘画咪酱。一名AIGC狂热爱好者,目前正在AI绘画领域进行深入的探索。

我花了一个月时间把SD研究了一遍,秉持着用有趣、易懂的文字让小白也可以零基础光速使用SD(stable diffusion)入门AI绘画,一步步从零开始写出本系列的文章。今天也是本系列AI绘画SD攻略的最后一篇。

通过前面七篇文章,我详细的说明了SD各种模型的功能、参数设置的以及运用,相信大家已经对SD有了一个清晰的理解。肯定有很多朋友已经用SD画出了自己想要的图片。

但肯定也有一部分小伙伴还是对SD的综合运用有些疑问,只会对着步骤进行,离开了步骤很难自由发挥SD的强大功能。

今天的文章,我就会带大家从头梳理一遍SD,让大家对于SD绘画有更深的认知。

一、diffusion

diffusion的含义是扩散。这也是AI绘画最重要的一个算法。那究竟什么扩散呢?

先把一张图片模糊,也就是增加噪声,扩散的过程,然后再降噪,逆向扩散,清晰化的过程。

这就是整个扩散的过程。

在图片变得极为模糊之后,我们就可以从原本的画面中抽离,然后想象新的画面。

AI就是通过把投喂给它的无数图片,通过这样不断增加增加噪声的方式进行扩散,AI就可以不断学习这些抽象的内容,并不断理解了这个过程。AI每学习一张图,就吸取了一张图的图像特征,且与原图进行关联。

当AI学习了各种不同的风格和内容之后,这个时候的它就相当于成为了一个绘画的专家,走入公司,这时候我们作为领导给它输入提示词,它就可以进行理解并画出相应的图片。

当然,这个过程中,由于它掌握了太多的知识,所以当提示词不明确的时候,或者提示词之间有冲突时,它就会发挥失常,画出错误的图案。

关于AI绘画的更多内容看这篇零基础光速入门AI绘画,SD保姆攻略 一

二、大模型

我们作为甲方,我们要寻找的必须是符合我们要求的乙方。比如我们要真实系的图片,自然不能找一个二次元的乙方。

所以用AI作图,首先我们要选择合适的大模型checkpoint。

根据AI学习的图片的不同类型,SD中的大模型目前也大致分为三种:真实系、二次元、2.5D(介于真实和二次元之间,类似于3D动漫效果)。

三、提示词

当我们选择了大模型之后,我们就已经可以给Ai输入提示词了。

但问题在于我们要如何去给AI一个明确的提示词,让它能理解我们的意思呢?

首先,我们要明白我们想要图片中什么,同时不要出现什么。

这也就是SD的正向和反向提示词,我们需要通过这些提示词对图片的内容进行约束。

同时,这里面涉及到提示词的规则(英文、词组、短句、分隔),提示词的内容(内容型提示词、标准化提示词)、权重、进阶的语法等。

提示词等相关内容可以看这一篇文章零基础光速入门AI绘画,SD保姆攻略 三

四、Lora模型

提示词的控制很多时候是比较宽泛的,比如一个美丽的女孩。

AI也会疑惑,有多美丽,哪里美丽,眼睛还是脸还是鼻子。

如果我们还要详细描述五官之类的,那工程量就太大了。

这就产生了人物的Lora。我们把一些好的元素融合在一起,然后打包扔给AI。

告诉它,我要用这里面的人物。AI就能很好的理解了。

当然,在这个基础上,还有服装的Lora,风格的Lora,灯光的Lora等等。不过人物Lora还是占据了Lora的半边天。

关于更多大模型和Lora的内容看这篇零基础光速入门AI绘画,SD保姆攻略 二

五、图生图

但是Lora有时候还是不能很好的达到我们的要求。我们想要让AI更好的理解我们的意思,我们就可以借助图生图加大对AI的约束。

就如同甲方拿着一张海报给乙方,并说,我想要这种图片的风格,或者线条,或者颜色等等。

这样AI在提示词,Lora的基础上,又多了一个参照物,对于我们的意思就更能理解了。

关于图生图更多内容看这篇零基础光速入门AI绘画,SD保姆攻略 四

六、局部重绘

虽然我们给了AI上述的一步又一步的约束,但是AI还是会出错,或者某些细节不能达到我们的要求,但是其中一大部分是我们觉得还满意的。

这个时候我们就可以选中这张图的一部分,然后告诉它,这一部分重画一下。

这就需要用到SD绘画中的局部重绘功能。

关于局部重绘的更多内容看这篇零基础光速入门AI绘画,SD保姆攻略 五

七、ControINet

其实通过上面约束,我们已经能对AI绘画的生成做出很多的约束。

但随着ControINet的诞生,对以上所有的约束直接造成了降维打击。

ControINet(控制网)让我们对于AI绘画的控制达到了目前的顶峰。

ControINet可以通过对图片的检测,去识别它的线条(canny、lineart、soft edge、mlsd/仅直线、scribble)、人物姿势(open pose)、空间深度(depth)、物品类型(seg)、风格颜色(shuffle、reference、normal、t2ia)、重绘(Inpaint、tile/加入细节)、特效(ip2p)。相信之后也可能出现更多的ControINet模型。

通过这些检测,对于新的图片的生成可以达成强有力的约束。

但我们使用ControINet,也要注意一个度的把控。

对于ControINet模型,我们可以这样理解。

AI做图本身就是一个随机的过程,当我们使用ControINet时,就是对AI的随机性进行了控制,当这个控制过强时,就相当于复制了一张图片,消减了AI的随机性。

我们要做的就是在随机性和控制性中取得一个平衡,当我们觉得控制过多,就减少控制,给AI更多的发挥,当过于随机时,我们就施加控制,给与AI适当的引导。

比如以线条为例,canny的控制就高于soft edge,soft edge又高于scribble。

我们可以根据自己的需求去选择合适的模型,从而对图片生成的控制达成一种平衡,生成我们脑海中的场景。

关于ControINet的更多内容可以看这两篇文章零基础光速入门AI绘画,SD保姆攻略 六 和零基础光速入门AI绘画,SD保姆攻略 七 。

八、生成图片

以上的所有内容,本质上就是给AI输入提示词给与引导,同时,对AI提出要求进行约束,这样一个过程。

当我们的提示和约束,与AI的理解达成一个平衡时,我们就可以看到一个由我们和AI共同创造,且独一无二的图片生成了。

这里直接将该软件分享出来给大家吧~
在这里插入图片描述

1.stable diffusion安装包

随着技术的迭代,目前 Stable Diffusion 已经能够生成非常艺术化的图片了,完全有赶超人类的架势,已经有不少工作被这类服务替代,比如制作一个 logo 图片,画一张虚拟老婆照片,画质堪比相机。

最新 Stable Diffusion 除了有win多个版本,就算说底端的显卡也能玩了哦!此外还带来了Mac版本,仅支持macOS 12.3或更高版本

在这里插入图片描述

2.stable diffusion视频合集

我们在学习的时候,往往书籍源码难以理解,阅读困难,这时候视频教程教程是就很适合了,生动形象加上案例实战,一步步带你入坑stable diffusion,科学有趣才能更方便的学习下去。

在这里插入图片描述

3.stable diffusion模型下载

stable diffusion往往一开始使用时图片等无法达到理想的生成效果,这时则需要通过使用大量训练数据,调整模型的超参数(如学习率、训练轮数、模型大小等),可以使得模型更好地适应数据集,并生成更加真实、准确、高质量的图像。

在这里插入图片描述

4.stable diffusion提示词

提示词是构建由文本到图像模型解释和理解的单词的过程。可以把它理解为你告诉 AI 模型要画什么而需要说的语言,整个SD学习过程中都离不开这本提示词手册。

在这里插入图片描述

5.SD从0到落地实战演练

在这里插入图片描述

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名SD大神的正确特征了。

这份完整版的stable diffusion资料我已经打包好,需要的点击下方插件,即可前往免费领取!

在这里插入图片描述

相关文章:

零基础光速入门AI绘画,SD保姆攻略

前言 大家好,我是AI绘画咪酱。一名AIGC狂热爱好者,目前正在AI绘画领域进行深入的探索。 我花了一个月时间把SD研究了一遍,秉持着用有趣、易懂的文字让小白也可以零基础光速使用SD(stable diffusion)入门AI绘画&#…...

详细配置SQL Server的链接服务器(图文操作Mysql数据库)

目录 前言1. MySQL ODBC 驱动2. 配置 SQL Server 链接服务器3. 彩蛋前言 此处配置以及安装没有什么理论知识 所以直奔主题,跟着以下步骤配置安装即可 需求:准备在10.197.0.110中链接外部的10.197.0.96的mysql数据源 已默认在10.197.0.96中安装了MySQL数据库并且知道其连接信…...

DDD学习笔记五

模型引力场:聚合 强作用力体现: 某个领域模型是另一些模型存在的前提,没有前者,后者就失去了生存的意义。 一组领域模型之间存在关联的领域逻辑,任何时候都不能违反。 一组领域模型必须以一个完整的、一致的状态呈现给…...

CAN报文的发送类型-OnChange、OnWrite、IfActive、Repetition

CAN报文的发送类型分为基本发送类型和混合发送类型两大类 CAN基本发送类型包括Cyclic周期发送、OnChange变化时发送、OnWrite写入时发送和IfActive有效时发送。基本发送类型中的Cyclic称为周期型,而其他3个类型称为事件型(Event)。发送次数是通过定义Repetition重复次数来实…...

神经网络在机器学习中的应用:手写数字识别

机器学习是人工智能的一个分支,它使计算机能够从数据中学习并做出决策或预测。神经网络作为机器学习的核心算法之一,因其强大的非线性拟合能力而广泛应用于各种领域,包括图像识别、自然语言处理和游戏等。本文将介绍如何使用神经网络对MNIST数…...

QT拖放事件之四:自定义拖放操作-利用QDrag来拖动完成数据的传输-案例demo

1、核心代码 #include "Widget.h" #include "ui_Widget.h" #include "MyButton.h"Widget::Widget(QWidget *parent): QWidget...

Spring Boot应用的部署与扩展

Spring Boot应用的部署与扩展 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 引言 Spring Boot作为现代化Java应用的首选框架之一,以其简化的配置…...

Spring底层原理之bean的加载方式八 BeanDefinitionRegistryPostProcessor注解

BeanDefinitionRegistryPostProcessor注解 这种方式和第七种比较像 要实现两个方法 第一个方法是实现工厂 第二个方法叫后处理bean注册 package com.bigdata1421.bean;import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.…...

大数据面试题之Spark(5)

Spark SQL与DataFrame的使用? Sparksql自定义函数?怎么创建DataFrame? HashPartitioner和RangePartitioner的实现 Spark的水塘抽样 DAGScheduler、TaskScheduler、SchedulerBackend实现原理 介绍下Sparkclient提交application后,接下来的流程? Spark的几种…...

springboot笔记示例六:fastjson2集成

springboot笔记示例六:fastjson2集成 本文md下载 https://download.csdn.net/download/a254939392/89491102本文md文档下载地址 #springboot json官方说明 https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/html/boot-features-json.htmlsprin…...

VLOOKUP函数在表格的简单运用-两个表匹配

1.什么是VLOOKUP? VLOOKUP是Excel中的一个内置函数,主要用于在区域或表格的首列查找指定的值,并返回该行中其他列的值。它特别适用于跨表格数据匹配 2.函数运用 2.1.这边两个表取名a表和b表,做为我们的实例表。 表格a包含&…...

http.cookiejar.LoadError: Cookies file must be Netscape formatted,not JSON.解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

逻辑操作符

目录 && --- 逻辑与操作符 || --- 逻辑或操作符 && --- 逻辑与操作符 逻辑与操作符有并且的意思,一般用于判断语句中 逻辑与操作符运行规则是都要为真,才会继续执行或计算 360笔试题: 有关前置(--),后置(-…...

Java调用第三方接口的秘籍:技巧、案例与最佳实践

Java调用第三方接口的秘籍:技巧、案例与最佳实践 在Java开发中,调用第三方接口是一项常见的任务。无论是与外部系统交互、集成其他服务,还是调用远程API获取数据,掌握有效的第三方接口调用技巧都是至关重要的。本文将深入剖析Jav…...

【机器学习】机器学习重要方法——深度学习:理论、算法与实践

文章目录 引言第一章 深度学习的基本概念1.1 什么是深度学习1.2 深度学习的历史发展1.3 深度学习的关键组成部分 第二章 深度学习的核心算法2.1 反向传播算法2.2 卷积神经网络(CNN)2.3 循环神经网络(RNN) 第三章 深度学习的应用实…...

计网之IP

IP IP基本认识 不使用NAT时,源IP地址和目的IP地址不变,只要源MAC和目的MAC地址在变化 IP地址 D类是组播地址,E类是保留地址 无分类地址CIDR 解决直接分类的B类65536太多,C类256太少a.b.c.d/x的前x位属于网路号,剩…...

mybatis延迟加载

mybatis延迟加载 1、延迟加载概述 应用场景 ​ 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 延迟加载的好处 ​ 先从单表查询、需要时再从关联表去关联查…...

危险!属性拷贝工具的坑!

1. 背景​ 之前在专栏中讲过“不推荐使用属性拷贝工具”,推荐直接定义转换类和方法使用 IDEA 插件自动填充 get / set 函数。 不推荐的主要理由是: 有些属性拷贝工具性能有点差有些属性拷贝工具有“BUG”使用属性拷贝工具容易存在一些隐患&#xff08…...

qt实现打开pdf(阅读器)功能用什么库比较合适

关于这个问题,网上搜一下,可以看到非常多的相关博客和例子,可以先看看这个总结性的博客(https://zhuanlan.zhihu.com/p/480973072) 该博客讲得比较清楚了,这里我再补充一下吧(qt官方也给出了一些…...

在node.js环境中使用web服务器http-server运行html静态文件

http-server http-server是一个超轻量级web服务器,它可以将任何一个文件夹当作服务器的目录供自己使用。 当我们想要在服务器运行一些代码,但是又不会配置服务器的时候,就可以使用http-server就可以搞定了。 使用方法 因为http-server需要…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...

XML Group端口详解

在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

日常一水C

多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...

Java数组Arrays操作全攻略

Arrays类的概述 Java中的Arrays类位于java.util包中,提供了一系列静态方法用于操作数组(如排序、搜索、填充、比较等)。这些方法适用于基本类型数组和对象数组。 常用成员方法及代码示例 排序(sort) 对数组进行升序…...