ComfyUI 学习笔记,案例1:2_pass_txt2img
背景
ComfyUI 官方案例学习笔记,本文是跑出的第三个案例,但确是官网案例的第一个,所以运行起来总体比较顺利。整理几点页面使用技巧:
- 是网页版本,没有 IDEA,而且画布上没有滚动条,想看清楚内容,只能通过缩放、全选后左右拖动来查看需要关注的节点。
- Checkpoint 模型文件有两种 .ckpt 和 safetensors,它们是有区别的。
- 模型下载,刚了解 ComfyUI 的时候,下载模型全都访问不了,本人又是好公民,不知道翻 Wall 的方法,有点沮丧。后面找到一个国内镜像,又看到了希望。各种开源网站都搜一搜,模型下载就不是大问题。
案例描述
2_pass_txt2img
这个是自然排名的第一个案例,拖拽到操作区域后看到流程图如下:
分析流程,其中用到的模型有两个:
- Load Checkpoint 节点用的模型名称:
v2-1_768-ema-pruned.ckpt
。 - Load Upscale Model 节点用到的模型名称:
RealESRGAN_x4plus.pth
。
模型下载
网上提供的模型下载渠道有两个,一个是 HuggingFace,另一个是 CivitAI 站点,我一个都访问不通,替代方案是从 HuggingFace 镜像服务器 里面寻找。
第一个模型下载,搜索 v2-1_768-ema-pruned
模型:
点开模型文件:
发现是空的,去浏览器搜索,找到 这个地址 进行下载。
第二个模型下载,继续搜索 RealESRGAN_x4plus
:
第三个名称是完全一样的,就用这个,点开模型页面:
点击文件后面的下载按钮,下载到本机后将该文件移到 ComfyUI/models 目录。
运行案例
点击运行,报错了。示例用的 pruned 版本是 V2.1,换成本机有的 V1.5 版本:
修改运行次数为1,再次运行,这次有结果了:
出一张图用了 1403秒,还是有点慢的。再修改运行次数为 4,点击 Run:
调整模型
案例原来使用的模型是 v2-1_768-ema-pruned.ckpt
,选择这个模型运行报前面的错误,然后重新下载同名但是后缀为 safetensors 的文件放到本机模型目录。
修改模型名称为 v2-1_768-ema-pruned.safetensors
,由于图像生成太耗时了,只运行一次:
这次耗时比 V1.5 版本的模型多消耗了1000秒:
再跑一次,又得到一个不同的图片:
启示录
对比一下,两者的风格不太一样:前面的图片更接近现实风景,而这个图片有点油画或毕加索的艺术风格。神奇的是,没有出现两张相同的图片。
此外,在深度学习模型的存储和部署中,ckpt(checkpoint)和safetensors是两种常见的文件格式,它们在用途和特性上有所不同。
ckpt 文件是 PyTorch Lightning框架使用的格式,它不仅包含模型的权重参数,还包括优化器状态和训练元数据,使得用户可以无缝地恢复训练或执行推理。ckpt文件通常使用pickle序列化,这意味着它们可能包含恶意代码,如果来源不可信,加载ckpt文件可能存在安全风险。
safetensors文件,由HuggingFace推出,是一种新型的安全模型存储格式,专注于模型安全性、隐私保护和快速加载。safetensors文件仅包含模型的权重参数,不包括执行代码,减少了文件大小并提高了加载速度。safetensors文件使用numpy保存,只包含张量数据,没有任何代码,因此加载这类文件更加安全和快速。
这就能理解为什么 ckpt 的模型运行时报错,换成 safetensors 就能正常运行了。
模型地址
- v2-1_768-ema-pruned.safetensors模型下载地址
- RealESRGAN_x4plus模型下载地址