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

网站建设合同严瑾深圳防疫今天最新规定

网站建设合同严瑾,深圳防疫今天最新规定,企业网站建站系统,亚洲网站建设中Rocky Ding 公众号#xff1a;WeThinkIn 写在前面 【人人都是算法专家】栏目专注于分享Rocky在AI行业中对业务/竞赛/研究/产品维度的思考与感悟。欢迎大家一起交流学习#x1f4aa; 大家好#xff0c;我是Rocky。 Rocky在知乎上持续撰写Stable Diffusion XL全方位的解析文章… Rocky Ding 公众号WeThinkIn 写在前面 【人人都是算法专家】栏目专注于分享Rocky在AI行业中对业务/竞赛/研究/产品维度的思考与感悟。欢迎大家一起交流学习 大家好我是Rocky。 Rocky在知乎上持续撰写Stable Diffusion XL全方位的解析文章深入浅出完整解析Stable Diffusion XLSDXL核心基础知识希望大家给这篇文章多多点赞让Rocky的劳动有更多动力也欢迎大家关注Rocky的知乎号Rocky Ding。文章内容主要包括SDXL模型结构从0到1训练SDXL以及LoRA教程从0到1搭建SDXL推理流程最新SDXL资源汇总相关SDXL插件工具使用等后续会将全部内容都在公众号内分享 本文介绍的内容是节选自 深入浅出完整解析Stable Diffusion XLSDXL核心基础知识 文章中的从0到1使用Stable Diffusion XL训练LoRA模型章节希望能让大家快速学会SDXL LoRA的训练与使用让每个人有拥有属于自己的AI绘画模型 话不多说在Rocky毫无保留的分享下让我们开始学习吧 Soenjoy 正文开始 ----【目录先行】---- SDXL训练初识 配置训练环境与训练文件 SDXL训练数据集制作 基于SDXL训练LoRA模型 【一】SDXL训练初识 Stable Diffusion系列模型的训练主要分成一下几个步骤Stable Diffusion XL也不例外 训练集制作数据质量评估标签梳理数据清洗数据标注标签清洗数据增强等。训练文件配置预训练模型选择训练环境配置训练步数设置其他超参数设置等。模型训练运行SDXL模型/LoRA模型训练脚本使用TensorBoard监控模型训练等。模型测试将训练好的自训练SDXL模型/LoRA模型用于效果评估与消融实验。 讲完SDXL训练的方法论Rocky再向大家推荐一些SDXL训练资源 https://github.com/qaneel/kohya-trainer本文中主要的训练工程https://github.com/Linaqruf/kohya-trainer次项目中的kohya-trainer-XL.ipynb和kohya-LoRA-trainer-XL.ipynb可以用于制作数据集和配置训练参数https://github.com/bmaltais/kohya_ss此项目可以GUI可视化训练Rocky整理优化过的SDXL完整训练资源SDXL-Train项目大家只用在SDXL-Train中就可以完成SDXL的模型训练工作方便大家上手实操。SDXL-Train项目资源包可以通过关注公众号WeThinkIn后台回复“SDXL-Train”获取。 目前我们对SDXL的训练流程与所需资源有了初步的了解接下来就让我们跟随着Rocky的脚步从0到1使用SDXL模型和训练资源一起训练自己的SDXL LoRA绘画模型吧 【二】配置训练环境与训练文件 首先我们需要下载两个训练资源只需在命令行输入下面的代码即可 git clone https://github.com/qaneel/kohya-trainer.gitgit clone https://github.com/Linaqruf/kohya-trainer.gitqaneel/kohya-trainer项目包含了Stable Diffusion XL的核心训练脚本而我们需要用Linaqruf/kohya-trainer项目中的kohya-trainer-XL.ipynb和kohya-LoRA-trainer-XL.ipynb文件来生成数据集制作脚本和训练参数配置脚本。 我们打开Linaqruf/kohya-trainer项目可以看到里面包含了两个SDXL的.ipynb文件 接着我们再打开qaneel/kohya-trainer项目里面包含的两个python文件就是我们后续的训练主脚本 正常情况下我们需要运行Linaqruf/kohya-trainer项目中两个SDXL的.ipynb文件的内容生成训练数据处理脚本数据标注数据预处理数据Latent特征提取等和训练参数配置文件。 我们使用数据处理脚本完成训练集的制作然后再运行qaneel/kohya-trainer项目的训练脚本同时读取训练参数配置文件为SDXL模型的训练过程配置超参数。 完成上面一整套流程SDXL模型的训练流程就算跑通了。但是由于Linaqruf/kohya-trainer项目中的两个.ipynb文件内容较为复杂整个流程比较繁锁对新手非常不友好并且想要完成一整套训练流程需要我们一直在两个项目之前切换非常不方便。 所以Rocky这边帮大家对两个项目进行了整合归纳总结了简单易上手的SDXL模型以及相应LoRA模型的训练流程制作成SDXL完整训练资源SDXL-Train项目大家只用在SDXL-Train中就可以完成SDXL的模型训练工作方便大家上手实操。 SDXL-Train项目资源包可以通过关注公众号WeThinkIn后台回复“SDXL-Train”获取。 下面是SDXL-Train项目中的主要内容大家可以看到SDXL的数据处理脚本与训练脚本都已包含在内 我们首先进入SDXL-Train项目中安装SDXL训练所需的依赖库我们只需在命令行输入以下命令即可 cd SDXL-Trainpip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple some-package安装好所有SDXL训练所需的依赖库后我们还需要设置一下SDXL的训练环境我们主要是用accelerate库的能力accelerate库能让PyTorch的训练和推理变得更加高效简洁。我们只需在命令行输入以下命令并对每个设置逐一进行填写即可 # 输入以下命令开始对每个设置进行填写 accelerate configIn which compute environment are you running? # 选择This machine即本机 This machine Which type of machine are you using? # 选择单卡或是多卡训练如果是多卡则选择multi-GPU若是单卡则选择第一个选项 multi-GPU How many different machines will you use (use more than 1 for multi-node training)? [1]: 1 #几台机器用于训练 Do you wish to optimize your script with torch dynamo?[yes/NO]: # 输入回车即可 Do you want to use DeepSpeed? [yes/NO]: # 输入回车即可 Do you want to use FullyShardedDataParallel? [yes/NO]: # 输入回车即可 Do you want to use Megatron-LM ? [yes/NO]: # 输入回车即可 How many GPU(s) should be used for distributed training? [1]:2 # 选择多少张卡投入训练 What GPU(s) (by id) should be used for training on this machine as a comma-seperated list? [all]:all # 输入all即可 Do you wish to use FP16 or BF16 (mixed precision)? # 训练精度可以选择fp16 fp16 # 完成配置后配置文件default_config.yaml会保存在/root/.cache/huggingface/accelerate下 accelerate configuration saved at /root/.cache/huggingface/accelerate/default_config.yaml完成上述的流程后接下来我们就可以进行SDXL训练数据的制作和训练脚本的配置流程了 【三】SDXL训练数据集制作 首先我们需要对数据集进行清洗和传统深度学习时代一样数据清洗工作依然占据了AIGC时代模型训练70%-80%左右的时间。 并且这个过程必不可少因为数据质量决定了机器学习的上限而算法和模型只是在不断逼近这个上限而已。 我们需要筛除分辨率较低质量较差**比如说768*768分辨率的图片 100kb**存在破损以及和任务目标无关的数据接着去除数据里面可能包含的水印干扰文字等最后就可以开始进行数据标注了。 数据标注可以分为自动标注和手动标注。自动标注主要依赖像BLIP和Waifu Diffusion 1.4这样的模型手动标注则依赖标注人员。 1使用BLIP自动标注caption 我们先用BLIP对数据进行自动标注BLIP输出的是自然语言标签我们进入到SDXL-Trian/finetune/路径下运行以下代码即可获得自然语言标签caption标签 cd SDXL-Trian/finetune/ python make_captions.py /数据路径 --caption_weights “/本地BLIP模型路径” --batch_size8 --beam_search --min_length5 --max_length75 --debug --caption_extension.caption --max_data_loader_n_workers2从上面的代码可以看到我们第一个传入的参数是训练集的路径。 –caption_weights表示加载的本地BLIP模型如果不穿入本地模型路径则默认从云端下载BLIP模型。 –batch_size表示每次传入BLIP模型进行前向处理的数据数量。 –beam_search设置为波束搜索默认Nucleus采样。 –min_length设置caption标签的最短长度。 –max_length设置caption标签的最长长度。 –debug如果设置将会在BLIP前向处理过程中打印所有的图片路径与caption标签内容以供检查。 –caption_extension设置caption标签的扩展名一般为.caption。 –max_data_loader_n_workers设置大于等于2加速数据处理。 讲完了上述的运行代码以及相关参数下面Rocky再举一个例子 让大家能够更加直观的感受到BLIP处理数据生成caption标签的过程 上图是单个图像的标注示例整个数据集的标注流程也是同理的。等整个数据集的标注后Stable Diffusion XL训练所需的caption标注就完成了。 2使用Waifu Diffusion 1.4自动标注tag 接下来我们可以使用Waifu Diffusion 1.4进行自动标注Waifu Diffusion 1.4输出的是tag关键词我们依然进入到SDXL-Trian/finetune/路径下运行以下代码即可获得tag自动标注 cd SDXL-Trian/finetune/ python tag_images_by_wd14_tagger.py /数据路径 --batch_size8 --model_dir/本地路径/wd-v1-4-moat-tagger-v2 --remove_underscore --general_threshold0.35 --character_threshold0.35 --caption_extension.txt --max_data_loader_n_workers2 --debug --undesired_tags从上面的代码可以看到我们第一个传入的参数是训练集的路径。 –batch_size表示每次传入Waifu Diffusion 1.4模型进行前向处理的数据数量。 –model_dir表示加载的本地Waifu Diffusion 1.4模型路径。 –remove_underscore如果开启会将输出tag关键词中的下划线替换为空格。 –general_threshold设置常规tag关键词的筛选置信度。 –character_threshold设置人物特征tag关键词的筛选置信度。 –caption_extension设置tag关键词标签的扩展名一般为.txt。 -max_data_loader_n_workers设置大于等于2加速数据处理。 –debug如果设置将会在Waifu Diffusion 1.4模型前向处理过程中打印所有的图片路径与tag关键词标签内容以供检查。 –undesired_tags设置不需要输出的tag关键词。 下面Rocky依然用美女图片作为例子 让大家能够更加直观的感受到Waifu Diffusion 1.4模型处理数据生成tag关键词标签的过程 3补充标注特殊tag 完成了caption和tag的自动标注之后如果我们需要训练一些特殊标注的话还可以进行手动的补充标注。 SDXL-Trian项目中也提供了对数据进行补充标注的代码Rocky在这里将其进行提炼总结方便大家直接使用。 大家可以直接拷贝以下的代码并按照Rocky在代码中提供的注释进行参数修改然后运行代码即可对数据集进行补充标注 import os# 设置为本地的数据集路径 train_data_dir /本地数据集路径# 设置要补充的标注类型包括[.txt, .caption] extension .txt # 设置要补充的特殊标注 custom_tag WeThinkIn# 若设置sub_folder --all时将遍历所有子文件夹中的数据默认为。 sub_folder # 若append设为True则特殊标注添加到标注文件的末尾 append False# 若设置remove_tag为True则会删除数据集中所有的已存在的特殊标注 remove_tag False recursive Falseif sub_folder :image_dir train_data_dir elif sub_folder --all:image_dir train_data_dirrecursive True elif sub_folder.startswith(/content):image_dir sub_folder else:image_dir os.path.join(train_data_dir, sub_folder)os.makedirs(image_dir, exist_okTrue)# 读取标注文件的函数不需要改动 def read_file(filename):with open(filename, r) as f:contents f.read()return contents# 将特殊标注写入标注文件的函数不需要改动 def write_file(filename, contents):with open(filename, w) as f:f.write(contents)# 将特殊标注批量添加到标注文件的主函数不需要改动 def process_tags(filename, custom_tag, append, remove_tag):contents read_file(filename)tags [tag.strip() for tag in contents.split(,)]custom_tags [tag.strip() for tag in custom_tag.split(,)]for custom_tag in custom_tags:custom_tag custom_tag.replace(_, )if remove_tag:while custom_tag in tags:tags.remove(custom_tag)else:if custom_tag not in tags:if append:tags.append(custom_tag)else:tags.insert(0, custom_tag)contents , .join(tags)write_file(filename, contents)def process_directory(image_dir, tag, append, remove_tag, recursive):for filename in os.listdir(image_dir):file_path os.path.join(image_dir, filename)if os.path.isdir(file_path) and recursive:process_directory(file_path, tag, append, remove_tag, recursive)elif filename.endswith(extension):process_tags(file_path, tag, append, remove_tag)tag custom_tagif not any([filename.endswith(extension) for filename in os.listdir(image_dir)] ):for filename in os.listdir(image_dir):if filename.endswith((.png, .jpg, .jpeg, .webp, .bmp)):open(os.path.join(image_dir, filename.split(.)[0] extension),w,).close()# 但我们设置好要添加的custom_tag后开始整个代码流程 if custom_tag:process_directory(image_dir, tag, append, remove_tag, recursive)看完了上面的完整代码流程如果大家觉得代码太复杂don‘t worry大家只需要复制上面的全部代码并将train_data_dir /本地数据集路径和custom_tag WeThinkIn设置成自己数据集的本地路径和想要添加的特殊标注然后运行代码即可非常简单实用。 还是以之前的美女图片为例子当运行完上面的代码后可以看到txt文件中最开头的tag为“WeThinkIn” 大家注意一般我们会将手动补充的特殊tag放在第一位因为和caption标签不同tags标签是有顺序的最开始的tag权重最大越靠后的tag权重越小。 到这里Rocky已经详细讲解了在Stable Diffusion XL训练前如何对数据集进行caption标注tag标注以及补充一些关键标注的完整步骤与流程在数据标注完毕后接下来我们就要进入数据预处理的阶段了。 4数据预处理 首先我们需要对刚才生成的后缀为.caption和.txt的标注文件进行整合存储成一个json格式的文件方便后续SDXL模型训练时调取训练数据与标注。 我们需要进入SDXL-Trian项目的finetune文件夹中运行merge_all_to_metadata.py脚本即可 cd SDXL-Trian python ./finetune/merge_all_to_metadata.py /本地数据路径 /本地数据路径/meta_clean.json如下图所示我们依旧使用之前的美图女片作为例子运行完merge_all_to_metadata.py脚本后我们在数据集路径中得到一个meta_clean.json文件打开可以看到图片名称对应的tag和caption标注都封装在了文件中让人一目了然非常清晰。 在整理好标注文件的基础上我们接下来我们需要对数据进行分桶与保存Latent特征并在meta_clean.json的基础上将图片的分辨率信息也存储成json格式并保存一个新的meta_lat.json文件。 我们需要进入SDXL-Trian项目的finetune文件夹中运行prepare_buckets_latents.py脚本即可 cd SDXL-Trian python ./finetune/prepare_buckets_latents.py /本地数据路径 /本地数据路径/meta_clean.json /本地数据路径/meta_lat.json 调用的SDXL模型路径 --batch_size 4 --max_resolution 1024,1024运行完脚本我们即可在数据集路径中获得meta_lat.json文件其在meta_clean.json基础上封装了图片的分辨率信息用于SDXL训练时快速进行数据分桶。 同时我们可以看到美女图片的Latent特征保存为了.npz文件用于SDXL模型训练时快速读取数据的Latent特征加速训练过程。 好的到目前为止我们已经完整的进行了SDXL训练所需的数据集制作与预处理流程。总结一下我们在一张美女图片的基础上一共获得了以下5个不同的训练配置文件 meta_clean.jsonmeta_lat.json自然语言标注.caption关键词tag标注.txt数据的Latent特征信息.npz 在完成以上所有数据处理过程后接下来我们就可以进入SDXL训练的阶段了我们可以基于SDXL训练对应的LoRA模型了 【四】基于SDXL训练LoRA模型 目前Stable Diffusion XL全参微调的训练成本是Stable Diffusion之前系列的2-3倍左右而基于Stable Diffusion XL训练LoRA的成本与之前的系列相比并没有太多增加故训练LoRA依旧是持续繁荣SDXL生态的高效选择。 在本节Rocky将告诉大家从0到1使用SDXL模型训练对应的LoRA的全流程攻略让我们一起来训练属于自己的SDXL LoRA模型吧 1SDXL LoRA数据集制作 首先我们需要确定数据集主题比如说人物画风或者某个抽象概念等。本次我们选择用Rocky自己搜集的人物主题数据集——猫女数据集来进行SDXL LoRA模型的训练。 确定好数据集主题后我们需要保证数据集的质量Rocky总结了以下的数据集筛选要求 当我们训练人物主题时一般需要10-20张高质量数据当我们训练画风主题时需要100-200张高质量数据当我们训练抽象概念时则至少需要200张以上的数据。不管是人物主题画风主题还是抽象概念一定要保证数据集中数据的多样性比如说猫女姿态角度全身半身的多样性。每个数据都要符合我们的审美和评判标准每个数据都要符合我们的审美和评判标准每个数据都要符合我们的审美和评判标准 所以Rocky这次挑选的猫女数据集一共有22张图片包含了猫女的不同姿态数据并且每张图也符合Rocky的审美哈哈。 接下来我们就可以按照本文数据集制作章节里的步骤进行数据的清洗自动标注以及添加特殊tag——即触发词。在这里我们要在标注文件的开头添加“catwomen”作为猫女的触发词。 除了对数据进行标注我们还需要对数据的标注进行清洗删除一些概念与触发词重合的标签。为什么我们要进行数据标注的清洗呢因为如果不对标注进行清洗会导致训练时的tag污染。 我们拿猫女数据集为例我们想要让SDXL LoRA模型学习猫女的主要特征包括脸部特征服装特征最具猫女特点的黑色皮衣和黑色眼罩等我们想让“catwomen”学习到这些特征。但是自动标注会给数据打上一些描述脸部特征和服装特征的tag导致猫女的主要特征被这些tag分走从而导致tag污染。这样就会导致很多精细化的特征丢失在自动标注的tag中使得SDXL LoRA在生成猫女图片时缺失黑色皮衣或者黑色眼罩等。 所以我们需要删除自动标注的脸部服装等tag从而使得保留下来的触发词等标签是SDXL LoRA模型着重需要学习的。 一张一张手动删除标签费时费力Rocky这里推荐大家使用Stable Diffusion WebUI的一个数据标注处理插件stable-diffusion-webui-dataset-tag-editor可以对标签进行批量处理非常方便。 完成上述步骤咱们的数据处理部分就告一段落了。为了方便大家使用猫女数据集进行后续的LoRA训练Rocky这边已经将处理好的猫女数据集开源包含原数据标注文件读取数据的json文件等大家可以关注公众号WeThinkIn后台回复“猫女数据集”获取。 2SDXL LoRA训练参数配置 大家可以在SDXL-Trian项目中train_config/XL_LoRA_config路径下找到SDXL LoRA的训练参数配置文件config_file.toml和sample_prompt.toml他们分别存储着SDXL_LoRA的训练超参数与训练中的验证prompt信息。 其中config_file.toml文件中的配置文件包含了sdxl_argumentsmodel_argumentsdataset_argumentstraining_argumentslogging_argumentssample_prompt_argumentssaving_argumentsoptimizer_arguments以及additional_network_arguments九个个维度的参数信息。 训练SDXL_LoRA的参数配置与SDXL全参微调的训练配置有相同的部分上述的前八个维度也有LoRA的特定参数需要配置additional_network_arguments。 下面我们首先看看这些共同的维度中有哪些需要注意的事项吧 [sdxl_arguments] # 与SDXL全参微调训练一致 cache_text_encoder_outputs true no_half_vae true min_timestep 0 max_timestep 1000 shuffle_caption false[model_arguments] # 与SDXL全参微调训练一致 pretrained_model_name_or_path /本地路径/SDXL模型文件 vae /本地路径/VAE模型文件 # 如果只使用模型自带的VAE不读取额外的VAE模型则需要将本行直接删除[dataset_arguments] # 与SDXL全参微调训练不一致 #LoRA训练过程中取消了caption_dropout_rate 0caption_tag_dropout_rate 0 #caption_dropout_every_n_epochs 0这三个参数因为本身LoRA的模型容量较小不需要再进行类标签Dropout的操作了。 debug_dataset false in_json /本地路径/data_meta_lat.json train_data_dir /本地路径/训练集 dataset_repeats 1 keep_tokens 0 resolution 1024,1024 color_aug false token_warmup_min 1 token_warmup_step 0[training_arguments] # 与SDXL全参微调训练不一致 # SDXL_LoRA增加了sdpa参数当其设置为true时训练中启动scaled dot-product attention优化这时候就不需要再开启xformers了 output_dir /本地路径/模型权重保存地址 output_name sdxl_lora_WeThinkIn save_precision fp16 save_every_n_epochs 1 train_batch_size 4 max_token_length 225 mem_eff_attn false sdpa true xformers false max_train_epochs 100 #max_train_epochs设置后会覆盖掉max_train_steps即两者同时存在时以max_train_epochs为准 max_data_loader_n_workers 8 persistent_data_loader_workers true gradient_checkpointing true gradient_accumulation_steps 1 mixed_precision fp16[logging_arguments] # 与SDXL全参微调训练一致 log_with tensorboard logging_dir /本地路径/logs log_prefix sdxl_lora_WeThinkIn[sample_prompt_arguments] # 与SDXL全参微调训练一致 sample_every_n_epochs 1 sample_sampler euler_a[saving_arguments] # 与SDXL全参微调训练一致 save_model_as safetensors[optimizer_arguments] # 与SDXL全参微调训练不一致 optimizer_type AdaFactor learning_rate 1e-5 # 训练SDXL_LoRA时学习率可以调的大一些一般比SDXL全参微调的学习率大10倍左右比如learning_rate 1e-5 max_grad_norm 0 optimizer_args [ scale_parameterFalse, relative_stepFalse, warmup_initFalse,] lr_scheduler constant_with_warmup lr_warmup_steps 100除了上面的参数训练SDXL_LoRA时还需要设置一些专属参数这些参数非常关键下面Rocky将给大家一一讲解 [additional_network_arguments] no_metadata false network_module networks.lora network_dim 32 network_alpha 16 network_args [ conv_dim32, conv_alpha16,] network_train_unet_only trueno_metadata保存模型权重时不附带Metadata数据建议关闭能够减少保存下来的LoRA大小。 network_module选择训练的LoRA模型结构可以从[“networks.lora”, “networks.dylora”, “lycoris.kohya”]中选择最常用的LoRA结构默认选择networks.lora。 network_dim设置LoRA的RANK设置的数值越大表示表现力越强但同时需要更多的显存和时间来训练。 network_alpha设置缩放权重用于防止下溢并稳定训练的alpha值。 network_args设置卷积的Rank与缩放权重。 下面表格中Rocky给出一些默认配置大家可以作为参考 network_categorynetwork_dimnetwork_alphaconv_dimconv_alphaLoRA321--LoCon16881LoHa8441 如果我们想要训练LoRA我们需要设置network_module “networks.lora”同时设置network_dim和network_alpha和上面的配置一致。 如果我们想要训练LoCon我们需要设置network_module lycoris.kohya和algo“locon”同时设置network_dim和network_alpha network_module lycoris.kohya algo locon network_dim 32 network_alpha 16 network_args [ conv_dim32, conv_alpha16,]如果我们想要训练LoHa我们需要设置network_module lycoris.kohya和algo“loha”同时设置network_dim和network_alpha network_module lycoris.kohya algo loha network_dim 32 network_alpha 16 network_args [ conv_dim32, conv_alpha16,]network_train_unet_only如果设置为true那么只训练U-Net部分。 3SDXL LoRA关键参数详解 【1】train_batch_size对SDXL LoRA模型训练的影响 和传统深度学习一样train_batch_size即为训练时的batch size。 一般来说较大的batch size往往每个epoch训练时间更短但是显存占用会更大并且收敛得慢需要更多epoch数。较小的batch size每个epoch训练时间长但是显存占用会更小并且收敛得快需要更少epoch数。 在实际的训练时如果GPU数不大于8卡的话还是需要尽可能占满GPU显存为宜比如64-96之间训练一般都能取得不错效果。 【2】pretrained_model_name_or_path对SDXL LoRA模型训练的影响 pretrained_model_name_or_path参数中我们需要加载本地的SDXL模型作为训练底模型。 底模型的选择至关重要SDXL LoRA的很多底层能力与基础概念的学习都来自于底模型的能力。 并且底模型的优秀能力需要与我们训练的主题比如说人物画风或者某个抽象概念相适配。如果我们要训练二次元LoRA则需要选择二次元底模型如果我们要训练三次元LoRA则需要选择三次元底模型以此类推。 【3】network_dim对SDXL LoRA模型训练的影响 network_dim即特征维度越高表示模型的参数量越大设置高维度有助于LoRA学习到更多细节特征但模型收敛速度变慢同时也更容易过拟合需要的训练时间更长。 所以network_dim的设置需要根据任务主题去调整。 一般来说在SDXL的1024*1024分辨率训练基础上可以设置network_dimension 128此时SDXL LoRA大小约为686MB。 【4】network_alpha对SDXL LoRA模型训练的影响 network_alpha是一个缩放因子用于缩放模型的训练权重 W , W W i n × a l p h a / d i m W, W W_{in} \times alpha / dim W,WWin​×alpha/dim。network_alpha设置的越高LoRA模型能够学习更多的细节信息同时学习速率也越快推荐将其设置为network_dimension的一半。 4SDXL LoRA模型训练 完成训练参数配置后我们就可以运行训练脚本进行SDXL_LoRA模型的训练了。 我们本次训练用的底模型选择了WeThinkIn_SDXL_真人模型大家可以关注Rocky的公众号WeThinkIn后台回复“SDXL_真人模型”获取模型资源链接。 我们打开SDXL_fintune_LoRA.sh脚本可以看到以下的代码 accelerate launch \--config_file accelerate_config.yaml \--num_cpu_threads_per_process8 \/本地路径/SDXL-Train/sdxl_train_network.py \--sample_prompts/本地路径/SDXL-Train/train_config/XL_LoRA_config/sample_prompt.toml \--config_file/本地路径/SDXL-Train/train_config/XL_LoRA_config/config_file.toml我们把训练脚本封装在accelerate库里这样就能启动我们一开始配置的训练环境了同时我们将刚才配置好的config_file.toml和sample_prompt.toml参数传入训练脚本中。 接下里就到了激动人心的时刻我们只需在命令行输入以下命令就能开始SDXL_LoRA训练啦 # 进入SDXL-Trian项目中 cd SDXL-Trian# 运行训练脚本 sh SDXL_fintune_LoRA.sh 5加载SDXL LoRA模型进行AI绘画 SDXL LoRA模型训练完成后会将模型权重保存在我们之前设置的output_dir路径下。接下来我们使用Stable Diffusion WebUI作为框架加载SDXL LoRA模型进行AI绘画。 在本文3.3节零基础使用Stable Diffusion WebUI搭建Stable Diffusion XL推理流程中Rocky已经详细讲解了如何搭建Stable Diffusion WebUI框架未使用过的朋友可以按照这个流程快速搭建起Stable Diffusion WebUI。 要想使用SDXL LoRA进行AI绘画首先我们需要将SDXL底模型和SDXL LoRA模型分别放入Stable Diffusion WebUI的/models/Stable-diffusion文件夹和/models/Lora文件夹下。 然后我们在Stable Diffusion WebUI中分别选用底模型与LoRA即可 完成上图中的操作后我们就可以进行猫女图片的生成啦 【1】训练时的底模型猫女LoRA 首先我们使用训练时的底模型作为测试底模型应选用训练好的猫女LoRA并将LoRA的权重设为1看看我们生成的图片效果如何 我们可以看到生成的猫女图片的完成度还是非常好的不管是整体质量还是细节都能展现出猫女该有的气质与魅力。并且在本次训练中猫女的手部特征也得到了较好的学习优化了一直困扰AI绘画的手部问题。 【2】设置LoRA的不同权重 接下来我们设置LoRA的权重分别为[0.2, 0.4, 0.6, 0.8, 1]进行对比测试看看不同SDXL LoRA权重下的图片生成效果如何 【3】切换不同的底模型 完成了在单个底模型上的SDXL LoRA不同权重的效果测试接下来我们切换不同的底模型看看会生成的猫女图片会有什么变化吧。 首先我们将底模型切换成SDXL Base模型使用猫女LoRA并设置权重为1 从上面的图中可以看出使用SDXL Base模型作为底模型后生成的猫女图片整体质感已经发生改变背景也有了更多光影感。 我们再使用SDXL的二次元模型作为底模型同样使用猫女LoRA并设置权重为1 可以看到换用二次元模型作为底模型后生成的猫女图片整体质感开始卡通化。但是由于训练数据集中全是三次元图片所以二次元底模型三次元LoRA生成的图片并没有完全的二次元化。 【4】使用不同提示词改变图片风格 最后我们再尝试通过有添加提示词prompt来改变生成的猫女图片的风格。 首先我们在提示词prompt中加入赛博朋克风格“Cyberpunk style”这是生成的猫女图片中就会加入赛博朋克元素了 精致的结尾 到这里关于SDXL LoRA的全流程攻略就全部展示给大家了大家如果觉得好欢迎给Rocky的劳动点个赞支持一下Rocky谢谢大家 如果大家对SDXL LoRA还有想要了解的知识或者不懂的地方欢迎在Rocky知乎原文https://zhuanlan.zhihu.com/p/643420260的评论区留言Rocky也会持续优化本文内容能让大家都能快速了解SDXL LoRA知识并训练自己的专属LoRA模型希望在AIGC时代中大家能和Rocky一起飞速成长 Rocky将算法高价值面试知识点即“三年面试五年模拟”之独孤九剑秘籍前十二式进行汇总梳理成汇总篇并制作成pdf版本大家可在公众号后台 【精华干货】菜单或者回复关键词“三年面试五年模拟” 进行取用。 除此之外Rocky还将YOLOv1-v7全系列大解析也制作成相应的pdf版本大家可在公众号后台 【精华干货】菜单或者回复关键词“YOLO” 进行取用。 Rocky一直在运营技术交流群WeThinkIn-技术交流群这个群的初心主要聚焦于技术话题的讨论与学习包括但不限于算法开发竞赛科研以及工作求职等。群里有很多人工智能行业的大牛欢迎大家入群一起学习交流请添加小助手微信Jarvis8866拉你进群
http://www.pierceye.com/news/147501/

相关文章:

  • 有没有什么推荐的网站用 php网站建设打出一首古诗
  • 品牌网站建设浩森宇特wordpress 首页 缩略图
  • 一个主机可以做几个网站域名织梦cms网站更新
  • 知名网站有哪些网站开发是什么环境
  • 哪些网站是用wordpress开发一款视频app多少钱
  • 济南网站定制制作建设项目 环评申报网站
  • 无锡响应式网站设计wordpress站群管理系统
  • 主题网站策划设计书网络营销是什么的一项活动
  • python+网站开发实例教程免费做视频网站
  • 免费建站自己的网址美化网站公司
  • 做购物网站哪个cms好用网络规划与设计就业前景
  • wordpress仿站工具网站建设jw100
  • 网站推广过程叙述关键词歌词
  • vip影视网站如何做appwordpress centos查看目录
  • 网站怎么套模板山西seo博客
  • 好看的手机网站推荐新建的网站 找不到
  • 网站站内搜索怎么做seo搜索优化
  • 建设部网站 测绘规章pc网站手机网站
  • 建网站如何赚钱vs哪个版本做网站好
  • 新衡阳网站游戏软件开发公司简介
  • 湖南基础建设投资集团网站做体育最好的网站
  • 上海php网站开发公司wordpress 邮件认证
  • 教做香肠的网站张家港专业网站建设
  • 园林建设网站营销型网站的建站步骤是什么意思
  • 招聘求职网站html模板正规的创业商机网
  • 预付网站建设费会计处理哪里建网站好
  • 做免费网站艺术学院网站建设管理办法
  • 做网站贵吗手机网站wap
  • linux建立网站做网站的应该怎么发广告
  • wordpress使用端口百度seo排名软