文章目录
- 官方仓库
- ComfyUI 配置
- 模型文件
- 生成图片,观察日志
- 生成样例
买了新的 4070TiS 显卡之后,终于有了个人的 16GB 显存,再也不用在关键时刻和实验室的其他人抢那两张 3080Ti 12G 了,所以想试试看干净的 Linux 环境下,显卡用于 AI 创作工作的效率,正好最近听说 StableDiffusion 3.5 模型发布了,有更快的速度和更好的提示词跟随性,我以前也没有试过本地部署这些文生图模型,都是玩在线的一些体验网站。
官方仓库
官方的 sd3.5 仓库 从 README 来看是只支持命令行操作的,有点不方便,所以需要额外使用支持这些大模型或者文生图模型的 UI 界面程序辅助。印象中之前比较火的是 StableDiffusionWebUI 这款,可以在 Windows 上直接运行,但是我现在是 Linux Ubuntu 24.04 ,所以随便谷歌了一下看看有什么推荐,大部分博客都是推荐一个叫 ComfyUI 的可视化界面程序。
ComfyUI 配置
StableDiffusion 3.5 的发布文章好像就是有 ComfyUI 的推荐链接的,关于 ComfyUI 和 StableDiffusionWebUI 谁好大家可以自己谷歌看看博客,一般是说 ComfyUI 的话占用计算资源更少,出图更快,灵活性更高,使用节点自定义配置界面,但是也更难上手和学习(我觉得还好,节点的输入输出已经节点的功能都直接显示在节点上了一眼就能看明白)。
根据教程的指示,先把该下载的模型文件下载好,需要 Hugging Face 的账号,随便用邮箱注册一个即可,然后下载模型文件之前需要填写表单表明模型的使用意图之类的,也很简单,没有真实性校验,全凭个人君子本性[doge]
然后克隆 comfyui 的代码仓库到本地,comfyui 也是通过 python 启动一个后台进程,提供一个前段页面供用户操作。参考 comfyui 的官方文档安装 comfyui 的 conda 环境:
# for amd gpupip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.0
# or
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/rocm6.1# for nvidia gpupip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu121
# or
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu124
这里要求 pytorch 的版本使用对应的 cuda12.4 ,其实 cuda 12 之上都可以,我装的是 12.1 就行(第一次装的 cuda 11.3 运行文生图会发生报错,有一些 torch 的 api 是版本不支持,要到 2.0 之后才支持)。这一步骤主要是先安装 GPU 依赖。另外,安装 pytorch 的时候无需本地安装 cuda 和 cudnn,pytorch 的包是自带 cuda 二进制可执行文件和动态库以及 cudnn 的动态库了,不要再自己额外本地 /usr/local
的什么位置安装全局的 cuda ,否则可能导致环境错乱。一般来说 python 写炼丹机器学习代码,你不是开发 cuda 库或者 python 库需要使用 cuda 的 C/C++ API 头文件自行编译什么库给其他人用的话,是不需要在本地安装 cuda 和 cudnn 套件的,作为使用者,我们只需要二进制可知性文件,因此直接按照 pytorch 官网的安装指令安装 pytorch 就行(之前初学的时候一直以为要本地安装 cuda 和 cudnn 先,实验室服务器环境一团乱麻,各种版本的 cuda,坑死了)。最后,numpy 1.x 适用于 torch 1.x ,numpy 2.x 适用于 torch 2.x ,如果两者的版本不匹配的话,torch 很可能运行不了(不确定是不是一定这样,但是我其他实验要跑起来必须这么匹配版本)。
然后在克隆下来的 comfyui 项目根目录下根据 requirements.txt
安装其他依赖:
pip install -r requirements.txt
模型文件
- Update ComfyUI to the latest version.
- Download Stable Diffusion 3.5 Medium and save it to your models/checkpoint folder.
- Ensure clip_g.safetensors, clip_l.safetensors, and t5xxl_fp16.safetensors are in your models/clip folder.
- Download the workflow here and start creating!
根据发布文章中的图片表格选择自己合适的模型!我是 4070TiS 16GB ,所以选择 large-turbo
可能是比较合适的,兼顾了出图速度和质量。
![[Pasted image 20241104164735.png]]
回到 comfyui 接入 sd3.5 的教程博客中。根据教程的指示,把对应的文生图模型和语言模型移动到指定的目录下:
(sd3.5) ┌[fredom@4070TiS 16:23:38] ~/workspace/ComfyUI (master)
└> ls models/checkpoints/
total 16G
-rw-rw-r-- 1 fredom fredom 0 Nov 3 19:28 put_checkpoints_here
-rw-rw-r-- 1 fredom fredom 16G Nov 4 10:58 sd3.5_large_turbo.safetensors
(sd3.5) ┌[fredom@4070TiS 16:35:19] ~/workspace/ComfyUI (master)
└> ls models/clip
total 11G
-rw-rw-r-- 1 fredom fredom 1.3G Nov 4 11:39 clip_g.safetensors
-rw-rw-r-- 1 fredom fredom 235M Nov 4 11:57 clip_l.safetensors
-rw-rw-r-- 1 fredom fredom 0 Nov 3 19:28 put_clip_or_text_encoder_models_here
-rw-rw-r-- 1 fredom fredom 9.2G Nov 4 13:41 t5xxl_fp16.safetensors
然后 python main.py
即可运行后台进程在 8081 端口提供 web service 前段可视化服务。
本地打开提供的链接之后,可以得到工作流节点的可视化界面,我的界面因为之前改过所以不是默认的了,这里我把提示词的节点换成了 TripleCLIPLoader
。
原始的 CLIPLoader
运行的话会报错,提示无法找到提示词语言模型不知道咋回事,后来在这个 issue 下有人回答了如果使用了 3.5 教程中的三个 clip 模型放到 models/clip
目录下的话,那么 clip 节点需要相应的换成 TripleCLIPLoader
,然后点击节点中对应的模型进行加载。
生成图片,观察日志
在正面提示词(posity)和负面提示词(negative)完成填写之后,可以点击右下角面板的 Queue Prompt ,将当前提示词加入生成队列,此时可以观察后台终端的输出,或者浏览器标签页的标题,会显示生成进度,同时节点界面也会使用绿色边框高亮目前进行到哪个节点步骤。
据我大概观察,一般是 10 秒出一张预览图,至于保存图片什么的节点就没去尝试了,因为证明了显卡能够正常工作以及出图的速度测试就行,之前显卡也已经经过了一个晚上通宵的炼丹测试,证明显卡装机之后稳定性没问题,系统稳定性没问题。
然后在生成的过程中也观察了一下显存和计算利用率,好家伙真的是极限,Large-turbo 80 亿参数(8.1B),生成 512x512 的图像基本吃满显卡。
基本上吃满显存了,平时不动的显卡风扇也有了 30% 的转速,功耗来到了 200w ,所以如果小伙伴的显卡也是 16 GB 的话,可能无法使用原生的 Large 模型了,估计要 4090 24GB 级别的才能愉快玩耍。
生成样例
最后是一些生成的样本,感觉效果不如 GPT 给出来的好,不过毕竟是开源的,而且我用的模型是 Large-turbo 也不是 Large 估计效果还是会损失一些的。不过这些图片拿来做唱片的专辑倒是很合适。
luxury sedan drving in the downtown in a rainy night
Lenna image
anime girl fennec ears blue eyes black medium hair red highlights wearing a long black pants blue pattern standing in the middle of cyberpunk neon city at night smog china
这个样本和别人的 medium 模型的差距有点大,是我的使用姿势不对?
还有一些奇怪的提示词也是可以的哈,但是不推荐大家拿来做坏事……