在自己电脑运行Stable Diffusion和完整项目下载

news/2024/4/29 14:33:26/文章来源:https://blog.csdn.net/m0_46510245/article/details/126929271

初创公司StabilityAI在最近宣布发布了Stable Diffusion模型,这是一款功能强大并且可以在标准显卡上运行的AI图像生成器。

本文中将介绍如何下载代码和预训练模型,并且将其整合成一个能够在本地电脑运行的项目,最后也会提供完整项目的下载。

本地电脑运行

因为模型比较大,所以必须要有NVIDIA GPU,至少4GB VRAM,本地磁盘至少有15GB的空间,我们打包的项目解压后需要11G的磁盘。

除此以外还需要一个Python环境,这里我们使用3.8,最后就是git,因为我们需要从github中下载一些项目代码。

下载模型权重

从https://huggingface.co/CompVis/stable-diffusion下载模型和预训练权重。撰写本文的最新版本是v1.4-original。

在“Files and versions”选项卡下,单击检查点文件并下载它。

文件很大4.2GB,需要确保下载文件是完整的

从这个GitHub存储库下载下载Stable Diffusion,https://github.com/lstein/stable-diffusion。它是由lstein修改的原始源代码的一个分支,感谢lstein。

将文件解压缩到本地。在“ldm”文件夹中,创建一个名为“stable-diffusion-v1”的文件夹。如下图所示。

复制下载的模型文件sd-v1-4到stable-diffusion-v1文件夹中,将检其重命名为model.ckpt。

使用Anaconda创建运行环境:

conda env create -f environment.yaml
conda activate ldm

第一行命令会下载运行模型所需的所有依赖项和包。这里的文件也很大,大概几个GB,所以可能需要一段时间。

这样环境就准备好了,下面我们加载模型需要的几个小ML模型。

python scripts/preload_models.py

在继续之前,请确保看到了“success”的信息。

现在我们可以开始生成图像了。

python scripts/dream.py

命令行将在“dream>”处暂停,也就是说要我们输入文本了。

输入后会执行生成的过程

结果如下:

怎么样,还不错吧,如果我们想要调整参数怎么办?下面看看这个方法

创建一个生成图像的web服务

我们使用Gradio UI来将生成图像的模型封装成AP服务,并且提供一个web页面来进行参数的调整:

我将所有的依赖都整理成了完整的项目,下载链接放在本文的最后,文件比较大,下载完成后解压应该是这个样子:

双击“1)install.bat”文件。屏幕底部应该出现一条成功消息,这一步是从Github中下载几个依赖的包。

然后运行批处理文件“SD_OPT) run optimized txt2img.bat”。

因为加载的模型有4GB多,所以会很久没有相应,请耐心等待当加载完成后显示如下

如果有下面弹窗则可以忽略,我也不知道是什么问题,但是对于使用不影响,哈:

然后在浏览器中访问http://127.0.0.1:7860/,就打开Gradio UI。

然后我们输入:

photo of miniature Australian Shepherd puppy on pier in front of breathtaking mountain lake, epic scene, beautiful colors, high resolution

注意:提交按钮在最下面,要按submit才可以进行生成操作,结果还可以吧

总结

最后我们说明下问题:

1、我们这边测试4GB的卡可以生成384x384的图片,512的大概需要6G左右, 1024的则需要8G+,推理速度慢,根据显卡和图片大小不同,大概需要20-60s

2、生成的输入是可以支持中文的,但是不建议中文,因为很可能产生一些玄学的玩意,非常的诡异让人看了非常不舒服,所以建议将中文翻译成英文,并且越详细越好,这样生成的模型会很好

3、生成的图像会保存在workspace文件夹中,可以查看历史输入

4、项目直接内置了python,支持win10和win11,可以直接下载使用

下面来一个我的测试吧,猜猜这是用什么文本生成的?

one person who knows Chinese Kung Fu swing his fist fast and shoot five lightning from his hand,闪电5连鞭

可以看到,图上的那些疑似的方块汉字就是因为我们输入中包含汉字出来的,汉字比例越大越诡异,所以不建议直接输入汉字。

https://avoid.overfit.cn/post/29f156a0280b45e58770fe841fb9dbe0

关注我们的公众号 deephub-imba 发送 diffusion 或 扩散模型 可以获取本文的完整项目,项目较大打包压缩完6G+所以请注意磁盘空间占用和下载时间。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

非零基础自学Java (老师:韩顺平) 第13章 常用类 13.6 StringBuilder类

非零基础自学Java (老师:韩顺平) ✈【【零基础 快速学Java】韩顺平 零基础30天学会Java】 第13章 常用类 文章目录非零基础自学Java (老师:韩顺平)第13章 常用类13.6 StringBuilder类13.6.1 基本介绍13.6.2 StringBuilder常用方法13.6.3 String、Strin…

DTFT和DFT有何区别?一文为你讲解清楚

很多人在开始学习数字信号处理的时候,对于各种傅里叶变换特别是离散傅里叶变化的概念及作用完全不清楚,IC修真院在网上整理了关于DTFT、DFT的各知识点。下面就来了解一下关于DTFT和DFT的区别吧。 DTFT, DFT 的区别是含义不同、性质不同、用途…

多模态预训练模型指北——LayoutLM

©PaperWeekly 原创 作者 | 杨希单位 | 中国移动云能力中心研究方向 | 自然语言处理引子LayoutLM 从提出到现在已经有 2 年多的时间了,多模态的文档、表单类的识别任务也逐渐走向成熟,在上一期《多模态预训练模型指北——LayoutLM(一&am…

virualBox虚拟机系统磁盘fdisk无损扩容

virualBox下系统磁盘扩容前言一、vmdk转vdi通过 VboxManager进行格式转换二、虚拟机设置1.虚拟机设置扩容2.fdisk 无损扩容前言 针对virualBox相较于VMwareWorkstation的磁盘扩容稍微复杂一些。需要明确一点:xxx.vmdk格式的硬盘文件是无法通过virualBox实现扩容的&…

Windows 下端口被占用的原因及解决办法

运行软件或者项目的时候,出现以下问题: panic: blademaster: listen tcp: 0.0.0.0:8080: listen tcp 0.0.0.0:8080: bind: An attempt was made to access a socket in a way forbidden by its access permissions. 第一种情况:确实被占用 1…

微信公众号题库

微信公众号题库 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点击跳转…

【STL源码剖析】vector类模拟实现 了解底层-走进底层-掌握底层【超详细的注释和解释】

今天博主继续带来STL源码剖析专栏的第二篇博客了! 今天带来vector的模拟实现! 其实在很多人学习C过程中,都是只学习一些STL的使用方式,并不了解底层的实现。博主本人认为,这样的学习这样的技术是不深的。如果我们想要熟…

超省钱的线上打印方法我找到了

有不少网友都发现这样一个现象,这就是当自己需要打印一些纸质资料的时候,例如孩子的学习资料、比较重要的一些办公资料等,在路边很难找到一家打印店。有时候好不容易找到一家打印店,却发现打印一张A4的纸质资料,需要一块钱。如果一份纸质资料一共有30页,打印30张A4格式的…

Delphi WebBrowser完成网页自动登录

订制一些WEB数据抓取项目时,会遇到需要先登录网站系统,这时候我们通常会做成由系统自动登录的方式。 分析网页 要完成这项功能,首先需要对项目的网页进行分析,找到关键数据项的ID。如下图中的。1、用户名的ID名称;2、密码对应的ID名称;3、登录按钮对应的ID名称。 完成自动…

Springboot毕设项目公职备考在线学习平台e1h19(java+VUE+Mybatis+Maven+Mysql)

项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven Vue 等等组成,B/…

递归回溯实战+思想

目录 排列(提供元素无重复,并且不可以重复选择) 排列(提供的元素重复了,但是同个位置的元素不能复选) 组合(提供的元素没有重复,并且可以重复选择相同位置元素) 子集…

进程关系~

进程关系一、进程组二、会话三、控制终端四、函数tcgetpgrp、tcsetpgrp和tcgetsid五、作业控制五、孤儿进程组一、进程组 每个进程除了有一进程ID之外,还属于一个进程组,进程组是一个或多个进程的集合。同一进程组中的各进程接收来自同一终端的各 种信号…

Eclipse2022创建SSM项目及问题解决

Eclipse2022创建SSM项目及问题解决 使用Eclipse创建SSM项目的过程中会遇到一些问题,相对于IDEA而言更为繁琐,该篇文章是在使用Eclipse2022,并且设备上已经安装、配置好了Tomcat和Maven的基础之上进行的,目的是为了记录在Eclipse上…

Windows部署JMeter的压力测试

1.安装Windows版本Java 直接下载Java exe格式程序包 官网下载 点击 2.下载JMeter的压缩包 官网下载地址请 点击 或者复制这个URL: https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.5.tgz 在浏览器上,会自动下载 下载下来解压即可。 3.启动JMeter 进入…

Linux内核设计与实现 第十二章 内存管理

因为内核内存需要节省着用,内核处理内存分配错误比较麻烦等,所以内核中获取内存不用户空间获取内存复杂得多。 本章讨论内核是如何管理内存和内核之中获取内存的办法。 12.1页 a) 可以通过 getconf 命令来查看系统的page的大小: [wangyubi…

Linux开发_CentOS7.4服务器安装NFS、NGINX服务器,ffmpeg、Qt环境

1. 环境介绍 环境介绍:采用的是华为云的ECS弹性云服务器–镜像安装的CentOS7.4 64位 -----是服务器版,非桌面版哦。 在CentOS7.4服务器版本的环境下搭建NFS服务器、安装ffmpeg、安装nginx服务器、部署Qt编译环境。 (1)配置NGIN…

河北稳控科技几种振弦采集仪的主要区别是什么?

河北稳控科技几种振弦采集仪的主要区别是什么?VH系列属于手持系列,多用于振弦传感器现场单次测量使用;VH501TC采集读数仪,设备是专用的多类型传感器手持式读数仪,主测传感类型为单弦式振弦传感器,辅测传感类型为电压、电流传感。采用 32 位 ARM 处理器和大尺寸全彩屏、阵…

无人机群编队分析的定位问题 分析与思考-1(数学建模竞赛2022年B题)

2022年高教社杯全国大学生数学建模竞赛结束了,在此我们对 2022年 B题 进行一些分析与思考。 1. 初步印象 2022年 B题 (无人机遂行编队飞行中的纯方位无源定位)是一个有趣的题目。 随着无人机技术的快速发展,早已从高科技变做寻常…

【Java】运算符

我不去想是否能够成功 既然选择了远方 便只顾风雨兼程 —— 汪国真 目录 1. 认识运算符 1.1 认识运算符 1.2 运算符的分类 2. 算术运算符 2.1 四则运算符 2.2 复合赋值运算符 2.3 自增 / 自减 运算符 3.关系运算符 4.逻辑运算符 4.1 逻辑与 && 4.2 逻…

分库分表实践

分库分表实践 分库分表概念以及使用场景 分库分表用来解决单表数据量太大,引起的性能问题。使用分库分表后能够根据特定路由键值将数据分布在不同库以及不同表中,解决了单表数据量的性能、运维等问题。一般来讲,单一数据库实例的数据的阈值…