草庐IT

搭一下 Stable Diffusion WebUI

o_O 2023-04-09 原文

Preface

前不久看到好多朋友用上Stable Diffusion来做原画,然后又配合上了Chatgpt
一直以来都想尝试一下,奈何2014款的双核mac跑个idea都发出了拖拉机的轰鸣声。
所以一直都是看一半就搁置。
然而,这也耐不住心情低落想要一些东西来分散自己的注意力,今天我就和他杠上了。

硬件

Mac Pro 2015 early
CPU Intel Core i5 双核
显卡: 想什么呢,怎么会有显卡呢

Steps

github上下载 Stable Diffusion Webui

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

下载模型

下载 这个模型 并移动到刚克隆好的 Stable Diffusion Webuimodels/Stable-diffusion,并重命名为 model.ckpt

安装

运行 webui.sh
其中会遇到形形色色的问题。

gradio==3.23 版本不对

如果你用的是官方的源应该不会有问题,我用了号称5分钟同步一次的清华的源加速了我的pip,然后改成ali的加速源就没有问题了。

  • ~/.pip/pip.conf*
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com

所有pip下载于安装github源的问题

比如timeout一类的问题,基本都是github链接不稳定导致,多跑几次 webui.sh 基本可以覆盖掉

libavcodec.59.37.100.dylib (which was built for Mac OS X 11.0)

这个是因为我的电脑上Macos 10,而opencv_python这个库使用的libavcodec需要Mac OS 11以上的版本。
所以去PYPI - opencv_python的发布历史版本上找了个稍微不那么新的版本,用 opencv_python==4.5.5.64 取代了 venv opencv_python==4.7.0.68,然后看到git issue中有不少人因此困住了,顺便去提供了一下此解决方案

RuntimeError: "LayerNormKernelImpl" not implemented for 'Half'

在网上看到是因为显卡不支持half-float数据类型,去加一些启动参数就可以了。
如下:
webui-user.sh

export COMMANDLINE_ARGS="--skip-torch-cuda-test --precision full --no-half"

Reference

Novelai 保姆级免费部署和最全使用教程
自力更生:Stable Diffusion webui本地部署遇到的坑及解决

有关搭一下 Stable Diffusion WebUI的更多相关文章

  1. ruby - 有人可以解释一下在 Ruby 中注入(inject)的真实、通俗易懂的用法吗? - 2

    我正在学习Ruby,遇到了inject。我正处于理解它的风口浪尖,但当我是那种需要真实世界的例子来学习一些东西的人时。我遇到的最常见的例子是人们使用inject来添加一个(1..10)范围的总和,我不太关心这个。这是一个任意的例子。在实际程序中我会用它做什么?我正在学习,所以我可以继续使用Rails,但我不必有一个以Web为中心的示例。我只需要一些我可以全神贯注的目标。谢谢大家。 最佳答案 inject有时可以通过它的“其他”名称reduce更好地理解。它是一个对Enumerable进行操作(迭代一次)并返回单个值的函数。它有许多有

  2. ruby-on-rails - 你能解释一下这段 Ruby 代码中发生了什么吗? - 2

    我现在正在努力学习Ruby和RubyonRails。我正在学习LearningRails,第1版,但我很难理解其中的一些代码。我通常使用C、C++或Java工作,因此Ruby对我来说是一个很大的改变。我目前对数据库迁移器的以下代码块感到困惑:defself.upcreate_table:entriesdo|t|t.string:namet.timestampsendendt变量来自哪里?它实际上代表什么?它有点像for(i=0;i另外,:entries是在什么地方定义的?(entries是我的Controller的名称,但是这个函数怎么知道的?) 最佳答案

  3. ruby - "Interfaces & Abstract Classes unnecessary in Ruby"--> 谁能解释一下? - 2

    我正试图全神贯注于Ruby,而我正在努力解决的一件事是缺乏接口(interface)/抽象类支持。通过谷歌搜索,我不断看到与抽象类相关的Ruby问题的响应是“你在用Java思考。Ruby不能那样工作”那么,如果没有接口(interface)/抽象类,如何在Ruby中工作呢?例如,在Java中我可能会创建一个抽象类“book”,其子类为“novel”、“textbook”和“journal”。我在“书”中加入了很多常用功能,但我不希望它可以直接访问-书必须是小说、教科书或期刊。在ruby​​中,我该如何写出那种功能? 最佳答案 我也是

  4. ruby - 需要简单解释一下inject方法 - 2

    [1,2,3,4].inject(0){|result,element|result+element}#=>10我正在查看这段代码,但我的大脑没有记住数字10是如何变成结果的。有人介意解释这里发生了什么吗? 最佳答案 您可以将第一个block参数视为累加器:block每次运行的结果存储在累加器中,然后传递给block的下一次执行。对于上面显示的代码,您将累加器result默认为0。block的每次运行都会将给定数字添加到当前总数,然后将结果存储回累加器。下一个block调用有这个新值,添加到它,再次存储它,然后重复。在过程结束时,i

  5. javascript - EaselJS:有人可以解释一下演示中使用的继承模式吗? - 2

    我正在使用EaselJS创建游戏,我想知道是否有人可以解释演示文件中使用的继承模式是如何工作的。具体来说,我正在查看以下文件:https://github.com/CreateJS/EaselJS/blob/master/examples/assets/Ship.js在第7行,Ship的原型(prototype)设置为createjs.container()...varp=Ship.prototype=newcreatejs.Container();然后在第28行,存储了对原始构造函数的引用:p.Container_initialize=p.initialize;//uniquetoa

  6. javascript - 有人可以解释一下/^(\-|\+)?([0-9]+|Infinity)$/是什么吗? - 2

    /^(\-|\+)?([0-9]+|Infinity)$/当我想过滤东西时,我已经多次看到这种情况。有很多变体,但它通常总是以(/然后是某些东西开头。最近我发现这是一个帮助解析字符串并确保其中只有数字的建议。在Mozilla的RegExpjs页面上,我找到了一些其他运算符,但它几乎不包括以上所有内容。 最佳答案 这是一个正则表达式。您粘贴的那个会匹配一个正/负整数,或者匹配单词infinity。简而言之,正则表达式是:Aregularexpression(regexorregexpforshort)isaspecialtextstr

  7. javascript - 您能解释一下这两个 javascript 示例吗? - 2

    1:为什么foo&&baz的结果不是1?因为true是1。varfoo=1;varbaz=2;foo&&baz;//returns2,whichistrue2:console.log(foo++bar);中有两个加号,分别是什么意思?varfoo=1;varbar='2';console.log(foo++bar); 最佳答案 那是因为&&(逻辑与)运算符返回它计算的最后一个操作数的值。由于foo是true,它必须评估bar以确定表达式的结果(它只会是true如果bar也为true)。||(逻辑或)运算符会发生相反的情况。在这种情况

  8. javascript - 什么是json,能给新手解释一下吗? - 2

    你能用最简单的话解释一下吗?最好有演示脚本。 最佳答案 JSON是一种共享数据的方式(通常在浏览器和服务器之间)。JavaScript允许两种方式来存储值的集合://arrays:[value,value,value]//objects:{key:value,key:value,key:value}在某个时候,一位名叫Doug的大师意识到,将数据发送到已经像对象一样设置的JavaScript通常是最有效的。[而不是PHP发送逗号分隔的字符串、后数据、XML甚至HTML,所有这些都必须由JavaScript精心解析]。因此他将这个想法

  9. javascript - 了解一下 ember/ember-data 对象的生命周期如何。或者调试 Ember.js 和 Ember-Data 的技巧/提示? - 2

    我不是在寻找如何调试javascript。我对手头的工具非常熟悉,尽管不熟悉Firefox的新调试功能,因为他们构建了自己的“firebug”。我真的只是在寻找一种简单的方法来读取堆栈跟踪,因为对象/函数很容易通过Ember自己的调用机制运行。很容易忘记被调用的函数是什么以及它附加到的this的绑定(bind)。有没有人在调试ember的堆栈时想到了任何技巧或肺炎?更新:这不是异步调试的问题http://www.html5rocks.com/en/tutorials/developertools/async-call-stack/ 最佳答案

  10. javascript - 你能帮忙澄清一下Javascript原型(prototype)继承方法调用吗? - 2

    在这段代码中:varFruit=function(){}Fruit.prototype={color:function(){console.log('Fruitcolor...')}}varApple=function(){}Apple.prototype=newFruit()Apple.prototype.constructor=Applevara=newApple()Apple.prototype=null//thequestion!!!a.color()当Apple.prototype被设置为null时,为什么实例a仍然可以调用color方法? 最佳答

随机推荐