当前位置: 首页 > news >正文

解决2080Ti使用节点ComfyUI-PuLID-Flux-Enhanced中遇到的问题

使用蓝大的工作流《一键同时换头、换脸、发型、发色之双pulid技巧》 

刚开始遇到的是不支持bf16的错误

根据《bf16 is only supported on A100+ GPUs #33》中提到,修改pulidflux.py中的dtype 为

dtype = torch.float16 后,出现新的错误,这个新错误可能是由于加载模型的节点改变而造成的(见后面模型加载节点对模型dtype的转换可知):

KSampler

expected scalar type Float but found Half

 问chatgpt结果如下:

 然后发现flux类的模型dtype如下:

flux1-dev-fp8-e4m3fn.safetensors 
dtype is ---->torch.float8_e4m3fn

flux1-fill-dev_fp8.safetensors
dtype is ---->torch.float8_e4m3fn
 

flux1-fill-dev.safetensors
dtype is ---->torch.bfloat16

flux1-dev.safetensors
dtype is ---->torch.float16

flux1-fill-dev-Q4_1.gguf
dtype is ---->torch.bfloat16

因为在加载模型时,进行了dtype转换:

Loading PuLID-Flux model.
model weight dtype torch.float8_e4m3fn, manual cast: torch.float32
model_type FLUX 

Loading PuLID-Flux model.
model weight dtype torch.float16, manual cast: None
model_type FLUX

gguf qtypes: F32 (471), Q4_1 (304), F16 (5)
model weight dtype torch.bfloat16, manual cast: torch.float32
model_type FLUX 

上面加载模型的节点输出信息,在comfyui核心代码 D:\AI\ComfyUI\comfy\model_base.py 中的语句如下:

   logging.info("model weight dtype {}, manual cast: {}".format(self.get_dtype(), self.manual_cast_dtype))

所以数据类型torch.float8_e4m3fn, torch.float8_e5m2, torch.bfloat16只能适配fp32,于是修改pulidflux.py中相关代码如下,问题解决,运行正常,结果正常:

    def apply_pulid_flux(self, model,.....):
        .......
        # For 8bit use bfloat16 (because ufunc_add_CUDA is not implemented)
        # For 2080Ti use float16 or float32 (because 2080ti not support bf16)
        if dtype in [torch.float8_e4m3fn, torch.float8_e5m2, torch.bfloat16]:
            #dtype = torch.bfloat16
            dtype = torch.float32

当然,由bf16变为fp32后,显存占用肯定就大了。 

注意,当第2次运行时,依然会出现错误:KSampler expected scalar type Float but found Half,需要卸载模型及释放节点缓存,重新运行,蓝大的工作流,使用了2次Apply PuLID Flux节点而且加载的模型不一样,如果只使用1个Apply PuLID Flux节点,估计没有这个问题。

相关文章:

  • lvs+keepalived+dns高可用
  • 使用nuxt3+tailwindcss4+@nuxt/content3在页面渲染 markdown 文档
  • 红宝书第四十讲:React 核心概念:组件化 虚拟 DOM 简单教程
  • forms+windows添加激活水印
  • 塔能科技解节能密码,工厂成本“效益方程式”精准破题
  • AF3 ProteinDataset类的_process方法解读
  • 操作系统之进程同步
  • python的flask框架连接数据库
  • 区块链从专家到小白
  • GAS:车载体验的智能革新力量
  • Rag实现流程
  • 软件界面设计:打造用户喜爱的交互体验
  • 新版雷电模拟器过应用检测技术详解
  • leetcode 264. Ugly Number II
  • ReactNative 使用腾讯的MMKV持久化存储
  • 深入浅出:信号灯与系统V信号灯的实现与应用
  • 区块链点燃游戏行业新未来——技术变革与实践指南
  • 【Linux网络与网络编程】08.传输层协议 UDP
  • 互联网三高-数据库高并发之分库分表
  • PostgreSQL 的统计信息
  • 做旅游网站需要引进哪些技术人才/好看的网页设计作品
  • 网站功能介绍是什么/短视频推广
  • 高端的网站制作/制作公司官网多少钱
  • 网站开发及建设赔偿条款/免费推广有哪些
  • 免费推广网站下载/公司排名seo
  • 网站架构模板/怎样做品牌推广