ComfyUI - 在 ComfyUI 中配置 Flux + LoRA 的组合流程优化图像属性

欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://spike.blog.csdn.net/article/details/141638928

免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。


在 Diffusion 图像生成框架中,LoRA (Low-Rank Adaptation) 是用于模型微调的技术,通过在模型的权重矩阵中引入低秩结构来实现。这种方法,可以在不显著增加模型参数数量的情况下,有效地调整和优化模型的行为。具体来说,LoRA 通过在权重矩阵中添加一个小型的低秩矩阵,来调整原有的权重,从而实现对模型的微调。这样做的好处是可以保持模型整体参数量的可控性,同时允许模型在特定任务上进行更精细的调整,提高生成图像的质量和多样性。在 Diffusion 模型中,LoRA 可以应用于条件生成任务,使得模型能够更好地适应不同的输入条件,生成更加符合预期的图像结果。

flux1dev-asianfemale 的 LoRA 为例,演示如何使用:

flux1dev-asianfemale

下载模型,将模型放入 ComfyUI 的 LoRA 文件夹,即:

ComfyUI/models/loras/flux1_asian_female_v0.1.safetensors

启动 ComfyUI:

 nohup python3 -u main.py --listen 0.0.0.0 > nohup.run_main.out &

在基础流程中,添加节点 LoRA加载器仅模型 (LoRALoaderModelOnly),直接连接在 UNET 加载器 (Load Diffusion Model) 之后即可,其余不变,例如:

LoRA

调整 LoRA 的权重,调整至 0.4~0.6 即可。

输入提示词:

a photo of a woman.

测试图像输出,左侧是使用 LoRA 权重 0.6,使用 LoRA 之后图像更偏向于亚洲人脸,右侧是原图,即:

LoRA

需要注意的是,LoRA 需要适配权重精度,FP8 或 FP16,与训练相关,例如 flux1dev-asianfemale 为例,需要适配 fp8_e4m3fn,与 Diffusion 模型无关,与 CLIP 模型无关。

  • 适用于 Flux 的 FP8 版 flux1-dev-fp8.safetensors ,权重类型 fp8_e4m3fnt5xxl_fp8_e4m3fn.safetensors 模型
  • 适用于 Flux 的 FP8 版 flux1-dev.safetensors 权重类型 fp8_e4m3fnt5xxl_fp16.safetensors 模型

当 Diffusion 模型 (Flux) 的精度,与 LoRA 模型的精度不匹配时,图像输出异常:

Error

如果遇到异常:module 'torch' has no attribute 'float8_e4m3fn'

则表示 PyTorch 版本过低,安装最新版本即可,例如 torch==2.4.0

pip3 install torch==2.4.0 torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple

测试 PyTorch 是否安装成功,即:

python

import torch
print(torch.__version__)  # 2.4.0
print(torch.cuda.is_available())  # True
exit()

测试自训练的 LoRA 模型的效果,权重依次是 0.0 -> 0.6 -> 0.8 -> 1.0:

提示词:

This is a photo of a girl named [xxx]. The image is a high-resolution photograph of a young Asian woman with long, straight, dark brown hair and bangs that frame her face.

这是一张名叫 [xxx] 的女孩的照片。这张照片是一张高分辨率的照片,展示了一位年轻的亚洲女性,她有着长直的深棕色头发和刘海,刘海勾勒出她的脸庞。

图像如下 (图像来自于网络,仅用于测试),LoRA 权重 0.0 -> 0.6:
Img
图像如下 (图像来自于网络,仅用于测试),LoRA 权重 0.8 -> 1.0:
img

当你考虑到LoRA技术对于提升大型模型的微调效率和性能,以及SAM模型在图像分割中的灵活性和实用性时,你可能会好奇如何将这两者结合起来以解决实际问题。为了帮助你深入理解并掌握如何在图像分割中使用LoRA优化SAM模型,我推荐你参考《LoRA与SAM模型结合实现图像分割的代码演示》这份资料。该资源将为你展示具体的代码实现,帮助你将理论知识转化为实践操作。 参考资源链接:[LoRA与SAM模型结合实现图像分割的代码演示](https://wenku.csdn.net/doc/28x6u3mpqm?spm=1055.2569.3001.10343) 在使用LoRA优化SAM模型时,首先需要对SAM模型的预训练权重进行低秩分解,然后对分解后的低秩权重进行微调。这样做可以显著减少模型更新所需的计算资源,同时保持模型性能。具体实现中,你可能需要使用PyTorch框架的梯度裁剪和低秩权重更新机制来实现LoRA。 以下是一个简化的代码示例,用于说明如何结合LoRA技术和SAM模型进行图像分割: ```python import torch from segment_anything import SamAutomaticMaskGenerator, sam_model_registry from lora_sam import LoRA_Sam # 假设这个类已经实现了LoRA与SAM模型的结合 # 加载预训练的SAM模型 sam_checkpoint = 参考资源链接:[LoRA与SAM模型结合实现图像分割的代码演示](https://wenku.csdn.net/doc/28x6u3mpqm?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ManonLegrand

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值