[硬核向][作废]分析Colab上的启动Novel AI的代码
本文最后更新于 295 天前,其中的信息可能已经有所发展或是发生改变。

请注意,本文所给出的代码现在已经无法正常使用

二话不说,先放代码(由Izumi Chino整合)(对,就是我)

#整合版NovelAI
!nvidia-smi
%cd /content/
!apt install -y -qq aria2
!aria2c --summary-interval=5 -x 3 --allow-overwrite=true -Z \
  https://pub-2fdef7a2969f43289c42ac5ae3412fd4.r2.dev/naifu.tar \
  https://pub-2fdef7a2969f43289c42ac5ae3412fd4.r2.dev/animefull-latest.tar 
  
!echo "Decompressing..."
!tar xf naifu.tar && rm naifu.tar
!echo "Done."
%cd /content/naifu
!pip install virtualenv && bash ./setup.sh
!curl -Ls https://github.com/ekzhang/bore/releases/download/v0.4.0/bore-v0.4.0-x86_64-unknown-linux-musl.tar.gz | tar zx -C /usr/bin
!curl -Lo /usr/bin/cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 && chmod +x /usr/bin/cloudflared
!/content/naifu/venv/bin/python -m pip install -qq pytorch_lightning==1.7.7
%cd /content/
!mkdir /content/naifu/models/animefull-latest
!tar xf animefull-latest.tar -C /content/naifu/models/animefull-latest && rm animefull-latest.tar
!sed -i 's/map_location="cpu"/map_location="cuda"/g' /content/naifu/hydra_node/models.py

%cd /content/naifu
%env DTYPE=float16
%env CLIP_CONTEXTS=3
%env AMP=1
%env MODEL=stable-diffusion
%env DEV=True
%env MODEL_PATH=models/animefull-latest
%env ENABLE_EMA=1
%env VAE_PATH=models/animevae.pt
%env PENULTIMATE=1
%env PYTHONDONTWRITEBYTECODE=1
%env SAVE_FILES=1

!./venv/bin/python -m uvicorn --host 0.0.0.0 --port=6969 main:app & bore local 6969 --to bore.pub & cloudflared tunnel --url localhost:6969 

那么我们按照源代码一点一点分析。

一、获取Colab笔记本配置

这一段放在最前面,也是用于检查GPU状态的

!nvidia-smi

可以看出,这个代码是调用了nVidia的系统管理界面的代码,本人在Colab上运行结果如下:

Tue Jan  3 08:17:34 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.32.03    Driver Version: 460.32.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4            Off  | 00000000:00:04.0 Off |                    0 |
| N/A   50C    P0    27W /  70W |      0MiB / 15109MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

由上面的输出可以看出,我们所得到的配置是Tesla T4这款GPU,也只有这一种GPU,驱动的版本是NVIDIA-SMI 460.32.03,所占用的GPU内存是0MiB,一共有15109MiB的显存。

二、下载 Novel AI API 后端、模型

这是部署很重要的一块内容

%cd /content/
!apt install -y -qq aria2
!aria2c --summary-interval=5 -x 3 --allow-overwrite=true -Z \
  https://pub-2fdef7a2969f43289c42ac5ae3412fd4.r2.dev/naifu.tar \
  https://pub-2fdef7a2969f43289c42ac5ae3412fd4.r2.dev/animefull-latest.tar 
  
!echo "Decompressing..."
!tar xf naifu.tar && rm naifu.tar
!echo "Done."

代码首先切换工作目录到\content

然后运用apt install这个指令安装aria2多线程下载工具(其中的-y指令是默认填写y允许,不需要用户自动选择[y/N])

然后调用刚刚安装的aria2下载地址为https://pub-2fdef7a2969f43289c42ac5ae3412fd4.r2.dev/naifu.tar和https://pub-2fdef7a2969f43289c42ac5ae3412fd4.r2.dev/animefull-latest.tar的两个tar压缩文件(–summary-interval是设置下载间隔时间,–allow-overwrite=true选项是重新下载找不到的文件,但是我不知道为什么在Colab上部署还要这个选项

其中上面的naifu.tar是NovelAI的核心文件,animefull-latest.tar是anime库文件

下载结束之后,系统会输出“Decompressing”表示正在解压,解压完之后会输出“Done”表示解压完毕。

三、安装依赖

相当于Runtime,必要的一块

%cd /content/naifu
!pip install virtualenv && bash ./setup.sh
!curl -Ls https://github.com/ekzhang/bore/releases/download/v0.4.0/bore-v0.4.0-x86_64-unknown-linux-musl.tar.gz | tar zx -C /usr/bin
!curl -Lo /usr/bin/cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 && chmod +x /usr/bin/cloudflared
!/content/naifu/venv/bin/python -m pip install -qq pytorch_lightning==1.7.7

这里是下载依赖的模块,首先切换到刚刚解压完毕的naifu文件夹内,然后用pip install来安装virtualenv库随即用bash命令启动安装脚本setup.sh,然后用curl来下载bore-v0.4.0-x86_64-unknown-linux-musl.tar.gz并将其解压到/usr/bin文件夹内(说明了Colab其实是Linux系统,甚至可以在上面部署trojan,不是吗)

四、启动模型(以7GB的Animefull-latest库运行为例)

终于,我们的NovelAI马上就能启动了,这是最后一步——调用模型并启动NovelAI

%cd /content/
!mkdir /content/naifu/models/animefull-latest
!tar xf animefull-latest.tar -C /content/naifu/models/animefull-latest && rm animefull-latest.tar
!sed -i 's/map_location="cpu"/map_location="cuda"/g' /content/naifu/hydra_node/models.py

%cd /content/naifu
%env DTYPE=float16
%env CLIP_CONTEXTS=3
%env AMP=1
%env MODEL=stable-diffusion
%env DEV=True
%env MODEL_PATH=models/animefull-latest
%env ENABLE_EMA=1
%env VAE_PATH=models/animevae.pt
%env PENULTIMATE=1
%env PYTHONDONTWRITEBYTECODE=1
%env SAVE_FILES=1

!./venv/bin/python -m uvicorn --host 0.0.0.0 --port=6969 main:app & bore local 6969 --to bore.pub & cloudflared tunnel --url localhost:6969 

回到原来的content文件夹内,然后创建一个新的文件夹,路径为/content/naifu/models/animefull-latest,然后解压我们下载过的模型,并且删除tar压缩文件

后面就不用多说了吧,配置一下NovelAI,然后运用trycloudflare分配一个临时地址,映射localhost:6969(即本地设置的NovelAI地址)

好了,分析就到此结束,我要去试试Colab能不能配置Trojan了

最后附上几张经过一番训练(调教)后画的图

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇