AI绘画Stable diffusion保姆级教程,看这一篇就够了「安装-配置-画图」

news2024/9/20 20:30:24

随着chat gpt爆火之后,越来越多的人开始关注人工智能,人工智能相关的其他应用如AI绘画,也再次得到人们的关注。AI绘画的确很上头,最近几天小编也研究一下,这里把研究的过程以及中间遇到的问题整理一下,我这里遇到的问题,相信新入门的小白也会遇到,希望本文对你能有一定的帮助。

目前常用的AI绘画工具主要有两种:stable diffusionmidjourney
两者都是根据使用者输入绘画描述,进行图片生成,背后都是采用机器学习算法工作,对于两者的具体技术实现细节,这里不错过多描述,毕竟这方面小编也不擅长,哈哈哈。

从绘图效果来看,两者差别不大,对于日常绘图需求,两者都可以完全满足,这里我主要站在使用者的角度来对比一下两者的差异:
midjourney:是一个国外的商业化产品,操作简单,使用方便,出图效果完全取决于提示词。

使用门槛:

1.需要科学上网

2.需要付费,费用还挺高

这里是 midjourney的官网:https://www.midjourney.com/app/

stable diffusion 是一个免费的开源工具包,可以在本地安装,直接使用本地计算资源就可以进行绘画创作,同时stable diffusion提供了很多可以扩展的插件,可以根据场景需要,进行自定义功能扩展。

使用门槛:

对电脑配置有一定的要求,当然配置低的电脑可以可以玩,只不过出图效率比较低而已。

小编的电脑配置:
Mac os 12.5 M1
内存:16GB
CPU和GPU都是苹果芯片

输出512*512的图片大概15s左右。

前期为了学习和研究,满足一下自己的好奇心,这些都不是最重要。最重要的是先搞出一张图,把整个流程跑通。

作为一个程序员,小编比较喜欢自己折腾一些东西,这里我使用 本地安装stable diffusion的方式。

stable diffusion安装

stable diffusion的安装直接参考官网提供的安装指南即可:https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki

这里有各种芯片组使用的安装方式,我的电脑是 apple芯片,安装方式使用的是:
https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Installation-on-Apple-Silicon

安装过程主要分为如下5步,如下图:

在这里插入图片描述

注意:这里使用了Home Brew完成对需要依赖的安装,Home brew的安装需要科学上网,如果没有条件的话,也可以使用国内镜像安装,操作方式可以参考:https://zhuanlan.zhihu.com/p/111014448/

按照上述步骤,经过10-20分钟后,可以完成安装。

安装完成后,在 stable-diffusion-webui 目录下执行./web-ui.sh,第一次执行会比较慢,会下载一些基础模型和依赖,大概等待5-10分钟后,在控制台会看到如下图输出,说明启动成功。

在这里插入图片描述

此时在浏览器访问地址:http://localhost:7860 即可。

此时你会看到如下图所示的页面:
在这里插入图片描述

可能有的老铁看到的页面和上图有些差异:

1.你的主题是黑色的,我的怎么是白的?

2.你的是汉化的,我的怎么全是英文?

是的,我的页面是经过调整配置的,具体怎么配置,我后面会详细说明。

在上图中,一种有7个重点区域

1.模型选择区

模型对于画图至关重要,它直接决定了你要出图的风格,对于初学者直接使用其他人提供的模型就行,模型的下载后面会详细说。

2.功能区

stable diffusion支持多种绘图能力:

文生图:根据提示词描述完成图片生成

图生图:使用提供的图片作为参考,完成新图片的生成

高清化:将已有图片进行高清化处理

图片信息:如果一个图片是stable diffusion生成的,那么使用图片信息功能,可以输出生成这张图片使用的模型、提示词等信息

模型合并:是一种高阶使用方式,可以将多个模型合并生成一个全新的模型

训练:使用者可以根据自己的一些图片数据进行训练,生成一个全新的模型

setting:是对stable diffusion进行配置的控制面板,具体控制项,读者可以自行查看

扩展:可以实现对stable diffusion进行插件功能扩展,来实现对stable diffusion进行功能增强,扩展功能下面会进行具体演示

3.正向提示词

正向提示词是你与模型对话的输出框,告诉模型你想要什么,告诉模型你要绘画的内容,如人物特征,形象,背景,图片质量等。

4.反向提示词

和正向提示词作用相反,就是告诉模型,你不想要什么,通常模型在输出的图形的上会有一些瑕疵,如怪异的手指,眼睛等一些细节,你可以在这里输入这些你不想要的内容。

5.图片输出参数区

这些参数主要是控制输出图片的一些控制参数。

宽度、高度:这两个参数直接控制输出图片的尺寸大小,当如输出图片尺寸越大,生成图片耗时越长

采样步数(Sampling steps):决定了模型输出图片迭代的次数,迭代次数越多,耗时越长,但是效果却不是越好的,这个迭代次数,通常20-30直接,当然也取决于具体的模型,可以在生成图片的时候,可根据具体情况调整

生成次数和每次数量:决定了一次生成任务可以生成多个张图片,生成图片越多,耗时也就越长

6.图片生成

点击生成按钮,模型就开始根据你设置的参数来执行图片生成了动作了,可以根据进度条查看图片生成的进度。
在这里插入图片描述

可能有的老铁,经过前面几步的参数配置后,点击图片生成按钮,并没有生成图片,反而命令控制台有报错输出
如下图:

在这里插入图片描述

报错关键信息:

RuntimeError: "upsample_nearest2d_channels_last" not implemented for 'Half

报错的原因是现有的芯片组不支持Half参数,对于这个问题,可以在启动命令添加如下参数:./webui.sh --no-half 进行重新启动就可。

等待大概15s左右,就会在图片展示区看到你的第一张AI绘画了。

在这里插入图片描述

模型下载

上面介绍模型选择区的时候说过,模型对于stable diffusion来说至关重要,他决定了绘画的风格,比如你想要画一副二次元风格的图片,那么就尽量选择一个二次元画风的模型,模型的选择要比你输入多少提示词都要好使。

对于新手小白来说,可以使用别人训练好的模型直接使用,模型的选择和下载可以到下面这个两个网站:

https://huggingface.co/models

https://civitai.com/ (C站)

模型主要分为两种:大模型(checkpoint)和微调模型(lora)。

checkpoint大模型

下面我以C站为例演示一下如何下载模型。
在这里插入图片描述

1.进入C站后,可以浏览自己需要的大模型,也可以有目标的搜索自己需要的模型

2.选中自己需要的模型,点击下载按钮,就会进行模型的下载,通常大模型会比较大
在这里插入图片描述

3.点击演示图片右下方的 “i”,可以查看演示图片的配置信息:正方向提示词,使用的模型等,使用演示图片的配置信息进行模型的验证。

4.模型下载完毕后,需要将模型文件放到/stable diffusion/stable-diffusion-webui/models/Stable-diffusion目录下,重启 stable diffusion,在模型选择区就可以看到自己需要的模型了。

在stabel diffusion的模型中,还有一种对生成图片画风影响比较大的模型,它就是Lora,虽然他是一种微调模型,但是对于生成图片的影响也比较明显,会影响生成图片的一些细节和图片的背景。
在这里插入图片描述

Lora模型的下载和checkpoint大模型下载方式是一样,也可以在C站中下载,Lora模型通常会比较小。下载后的Lora模型放到如下目录: /stable diffusion/stable-diffusion-webui/models/Lora

lora模型如何使用呢?

lora模型会作为一个正向提示词,出现在正向提示词输入框中,使用形式如下:

 <lora:LORA_CNCG_arts:1>

LORA_CNCG_arts:表示lora模型名称
1:表示模型权重,在一个正向提示词输入框中可以使用多个lora模型,但是多个模型的权重之和不能超过1

这里可能有些老铁会有这样的疑问:

下载下来的模型都是一个文件,文件名称描述性也不高,有没有一个缩略图,可以直观的看出这个模型画出的图大概长什么样子?

其实是可以的,点击在如下图所示的按钮,可以查看你的stable diffusion已经安装了哪些模型。

在下载模型的时候,在模型所在的文件夹中,放入一张和模型名称相同的图片,那么这个图片成了模型的预览图了,而且,当你选中某个模型时,stable diffusion就会直接使用这个模型。效果如下:

在这里插入图片描述

主题和汉化

到这里,你的stable diffusion就安装的差不多了,可以尝试的完成AI绘画了。

接下来,小编回答一下上面的的两个问题:操作控制台汉化和主题切换,同时演示一下 stable diffusion插件扩展功能。

主题切换成dark模式

切换方式很简单,只需要在访问地址后面拼接 “?__theme=dark” 即可,
完整地址如下:

http://localhost:7860/?__theme=dark

如果要切换成白色系,可以使用如下地址:

http://localhost:7860/?__theme=day

操作控制台汉化

操作控制台汉化其实是使用了一种中文插件完成的,
具体操作步骤如下:

在这里插入图片描述

1.打开stable diffusion webui,进入"Extensions"选项卡

2.点击"Install from URL",注意"URL for extension’s git repository"下方的输入框

3.粘贴或输入本Git仓库地址https://github.com/VinsonLaro/stable-diffusion-webui-chinese

4.点击下方的黄色按钮"Install"即可完成安装。

5.点击重启UI。

在这里插入图片描述
6.点击"Settings",左侧点击"User interface"界面,在界面里最下方的"Localization (requires restart)“,选择"Chinese-All"或者"Chinese-English”

7.点击界面最上方的黄色按钮"Apply settings",再点击右侧的"Reload UI"即可完成汉化
在这里插入图片描述

总结

到这里,你就完成完成stable diffusion的入门了,可以使用stable diffusion完成基本的绘图操作了,不过对于不是设计专业出身的老铁来说,想要完整的描述出自己想要的那副画面来说还是比较难的,也就是如何与stable diffusion进行高效的沟通,再直接一点就是如何写提示词。写提示词有一定的技巧,小编进过几天的探索,也总结出了一些行之有效的套路,会在下一篇文章中给大家分享,敬请期待。

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

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

相关文章

吴恩达471机器学习入门课程3第1周——异常检测

异常检测 1 导包2 - 异常检测2.1 问题陈述2.2 数据集可视化您的数据 2.3 高斯分布2.2.1 估计高斯分布的参数2.2.2 选择阈值 ϵ \epsilon ϵ2.4 高维数据集异常检测 实现异常情况检测算法&#xff0c;并应用它来检测网络上的故障服务器。 1 导包 import numpy as np import ma…

管理类联考——英语二——知识篇——写作题目说明——B节

MBA&#xff0c;MPA&#xff0c;MPAcc管理类联考英语写作部分由A&#xff0c;B两节组成&#xff0c;主要考查考生的书面表达能力。共2题&#xff0c;25分。A节要求考生根据所给情景写出约100词(标点符号不计算在内)的应用文&#xff0c;包括私人和公务信函、通知、备忘录等。共…

【ESP8266 (12F)】硬件参数 以及 固件烧录

本文资料及工具地址&#xff1a;https://github.com/CQUPTLei/ESP8266 一、基本关系1.1 ESP8266 芯片 和 ESP 12F 模组1.2 乐鑫科技和安信可 二、ESP 8266开发板2.1 ESP 12F 产品规格2.2 ESP8266 开发板 三、固件与固件下载3.1 什么是固件3.2 固件和用户程序3.2 如何下载固件3.…

Linux下配置lunavim

前言 在lunavim官网中提供了安装脚本&#xff0c;一件安装即可&#xff0c;但是经常因为网络不稳定而导致安装失败。这里提供在Linux下进行git加速的几种方法&#xff0c;可以尝试下。如果问题没有解决&#xff0c;也不要担心&#xff0c;我们还提供了两种平替方法进行luanvim的…

linux实验五sed和awk

按要求写出正则表达式 显示/etc/passwd中以bash结尾的行;显示/var/log/secure文件中包含“Failed”或“FAILED”的行查找/etc/man_db.conf中含有“以m开头&#xff0c;并以n结尾的单词”模式的行&#xff1b;显示/etc/man_db.conf中&#xff0c;包含Linux绝对路径的行&#xff…

基础巩固(六)自定义View

文章目录 View绘制流程MeasureLayoutDraw 自定义View的实现的步骤步骤1&#xff1a;实现Measure、Layout、Draw流程自定义 MeasureViewGroup.LayoutParamsMeasureSpec 自定义Layout 自定义属性 绘制工具类Paint具体使用 PathCanvas View绘制流程 在绘制前&#xff0c;系统会有一…

Python恶搞代码

文章目录 前言Tkinter界面设计Threading多线程恶搞代码 尾声 前言 快来领取python无限弹窗恶搞代码吧&#xff01;每天写一些有趣的小程序&#xff0c;带你成为一个浪漫的程序员&#xff01; Tkinter界面设计 1. 创建一个简单的界面 Tkinter 是 Python 标准库中的一个 GUI&…

自然语言处理从入门到应用——动态词向量预训练:双向语言模型

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 对于给定的一段输入文本 w 1 w 2 ⋯ w n w_1w_2\cdots w_n w1​w2​⋯wn​&#xff0c;双向语言模型从前向&#xff08;从左到右&#xff09;和后向&#xff08;从右到左&#xff09;两个方向同时建立语言模型。这样做…

go 调试利器之pprof指标分析

文章目录 概要一、指标类型1.1、堆栈指标1.2、CPU指标分析1.3、http-pprof 二、go tool pprof2.1、可视化2.2、CPU火焰图 概要 Go语言原生支持对于程序运行时重要指标或特征进行分析。pprof是其中一种重要的工具&#xff0c;其不仅可以分析程序运行时的错误&#xff08;内存泄…

ChatGPT 之 LangChain的文本切割方法对比

本文来自http://blog.csdn.net/hellogv/ &#xff0c;引用必须注明出处&#xff01; ChatGPT面向对话格式的文本理解很好&#xff0c;但如果要把网络上的文章让ChatGPT直接分析则会有格式的问题。文本清洗是个大课题&#xff0c;讲起来需要很多篇幅&#xff0c;优化起来前路漫…

使用arduino IDE开发ESP8266NodeMCU连接DHT11实现温湿度检测并上传onenet官网

前言&#xff1a; 本篇博客记录一下以arduino IDE来开发一下ESP8266NodeMCU&#xff0c;实现用DHT11进行温湿度检测&#xff0c;并且上传新版的onenet官网&#xff1b;我在实现这个小项目的时候&#xff0c;发现网上资料有关onenet的资料都是旧版的&#xff0c;这就有点难受了&…

[MAUI]弧形进度条与弧形滑块的交互实现

文章目录 弧形基类定义绘制弧 弧形进度条(ProgressBar)添加动画宽度补偿文本 弧形滑块(Slider)创建控制柄拖动事件处理 项目地址 进度条&#xff08;ProgressBar&#xff09;用于展示任务的进度&#xff0c;告知用户当前状态和预期&#xff1b; 滑块&#xff08;Slider&#xf…

本地安装部署运行 ChatGLM-6B 的常见问题解答以及后续优化

报错 No module named ‘transformers_modules.THUDM/chatglm-6b’ 报错本身的意思是&#xff0c;没有在指定的路径THUDM/chatglm-6b找到推理用模型 一般常见于自己手动下载模型&#xff0c;而不是通过下边这些文件直接启动&#xff0c;自动下载的情况 你需要修改web_demo.py&…

分层测试终究是大梦一场空?

分层测试分了个寂寞&#xff1f; 分层测试这个风吹了好多年&#xff0c;不分层都不好意思说自己是专业测试。各互联网公司更是对此乐此不疲&#xff0c;测试架构、测试平台&#xff0c;搞了一套又一套&#xff0c;然而。。。 理想总是丰满&#xff0c;现实总是骨干&#xff0…

第十三章 反射操作相关函数

1. 【检测对象是否可被调用】callable()函数 语法参考 callable函数的语法格式如下&#xff1a; callable(object)参数说明&#xff1a; object&#xff1a;对象&#xff1b; 返回值&#xff1a;如果对象可调用返回 True&#xff0c;否则返回 False。 说明&#xff1a;对于…

Python 中print 和return 的区别,你了解吗?

1、print() print()函数的作用是输出数据到控制台,就是打印在你能看到的界面上。 2、return return语句[表达式]退出函数&#xff0c;选择性地向调用方返回一个表达式。不带参数值的return语句返回None。 return作为脚本单独运行时则需要print函数才能显示&#xff0c;但是…

【id:17】【1分】A. DS顺序表--类实现

题目描述 用C语言和类实现顺序表 属性包括&#xff1a;数组、实际长度、最大长度&#xff08;设定为1000&#xff09; 操作包括&#xff1a;创建、插入、删除、查找 类定义参考 输入 第1行先输入n表示有n个数据&#xff0c;即n是实际长度&#xff1b;接着输入n个数据 第2行输…

c语言项目——三子棋小游戏(带详细讲解解析)

1.三子棋是什么&#xff1f; 三子棋是一种民间传统游戏&#xff0c;又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏分为双方对战&#xff0c;双方依次在9宫格棋盘上摆放棋子&#xff0c;率先将自己的三个棋子走成一条线就视为胜利&#xff0c;而对方就算输了&#xff0c;但是…

【MySQL 索引、事务与存储引擎】

目录 一、索引的介绍2、索引的作用3、创建索引的原刚依据&#xff08;面试题&#xff09; 二、索引的分类和创建1、普通索引2、唯一索引3、主键索引4、组合索引5、全文索引6、查看索引7、删除索引8、分析是否使用索引 三、MySQL事务介绍1、事务的ACID特性2、隔离性 --- 不一致的…

Linux编译器gcc/g++

文章目录 Liinux编译器gcc/g1.背景知识(程序的翻译)2.动态库、静态库 Liinux编译器gcc/g 1.背景知识(程序的翻译) 以gcc编译 以g编译&#xff0c;但是此时会发现没有g这个指令&#xff0c;所有需要安装它&#xff0c;安装指令 yum install gcc gcc-c gcc和g都会形成可执行文…