当前位置: 首页 > 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需要…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

python/java环境配置

环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

2023赣州旅游投资集团

单选题 1.“不登高山&#xff0c;不知天之高也&#xff1b;不临深溪&#xff0c;不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...