从0到1,AI我来了- (7)AI应用-ComfyUI-III-Flux模型
上篇我们利用已有的工作流,完成了一个已有comfyUi workflow 的美女制作,有美女,需要野兽来配,最近黑森林的Flux 很火,我们也来实践一下生成野猴子黑悟空。
这篇文章主要内容分三部分:
一、认识Flux,选择自己的电脑配置,选择合适版本的Flux模型
一、ComfyUI 如何集成Flux 模型?
二、发挥想象,Step By Step 制作黑悟空图片
三、踩坑总结
一、认识Flux
1、Flux.1 介绍【Black Forest Labs - Frontier AI Lab】
Flux.1是由黑森林实验室推出的一套生成图像模型,这个实验室在文本到图像生成和语言理解方面有着出色的能力。Flux.1在视觉质量和图像细节方面表现出色,特别是在文本生成、复杂构图和手部表现上。该模型对手部细节进行了优化,显著改善了稳定扩散模型中常见的手指畸形问题。Flux.1还提升了图像质量,缩小了与顶尖生成图像软件Midjourney之间的差距。
2、Flux.1 模型类型(见附录,可根据你的显存大小选择)
这里我的内存是Mac 电脑,96G内存,所以dev 16p (23G)/8p (17G) 版本,都下载了,待会跑跑看下效果有啥差异。
二、ComfyUI 如何集成Flux 模型?
1、先跑个最简单的。
放弃吧,当前mac 不适合跑Flux,跑出来图全是噪点, 。。。。,能跑了,留个言,滴下我~~。
附录:Flux 模型类型
FLUX.1 [pro]:FLUX.1的最佳版本,提供尖端的图像生成性能,具有一流的提示跟随能力、视觉质量、图像细节和输出多样性。其正在逐步提升FLUX.1 [pro]在API中的推理计算能力,还提供专门的定制企业解决方案。
FLUX.1 [dev]:FLUX.1 [dev] 是一个开放权重、指导蒸馏的模型,适用于非商业应用。它直接从 FLUX.1 [pro] 蒸馏而来,具备与之相似的质量和响应能力,同时比同尺寸的标准模型更高效。
注*:引导蒸馏模型(Guidance-Distilled Model)是一种在机器学习和深度学习领域中使用的技术,特别是在模型压缩和知识蒸馏的上下文中。其基本思路是通过将一个大模型(通常是性能较强但计算开销较大的模型)所学到的知识传递给一个较小的模型,从而使得小模型在保持较高性能的同时,减少计算资源的消耗。
FLUX.1 [schnell]: Flux最快模型专为本地开发和个人使用而设计。FLUX.1 [schnell] 在 Apache 2.0 许可证下公开可用。与 FLUX.1 [dev] 类似。
下载地址:https://huggingface.co/black-forest-labs
其他版本:https://huggingface.co/city96/FLUX.1-dev-gguf/tree/main
GGUF(Generalized Gaussian Unit Float)量化模型是一种用于深度学习模型的数据表示方法,它通过减少模型中数值的精度来降低模型的内存占用和加速计算过程 。
(如何选择,根据你的显存大小来,文件大小<你的显卡大小)
二、遇到的问题
File "/opt/homebrew/anaconda3/envs/comfyui/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1562, in _call_impl
return forward_call(*args, **kwargs)
File "/opt/tech/git/ComfyUI/comfy/ops.py", line 76, in forward
return self.forward_comfy_cast_weights(*args, **kwargs)
File "/opt/tech/git/ComfyUI/comfy/ops.py", line 71, in forward_comfy_cast_weights
weight, bias = cast_bias_weight(self, input)
File "/opt/tech/git/ComfyUI/comfy/ops.py", line 50, in cast_bias_weight
bias = cast_to(s.bias, bias_dtype, device, non_blocking=non_blocking, copy=has_function)
File "/opt/tech/git/ComfyUI/comfy/ops.py", line 28, in cast_to
return weight.to(dtype=dtype, copy=copy)
TypeError: Trying to convert Float8_e4m3fn to the MPS backend but it does not have support for that dtype.