AI - stable-diffusion(AI绘画)的搭建与使用

最近 AI 火的一塌糊涂,除了 ChatGPT 以外,AI 绘画领域也有很大的进步,以下几张图片都是 AI 绘制的,你能看出来么?

一、环境搭建

上面的效果图其实是使用了开源的 AI 绘画项目 stable-diffusion 绘制的,这是它的官方仓库:

  • https://github.com/CompVis/stable-diffusion

但是这个官方项目并不适合我们这些新手直接使用,好在有一些基于 stable-diffusion 封装的 webui 开源项目,可以通过界面交互的方式来使用 stable-diffusion,极大的降低了使用门槛,以下是几个比较火的 webui 项目:

  • https://github.com/AUTOMATIC1111/stable-diffusion-webui
  • https://github.com/Sygil-Dev/sygil-webui

其中,AUTOMATIC1111stable-diffusion-webui 是目前功能最多最好用的,强烈推荐,下面就来介绍如何使用它。

1、下载项目

stable-diffusion-webui 没有发布可执行程序(比如:.exe),我们需要通过 git 的方式将整个工程源码拉下来运行:

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

注:这个开源项目目前的更新频率很快,会不定期的修复一些 bug 或加入一些新功能,所以建议可以时常 git pull 拉取最新代码。

2、Python 环境

stable-diffusion-webui 主要是使用 Python 开发的,所以运行这个工程,需要安装一下 Python 环境并配置好环境变量,因为 Python 环境的安装很简单,这里就不多说了,环境配置完成之后,可以通过以下命令查看 Python 的版本号,验证环境是否正常:

python --version

注意:官方推荐安装 Python 3.10.6 版本

另外,建议使用 Anaconda 管理多个 Python 环境,详见

  • 官方的 conda 环境安装说明:https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Install-and-Run-on-NVidia-GPUs#alternative-installation-on-windows-using-conda
  • anaconda 常用命令:https://blog.csdn.net/ligous/article/details/124209700

3、CUDA 环境

默认 stable-diffusion-webui 运行使用的是 GPU 算力,也就是说需要用到 Nvidia 显卡(配置越高,绘图越快)。这里我们需要安装 CUDA 驱动,先确定一下电脑能安装的 CUDA 版本,桌面右下角->右键 NVIDIA 设置图标->NVIDIA 控制面板:

可以看到我的电脑的显示的是 NVIDIA CUDA 11.6.134 driver,所以我的电脑要安装的 CUDA 版本不能超过 11.6。

注意:高版本显卡是可以安装低版本的 CUDA 驱动的,比如我也可以安装经典的 10.2 版本,但是安装 11.6 版本可以获得更高的 GPU 运行效率,所以一般来说推荐安装显卡支持的最高 CUDA 版本。

在下面的网址中找到对应的 CUDA 版本进行安装:

  • CUDA 官方归档:https://developer.nvidia.com/cuda-toolkit-archive

直接选择 “精简” 安装就可以了,安装完成之后,可以使用如下命令查看 CUDA 版本,来验证 CUDA 是否安装成功:

nvcc --version

请添加图片描述

注:如果你没有 Nvidia 显卡,也可以通过给 stable-diffusion-webui 指定运行参数 --use-cpu sd,让其使用 CPU 算力运行,但是非常不建议你这么做,CPU 算力跟 GPU 算力相比简直天差地别,可能 GPU 只需要 10 秒就能绘制完成,而 CPU 却要 10 分钟,这不是开玩笑的。另外,如果你的显卡内存不多,建议 4G 的显卡加上 --medvram 启动参数,2G 的显卡加上 --lowvram 启动参数。怎么配置启动参数我们后面说。

4、启动项目

在安装配置好运行环境之后,直接运行工程下的 webui-user.bat 文件即可(如果是类 Unix 系统,则运行 webui-user.sh)。首次启动会自动下载一些 Python 依赖库(具体哪些库请看工程下的 requirements.txt) ,以及项目需要用到的配置和模型文件(比如:v1-5-pruned-emaonly.safetensors,将近 4 个 G~),初始化一次之后,下次启动就快了。

Launching Web UI with arguments:
...
Running on local URL:  http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.

看到这个提示就说明成功运行起来了,打开网址就可以看到程序的运行界面了:

温馨提示:该项目是英文页面,可以使用浏览器的翻译功能转成中文来使用~

二、使用

stable-diffusion-webui 的功能很多,主要有如下 2 个:

  • 文生图(text2img):根据提示词(Prompt)的描述生成相应的图片。
  • 图生图(img2img):将一张图片根据提示词(Prompt)描述的特点生成另一张新的图片。

注:本文只讲解文生图(text2img)功能,图生图(img2img)后续有机会再出文章,喜欢的请多多点赞关注支持一下 😃。

1、文生图(text2img

在开始使用文生图之前,有必要了解以下几个参数的含义:

参数说明
Prompt提示词(正向)
Negative prompt消极的提示词(反向)
Width & Height要生成的图片尺寸。尺寸越大,越耗性能,耗时越久。
CFG scaleAI 对描述参数(Prompt)的倾向程度。值越小生成的图片越偏离你的描述,但越符合逻辑;值越大则生成的图片越符合你的描述,但可能不符合逻辑。
Sampling method采样方法。有很多种,但只是采样算法上有差别,没有好坏之分,选用适合的即可。
Sampling steps采样步长。太小的话采样的随机性会很高,太大的话采样的效率会很低,拒绝概率高(可以理解为没有采样到,采样的结果被舍弃了)。
Seed随机数种子。生成每张图片时的随机种子,这个种子是用来作为确定扩散初始状态的基础。不懂的话,用随机的即可。

以上对参数的解析源自以下文章:

  • https://zhuanlan.zhihu.com/p/574063064
  • https://baijiahao.baidu.com/s?id=1758865024644276830&wfr=spider&for=pc

接下来我们来生成一张赛博朋克风格的猫咪图片,配置以下参数后,点击 “Generate” 即可:

Prompt:a cute cat, cyberpunk art, by Adam Marczyński, cyber steampunk 8 k 3 d, kerem beyit, very cute robot zen, beeple |Negative prompt:(deformed, distorted, disfigured:1.3), poorly drawn, bad anatomy, wrong anatomy, extra limb, missing limb, floating limbs, (mutated hands and fingers:1.4), disconnected limbs, mutation, mutated, ugly, disgusting, blurry, amputation, flowers, human, man, womanCFG scale:6.5Sampling method:Euler aSampling steps:26Seed:1791574510

注:提示词(Prompt)越多,AI 绘图结果会更加精准,另外,目前中文提示词的效果不好,还得使用英文提示词。

2、模型文件

眼尖的你可能发现了,上面截图里左上角 Stable Diffusion checkpoint 的值怎么跟之前截图里的不一样?这是因为我换了一个模型文件,还记得前面提到那个将近 4 个 G 大小的模型文件(v1-5-pruned-emaonly.safetensors)吗?那是 stable-diffusion-webui 的默认模型文件,用这个模型文件生成出来的图片比较丑,因此我换了另一个模型文件。模型文件下载的网站几个,比较出名的就是 civitai,这上面共享的都是别人训练好的模型。

模型文件下载地址:

  • civitai:https://civitai.com/
  • 默认的 v1-5-pruned-emaonly:https://huggingface.co/runwayml/stable-diffusion-v1-5/tree/main

根据你要生成的图片风格(比如:动漫、风景),挑选合适的模型查看,前面那个文生图的例子,使用的就是这个 Deliberate 模型,直接点击 “Download Latest” 即可下载该模型文件。

注:模型文件有 2 种格式,分别是 .ckpt(Model PickleTensor) 和 .safetensors(Model SafeTensor),据说 .safetensors 更安全,这两种格式 stable-diffusion-webui 都支持,随意下载一种即可。

将下载好的模型文件放到 stable-diffusion-webui\models\Stable-diffusion 目录下:

放置好模型文件之后,需要重启一下 stable-diffusion-webui(执行 webui-user.bat)才能识别到。

这些模型文件一般会附带一组效果图,点击任意一张,就可以看到生成该效果图的一些参数配置:

把这些参数配置到 stable-diffusion-webui 中,点击 “Generate” 就可以生成类似效果的图片了。

注:因为 AI 绘图带有随机性质,所以生成出来的图片跟效果图不一定完全一样。

文生图功能有很多东西可以发掘,你可以用它来生成世界上独一无二的图片,而要用好文生图功能,提示词(Prompt)是必须掌握的重中之重,它是有语法规则的,在此推荐两篇对 Prompt 详细说明的文章:

  • 全网 Stable Diffusion Prompt 运用技巧:https://www.bilibili.com/read/cv19903784
  • Prompt 工具網站:https://www.accucrazy.com/prompt-tools-ai/

三、工程配置

前面说到,stable-diffusion-webui 是可以配置启动参数的,这是官方的 wiki:

  • 配置参数文档:https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Command-Line-Arguments-and-Settings

1、常用参数

这里列几个常用的参数说明一下:

参数说明
–listen默认启动绑定的 ip 是 127.0.0.1,只能是你自己电脑可以访问 webui,如果你想让同个局域网的人都可以访问的话,可以配置该参数(会自动绑定 0.0.0.0 ip)。
–port xxx默认端口是 7860,如果想换个端口,可以配置该参数,例如:--port 8888
–gradio-auth username:password如果你希望给 webui 设置登录密码,可以配置该参数,例如:--gradio-auth GitLqr:123456
–use-cpu默认使用 GPU 算力(需要 Nvidia 显卡),如果没显卡,可以配置该参数,改用 CPU 算力。
–medvram为低显存(比如:4G)启用模型优化,会牺牲一点速度。
–lowvram为极低显存(比如:2G)启用模型优化,会牺牲很多速度。
–autolaunch启动时自动打开浏览器访问 webui。

要配置这些参数很简单,打开 webui-user.bat,把你需要配置的参数添加到 COMMANDLINE_ARGS 后面即可:

@echo offset PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--listen --port 8888 --gradio-auth GitLqr:123456 --autolaunchcall webui.bat

2、API 接口服务

除了上述几个常用的参数外,还有一个特别的参数 --api,可以在启动 stable-diffusion-webui 的同时,启动一个接口服务,在 COMMANDLINE_ARGS 后面追加上 --api

@echo offset PYTHON=
set GIT=
set VENV_DIR=
set COMMANDLINE_ARGS=--listen --port 8888 --gradio-auth GitLqr:123456 --autolaunch --apicall webui.bat

重启后在 url 后面加上 /docs 即可看到 api 请求说明文档:

这样我们就可以通过编写程序的方式,使用文生图、图生图等功能了,关于接口传参格式等要求,参见官方 wiki:

  • 官方 api 说明文档:https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/API#api-guide-by-kilvoctu

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

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

相关文章

【社区图书馆】读《一本书读懂AIGC:ChatGPT、AI绘画、智能文明与生产力变革》所感

文章目录 《一本书读懂AIGC:ChatGPT、AI绘画、智能文明与生产力变革》目录作者简介我的体会: AI带来的挑战和机遇是不可避免的 《一本书读懂AIGC:ChatGPT、AI绘画、智能文明与生产力变革》 作者:a15a 著 贾雪丽 0xAres 张炯 主编 …

WIN10下搭建vue开发环境

好记性不如烂笔头。 说明:下面任何命令都是在windows的命令行工具下进行输入,打开命令行工具的快捷方式如下图: 详细的安装步骤如下: 一、安装node.js 说明:安装node.js的windows版本后,会自动安装好n…

bugku——分析(流量分析)题解

目录 1,flag被盗 2,中国菜刀 3,这么多数据包 4,手机热点 5,抓到一只苍蝇 6,日志审计 7,weblogic 8,信息提取(超详细) 9,特殊后门 1&…

CTF 总结04:win11+冰蝎4.0.6安装[更新中]

问题描述 昨天在刷题的时候,发现可能需要下载冰蝎~ win11冰蝎4.0.6,本人安装的时候遇到了一些坑,所以在这里简单说一下~ 冰蝎简介 冰蝎是一个动态二进制加密网站管理客户端,它使用AES加密算法对流量进行加密,难以被…

微软宣布 AI 聊天机器人必应聊天已向所有人开放,使用方法说明

微软宣布 AI 聊天机器人必应聊天已向所有人开放,使用方法说明 先用chrome搜索必应的地址必应搜索,结果如下图所示: 点击了解详细信息,网页会跳转到微软新必应的介绍页面,如下所示: 到这里大家就应该知道怎…

人工智能实战项目(python)+多领域实战练手项目

人工智能实战项目 大家好,我是微学AI,本项目将围绕人工智能实战项目进行展开,紧密贴近生活,实战项目设计多个领域包括:金融、教育、医疗、地理、生物、人文、自然语言处理等;帮助各位读者结合机器学习与深…

chatgpt赋能Python-pythonheader

Python Header:为什么它对SEO很重要? 在网页开发和建立过程中,Python Header是一个非常重要的元素。Python Header是一个HTTP请求的部分,其中包含了对请求的描述,以及执行此请求所需的任何信息。因此,Pyth…

解决:闹钟设置的自定义歌曲响铃时不会播放仅震动【Apple Music】【iOS】

文章目录 1、问题描述2、解决策略3、Q&A4、感受5、Tips 1、问题描述 自带铃声和震动脑瓜子嗡嗡的,幸好有apple music,在闹钟中可以轻松地选择你放入资料库中的任意一首音乐作为铃声。 奇怪的是,闹钟响起,仅震动,没…

微信公众平台登陆小程序后,在 开发-开发者工具 下,找不到 腾讯云

新版的微信公众平台在 “开发”-“开发者工具”下面只有“腾讯位置服务”,并没有大家所说的腾讯云,没法开通腾讯云服务。根据官方所说是把入口隐藏起来了。 我找了好久终于找到怎么开通了: 先去腾讯云官网注册/登录,登录后左上角…

Web端实现定位(使用腾讯地图实现)

1、腾讯地图提供定位服务的API&#xff0c;官方网址&#xff1a; 点击打开链接 2、从腾讯地图API官网注册一个开发秘钥 3、根据官方文档引入js文件 <script type"text/javascript" src"https://3gimg.qq.com/lightmap/components/geolocation/geolocation.…

【腾讯云IM】即时通讯的登录,登出,用户列表,私聊,图片发送

uniapp即时通讯 1&#xff0c;初始化&#xff08;刚开始就紧跟着文档走&#xff09;2&#xff0c;App.vue中项目引入腾讯云&#xff0c;&#xff08;附上账号在其他地方登陆的监听&#xff09;3&#xff0c;登录前必需3.1&#xff0c;获取登录id3.2&#xff0c;生成userSig&…

腾讯云开发者平台

1.应用场景 轻量级代码托管产品, 2.学习/操作 2.1 介绍 官网: coding.net 腾讯云开发者平台是腾讯云与 CODING 共同为开发者打造的云端工具平台&#xff0c;旨在为更多的开发者带去便捷、高效的 开发体验&#xff0c;提供包括需求管理、代码编写、代码管理、代码运行的整套系…

上传图片到腾讯云(海外服务器)com.qcloud5.5.4版本

问题描述&#xff1a;上传图片至腾讯云服务器&#xff0c;存储桶Region一直在国内地址&#xff0c;访问正常的&#xff0c;新启一个项目&#xff0c;存储桶Region迁移到孟买ap-mumbai区域&#xff0c;出现上传不成功 问题原因&#xff1a; <dependency><groupId>…

微信小程序接入腾讯云实时音视频TRTC----基本使用

前言:虽然说的有点乱,我觉得有必要说一下什么是音视频与整体开发需要些什么东西,因为当时我也是不知道这是啥? .我的理解音视频就是类似微信视频通话的东西,以自己的角度来看,我与好友建立视频的步骤简单来讲就是我把我的视频信息推送到微信,微信处理发给我好友,然后我再将好友…

【新知实验室】手把手实现腾讯云音视频应用

腾讯云音视频是什么&#xff1f; 腾讯云音视频&#xff08;TRTC&#xff09;提供一站式视频解决方案&#xff0c;包括点播直播、实时视频通话、短视频等视频服务&#xff0c;广泛应用于在线视频、电商、游戏直播、在线教育等场景。实时音视频基于腾讯21年来在网络与音视频技术上…

TBS腾讯浏览服务的SDK接入

Share Only 版 引入依赖库compile com.jakewharton:butterknife:7.0.1&#xff0c;与项目本身无关&#xff0c;不喜欢findViewById而已&#xff0c;这里有个小坑&#xff0c;最新版本的butterknife结合插件使用可能会导致findViewById或者onClick绑定失败…将shareOnly版本的j…

web端对接语音通话(腾讯云)

实时音视频 实时语音通话(Web) - 场景实践 - 文档中心 - 腾讯云 按照要求注册腾讯云账号&#xff0c;跑通demo 1、集成TRTCCalling组件 // npm方式安装 npm install trtc-js-sdk --save npm install tim-js-sdk --save npm install tsignaling --save npm install trtc-calli…

新知实验室基于腾讯云实时音视频WEB端实验

腾讯实时音视频&#xff08;Tencent Real-Time Communication&#xff0c;TRTC&#xff09;主要用于互动直播和多人音视频。支持低延时直播观看、实时录制、屏幕分享、美颜特效、立体声等能力&#xff0c;还能和直播 CDN 无缝对接&#xff0c;适用于互动连麦、跨房 PK、语音电台…

腾讯云IM-SDK集成(web端)完成IM登录

一脸懵逼的看着腾讯云的文档&#xff0c;完成了所谓的采坑之旅 &#xff08;1&#xff09;很多人估计公司也需要用到聊天&#xff0c;以及音视频的功能&#xff0c;那么作为萌新的我&#xff0c;当然也是一来公司便得知需要用到这个技术&#xff0c;当时我是懵逼的&#xff0c…

[Web端接入经验分享] 腾讯云即时通信TIM、实时音视频TRTC

[Web端接入经验分享] 腾讯云即时通信TIM、实时音视频TRTC 即时通信TIM官网地址 即时通信TIM SDK API文档地址 实时音视频TRTC官网地址 实时音视频TRTC SDK API文档地址 概念与可能造成疑惑的问题 SDK 是什么&#xff1f; Github 地址 腾讯云将底层与后台代码封装混淆之后生成…