草庐IT

1024程序员节?我们整点AI绘图玩玩吧,一文教你配置stable-diffusion

杂食老翟 2023-04-09 原文

1024程序员节?我们整点AI绘图玩玩吧,一文教你配置stable-diffusion

需提前准备:一台高性能的电脑(尤其是显存)、python、Git、梯子。

其实Github上有很多关于Stable diffusion的库,综合对比之后,我选取的是比较全面的AUTOMATIC1111这个,源码链接:Stable-diffusion(Github)

找到安装那块的教程,此教程以windows为例。

ps:如果你电脑上已经有了python和git,可以直接跳至第3步。

1.安装python

网址:python.download

过于基础内容,安装过程就略过了。推荐安装py3.8/3.9

(如果你没有计算机基础的话,可以去浏览器搜一下教程,有非常多可以看。)

记得添加环境变量

验证安装可以在cmd命令行中键入 python

能看到py的版本,就表示安装好了。

2.安装Git

网址:Git.download

安装位置没啥说的,C盘有位置默认就行,装D盘也可以。

安装组件(如下图),建议添加桌面快捷方式(默认没勾选),其它的按照默认勾选即可。

其中有一步是选择Git的默认编辑器,默认是Vim。如果你电脑上有Notepad++(一款轻量级编辑文本的软件,非常好用。Notepad++),可以选这个;如果没有,可以选Notepad,也就是我们常说的记事本📃~

其它的地方基本是一路Next,完成安装。

3.下载Repo

打开Git Bash,键入以下代码。

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

(需注意Git不能ctrl+v,只能右键paste;且复制后如果出现“~、[”等多余的符号,需要手动删除,且只能通过键盘选择位置,不能用鼠标。有点蠢)

如果失败的话,大概率是SSL校验问题。

在Git Bash中键入以下代码跳过SSL校验。

git config --global http.sslVerify false

git config --global https.sslVerify false

(ps:如果到时候要再开启ssl的话,把上面代码中的false改成true,复制到Git中即可。)

看到100%就完成了,然后记一下下载文件夹的路径。

4.下载依赖

Dependencies

有三种下载方式,官方下载/文件/种子,(推荐直接迅雷下种子链接,直接下载到下边这个文件夹下。)

找到你git stable-diffusion的目录,找到models→stable-diffusion,把这个ckpt文件下载过来。(时间会比较久,等待过程中可以并行第5步)

5.配置webui-user.bat

5.1 镜像源

找到你下载的stable-diffusion-web文件夹,双击进去找到一个叫webui-user.bat的文件,双击打开,等待安装。(先双击打开,让其自动创建一个venv的文件夹)

大概率会进行不下去,这个时候需要用到镜像,详情可看这个教程:pip.ini

下载pip,然后在你电脑用户User的目录下,直接右键创建新文件夹“pip”,在pip文件夹里创建记事本txt文件,命名为pip.ini,连同txt的后缀文件格式一起改掉。

打开这个pip.ini文件,复制以下代码进去,如下图所示。

[global]
index-url = http://pypi.doubanio.com/simple/
[install]
trusted-host=pypi.doubanio.com

这里用的是豆瓣源,用清华源、阿里的都是可以的,都是镜像。

5.2 pip版本问题

如果你不是下载的最新的pip,像我一样是之前就下载好的,这块会提示你安装最新版本,截至我写作时,最新版本为22.3。(接下来很重要,请仔细看教程。)

(1)还是先找到你下载“stable-diffusion-webui”的文件位置,双击进入我们刚才自动生成的“venv”这个文件夹,双击进入“Scripts”这个文件夹,复制路径

(2)打开cmd命令行,cd到这个路径。(就是输入cd,然后空格,粘贴路径,回车)

​ 再输入“activate”。

​ 回车键,进入虚拟环境。

(3)python已经安装好包需要升级的指定版本,命令如下:
pip install --upgrade 包名称==版本号

​ 例如:pip install --upgrade pip==22.3(根据提示你的最新版本输入版本号即可)

5.3 查漏补缺

再次打开stable-diffusion-webui文件夹下的web-user.bat文件,安装所需。

(如果还提示你缺什么东西,按照命令行提示你的输入下载安装即可。缺啥补啥。每台电脑可能会出现不同的问题,这里就不过多陈述所有情况,因为我也没法预知你们会出现什么问题。)

等待所有安装完毕。(也需要比较长的时间)

5.4 webui.bat

最后,打开stable-diffusion-webui文件夹下的webui.bat,等待。

看到URL就表示完成了,就可以复制上面的网址到浏览器,进行AI绘图了。

6. UI页面介绍

打开UI界面后,如下图所示

简单介绍下:

红色框框是选择train好的模型,按照之前的步骤会只有默认的模型,想要探索更多也可以寻找其它模型的资源文件。

黄色框框,txt2img,文字生成图片;img2img,以图生图;Extras,优化图像;PNG info 图像信息;Checkpoint Merger,模型合并;Train,训练;Settings,修改参 数设置。

用得比较多的肯定是 文字生图 & 以图生图,(所以下面只介绍这两个part,其它可自行了解。)

蓝色横线,Prompt,文字描述;Negative prompt,不想要什么。

Sampling steps可以调的高一些。(默认是20,推荐50以上。)

蓝色框框,Width,Height,图像长宽,这个可以根据你电脑算力来设定,不建议设的很大,我一般用640×640。

Restore faces 优化脸部,这个需要装额外的依赖,这里就不过多讲述了。

绿色框框,生成图的数量,(默认是1张,建议设3-8张左右。)

红色圆圈,生成,点击一下我们就可以等待AI绘图啦。

接下来我们示范一下,结果如下图所示。

7.结语

(关于这个stable-diffusion的环境配置问题,每台电脑会碰到不同的问题;遇到报错,就找命令行中的error找找错误所在,一般都会告诉你该怎么做,缺什么东西下载补齐即可。)

还有很多训练的模型等待大家去发掘,此项目也有很多的功能等待大家探索,你甚至可以直接用手机访问本地的这个网址。

该stable-diffusion的源码也在不断的更新中,大家有Github号的可以去给原作者点个⭐star。

最后希望大家使用愉快,玩的开心!🤪

都看到这里了,点个赞再走吧觉得有用可以分享一下哦

写稿不易,您的支持是我更新最大的动力~💖

有关1024程序员节?我们整点AI绘图玩玩吧,一文教你配置stable-diffusion的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby - 如何指定 Rack 处理程序 - 2

    Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack

  3. ruby - 在 Ruby 中编写命令行实用程序 - 2

    我想用ruby​​编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序

  4. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

  5. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  6. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  7. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  8. ruby - 检查是否通过 require 执行或导入了 Ruby 程序 - 2

    如何检查Ruby文件是否是通过“require”或“load”导入的,而不是简单地从命令行执行的?例如:foo.rb的内容:puts"Hello"bar.rb的内容require'foo'输出:$./foo.rbHello$./bar.rbHello基本上,我想调用bar.rb以不执行puts调用。 最佳答案 将foo.rb改为:if__FILE__==$0puts"Hello"end检查__FILE__-当前ruby​​文件的名称-与$0-正在运行的脚本的名称。 关于ruby-检查是否

  9. ruby-on-rails - 如何在 Gem 中获取 Rails 应用程序的根目录 - 2

    是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在

  10. 程序员如何提高代码能力? - 2

    前言作为一名程序员,自己的本质工作就是做程序开发,那么程序开发的时候最直接的体现就是代码,检验一个程序员技术水平的一个核心环节就是开发时候的代码能力。众所周知,程序开发的水平提升是一个循序渐进的过程,每一位程序员都是从“菜鸟”变成“大神”的,所以程序员在程序开发过程中的代码能力也是根据平时开发中的业务实践来积累和提升的。提高代码能力核心要素程序员要想提高自身代码能力,尤其是新晋程序员的代码能力有很大的提升空间的时候,需要针对性的去提高自己的代码能力。提高代码能力其实有几个比较关键的点,只要把握住这些方面,就能很好的、快速的提高自己的一部分代码能力。1、多去阅读开源项目,如有机会可以亲自参与开源

随机推荐