在本地PC运行 Stable Diffusion 2.0

news2024/11/15 16:45:30

Stable Diffusion 2.0在前几天已经发布了,新版本在上一个版本的基础上进行了许多改进。OpenCLIP中新的深度检测和更好的文本到图像模型是主要的改进之一。

有很多的文章介绍了Stable Diffusion 2.0的改进,所以我们就不多介绍了,这里我们将介绍如何在本地PC上尝试新版本,因为只有我们实际运行成功了,我们才能够通过代码了解它是如何实现的。

本文主要介绍如何在本地运行,所以并不涉及代码方面的工作,但是也不代表本文就很简单。

系统需求

  • Windows 10/11操作系统
  • Nvidia GPU RTX,至少12GB的RAM
  • 本地磁盘空间至少25GB

注意“模型可以在8GB的VRAM上运行,但分辨率将只能到256x256。

软件需求:

  • Anaconda
  • git
  • Pytorch

首先,我们安装环境

 conda install pytorch==1.12.1 torchvision==0.13.1 -c pytorch
 pip install transformers==4.19.2 diffusers invisible-watermark
 pip install -e .

创建虚拟环境

将代码克隆到本地:

https://github.com/Stability-AI/stablediffusion

然后用Anaconda创建一个新的环境:

 conda create --name sd2 python=3.10

激活环境。然后安装相应的包:

 pip install -r requirements.txt

安装iWatermark模块,虽然是可选的,但是如果不装可能会有问题,所以我们还是装一下:

 pip install transformers==4.19.2 diffusers invisible-watermark

获取CUDA的最新版本。

 conda install -c nvidia/label/cuda-11.4.0 cuda-nvcc
 conda install -c conda-forge gcc
 conda install -c conda-forge gxx_linux-64=9.5.0

安装“xformer”这样可以提高效率和速度。

 git clone https://github.com/facebookresearch/xformers.git
 cd xformers
 git submodule update --init --recursive
 pip install -r requirements.txt
 pip install -e .
 cd ../stable-diffusion

编译可能需要一段时间(一般情况下 10-20分钟,根据电脑有所区别)。

如果安装顺利,代码将自动设置U-Net和自编码器中的自注意层和交叉注意层,这样可以尽可能少的内存。

有了这些设置,我们现在开始准备模型。

使用模型生成图像

Stable Diffusion 2.0为不同的要求发布了单独的模型。请根据需要单独下载它们。

  • 稳定扩散2.0基础模型768x768 => 768-v-ema.ckpt (5 gb)
  • 稳定扩散2.0基础模型512x512 => 512-v-ema.ckpt (5 gb)
  • 稳定扩散2.0深度模型=> 512-depth-ema.ckpt (5.7 GB)
  • 稳定扩散2.0 X4 Upscaler => X4 - Upscaler -ema.ckpt (3.5 GB)
  • 稳定扩散2.0 inpainting => 512-inpainting-ema.ckpt (5.2 GB)

下载地址在这里:https://huggingface.co/stabilityai

把上面的模型下载到model目录

然后可以测试一下是否能够生成图形

 python scripts/txt2img.py --prompt "a professional photograph of an astronaut
  riding a horse" --ckpt .\models\512-base-ema.ckpt 
 --config configs/stable-diffusion/v2-inference-v.yaml 
 --H 512 --W 512 --plms --n_samples 1

得到这条输出,说明图像已成功渲染。

注意:如果你使用类似NVidia RTX 3060 Ti,那么因为它只有8GB的RAM。所以不足以支持512x512的图像,只能生成很糟糕的256x256的图像,如下所示:

所以如果你有一个更强大的GPU,那么可以生成更好的图像。

https://avoid.overfit.cn/post/dbe660ce7f5e4580ba97f3c5a333317e

作者:Jim Clyde Monge

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

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

相关文章

30分钟部署一个kubernetes集群【1.17】

作者:李振良 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 $ kubeadm init# 将一个 Node 节点加入到当前集群中 $ kubeadm join <Master节点的IP和端口 >1. 安装要求…

.m3u8.sqlite文件转mp4,m3u8.sqlite文件转视频工具(开源免费)

文章目录一、预先准备1. 前提2. 主要思路3. 准备工具二、视频转换实战2.1. 软件下载2.2. TS转MP4工具2.3. 操作流程一、预先准备 1. 前提 如果已经买了课程&#xff0c;是可以下载的&#xff0c;并且腾讯课堂APP里就有下载功能。 2. 主要思路 在APP上下载视频缓存到手机本地…

postgres源码解析41 btree索引文件的创建--1

上述小节讲解了索引文件的物理创建&#xff0c;本篇讲解btree索引元组填充至索引文件的操作。先从数据结构入手&#xff0c;后深入执行流程。 postgres源码解析37 表创建执行全流程梳理–1 postgres源码解析37 表创建执行全流程梳理–2 postgres源码解析37 表创建执行全流程梳理…

详解设计模式:责任链模式

责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;也被称为职责链模式&#xff0c;是在 GoF 23 种设计模式中定义了的行为型模式。 责任链模式 是将链中的每一个节点看作是一个对象&#xff0c;每个节点处理的请求不同&#xff0c;且内部自动维护一个下一节点…

降温了好冷,总结下11月

1、这两天广东气温骤降&#xff0c;出门必须加外套了&#xff0c;emmm&#xff0c;不想出门&#xff0c;各位宝宝注意保暖吖&#xff0c;别感冒了。2、这边疫情开始放开了&#xff0c;备好感冒药&#xff0c;锻炼身体&#xff0c;做好预防&#xff0c;靠自己了。3、11月过的真快…

jsp人事考勤管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 人事考勤管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用serlvetdaobean mvc 模式&#xff0c;系统主要采用B/S模式 开发。开发环境为TOMCAT7.0,Myeclipse8.…

[附源码]计算机毕业设计基于Springboot的花店售卖系统的设计与实现

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【45-线程的实现方式-线程池的创建方式-线程池的执行顺序-CompletableFutrue异步处理】

一.知识回顾 【0.三高商城系统的专题专栏都帮你整理好了&#xff0c;请点击这里&#xff01;】 【1-系统架构演进过程】 【2-微服务系统架构需求】 【3-高性能、高并发、高可用的三高商城系统项目介绍】 【4-Linux云服务器上安装Docker】 【5-Docker安装部署MySQL和Redis服务】…

物联网毕设 -- 基于STM32的心率检测

目录 前言 1 演示视频 一 连线图 1. 原理图 2.功能概括 二 底层代码使用方式 1. 下载程序 2. 查看云平台数据 三 APP使用方式 1. 下载APP 2. 配对蓝牙 四 网盘链接 前言 分享一个之前做到心率监测项目&#xff0c;有APP端有OLED显示端&#xff0c;我会把把他放…

Windows搭建web站点:免费内网穿透发布至公网 1-2

什么是cpolar&#xff1f; cpolar是一个非常强大的内网穿透工具&#xff0c;开发调试的必备利器。 它可以将本地内网服务器的HTTP、HTTPS、TCP协议端口映射为公网地址端口&#xff0c;使得公网用户可以轻松访问您的内网服务器&#xff0c;无需部署至公网服务器。支持永久免费使…

[附源码]Python计算机毕业设计Django软考刷题小程序

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

ssm项目整合,简单的用户管理系统

ssm项目整合&#xff0c;简单的用户管理系统项目概述项目搭建创建项目1.创建maven项目2.导入项目依赖及maven资源过滤设置3.添加web支持4.配置tomcat5.配置web发布依赖jar包6.数据库的表创建7.实体类创建7.1 lombok常用注解:dao层1.daoMapper接口创建2.Mapper.xml配置文件3.myb…

物联网iot全称

物联网iot的发展 麻省理工学院Ashton教授1999年研究RFID时最早提出物联网(Internet of Things&#xff0c; IoT)这个概念。Sun公司在2003年发表文章介绍物联网的基本工作流程&#xff0c;并提出解决方案。 IoT的意思是物联网&#xff0c;全称为Internet of Things。是指通过射…

狂神说Spring学习笔记

一、Spring 1.1 简介 Spring&#xff1a;春天------>给软件行业带来了春天&#xff01;2002&#xff0c;首次推出了Spring框架的雏形&#xff1a;interface21框架&#xff01;Spring框架即以interface21框架为基础&#xff0c;经过重新设计&#xff0c;并不断丰富其内涵&a…

metaRTC新增SRS的WebRTC over TCP和turn的TCP支持

概述 在很多网络条件下&#xff0c;防火墙会阻止UDP传输&#xff0c;因此webRTC TCP的支持就很重要&#xff0c;metaRTC提供了SFU和P2P的支持。 SFU支持SRS的webRTC over TCP&#xff0c;P2P支持turn的TCP。 源代码下载 GitHub - metartc/metaRTC: A cross-platform WebRTC…

[附源码]计算机毕业设计基于SpringBoot的小说阅读系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

8.softmax回归

1. 关于回归和多类分类 分类问题从回归的单输出变成了多输出&#xff0c;这个多输出的个数类别的个数 置信度&#xff1a;置信度一词来自统计学&#xff0c;而统计学的本质是&#xff0c;用抽样的数据去估计整体的真实分布。例如&#xff0c;样本均值估计整体均值&#xff1b;还…

基于WEB的在线选课系统(asp.net)

目  录 摘要 I Abstract II 第1章 绪论 1 1.1 课题背景 1 1.2 目的和意义 1 1.3 系统设计思想 2 第2章 可行性分析 3 2.1 管理可行性 3 2.2 经济可行性 4 2.2.1 系统初期投资 4 2.2.2 系统货币的时间价值 4 2.2.3 投资回收期 5 2.2.4 纯收入 5 2.3 技术可行性 5 2…

Java8从入门到精通 笔记

Lambda表达式 匿名内部类 我们可以用匿名内部类来比较两个Integer参数的大小 Comparator<Integer> com new Comparator<Integer>() {Overridepublic int compare(Integer o1, Integer o2) {return Integer.compare(o1, o2);} };TreeSet<Integer> treeSet…

接口幂-全面详解(学习总结---从入门到深化)

目录 接口设计与重试机制引发的问题 什么是幂等性 为什么会产生接口幂等性问题 幂等性接口设计 如何保证接口幂等性 接口设计与重试机制引发的问题演示_项目搭建 创建项目 选择框架 修改SpringBoot版本 创建用户表 代码生成 引入依赖 编写代码生成类 接口设计与重试机制引…