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

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

2025盘古石杯决赛【手机取证】

前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

今日科技热点速览

🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了,就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...