【AI绘画】Stable Diffusion使用入门教程!!!!

news2024/11/16 18:03:57

手把手教你入门绘图超强的AI绘画,用户只需要输入一段图片的文字描述,即可生成精美的绘画。给大家带来了全新保姆级教程资料包 (文末可获取)
首先提几个好玩的名词:

炼丹:训练AI学习图片生成模型

咒语:prompt提示词

一、prompt提示词

1、概况
包含内容:作品主题、画风、形象特点以及一些具体包含的要素

提示词的语法规则:

提示词需要英文书写
提示词以词组作为单位
2、prompt分类
(1)人物及主体特征

服饰穿搭:white dress

发型发色: blonde hair, long hair

五官特点:small eyes, big mouth

面部表情:smiling

肢体动作:stretching arms

(2)场景特征

室内、室外:indoor / outdoor

大场景:forest, city, street

小细节:tree, bush, white flower

(3)环境光照

白天黑夜:day / night

特定时段:morning, sunset

光环境:sunlight, bright, dark

天空:blue sky, starry sky

(4)补充:画幅视角

距离:close-up, distant

人物比例:full body, upper body

观察视角:from above, view of back

镜头类型:wide angle, Sony A7 III

(5)画质

通用高画质:

Best quality最高的质量

Ultra-detailed 超级细节

Masterpiece 杰作

Hires 高分辨率

8k 8k分辨率

特定高分辨率类型:

Extremely detailed CG unity 8k wallpaper 超精细的8K Unity游戏CG

Unreal engine rendered 虚幻引擎渲染

3、提示词的权重分配

(1)括号加数字

(white flower:1.5) 调节白花的权重为原来的1.5倍(增强)

(white flower:0.8) 调节白花的权重为原来的0.8倍(减弱)

(2)套括号

圆括号:(((white flower))) 每套一层,额外*1.1倍

大括号:{{{white flower}}} 每套一层,额外*1.05倍

方括号:[[[white flower]]] 每套一层,额外*0.9倍

4、反推提示词

在这里插入图片描述

可以识别图像已有的成分,再总结成AI的字典里有的东西,来帮助你更准确地向AI描述一些东西。

DeepBooru和CLIP是两种不同的图像识别算法,DeepBooru的速度和识别准确率都更具有优势。

5、提示词网站

在这里插入图片描述

二、WebUI参数说明

1、文生图参数
(1)采样迭代步数:去噪迭代次数,一般超过20次后面提升不大

(2)分辨率:分辨率太大,可能会出现多人多手多脚的情况,AI在训练的时候用的图片分辨率一般都比较小,如果分辨率太大就会被认为是多张图片拼接而成的。如果需要高分辨率的图片,先绘制512*512的图片,再通过”hires.fix”进行高清修复。

(3)”restore faces”面部修复,采用一些对抗算法识别人物面部并进行修复。

(4)”Tiling”平铺,用来生成那种可以无缝贴满整个屏幕的纹理性图片

(5)生成批次:为了追求一张完美的图片可能会用一套提示词生成多次,通过该功能可以一次生成多张图片,它提供了所有图片合在一起的预览图以及各张图片。
在这里插入图片描述

2、图生图参数
Denoising strength:重绘幅度,它跟原图有多像的权重

3、inPaint局部重绘及参数
它就像我们写作业时使用的涂改液、修正带一样,它可以针对一张大图里的某一个区域覆盖重画。既能修正错误,又不至于把整张纸撕掉重画一遍。

它利用图生图的方式对局部重绘了一下,然后又拼回到原图中。

蒙版(mask):泛指一些用以限定处理区域的范围对象。蒙住了某些关键区域的版子。

Inpaint Sketch:绘制。画上去的有颜色的线条会同时构成这个画面的一部分,并参与到图生图的过程里。
在这里插入图片描述

三、模型

1、模型类型
模型下载网站:hugging face / civitai

(1)大模型
Checkpoint 检查点或者关键点模型,叫ckpt大模型,一般2~7GB之间

Safetensor 通常1~2GB,也是大模型,是训练者们为了使模型变得更加可靠、高效而专门开发的

(2)Embeddings
文本嵌入,对应C站的Model types是”Textual Inversion”,即文本倒置

Embeddings文件都非常小,一般就几十KB

如果是checkpoint是一本大字典,那么Embeddings就像上面的一片小“书签”,它能够精准地指向个别字、词的含义,从而提供一个极其高效的索引。

Embeddings本身不包含信息,只是一个标记而已。

Embeddings可以为我们指向某一种特定的形象

文件后缀是pt,下载后放在models文件夹旁边的同名文件夹embeddings里面。

Embeddings不需要额外的调用,只需要在提示词里面用特定的prompt去召唤它

(3)LoRa:低秩模型
LoRa的作用在于向AI传递、描述某一个特征准确、主体清晰的形象。

可以让AI学习一些原本不存在于它的世界里的东西。

如果说embeddings是一张书签,那么Lora就是一张彩页,它直接就在纸上写明白了形象的特点,可以用什么样的方式去呈现出来。

Lora的位置是在models下面的Lora子文件夹。

训练大模型的最低要求是拥有12G以上的显存,但训练LoRA模型可能只需要8G甚至更低。常规的大模型至少会占用2个G以上的存储空间,但最大的LoRA模型也不会超过200M。

它需要和checkpoint搭配使用,从而实现对这个checkpoint在某些方面的“微调”。

(4)Hypernetwork 超网络
它能实现的效果和Lora差不多的。

可以让AI学习一些原本不存在于它的世界里的东西。

Hypernetwork一般用于改善生成图像的整体风格。不太需要使用,后面直接用LORA即可

2、模型分类及top模型名称

(1)二次元模型
Anything V5:用于动漫、插画、角色立绘等的画面风格

Counterfeit:插画风模型,细节还原度高

Dreamlike Diffusion:漫画插画风模型,打造梦幻般、具有幻想色彩的画面和作品

(2)真实系模型
Deliberate:超级升级版的SD官方模型,非常精细、全面的写实风格

Realistic Vision:朴素且有整活空间,用来做人像、食物、动物图片,做些具有真实感的假新闻照片

LOFI:精致的照片级人像专精模型,对人物面部处理比前两个更加精致

(3)2.5D风格模型
NeverEnding Dream:非常适合“三次元化”的2.5D模型,结合Lora进行动漫游戏角色的二次创作

Photorealism:优秀的照片效果和创意发挥空间

Guofeng3:实现“文化输出”的国风精致模型

四、分辨率放大的工具

1、高清修复Hires.fix
Upscale by:放大倍率,指将这个图片由原始分辨率放大到多少

Hires steps:高清修复采样次数,高清修复需要经过一次重绘,因此需要设置采样步数。保持默认的0数值,它会和我们设置的采样迭代次数(20)保持一致。

Denoising strength:重绘幅度,等同于图生图中的重绘幅度。

生成过程:SD会先绘制一份低分辨率的图像,再根据它画第二幅高分辨率的图像。它的本质就是把这个低分辨率成品“图生图”一次,打回潜空间内重新去噪,从而得到一张更大的图片。

高清修复本质:打回重画,再来一副!适合文生图。

优势:
不会改变画面构图(经由随机种子固定);

稳定克服多人、多头等由分辨率产生的问题;

操作简单、清晰、直观。

缺陷:
仍然受到最大显存的限制;

计算速度相对较慢,画一次等于常规情况下画两到三次

偶尔“加戏”,出现莫名的额外元素

2、SD UpScale
图生图中把图片分辨率放大的好帮手。

脚本:
在这里插入图片描述

选择SD upscale
在这里插入图片描述

它的绘制过程:和高清修复的“打回重画”截然不同,它是通过把这张图均匀地切成4块去画的,逐一画4块然后再拼在一起。

如果只是机械地切成4块,那么相邻图块之间地接缝处肯定会出现非常生硬地过渡边缘,于是,通过tile overlap像素重叠就会起到一个“缓冲带”的作用。
在这里插入图片描述

优势:

可以突破内存限制获得更大的分辨率

画面精细度高,对细节的丰富效果出色

缺陷:

分割重绘的过程较为不可控(语义误导和分界线割裂)

操作繁琐且相对不直观

偶尔“加戏”,出现莫名的额外元素

五、AI绘画入门级扩展插件

在这里插入图片描述

所有和扩展有关的功能都被集中收纳在这个”Extensions”标签里进行管理。

插件被统一安装在根目录下“Extension”的文件夹里,每一个扩展是一个单独的文件夹。

1、中文本地化语言包

在这里插入图片描述

GitHub - hanamizuki-ai/stable-diffusion-webui-localization-zh_Hans: SD-WebUI 简体中文翻译扩展

2、图库浏览器

在这里插入图片描述

GitHub - yfszzx/stable-diffusion-webui-images-browser: an images browse for stable-diffusion-webui

3、提示词自动补全

在这里插入图片描述

https://github.com/DominikDoom/a1111-sd-webui-tagcomplete

它是基于本地的一个Booru词库实现的。

这个插件还能进行中文输入,然后切换成英文进行输入。
在这里插入图片描述

4、提示词反推

在这里插入图片描述

https://github.com/toriato/stable-diffusion-webui-wd14-tagger.git

比CLIP和DeepBooru更高效的反推工具。

5、Upscale放大扩展

在这里插入图片描述

https://github.com/Coyote-A/ultimate-upscale-for-automatic1111.git

安装完成后没有独立tab,而是出现在脚本中。

6、局部细化重绘

在这里插入图片描述

https://github.com/hnmr293/sd-webui-llul

与第5个工具相比,它不会让一整张图片变得特别大,而是把一些局限于尺寸没法变得更精致的部分给“放大”一下。

它在于不改变原有的结构,就可以为画面带来更加丰富的细节。

7、提示词语义分割

https://github.com/hnmr293/sd-webui-cutoff.git
在这里插入图片描述

解决提示词之间的相互干预。

扩展的原理如下:
在这里插入图片描述

它会将里面的每一个提示词的“描述性”成分抽取出来单独处理,再结合回原画里面。

8、无限放大动画视频

在这里插入图片描述

https://github.com/v8hid/infinite-zoom-automatic1111-webui.git
在这里插入图片描述

我们可以去想象它的场景在不断往外延伸,最终生成动画视频。

六、ControlNet插件

1、概括说明
在此之前,基于扩散模型的“AI绘画”是非常难以控制的,去扩散这张图片的过程充满了随机性。

在原理上,ControlNet和LoRA是有许多相似之处,定位都是对大扩散模型做微调的额外网络。它的核心作用是根据一些额外信息控制扩散走向。

比如“姿势”,如果只是通过提示词输入一个“跳舞”,那么画面中的角色、人物可能会有无数种舞蹈姿势,ControlNet的精髓在于可以给他输入一张记录了某种特定“姿势”信息的图片来指导它作图。ControlNet能够读懂下面信息。
在这里插入图片描述

2、安装
插件下载地址:GitHub - Mikubill/sd-webui-controlnet: WebUI extension for ControlNet

下载后同样放在extensions目录下即可,重启生效后就可以在文生图或图上图的下方看到该插件。
在这里插入图片描述

此时还没法使用ControlNet,因为需要下载相应的控制模型才能工作,对应模型的下载地址为:

lllyasviel/ControlNet-v1-1 · Hugging Face

下载完一个模型之后,需要把它放在ControlNet文件夹内的models文件夹里,注意:同名的pth模型文件和yaml配置需要一起放置。

ControlNet插件的Annotator功能能够从图片中提取对ControlNet有用的额外信息。
在这里插入图片描述

Control Weight:决定这个控制效应在图片中呈现出来的强度。后面两个选项,会影响在图像不断扩散的过程中什么时候加入ControlNet的影响。默认的0到1代表从头到尾全程生效。

3、比较流形的5个ControlNet模型
在这里插入图片描述

(1)Openpose模型
直接掌握了人物体态呈现的“命脉”。

下图为openpose-hand
在这里插入图片描述

下面为openpose-face
在这里插入图片描述

(2)Depth模型
它的重点是对场景的描绘还原,尤其是富有空间感的多层次场景
在这里插入图片描述

(3)Canny模型
来自于图像处理领域的一种边缘检测算法。
在这里插入图片描述

(4)HED模型
整体边缘线条检测。
在这里插入图片描述

输入的线条相对Canny更加模糊,两者对比如下:
在这里插入图片描述

Canny更关注人物内部的细节,HED这一类处理只会把大的轮廓保留下来,内部其实是有更大的发挥空间的。

(5)Scribble模型
涂鸦。
在这里插入图片描述

得到:
在这里插入图片描述

3、MultiControlNet
多重ControlNet

AI绘画所有方向的学习路线思维导图

这里为大家提供了总的路线图。它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。如果下面这个学习路线能帮助大家将AI利用到自身工作上去,那么我的使命也就完成了:
在这里插入图片描述

👉stable diffusion新手 0基础入门PDF👈

在这里插入图片描述

👉AI绘画必备工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
在这里插入图片描述

👉AI绘画基础+速成+进阶使用教程👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

👉12000+AI关键词大合集👈

在这里插入图片描述

这份完整版的AI绘画资料我已经打包好,戳下方蓝色字体,即可免费领取!

CSDN大礼包:《全套AI绘画基础学习资源包》免费分享

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

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

相关文章

tee漏洞学习-翻译-1:从任何上下文中获取 TrustZone 内核中的任意代码执行

原文:http://bits-please.blogspot.com/2015/03/getting-arbitrary-code-execution-in.html 目标是什么? 这将是一系列博客文章,详细介绍我发现的一系列漏洞,这些漏洞将使我们能够将任何用户的权限提升到所有用户的最高权限 - 在…

CentOS最优雅的方式安装mysql8

本来想偷个小懒使用yum/dnf安装一下mysq8,但是发现会出现各种问题,系统是CentOS8的. 于是还是使用最原始但是也是比较简单的方法来进行安装: 首先进入到https://dev.mysql.com/downloads/mysql/ 选择系统是Linux-Generic, 然后系统版本x86 64bit, 选择第一个TAR Archive的文件…

MySQL的SQL分类与数据类型

MySQL是一款广泛使用的关系型数据库管理系统,开源、免费且跨平台,常用于存储、管理和检索结构化数据,并通过SQL语言支持高效的数据操作与管理。 文章目录 何为SQLSQL分类DDLDMLDCLTCLDQL MySQL的数据类型数值型日期型字符串型二进制型其他类型…

Java多线程--对比创建多线程的两种方式

文章目录 一、对比两种方式(1)对比(2)Runnable的好处1、案例12、案例2(3)区别和联系(4)补充说明二、笔试题(1)题1(2)题2一、对比两种方式 (1)对比 <1> 两种方式步骤如下: 方式一:继承Thread类 方式二:实现Runnable接口 <2> 演示代码:计算…

uniapp 用css animation做的鲤鱼跃龙门小游戏

第一次做这种小游戏&#xff0c;刚开始任务下来我心里是没底的&#xff0c;因为我就一个‘拍黄片’的&#xff0c;我那会玩前端的动画啊&#xff0c;后面尝试写了半天&#xff0c;当即我就给我领导说&#xff0c;你把我工资加上去&#xff0c;我一个星期给你做出来&#xff0c;…

Idea 连接 mysql 数据库

前言 为了方便直接在 idea 开发工具中直接使用数据库&#xff0c;如查看数据等&#xff0c;可以在 idea 中配置数据库相关属性&#xff0c;实现操作数据库。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 使用步骤 点击最右面的 database&#xff0…

手把手系列!无需 OpenAI 即可搭建 RAG 应用

OpenAI 是时下最火爆的大语言模型&#xff08;LLM&#xff09;&#xff0c;不过除了 OpenAI 以外&#xff0c;还有许多不同的 LLM。此前&#xff0c;我们发布的许多篇文章中都介绍了如何使用 LangChain、Milvus 和 OpenAI 搭建众多 RAG 应用&#xff0c;这次我们来试试不一样的…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏1(附项目源码)

本篇最终效果演示 文章目录 本篇最终效果演示系列目录前言环境素材绘制地形 实现人物移动指示显示物品名称源码完结 系列目录 【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏1&#xff08;附项目源码&#xff09; 【制作100个unity游戏之23】实现类似七日杀、森…

在FreeRTOS上使用软定时器的ESP32开发指南

在FreeRTOS上使用软定时器的ESP32开发指南 在ESP32的开发中&#xff0c;使用FreeRTOS实时操作系统可以有效地提高多任务处理和系统稳定性。其中&#xff0c;软定时器是一项非常有用的功能&#xff0c;它可以让我们在系统中创建定时任务&#xff0c;而无需硬件定时器的支持。 …

基于cubeMX的正点原子miniSTM32对W25Q64的存储使用

一、实现目标 使用cubeMX建立项目工程&#xff0c;结合正点原子提供的hal库对W25Q64闪存调用的例程&#xff0c;实现W25Q64的读写。 二、实现过程 1、首先建立cubeMX工程&#xff0c;其他项设置不再叙述&#xff0c;只看连接W25Q64的SPI设置&#xff0c;这里使用SPI1&#xf…

css display 左右对齐 技巧

.list_number{ display: flex; } .list_name_number{ width:100px; } //左边固定width .list_name_type{ //右边给flex:2 自动撑开 flex:2; }

docker(上)

笔记资料参考与尚硅谷 前提知识课程介绍课程定位学习建议 1前提知识 boot cloud git push pull redis nginx mysql... Linux centos ubuntu 2课程介绍 2.1 2018 vs 2022 2.2 k8s&#xff08;雷峰崖&#xff09; 2.3 大纲 3课程定位&#xff08;因材施教量体裁衣…

Web08--JavaScript高级

1、BOM对象 BOM&#xff1a;browser object model 浏览器对象模型 BOM对象包括window对象、screen对象、history对象、location对象、navigator对象。 1.1 window对象 所有的浏览器都支持window对象。它表示的浏览器窗口 window对象是js中的顶层对象&#xff0c;所有的j…

DOS经典软件,落下帷幕,国产新一代中文编程体系兴起

互联网的演变犹如狂风巨浪&#xff0c;一些我们以为早已遗忘的软件却深深烙印在心底&#xff0c;特别是对于那些经历了DOS到Windows时代变革的人们来说&#xff0c;这种感觉尤为强烈。 DOS软件&#xff0c;曾是80后青春岁月中的璀璨星辰&#xff0c;如今虽已成为历史的遗迹&am…

Redis内存空间节省小技巧

背景&#xff1a;为提升会员对当前等级的权益感知&#xff0c;需对用户仍未领取的权益进行弹框或消息位置推荐&#xff0c;会员需推荐权益有10项&#xff0c;且项权益均需需校验当日推荐次数并做推送限制&#xff0c;推荐次数记入Redis缓存&#xff0c;会员数据庞大&#xff0c…

[实战]加密传输数据解密

前言 下面将分享一些实际的渗透测试经验&#xff0c;帮助你应对在测试中遇到的数据包内容加密的情况。我们将以实战为主&#xff0c;技巧为辅&#xff0c;进入逆向的大门。 技巧 开局先讲一下技巧&#xff0c;掌握好了技巧&#xff0c;方便逆向的时候可以更加快速的找到关键函数…

代码随想录 Leetcode226.翻转二叉树

题目&#xff1a; 代码(首刷看解析 2024年1月25日&#xff09;&#xff1a; class Solution { public:TreeNode* invertTree(TreeNode* root) {if(root nullptr) return root;swap(root->left,root->right);invertTree(root->left);invertTree(root->right);retu…

Java面试提纲

JDK 1 jdk1.8版本后的新特性有哪些? Java Development Kit (JDK) 1.8&#xff08;也称为Java 8&#xff09;在2014年3月发布&#xff0c;引入了许多重要的新特性&#xff0c;以下是其中的一些关键特性&#xff1a; Lambda表达式&#xff1a; Java 8引入了lambda表达式&#x…

java大数据hadoop2.9.2 Linux安装mariadb和hive

一、安装mariadb 版本centos7 1、检查Linux服务器是否已安装mariadb yum list installed mariadb* 2、如果安装了&#xff0c;想要卸载 yum remove mariadb rm -rf /etc/my.cnf rm -rf /var/lib/mysql 才能完全删除 3、安装mariadb 在线网络安装 yum install -y mari…

java常见的面试问题

目录 一、异常 1、 throw 和 throws 的区别&#xff1f; 2、 final、finally、finalize 有什么区别&#xff1f; 3、try-catch-finally 中哪个部分可以省略&#xff1f; 4、try-catch-finally 中&#xff0c;如果 catch 中 return 了&#xff0c;finally 还会执行吗&#…