微调的好处:
可以让你突破换脸这种输入图片的场景约束,微调好的模型可以让你真正的文生图。 换脸只能根据输入的图片和视频来生成内容。
硬件
N卡 4060Ti 16GB ,64GB 系统内存
参考kohya的官方kohya-ss的sd3分支。
系统
Win10
下载与安装
1、下载
在目录里执行
git clone --branch=sd3-flux.1 https://github.com/bmaltais/kohya_ss.git
下载kohya_ss 源码。这里下载的是sd3-flux.1 分支。
2、安装
安装好python3.10.11
由于kphya需要CUDA12.4 , 所以安装CUDA12.4
查了一下[N卡网站](CUDA 12.6 Update 1 Release Notes (nvidia.com)) 我的驱动 546.33 不支持CUDA 12.4 , 所以更新windows N卡驱动到最新 561.09
然后下载安装cuda 12.4
https://developer.nvidia.com/cuda-12-4-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exe_local
安装好cuda 12.4后,打开cmd:
python --version
nvcc -V
进入刚刚下载好的kohya_ss 目录里:搭好梯子 set all_proxy=http://127.0.0.1:7890
cd kohya_ss
pip install rich
setup.bat
出现菜单,选择 1. Install kohya_ss GUI
1 安装成功后,然后选择 5. (Optional) Manually configure Accelerate
依次选择:
This machine
Which type of machine are you using? --- No distributed training
Do you want to run your training on CPU only (even if a GPU / Apple Silicon / Ascend NPU device is available)? [yes/NO]:NO
Do you wish to optimize your script with torch dynamo?[yes/NO]:NO
Do you want to use DeepSpeed? [yes/NO]: NO
What GPU(s) (by id) should be used for training on this machine as a comma-seperated list? [all]:all
Would you like to enable numa efficiency? (Currently only supported on NVIDIA hardware). [yes/NO]: yes
Do you wish to use FP16 or BF16 (mixed precision)? --- fp16
最后按 7 退出
准备数据集
1、图像处理
FLUX支持多种分辨率的图片,我个人使用1024x1024分辨率的高质量图像组成的数据集。
1) 先裁剪原始图片,把你要训练的那个物体裁剪出来,存成图片。
2) 然后调整图片到固定分辨率。
2、标注
我使用Joy_Caption 标注,然后添加标注词前缀。
1) 生成标注词。
2) 添加 标注词前缀 ,Instance Prompt 和 Class prompt, 比如: TYT, car,
, TYT代表Instance Prompt ; car代表Class prompt 。
3、配置数据集
将图片与同名文本存入一个目录下,这里假设为 /dataset/images/1_TYT car/
,
1
代表 “1_TYT car” 这个目录的文件在每个epoch训练1次 , 如果是5,就是每个epoch训练5次
TYT car
代表 “1_TYT car” 这个目录的文件的标注词,如果这个目录里面不带标注文件,这个目录名字的标注词会被kohya使用
下载模型
安装命令行工具:
pip install huggingface_hub[cli]
打开cmd终端: 从huggingface镜像站下载black-forest-labs官方的FLUX.1 dev模型, flux_text_encoders 模型
set HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download black-forest-labs/FLUX.1-dev flux1-dev.safetensors --local-dir=./models/ --cache-dir=./cache
huggingface-cli download black-forest-labs/FLUX.1-dev ae.safetensors --local-dir=./models/ --cache-dir=./cache
huggingface-cli download comfyanonymous/flux_text_encoders clip_l.safetensors --local-dir=./models/ --cache-dir=./cache
huggingface-cli download comfyanonymous/flux_text_encoders t5xxl_fp16.safetensors --local-dir=./models/ --cache-dir=./cache
打开webui,配置各个变量
进入kohya_ss 目录运行
gui.bat --listen 127.0.0.1 --server_port 7860 --inbrowser
浏览器页面出现后,选择LoRA
打开config,选择配置文件,配置文件具体内容如下: 可以新建一个json文件
{
"LoRA_type": "Flux1",
"LyCORIS_preset": "full",
"adaptive_noise_scale": 0,
"additional_parameters": "--cpu_offload_checkpointing",
"ae": "F:/kohya_ss/models/ae.safetensors",
"apply_t5_attn_mask": false,
"async_upload": false,
"block_alphas": "",
"block_dims": "",
"block_lr_zero_threshold": "",
"bucket_no_upscale": true,
"bucket_reso_steps": 64,
"bypass_mode": false,
"cache_latents": true,
"cache_latents_to_disk": true,
"caption_dropout_every_n_epochs": 0,
"caption_dropout_rate": 0,
"caption_extension": ".txt",
"clip_l": "F:/kohya_ss/models/clip_l.safetensors",
"clip_skip": 0,