Python AI 实现绘画功能(附带源码)

本文我们将为大家介绍如何基于一些开源的库来搭建一套自己的 AI 作图工具。

需要使用的开源库为 Stable Diffusion web UI,它是基于 Gradio 库的 Stable Diffusion 浏览器界面

Stable Diffusion web UI GitHub 地址:GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI

运行 Stable Diffusion 需要硬件要求比较高,运行时会消耗较大的资源,特别是显卡。

Windows 环境安装

本地环境要求安装 Python 3.10.6 或以上版本,并把它加入到本机的环境变量中。

下载 Stable Diffusion web UI GitHub 源码 GitHub - AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI。

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

如果没有安装 Git ,可以在右上角下载 zip 压缩包。

解压 stable-diffusion-webui,并进入 stable-diffusion-webui 目录。

接下来我们需要下载模型,下载地址:https://huggingface.co/CompVis/stable-diffusion-v-1-4-original

将下载的模型移动到 stable-diffusion-webui/models/Stable-diffusion 目录下。

进入 stable-diffusion-webui 目录:

Windows 使用非管理员运行:

webui-user.bat

Linux 和 Mac OS 环境执行以下命令:

./webui.sh

接下来程序就会自动安装并启动,启动成功会看到一个可访问的 URL 地址 http://127.0.0.1:7860:

访问 http://127.0.0.1:7860,界面如下:

注意: 如果安装出现卡住不动,很可能是下载 Github 源码出现问题了,可以使用 Github 的一些镜像来解决,目前还没非常稳定的镜像,建议 Google 搜索下。 我这边在 2023 年 4 月 6 号使用以下镜像地址 https://hub.fgit.ml,打开 stable-diffusion-webui 目录的 launch.py 文件,替换以下部分代码的 Github 地址(代码大概在 230~240 行之间):

Civitai 介绍

Civitai 有许多定制好的模型,而且可以免费下载,我们使用国风3模型来测试,下载地址:https://civitai.com/models/10415/3-guofeng3?modelVersionId=36644

下载完后,我们将模型移动到 stable-diffusion-webui/models/Stable-diffusion 目录下,重新启动 stable-diffusion-webui :

./webui.sh

这样我们就可以在模型列表中选择国风3模型了:

选择后,我们可以到模型介绍页面去拷贝一些提示词和测试参数:

​为了快速生成,我高度跟宽度都减半了,之后点生成按钮即可:

生成完整过程,可以关注我们希望你也学会了,更多编程源码模板请来二当家的素材网:https://www.erdangjiade.com:

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

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

相关文章

快速解决maven依赖冲突

我们在开发过程中经常出现maven依赖冲突,或者maven版本不匹配的情况,我们可以使用阿里云原生脚手架来做maven管理,添加需要的组件,然后点击获取代码,就可以获得对应的依赖文件。

【重要公告】对BSV警报系统AS的释义

​​发表时间:2024年2月15日 由BSV区块链协会开发并管理的BSV警报系统(Alert System,以下简称“AS”)是BSV网络的重要组件。它是一个复杂的系统,主要职能是在BSV区块链网络内发布信息。这些信息通常与网络访问规则NAR相…

c# 任务(Task)介绍

任务(Task) Task作为C#异步的核心,Task位于System.Threading.Tasks命名空间下。 创建任务的基本原理是使用线程池,也就是说任务最终也是要交给线程去执行的。但是微软优化了任务的线程池,使线程的控制更加精准和高效…

自定义TypeHandler

自定义TypeHandler 继承BaseTypeHandler指定具体的泛型 MappedTypes({Date.class}) MappedJdbcTypes({JdbcType.DATE}) public class DateTimeWithTImeZoneTypeHandler extends BaseTypeHandler<Date> {Log log LogFactory.getLog(DateTimeWithTImeZoneTypeHandler.cl…

C++基于多设计模式下的同步异步日志系统day4

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C基于多设计模式下的同步&异步日志系统 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 只要内容主要实现了同步日志消息…

Kubernetes的Sevice管理

服务原理: 所有服务都是根据这个服务衍生或者变化出来,根服务---- 服务感知后端靠标签 slelector 标签选择器 kubectl label pods web1 appweb kubectl cluter-info dump | grep -i service-cluster-ip-range 服务ip取值范围 Service 管理: 创建服务: --- kind: Serv…

React富文本编辑器开发(六)

现在&#xff0c;相关的基础知识我们应该有个大概的了解了&#xff0c;但离我们真正的开发出一个实用型的组件还有一段距离&#xff0c;不过不用担心&#xff0c;我们离目标已经越来越近。 以现在我们所了解的内容而言&#xff0c;或许你发现了一个问题&#xff0c;就是我们的编…

CentOS配网报错:network is unreachable

常用命令&#xff1a; 打开&#xff1a; cd /etc/sysconfig/network-scripts/ 修改&#xff1a; vim ifcfg-ens33 打开修改&#xff1a; vim /etc/sysconfig/network-scripts/ifcfg-ens33 保存&#xff1a; 方法1&#xff1a;ESCZZ&#xff08;Z要大写&#xff09; 方…

LabelImg官方文档摘录

LabelImg官方文档&#xff1a;https://github.com/HumanSignal/labelImg 注释&#xff08;annotation&#xff09;以 PASCAL VOC 格式保存为 XML 文件&#xff0c;这是ImageNet使用的格式。此外&#xff0c;它还支持 YOLO 和 CreateML 格式。 安装 使用CSDN博主打包的程序&a…

Linux:地址空间的转换以及线程的理解和使用

文章目录 线程的理解地址空间的转换问题总结 线程的优点线程的缺点线程的健壮性问题 本篇主要进行对于进程和线程的理解&#xff0c;以及对于线程的一部分使用方法和使用的原理 线程的理解 首先回顾前面一篇的内容中&#xff0c;对于进程的基本认识&#xff1a; 什么是线程&…

OWASP TOP 10解析:构建坚不可摧的Web应用安全防线

当涉及到Web应用程序安全的话题时&#xff0c;OWASP&#xff08;开放式Web应用程序安全项目&#xff09;的TOP 10是一个不可忽视的参考点。OWASP TOP 10列举了当前Web应用程序中最严重的安全风险&#xff0c;帮助开发人员、测试人员和安全专业人员更好地理解并针对这些风险采取…

【LeetCode:2368. 受限条件下可到达节点的数目 + BFS】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

Mybatis实战(1)

mybatis-pageHelper 1&#xff0c;添加依赖&#xff1a; <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version></dependency><!--pag…

SpringBoot-yaml语法

1.概念 在Springboot的项目中&#xff0c;配置文件有以下几种格式&#xff1a; Application.propertiesApplication.yamlApplication.yml 其中官方推荐我们使用yaml的格式(因为能表示的数据类型很多样) 2.基本语法 # yaml形式的配置文件# 普通的key-value&#xff08;分号之后…

用numpy搭建自己的神经网络

搭建之前的基础与思考 构建模型的基本思想&#xff1a; 构建深度学习的过程&#xff1a;产生idea&#xff0c;将idea转化成code&#xff0c;最后进行experiment&#xff0c;之后根据结果修改idea&#xff0c;继续idea–>code–>experiment的循环&#xff0c;直到最终训练…

matplotlib条形图

matplotlib条形图 假设你获取到了2017年内地电影票房前20的电影(列表a)和电影票房数据(列表b), 那么如何更加直观的展示该数据? from matplotlib import pyplot as plta ["Wolf Warrior 2", "Fast and Furious 8", "Kung Fu Yoga", "Jo…

【LiveData】LiveData转换及操作符分析

使用示例 LiveData操作符可以将一个LiveData转换为另一个LiveData 当源LiveData发生变更时&#xff0c;会自动通知目标LiveData val srcLiveData : LiveData<T>val dstLiveData : LiveData<R>dstLiveData srcLiveData.distinctUntilChanged().switchMap{returnsw…

线性表——单链表的增删查改

本节复习链表的增删查改 首先&#xff0c; 链表不是连续的&#xff0c; 而是通过指针联系起来的。 如图&#xff1a; 这四个节点不是连续的内存空间&#xff0c; 但是彼此之间使用了一个指针来连接。 这就是链表。 现在我们来实现链表的增删查改。 目录 单链表的全部接口…

位运算---求n的二进制表示中第k位是1还是0 (lowbit)

操作&#xff1a; 先把第k位移到最后一位&#xff08;右边第一位&#xff09; 看个位是1还是0 lowbit(x)&#xff1a;返回x的最右边的1。 原理&#xff1a; 其中 &#xff0c;意思是 是 的补码。 就可以求出最右边的一位1。 应用&#xff1a; 当中 的个数。 int re…

AI-数学-高中-33概率-事件的关系与运算

原作者视频&#xff1a;【概率】【一数辞典】2事件的关系与运算_哔哩哔哩_bilibili 事件&#xff1a; 和/并事件&#xff1b;积/交事件&#xff1b;互诉事件&#xff1b;对立(补集)事件&#xff1b;