✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页:小嗷犬的个人主页
🍊个人网站:小嗷犬的技术小站
🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。
本文目录
Stable Diffusion Model 是一个基于扩散模型的图像生成模型。早在模型刚刚兴起的时候,博主就有所关注,尝试过本地部署,但是由于设备硬件配置限制,最终也没有能够真正的在本地跑起来。
考虑到人工智能各个领域的模型都是往着大模型方向发展,所以博主觉得如果当时跑不起来,在不更新硬件的情况下,以后也没有机会再跑了。
当时各个在线 AI 图片生成平台生成的效果往往都不尽人意,并且不支持自己训练模型,博主就很长一段时间没有再关注这个领域了。
前几天偶然发现 AI 生成图片的效果有明显的提升,甚至可以说是有些惊艳了。于是博主在网上恶补了这段时间的相关知识,发现进步似乎比我想象的还要大。
stable-diffusion-webui 是 AUTOMATIC1111 大佬在 Github 上开源的一个专用于图片生成模型的 WebUI,可以在本地部署,支持导入模型和自己训练。
重要的是,该项目的部署方式非常简单,不需要任何的编程基础,环境也会帮你自动配置好;GUI 的操作也非常简单,所见即所得。

你所做的只是要安装 git,下载项目,然后点击运行脚本,就可以了,部署和使用门槛大大降低。
除了 stable-diffusion-webui 外,我们还需要一个图片生成模型才能生成图片。
模型可以自己训练,但我推荐第一次还是直接下载别人训练好的模型,这样可以直接体验。各种的 Stable Diffusion 模型可以在 Civitai 上找到。
现在的各种模型对硬件要求各不相同,有的模型不仅效果好于从前,而且硬件要求也比原来更低了。
博主使用的显卡为 NVIDIA GeForce RTX 3050 Ti Laptop GPU,只有 4G 显存。以前的模型连生成 128x128 的图片都会爆显存,现在的模型却可以生成 512x768 的图片。
硬件门槛也没有以前那么高了。
本教程的设备要求:
首先,我们需要安装 git,如果你已经安装了 git,可以跳过这一步。
git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
git 的安装非常简单,只需要在 git 官网 下载安装包,然后正常安装就可以了。
stable-diffusion-webui 需要使用它来自动配置环境。
点击以下链接下载项目 release:
stable-diffusion-webui

下载完成后,解压到任意目录,然后双击运行 update.bat,更新项目为最新版本。
当出现以下信息时,说明项目已经是最新的:

然后双击运行 run.bat,运行项目。首次运行会安装环境,所以需要等待一段时间。环境安装时出现错误通常属于 GitHub 的连接问题,可以自行设置代理。
安装的环境是 Pytorch 和 CUDA 以及一些 Python 第三方库和 Github 上的项目,安装过程中会自动下载。stable-diffusion-webui 自带 Python,所以不需要自己安装 Python 环境。
当出现以下信息时,说明 WebUI 已经运行在本地了:

在浏览器中访问 local URL,即可打开 WebUI。

将 .safetensors 或 .ckpt 后缀的模型文件放入以下目录下,然后重启 WebUI 即可。
sd.webui/webui/models/Stable-diffusion/
多个模型之间还可以通过 WebUI 切换。

在 WebUI 的 Extentions 中,选择 install from URL,输入以下 URL,点击 install:
https://github.com/dtlnor/stable-diffusion-webui-localization-zh_CN

安装完成之后,在 Settings 的 User interface 中,选择 Localization (requires restart),选择 zh-CN。

回到 Settings 最上面点击 Apply settings,然后点击 Reload UI。

UI汉化效果:

sd.webui/webui/models/Lora/下,通过 Prompt 输入 Lora 指令使用sd.webui/webui/models/VAE/下,在设置的 Stable Diffusion 版面设置模型的 VAEsd.webui/webui/extensions/下,通过 WebUI 的 Extentions 版面启用sd.webui/webui/embeddings/下,通过 Prompt 输入关键词使用相关资源都可以在 Civitai 上找到,可以自行下载、安装、体验。
以下图片来自相同模型,使用同一 Prompt 进行随机生成:
图片被判定违规,图片效果请见:小嗷犬的技术小站 - AI生成图像竟如此真实了?Stable Diffusion Model本地部署教程
同一模型可以选择不同的采样方式进行采样,生成的图片也会有所不同。
以下图片都来自相同模型、相同 Prompt、相同 Seed 的生成结果,只是采样方法不同,其他参数完全一致。
图片被判定违规,对比图片效果请见:小嗷犬的技术小站 - AI生成图像竟如此真实了?Stable Diffusion Model本地部署教程
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
在MRIRuby中我可以这样做:deftransferinternal_server=self.init_serverpid=forkdointernal_server.runend#Maketheserverprocessrunindependently.Process.detach(pid)internal_client=self.init_client#Dootherstuffwithconnectingtointernal_server...internal_client.post('somedata')ensure#KillserverProcess.kill('KILL',
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
我是Google云的新手,我正在尝试对其进行首次部署。我的第一个部署是RubyonRails项目。我基本上是在关注thisguideinthegoogleclouddocumentation.唯一的区别是我使用的是我自己的项目,而不是他们提供的“helloworld”项目。这是我的app.yaml文件runtime:customvm:trueentrypoint:bundleexecrackup-p8080-Eproductionconfig.ruresources:cpu:0.5memory_gb:1.3disk_size_gb:10当我转到我的项目目录并运行gcloudprevie
我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI
我是Rails的新手,所以请原谅简单的问题。我正在为一家公司创建一个网站。那家公司想在网站上展示它的客户。我想让客户自己管理这个。我正在为“客户”生成一个表格,我想要的三列是:公司名称、公司描述和Logo。对于名称,我使用的是name:string但不确定如何在脚本/生成脚手架终端命令中最好地创建描述列(因为我打算将其设置为文本区域)和图片。我怀疑描述(我想成为一个文本区域)应该仍然是描述:字符串,然后以实际形式进行调整。不确定如何处理图片字段。那么……说来话长:我在脚手架命令中输入什么来生成描述和图片列? 最佳答案 对于“文本”数
我正在使用RubyonRails3.0.9,我想生成一个传递一些自定义参数的link_toURL。也就是说,有一个articles_path(www.my_web_site_name.com/articles)我想生成如下内容:link_to'Samplelinktitle',...#HereIshouldimplementthecode#=>'http://www.my_web_site_name.com/articles?param1=value1¶m2=value2&...我如何编写link_to语句“alàRubyonRailsWay”以实现该目的?如果我想通过传递一些
我有带有Logo图像的公司模型has_attached_file:logo我用他们的Logo创建了许多公司。现在,我需要添加新样式has_attached_file:logo,:styles=>{:small=>"30x15>",:medium=>"155x85>"}我是否应该重新上传所有旧数据以重新生成新样式?我不这么认为……或者有什么rake任务可以重新生成样式吗? 最佳答案 参见Thumbnail-Generation.如果rake任务不适合你,你应该能够在控制台中使用一个片段来调用重新处理!关于相关公司
有这些railscast。http://railscasts.com/episodes/218-making-generators-in-rails-3有了这个,你就会知道如何创建样式表和脚手架生成器。http://railscasts.com/episodes/216-generators-in-rails-3通过这个,您可以了解如何添加一些文件来修改脚手架View。我想把两者结合起来。我想创建一个生成器,它也可以创建脚手架View。有点像RyanBates漂亮的生成器或web_app_themegem(https://github.com/pilu/web-app-theme)。我