亦菲、热巴...我来了!AI炼丹最简易教程

经常用AI绘画的朋友一定知道LoRA(Low-Rank Adaptation),绘画时用它对大模型进行微调,能达到事半功倍的效果。

比如下面的视频,就是用某明星的LoRA生图,再以图生视频而成:

怎么才能训练自己的LoRA呢?

以往这项工作对硬件要求较高,过程相对繁琐,而最近一款名为Flux Gym的工具,可以方便地为当前最强的Flux模型训练LoRA:

尤其是:显存最低只需12GB,门槛降低不少!


一、安装Flux Gym

要本地部署Flux Gym,首先请保证电脑已安装了Python、Git等必要软件,并保持网络畅通

打开你想安装Flux Gym的硬盘目录,比如图中想放在H盘根目录:

在这里输入cmd并回车,会跳出命令行窗口,接下来的操作均在该窗口进行:

依次输入并执行下面的命令:

git clone https://github.com/cocktailpeanut/fluxgym

cd fluxgym

git clone -b sd3 https://github.com/kohya-ss/sd-scripts

python -m venv env

env\Scripts\activate

cd sd-scripts

pip install -r requirements.txt

cd …

pip install -r requirements.txt

pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu121


二、安装Flux Gym所需模型

至此Flux Gym初步安装完成,但还需要下载下面两个模型,放在 models/clip 目录下:

https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors?download=true

https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp16.safetensors?download=true

再下载一个模型,放在 models/vae 目录下:

https://huggingface.co/cocktailpeanut/xulf-dev/resolve/main/ae.sft?download=true

下载最后一个模型,放在 models/unet 目录下:

https://huggingface.co/cocktailpeanut/xulf-dev/resolve/main/flux1-dev.sft?download=true

模型文件体积较大且需连接外网,所以务必保持网络畅通

模型全部放好后,Flux Gym就算部署完成,接下来回到该工具的根目录下,执行以下命令,即可启动Flux Gym:

python app.py

为避免每次运行都要手动激活环境,可建立一个文本文件,输入下列内容:

@echo off
python -m venv env
call env\Scripts\activate.bat
python app.py
pause

修改该文件名为批处理文件,比如run.bat,今后只要运行run.bat即可。


三、Flux Gym的使用方法

运行工具后会弹出后台命令窗口(请保持开启),复制其中的网址(比如:http://127.0.0.1:7860)到网页打开即可:

这是Flux Gym主界面,贴心地标明了第一步、第二步、第三步:

第一步是输入你训练的LoRA的名字,以及触发词,选择你显存的大小:

第二步是加载你已经收集好的素材,这里的测试,我准备了25张某女明星的图片:

一般的图片格式如jpg、webp均可支持,但带通道的png图片可能出错。

为保障训练质量,需要给每幅图片打标(添加tag),以往这也是个麻烦事,现在Flux Gym引入了自动打标工具,点击按钮即可:

首次运行自动打标工具时,会下载相应模型,完成打标后的界面如图:

接下来要设置一些参数,图中这几项保持默认即可(图片数量越多,训练步数越多):

这几项如果保持默认,则训练过程中看不到示例图;如果手动设置,训练过程可以看到示例图:

设置每100步生成一幅示例图,并且输入一组你想要的关键词,示例图会据此随机生成。

第三步,终于可以开始训练了!根据图片数量、电脑配置,训练时间从几十分钟到几小时不等:

点击开始训练之后出来一些提示信息:

下方左边的数字就是已经训练的步数,右上方“Autoscroll”可开启或关闭,如开启,画面会持续刷新在页面底部:

可以看到,最初的训练图像,基本是牛头不对马嘴:

训练时间越长,出图效果越好:

Flux Gym的内存占用最多可以到30多GB(测试用PC的内存为96GB):

训练完成会弹出提示:

接着到outputs这个文件夹下就能找到训练成果:


四、使用炼成的LoRA画图

将不带序号的这个LoRA文件拷贝到你的AI画图工具的相应目录里。

画图工具就以Stable Diffusion Forge为例,它是Automatic1111的强化替代版,界面基本一样。

首先,将LoRA文件放在 /webui/models/Lora/Flux 下面:

在Stable Diffusion Forge的操作主界面,选择flux,大模型选择flux1-dev-fp8:

加载LoRA的界面也和以前的Automatic1111一样:

测试一下(注意最前面要加触发词),于是得到下面的提示词:

一个女人穿着西装走在中国城市街头,周围是行人和车辆,全身镜头
sijiali a woman Walking in a suit on a Chinese city street surrounded by pedestrians and vehicles, full body shot

再换一个场景:

一名身着深v红色连衣裙的女子面对镜头,与一个金属机器人男子,在一个充满未来感的舞厅里共舞,周围围着一大群观众
sijiali, A woman in a red dress, deep v, faces the camera, dancing with a metal robot man in a futuristic ballroom surrounded by a large audience lora:sijiali:1

用谷歌搜图倒查AI生成的图像,结果搜索引擎也难辨真假:

至此算是大功告成!

注:LoRA的用途广泛,并不只是用来画人物,大家不妨自行尝试,早日练出自己的第一炉“仙丹”!

资料软件免费放送

次日同一发放请耐心等待

关于AI绘画技术储备

学好 AI绘画 不论是就业还是做副业赚钱都不错,但要学会 AI绘画 还是要有一个学习规划。最后大家分享一份全套的 AI绘画 学习资料,给那些想学习 AI绘画 的小伙伴们一点帮助!

感兴趣的小伙伴,赠送全套AIGC学习资料和安装工具,包含AI绘画、AI人工智能等前沿科技教程,模型插件,具体看下方。

需要的可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

**一、AIGC所有方向的学习路线**

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述
这份完整版的学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

先解释一下题目中的数据定义: - X DW10,20.30,40,50 表示定义了一个名为 X 的数据段,其中包含了 5 个双字(即 10 个字节)的数据,分别是 10、20.30(实数)、40、50,按照从左到右的顺序存放。 - Y DB4 表示定义了一个名为 Y 的数据段,其中包含了 4 个字节的数据,每个字节都是一个无符号整数。 - Z DB? 表示定义了一个名为 Z 的数据段,其中包含了 1 个字节的数据,初始值未知。 - W DB? 表示定义了一个名为 W 的数据段,其中包含了 1 个字节的数据,初始值未知。 接下来是表达式计算的过程: 1. 将 X 中的所有数据相加得到总和 S,即 S = 10 + 20.30 + 40 + 50 = 120.30。 2. 将 Y 中的所有数据相加得到总和 T,即 T = Y[0] + Y[1] + Y[2] + Y[3]。 3. 计算商 Q 和余数 R,其中 Q = INT(S / T) = INT(120.30 / T),R = S - Q * T。 4. 将 Q 和 R 分别存入 Z 和 W。 根据以上步骤,可以编写如下代码: ``` ; 数据段 姓名DW DW 0 达瓦DW DW 0 格桑普布DW DW 0 曲吉热巴DW DW 0 扎西次仁DB DB 0, 0, 0, 0 朗杰DB DB ?, 0 ; 代码段 assume cs:代码段, ds:数据段 start: ; 将 X 中的所有数据相加得到总和 S mov eax, [姓名DW] add eax, [达瓦DW] fld [格桑普布DW] fadd dword ptr [曲吉热巴DW] fadd SBYTE ptr [扎西次仁DB] fstp qword ptr [esp] ; 将浮点数结果保存到栈顶 ; 将 Y 中的所有数据相加得到总和 T movzx eax, BYTE ptr [朗杰DB] add al, BYTE ptr [朗杰DB+1] add al, BYTE ptr [朗杰DB+2] add al, BYTE ptr [朗杰DB+3] ; 计算商 Q 和余数 R mov ecx, eax ; ecx = T fild qword ptr [esp] ; 将 S 转为浮点数 fidiv dword ptr [朗杰DB] ; ST(0) = S / T fistp dword ptr [朗杰DB] ; Q = ST(0),保存到 Z 中 mov ebx, eax ; ebx = Q imul ecx ; edx:eax = T * Q mov eax, [姓名DW] add eax, [达瓦DW] fld [格桑普布DW] fadd dword ptr [曲吉热巴DW] fadd SBYTE ptr [扎西次仁DB] fsub st(0), st(1) ; ST(0) = S - T * Q fistp dword ptr [esp] ; R = ST(0),保存到 W 中 mov BYTE ptr [朗杰DB+1], al ; 将 R 存入 W 中 ; 程序结束 mov ah, 4ch int 21h end start ``` 需要注意几点: - 浮点数运算需要使用 FPU 指令,而且 FPU 寄存器的操作是栈式的。 - 在进行浮点数运算之前,需要先将整数转为浮点数,可以使用 FILD 指令。 - 在进行整数除法之前,需要先将浮点数转为整数,可以使用 FIST 指令。由于 FIST 指令会将结果存入内存中,因此需要指定存储地址。 - 由于浮点数运算和整数运算使用的寄存器不同,因此需要注意保存和恢复现场。在上面的代码中,将浮点数结果保存到栈顶,然后再从栈顶取出进行整数运算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值