在AutoDL中搭建WebUI, 使用flux1.dev

因为我的电脑是 MacOS, 在本地搭了个 Stable Diffusion Web UI Forge 后, 发现用 mps 设备来跑生成, 一个迭代要 70s 到 100s , 就算用 schnell 的(只需要固定四个迭代), 生成一张图都要五六分钟.

目前 huggingface 上的量化模型大多数是 Float8_e4m3fn , mps 又不支持, 所以只能够另寻他法.

一、租GPU

之前看别人租用云GPU, 用的是 AutoDL 这个平台, 看了下价格感觉还挺便宜, 就用来试试了.

我选了个显存较大的示例(vGPU-32GB), 价格还比 4090 便宜一些, 选了这个镜像:

image.png

看介绍它支持无卡模式, 也就是只使用 CPU 的模式, 用来做环境配置, 一小时一毛钱, 在实例初始化(初始化实例是收费的,所以需要先充值)完成后, 我就关机改用无卡模式了.

无卡模式开机后, 复制右边的 SSH登录 里的 ssh命令 到终端(Terminal)里, 回车, 第一次登录 ssh 可能需要输入 yes + 回车来继续.

然后提示输入密码, 复制 密码 黏贴到终端中(黏贴的密码不可见), 再次回车, 就在终端中通过 ssh 连接到远程服务器了.

二、配置缓存目录的数据盘软链接

AutoDL 中, root 用户的家目录位于系统盘, huggingface-cli 下载的模型默认会存到用户家目录的 .cache 目录中, 模型较大容易把系统盘占满, 所以我把系统盘的 .cache 目录移到数据盘(autodl-tmp), 然后用一个软链接指向数据盘中的 .cache

  • 移动: mv /root/.cache /root/autodl-tmp/

  • 软链接: ln -s /root/autodl-tmp/.cache /root/.cache

执行这两步之后, 运行 ls /root -al |grep .cache , 应该能够看到 类似 .cache -> /root/autodl-tmp/.cache 的输出

三、初始化虚拟环境

我选的镜像默认提供了 conda , 用来配置 python 的环境还不错, 运行一下命令先生成两个虚拟环境:

  • 初始化 conda : conda init --all

  • 创建一个专门用来下载 huggingface 模型的环境: conda create -n hub python=3.10

  • 创建一个专门用来配置 webui-forge 的环境: conda create -n forge python=3.10

两个环境创建都是一路回车即可.

四、生成 Access Token

在自己的电脑访问 huggingface , 创建一个 Access Token , 后续下载模型可能会用到.

  1. 前往 huggingface 中, 注册并登录, 然后点击右上角的头像, 在弹窗中选择 Access Token 选项:
image.png
  1. 然后填写一个好记的 token 名, 并把读写权限给勾上, 然后点击末尾的 Create token 按钮:


    image.png
  2. 最后把生成的 Access Token 保存起来, 后面要用于登录.


    image.png

五、下载模型

配置镜像

huggingface 我们无法直连, 但是好在国内有镜像, 执行以下两步将镜像连接作为环境变量添加到配置文件

  • 添加到配置文件: echo 'export HF_ENDPOINT=https://hf-mirror.com' >> ~/.bashrc

  • 应用配置文件: source ~/.bashrc

※ 如果你使用 zsh 作为默认的 shell , 那么你应该运行这两条命令而不是上面那两条, 不理解这个操作的话, 就无视下面的命令

  • 添加到配置文件: echo 'export HF_ENDPOINT=https://hf-mirror.com' >> ~/.zshrc

  • 应用配置文件: source ~/.zshrc

开始下载

  • 切换到专门用来下载模型的虚拟环境: conda activate hub

  • 更新 pip : pip install --upgrade pip

  • 安装 huggingface_hub: pip install huggingface_hub

  • 使用 Access Token 登录 huggingface : huggingface-cli login
    ※ 然后huggingface-cli会提示你输入 token , Enter your token (input will not be visible): 把刚刚生成的 token 黏贴进去回车即可

  • 下载 clip 模型: huggingface-cli download comfyanonymous/flux_text_encoders clip_l.safetensors

  • 下载 text_encoder 模型: huggingface-cli download comfyanonymous/flux_text_encoders t5xxl_fp8_e4m3fn.safetensors

  • 下载 Comfy 量化过的 flux.1 dev 模型: huggingface-cli download Comfy-Org/flux1-dev flux1-dev-fp8.safetensors

  • 下载 flux.1 dev 的 vae 模型: huggingface-cli download black-forest-labs/FLUX.1-dev ae.safetensors

四个模型要下载半天, 不过是无卡模式所以不用担心费用~

六、配置 Stable Diffusion WebUI Forge

WebUI Forge 是 lllyasviel 大佬发布的用来跑图片生成模型的套件, 部署在服务端后, 就可以在浏览器用网页生成图片了, 因为我要用到他的另一个生成透明图层的扩展Layer Diffuse , 跟 WebUI Forge 兼容, 所以选择了 Forge 版本.

以下是安装步骤:

  1. 切换到专门用于启动 WebUI Forge 的虚拟环境: conda activate forge

  2. 同样更新一下 pip : pip install --upgrade pip

  3. 克隆仓库: cd ~ && git clone https://github.com/lllyasviel/stable-diffusion-webui-forge.git
    ※ 可能因为网络问题克隆失败, 多试几次.

  4. 克隆成功后, 进入到项目目录: cd ~/stable-diffusion-webui-forge

  5. 因为 AutoDL 默认就是 root 用户, 而 WebUI Forge 的初始化脚本禁止使用 root 用户初始化, 所以要添加一个 -f 的选项来允许 root 用户运行: ./webui.sh -f

  6. 首次运行需要配置很多东西, 慢慢等待, 因为当前处于无卡模式, 所以到最后会报错结束, 先忽略它.

    RuntimeError: Your device does not support the current version of Torch/CUDA! Consider download another version: 
    https://github.com/lllyasviel/stable-diffusion-webui-forge/releases/tag/latest
    

七、将模型软链接到 WebUI Forge 的指定位置

因为 AutoDL 默认给的实例磁盘空间有限, 同一个模型存放两次可能不够用, 这里用软链接的方式把模型放置到指定位置, 节省空间:

  1. clip 模型: ln -s /root/.cache/huggingface/hub/models--comfyanonymous--flux_text_encoders/snapshots/6af2a98e3f615bdfa612fbd85da93d1ed5f69ef5/clip_l.safetensors ~/stable-diffusion-webui-forge/models/text_encoder/clip_l.safetensors

  2. text_encoder 模型: ln -s /root/.cache/huggingface/hub/models--comfyanonymous--flux_text_encoders/snapshots/6af2a98e3f615bdfa612fbd85da93d1ed5f69ef5/t5xxl_fp8_e4m3fn.safetensors /root/stable-diffusion-webui-forge/models/text_encoder/t5xxl_fp8_e4m3fn.safetensors

  3. 量化的 flux.1 dev 模型 ln -s /root/.cache/huggingface/hub/models--Comfy-Org--flux1-dev/snapshots/f062db3fdcd6a91b73f99236a7dc9cac9f339964/flux1-dev-fp8.safetensors /root/stable-diffusion-webui-forge/models/Stable-diffusion/flux1-dev-fp8.safetensors

  4. vae 模型: ln -s /root/.cache/huggingface/hub/models--black-forest-labs--FLUX.1-dev/snapshots/0ef5fff789c832c5c7f4e127f94c8b54bbcced44/ae.safetensors ~/stable-diffusion-webui-forge/models/VAE/ae.safetensors

八、进入 WebUI Forge

配置完成后, 关机退出无卡模式, 重新使用有卡模式启动(如果GPU不足, 可能需要等待), 并且使用 ssh 登录.

启动后, 只需要以下两条命令既可启动 WebUI Forge :

  1. 进入虚拟环境: conda activate forge

  2. 启动服务: cd ~/stable-diffusion-webui-forge && ./webui.sh -f

启动后, 会提示你需要访问 Running on local URL: http://127.0.0.1:7861 来访问 WebUI , 但是这个地址是相对于服务器而言, 我们要访问的话需要通过 AutoDL 提供的 ssh 端口转发功能.

返回 AutoDL 的实例管理界面, 找到运行中的实例, 点击 自定义服务 :

image.png

在弹出的弹窗选择 Linux/Mac , 复制复制 ssh 端口转发的命令:

image.png

因为 WebUI Forge 启动的端口是 7860 , 所以要把 命令中的第二个 6006 改为 7860 , 以图片中的命令为例, 更改之后的命令是:
ssh -CNg -L 6006:127.0.0.1:7860 root@connect.westb.seetacloud.com -p 29567

然后打开一个新的终端界面(记住是在新的终端, 而不是已经登录了 AutoDL 的终端), 黏贴上面的命令, 回车, 再输入密码.

这个新的界面就不要管他了, 它会负责把你电脑本地的 6006 端口对接到 AutoDL 实例的 7860 端口.

此时你就可以在你自己电脑的浏览器访问: http://127.0.0.1:6006 来访问 WebUI Forge 了.

使用时, 按照这个配置来使用 flux.1 dev :


image.png
最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容