AIGC-如何用nConnect完成随时随地AI绘图(Stable Diffusion)

前言:

Stable Diffusion 作为生产力工具未来肯定会被广泛使用,虽然Stable Diffusion 拥有网页版本,但是有以下缺点:

  1. 网页版本都是以demo类型为主,可选用素材并不多,关键词成像效果不佳
  2. 网页版本使用人多,偶尔可能卡顿
  3. 目前网页版本免费,但未来难保不收费,抑或是针对生成字词做出审核

而使用nConnect连接会自己的算力终端进行AI绘图则有不少好处:

  1. 算力为自己所用,根据需求搭配合适的显卡来达到最优化成本,并且不需要随身携带,随时都能使用
  2. AI训练方式,关键词等在未来都会成为机密资料或是智慧产权,分布式网络能够更好的保护您的ai训练成果以及知识产权
  3. 未来敏感词汇的审查只有在自己搭建的机器上可以规避

根据NKN团队需求所生成的AI同事,先看效果图:

手机上4G环境同样能通过内网IP连接回运算终端进行生成

原理:

AI绘图软件(以Stable Diffusion为例)是一个开源软件,大家可以通过github网页中下载该软件在本地机器中进行运算,且该软件提供IP访问功能,如果您有公网IP可以直接从外网访问,但是那样要求您去申请一个公网IP,并且您的知识产权将暴漏在公网中,而使用NKN的nConnect,如同前言所述,不必暴露自己的任何信息,也不需要拥有一个公网IP,就安全快速的在自己搭建的环境下尽情使用这个软件。

操作步骤:

总体来说,操作分为两步,

A. 打通自己机器和外网的访问(将内网环境映射至公网),这个步骤需要通过nConnect完成
B. 在运算终端上(一般来说是带有高端显卡的电脑或服务器)安装AI绘图软件(以Stable Diffusion为例)

A. 打通自己机器和外网的访问:

  1. 通过官方链接,安装nConnect server端以及client端

(https://nkn.org/products/nconnect/)

  1. 安装后,点击nConnect Server,点击start,待状态变为Connected后,点击Open web dashboard

  1. 打开nConnect web 页面后,利用手机端扫码功能(中间图标或是右上角图标)进行链接以及配置同步

(Web)

(手机端)

(PC端点击右上角,出现二维码后利用手机端扫码同步)

  1. 如果您已经安装好了Stable Diffusion,您可以通过编辑webui-user.bat(图一), 将stable diffusion 修改为可通过IP访问 (set COMMANDLINE_ARGS= --listen,图二),如果那您还没安装,请先跳到步骤B安装Stable Diffusion后,再回到本步骤。

成功后,启动URL地址会从http://127.0.0.1:7860 变成http:// 0.0.0.0:7860

  1. 链接建立后,将nConenct提供给你的内网IP地址,以及Stable Diffusion提供的端口号(一般默认7860,X.X.X.X:7860) 填入浏览器中,就能直接从外网访问自建的AI绘图终端了

B. 安装AI绘图软件:

安装步骤直接复制来自:https://zhuanlan.zhihu.com/p/613530403

1.下载miniconda,用于配置基础算法环境。

这个是用来管理python版本的,他可以实现python的多版本切换。

下载地址:

(miniconda下载截图)

安装时按默认的一路next就行。

2.打开miniconda,

(开始-输入mini-找到miniconda3打开)

输入

conda -V

弹出版本号即为正确安装

(显示conda版本,那就对了)

  1. 在miniconda小窗里,执行下面语句,

    conda config --set show_channel_urls yes

接着运行

conda clean -i

清除索引缓存

4.创建python 3.10.6版本的环境,叫sdwebui好了

运行下面语句,(注意,这一步一定要内外网通畅,否则会报错。多执行几次。)

conda create --name sdwebui python=3.10.6

提示你是否要继续安装,输入y,并回车。

显示这个界面,这步就完成了。程序已经在你的路径C:\ProgramData\Miniconda3\envs\sdwebui已经创建了一个新的项目。

5,激活项目环境

输入

conda activate sdwebui

回车。

6.升级pip并更改默认库包下载地址为清华镜像站。

依次执行下面的两行语句,每一行输入后回车,等执行完再输入下一行,再回车。

python -m pip install --upgrade pip

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

不报错就是完成了。报错了就依次执行多几次。

  1. 安装git,用来克隆下载github的项目,比如本作中的stable diffusion webui这个开源项目。

(1)前往git官网http://git-scm.com/download/win下载相关安装包

(2)下载好后,一路默认安装,点next即可。

安装完成之后,回到刚刚的miniconda小窗口,并输入并执行下面指令。

git --version

查看git的版本,显示了版本号即安装成功。

(3)如果报错,显示说“‘git’ 不是内部或外部命令,也不是可运行的程序”。(如果不报错有显示git版本,则跳过这一步,进入第8步)

那么,把git的bin文件夹地址和git-core的文件夹地址放到windows系统变量的path里面。

默认gitbin文件夹是:C:\Program Files\Git\bin

默认gitcore文件夹地址是:C:\Program Files\Git\mingw64\libexec\git-core

把地址添加到环境变量的Path里面。

操作路径是:开始-设置-系统-高级系统设置-环境变量-path-新建。(具体见下图)

添加完后,你在miniconda里面,输入

git --version

就能出现git版本号啦。

8.安装CUDA

cuda是NVIDIA显卡用来跑算法的依赖程序,所以我们需要它。

打开NVIDIA cuda官网,http://developer.nvidia.com/cuda-toolkit-archive

(这里有人可能会打不开网页,如果打不开,请用魔法上网。)

你会发现有很多版本的CUDA,下载哪个版本呢?

回到一开始的miniconda的小窗,输入

nvidia-smi

查看你的cuda版本。

(在这里输入nvidia-smi的时候,有可能会显示“‘nvidia’ 不是内部或外部命令,也不是可运行的程序”。

这时候,需要确认你的显卡是否为Nvidia的显卡。

如果是,则检查自己的显卡驱动是否最新版,可以用鲁大师或者驱动精灵之类的软件更新驱动至最新。

如果更新驱动还不行,则把C:\Program Files\NVIDIA Corporation\NVSMI添加到系统环境变量。)

比如我的显卡cuda是11.7版本,所以我就下载11.7.1即可。

然后安装自己的系统选择win10或者11,exe local,download

下载完后安装,这个软件2个多G,可以安装在c盘以外的地方。比如D盘,节省系统盘空间。

好了,安装好之后,电脑的基础环境设置终于完事了。

下面开始正式折腾stable diffusion了。

三、stable diffusion环境配置

1.下载stable diffusion源码

确认你的miniconda黑色小窗显示的是

(sdwebui) C:\Users\Administrator>

这代表着你正在sdwebui这个程序环境里面。

接着我们要安装stable-diffusion-webui本体了。

先看看你想安装在哪个盘,建议放在非系统盘的其他盘根目录。最好是SSD盘,加载模型速度会快一些。

比如我安装在F盘。我就输入下面指令再回车。(安装在其他盘同理)

F:

接着执行下面指令克隆SD项目代码:

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

等到页面显示“done”,则克隆完成。

2.下载SD训练模型

打开 https://huggingface.co/stabilityai/stable-diffusion-2-1/blob/main/v2-1_768-ema-pruned.ckpt

点击download,下载模型。大约5.2G。

下载完把这个训练模型v2-1_768-ema-pruned.ckpt放入models\Stable-diffusion文件夹里面。(我的文件夹是“

F:\stable-diffusion-webui\models\Stable-diffusion“)

注:

(1)这里可能提示需要注册或同意协议之后才能下载,那就注册并同意。

(2)models\Stable-diffusion这个文件夹,专门存放用于生成AI绘图的绘图元素的基础模型库。后续如果在其他网站比如civitai之类的地方下载的ckpt或者safetensors文件也是放在这个文件夹里面。

3.准备开启运行ai绘图程序sd-webui

在miniconda的黑色小窗,执行下面指令,进入项目文件夹:

cd stable-diffusion-webui

执行下面指令, 打开webui的应用程序,

webui-user.bat

接下来就是等待系统自动执行。

直到系统提示,running on local URL: http://127.0.0.1:7860

这就代表,你可以开始正式使用AI画画啦~

注意:

(1)这一步要下载不少的依赖程序,网络一点波动都可能会报错。所以安装过程当中多次报错也很正常,需要耐心和时间多次尝试。多次执行webui-user.bat指令。

(2)不要关闭黑色小窗,哪怕它几分钟甚至20分钟没有任何变化。直到它报错再进行下一次尝试。

(3)如果提示连接错误,可能需要开启或者关闭魔法上网,再重新执行webui-user.bat命令。

(4)如果不小心退出了黑色窗口,则重新点击:开始菜单-程序-打开miniconda窗口,依次输入执行

conda activate sdwebui

F:

cd stable-diffusion-webui

webui-user.bat

(因为我是安装再f盘,所以我输入”F:”,你如果安装在其他盘,则修改成其他盘符,比如”D:”, “E:”之类)

(5)如果长时间卡在Installing gfpgan(或者installing clip,installing open_clip)这个环节,那么进入F:\stable-diffusion-webui文件夹下面,找到launch.py这个文件,用记事本打开。

在第200多行到300行的位置,找到这段代码。

并在“https://github.com/xxx”的最前面,加上:https://ghproxy.com/

加三个位置,变成如下状态,

然后ctrl + s保存后退出。

这就相当于让原来从github下载相关程序包变成了走国内镜像下载相关程序包,这样会增加网络的稳定性和网络速度。

改完之后,下面继续执行webui-user.bat。

(4)如果改了launch.py文件, 还卡在gfpgan环节,那么记得关闭外网功能。让下载走通用线路。

(5)安装完gfpgan,clip,open_clip等几个大头之后,后面还有一些自动安装的依赖项,如果比较慢,记得打开外网。总之,感觉卡慢或者报错之后,则切换调节网络后再重新执行webui-user.bat指令。

4.打开webui网页版

当黑色窗口提示,running on local URL: http://127.0.0.1:7860的时候,如下图

不要关闭黑色窗口,接着用浏览器(比如谷歌浏览器chrome)打开http://127.0.0.1:7860,就是AI绘画主界面啦。

你可以直接在左上角的文本框输入prompt提示词,

比如:pandas eating bamboo (熊猫在吃竹子)

然后点击右侧的橙色按钮Generate,过一小会,就能看到你画出来的第一张图啦。

(注意,如果写了prompt点击generate后无法生成图片,看见黑色小框显示“float 32“之类的关键字,则在webui页面的Settings-stable-diffusion最下面,勾选float32的选项框。接着点击上方的Apply Settings应用,然后按F5刷新页面后,即可正常使用。)