Flux—lora训练

小白入门,分享自己的训练过程,可能有很多不对的地方,欢迎大佬指正

打标

目前训练的是HelloKitty,尝试的打标方式:

(1)打全标+触发词HelloKitty(tips:flux本身就对HelloKitty就有一定的认知,所以会将其和我们要训练的角色进行融合,不过生成的多为3d写实的画风,我们要训练的风格是2d的卡通风格,类似于上色简笔画)

(2)删除人物特征+触发词(HKT,asdw,HelloKitty:前两个触发词没怎么学到HelloKitty的特征进去)

(3)仅打标打一个触发词(暂时没有学习到模型中去,还需后续调参)

实例:(1)全打标+触发词:Hello Kitty, jianbihua, bow, hair bow, simple background, white background, solo, red bow, looking at viewer, standing, buttons, full body, outstretched arms, red dress, no humans, Three whiskers on both sides, two legs, two hands

(2)删人物特征和服饰+触发词:HelloKitty, standing, no humans, full body, buttons, overalls, clean background

(3)删人物特征+触发词(加了一个flux不认识的):slohkt\(cdkt), bow, hair bow, white background, simple background, looking at viewer, standing, no humans, full body, buttons, overalls, red bow, yellow shirt

数据集

首先是数据集的质量:要清晰没有遮挡人物的图片,背景尽量为纯色之类的(不然就要把背景上的每一个东西都标注清楚)

数量:15,20,30,57,66,这些数量的我都试过,数量越多模型学习的就越好(不过后面有一个15张的训练出来的比66长得要好)

部分数据集展示

底膜选择

我用的是flux_dev_fp8,这个好像是一个整合后的底模,可以在comfyUI上面使用(直接从huggingface上面下载就好)

参数

学习率和batch_size用的默认值,dim=alpha=32(alpha=1也行)

训练轮次:我一般都是根据repeats和batch_size和数据集数量来的,一般训练步数为2000步左右即可(调大epoch比增大每张图的重复次数有用耗时少)

分辨率:768,768,不训练人物不需要太高的分辨率,不然也会增大训练时长

还有优化器等参数:

--optimizer_args weight_decay=0.01 betas=0.9,0.95 \

--unet_lr=8e-4 \

--text_encoder_lr=2e-5 \

--keep_tokens=1 \

--fp8_base_unet \

--mixed_precision=bf16 \

--network_module=networks.lora_flux \

--gradient_accumulation_steps=1 \

--lr_scheduler=warmup_stable_decay \

--lr_decay_steps 300 \

--lr_scheduler_num_cycles=3 \

用的是云炼丹炉跑的,基本一炉2h-3h,但是现在的效果还是不好,hellokitty的人物特征没有很好的拟合到我加的触发词中去。

完整参数:

accelerate launch --debug --num_cpu_threads_per_process=2 flux_train_network.py \

--pretrained_model_name_or_path models/unet/flux1-dev-fp8.safetensors \

--ae models/vae/ae.safetensors \

--clip_l models/clip/clip_l.safetensors \

--t5xxl models/clip/t5xxl_fp16.safetensors \

--output_dir output/hello_Kitty \

--dataset_config config/dataset_config_Kitty2.toml \

--max_train_epochs=8 \

--learning_rate=1e-4 \

--output_name=flux-KT-data57_2 \

--save_every_n_epochs=1 \

--save_precision=bf16 \

--seed=42 \

--max_token_length=225 \

--caption_extension=.txt \

--vae_batch_size=4 \

--apply_t5_attn_mask \

--discrete_flow_shift=3.185 \

--timestep_sampling=flux_shift \

--sigmoid_scale=1 \

--model_prediction_type=raw \

--cache_text_encoder_outputs_to_disk \

--sdpa \

--train_batch_size=1 \

--resolution=1024,1024 \

--enable_bucket \

--min_bucket_reso=256 \

--max_bucket_reso=2048 \

--bucket_no_upscale \

--save_model_as=safetensors \

--clip_skip=2 \

--network_dim=32 \

--network_alpha=32 \

--persistent_data_loader_workers \

--cache_latents \

--cache_latents_to_disk \

--gradient_checkpointing \

--optimizer_type=PagedAdamW8bit \

--optimizer_args weight_decay=0.01 betas=0.9,0.95 \

--unet_lr=5e-5 \

--text_encoder_lr=1e-5 \

--keep_tokens=2 \

--fp8_base_unet \

--mixed_precision=bf16 \

--network_module=networks.lora_flux \

--gradient_accumulation_steps=1 \

--lr_scheduler=cosine_with_min_lr \

--lr_scheduler_num_cycles=2 \

--lr_decay_steps=0.5 \

--lr_scheduler_min_lr_ratio=0.1 \

--sample_every_n_epochs=2 \

--logging_dir /root/tf-logs \

--log_with tensorboard \

--sample_prompts models/prompts/prompts.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值