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

Stable Diffusion LoRA模型加载实现风格自由

对于模型微调来说,直接进行微调需要的硬件配置和时间都是相当夸张的,但要想实现风格切换自由,也不是只有模型微调一个方式,LoRA技术可以说很完美的解决了这个难题。无论是二次元画风还是复古胶片质感,都只需要加载小巧的LoRA模型,就能立即解锁意料之外的百变创作可能!

一、LoRA是什么?为什么必学这个技能?

低秩适应技术:LoRA(Low-Rank Adaptation)通过微调模型参数实现特定风格/人物的生成

体积优势:相比完整模型(2-7GB),LoRA文件通常只有20-200MB

灵活组合:可同时加载多个LoRA实现风格叠加

兼容性强:支持SD1.5/SDXL等多种基础模型

二、准备工作清单

1 本地已安装好 diffusers 环境

如果没有的,下面给出简单步骤,验证安装

1 安装Python环境,创建虚拟环境
(因为要下载的组件比较大,防止污染主环境,建议在虚拟环境进行)
2 激活虚拟环境,添加全局国内镜像加速
(建立使用vscode打开虚拟环境所在目录,会自动加载虚拟环境,避免每次都要手动激活)

$ python -m venv .venv # 根据你的喜好命名虚拟环境,我这是是 .venv
$ pip config set global.index-url https://mirrors.aliyun.com/pypi/simple # 添加国内镜像加速
# 安装依赖pytorch,我硬件没有GPU,安装了cpu版的,硬件OK,去掉后面的参数即可
$ pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cpu
# 安装 diffusers 库
$ pip install diffusers transformers accelerate

2 基础模型下载

这里需要准备好你的基础大模型,我这里使用的是 Lykon/dreamshaper-8-lcm
你也可以根据你的本地情况加载已下载的模型

https://huggingface.co/Lykon/dreamshaper-8-lcm

3 LoRA模型下载

下载好的 模型文件(.safetensors.ckpt格式)

推荐平台:

  • Civitai(需科学上网)
  • LiblibAI(国内可用)

三、LoRA加载

这里直接给出关键代码,我没有使用WebUI是因为我发现本地CPU环境运行时,没有直接Python加载diffusers库高效,自己加个Qt界面,自定义功能也挺好用

一名程序媛

1 关键代码

from diffusers import StableDiffusionPipeline, LCMScheduler# 加载基础大模型
model_id = './models/dreamshaper-8-lcm'
pipeline = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float32
)
# 加载LCM减少推理步数
pipeline.scheduler = LCMScheduler.from_config(pipeline.scheduler.config
)
pipeline.to("cpu")# 加载LoRA模型文件
lora_id = './models/lora/hipoly_3dcg_v7-epoch.safetensors'
loraname = 'hipoly_3dcg_v7-epoch'
pipeline.load_lora_weights(lora_id, low_cpu_mem_usage=True,adapter_name=loraname
)
# 设置LoRA影响的权重(正常在LoRA下载页,作者会给出一些建议值)
pipeline.set_adapters(loraname,adapter_weights=0.6)# 生成图片
prompt = 'thighs and above,anime girl,front view,looking at viewer,official art,perfect face,sparkling eyes,smooth shading,vibrant colors,(detailed hair strands:1.2)'
nprompt = 'realistic,photo,grainy,lowres,long neck,malformed,deformed face,asymmetric eyes,bad anatomy,extra limbs,extra fingers,mutated hands,poorly drawn face,blurry,out of focus'
image = pipeline(prompt=prompt,negative_prompt=nprompt,num_inference_steps=4, # 加载LCM后4~8步即可width=512, height=768, # 人像建议竖版guidance_scale=0 # 0 禁用,否则影响LCM生成
).images[0]
image.save('output.jpg')

2 踩坑说明

关于Lora权重不起作用的情况下,一定一定要检查下是不是添加了 fuse 整合
fuse_lora() 将 LoRA 适配器的低秩矩阵权重动态合并到基础模型参数中,实现推理加速(约 15-30%)并减少显存占用‌。融合后,LoRA 参数不再独立存在,无法动态调整权重‌。

pipeline.fuse_lora() # 融合
pipeline.unfuse_lora() # 取消融合

文章转载自:

http://qxBZQ0k3.qsswb.cn
http://jEIPwZeZ.qsswb.cn
http://v41p6yu9.qsswb.cn
http://9admvqjQ.qsswb.cn
http://LXD19b3v.qsswb.cn
http://JKQPxFAF.qsswb.cn
http://vEyWyY3h.qsswb.cn
http://5zrmF8QG.qsswb.cn
http://8MCLpThv.qsswb.cn
http://kgZxMiQw.qsswb.cn
http://j2n5txKm.qsswb.cn
http://A6xjJUNZ.qsswb.cn
http://Pte4vBzx.qsswb.cn
http://ZAz5r3zP.qsswb.cn
http://CiHgrYN9.qsswb.cn
http://swhS17GW.qsswb.cn
http://d5NpvA4B.qsswb.cn
http://C6vnq9sF.qsswb.cn
http://nF22ugQr.qsswb.cn
http://zjeFjtae.qsswb.cn
http://3EDkkh6g.qsswb.cn
http://EMmjL0L3.qsswb.cn
http://nXHDWGzS.qsswb.cn
http://LK5LzT6C.qsswb.cn
http://tUhHj3q8.qsswb.cn
http://ZIZIUIkT.qsswb.cn
http://uAvos17R.qsswb.cn
http://Pgxt5FFl.qsswb.cn
http://4qca3Pqh.qsswb.cn
http://c57o0qVo.qsswb.cn
http://www.dtcms.com/a/136861.html

相关文章:

  • 精准狙击消费者?亚马逊新受众定向功能深度测评
  • Denoising Diffusion Probabilistic Models---解析
  • virtuoso 保存PDK model过程参数方法
  • 4. k8s核心概念 pod deployment service
  • AI工具箱源码+成品网站源码+springboot+vue
  • Python基础总结(五)之字典
  • CUDA的安装
  • 多个定时器同时工作时,会出现哪些常见的bug ,如何解决??(定时任务未实时更新但刷新后正常的问题分析)
  • 数据结构和算法(七)--树
  • WPF 依赖注入启动的问题
  • shell编程之正则表达式
  • 关于Newtonsoft.Json
  • 电动硬密封耐磨球阀:工业流体控制的革新之选-耀圣
  • 碰一碰发视频源码搭建:碰一碰贴牌。碰一碰定制化开发
  • 记录一次后台项目的打包优化
  • 深度学习 从入门到精通 day_01
  • 生信小白学Rust-02
  • 用户组与用户
  • 文件包含漏洞 不同语言危险函数导致的漏洞详解
  • 我想自己组装一台服务器,微调大模型通义千问2.5 Omni 72B,但是我是个人购买,资金非常有限,最省的方案
  • PriorityQueue(优先级队列)
  • 远程游戏软件需要具备的几个基础功能和要求
  • Mysql读写分离(2)-中间件mycat和实践方案
  • Python字典及操作
  • 继承-C++
  • spring security解析
  • LeetCode 热题 100_最长递增子序列(87_300_中等_C++)(动态规划)
  • 小甲鱼python【p5】
  • 第八节:React HooksReact 18+新特性-React Server Components (RSC) 工作原理
  • DISCO:利用大型语言模型提取反事实