Kohya Trainer 数据预处理全流程从图像收集到标签生成【免费下载链接】kohya-trainerAdapted from https://note.com/kohya_ss/n/nbf7ce8d80f29 for easier cloning项目地址: https://gitcode.com/gh_mirrors/ko/kohya-trainerKohya Trainer 是一款强大的 AI 绘图模型训练工具数据预处理是模型训练中至关重要的一步直接影响模型的学习效果。本文将详细介绍使用 Kohya Trainer 进行数据预处理的完整流程帮助新手用户轻松掌握从图像收集到标签生成的每一个环节。一、图像收集与整理1.1 图像来源图像可以从各种渠道获取例如个人拍摄、公开数据集下载等。建议收集与训练目标相关的高质量图像数量越多越好通常至少需要几十张以上才能获得较好的训练效果。1.2 图像整理将收集到的图像统一存放在一个目录下例如train_data。如果有多个类别或不同风格的图像可以在该目录下创建子文件夹进行分类存放。Kohya Trainer 支持递归搜索子文件夹中的图像只需在后续命令中添加--recursive参数即可。二、图像标注工具选择Kohya Trainer 提供了两种主要的图像标注工具分别是make_captions.py和tag_images_by_wd14_tagger.py用户可以根据需求选择合适的工具。2.1 BLIP 自动标题生成make_captions.pyfinetune/make_captions.py使用 BLIP 模型为图像生成描述性标题。它基于深度学习技术能够理解图像内容并生成自然语言描述。适用于需要为图像添加详细描述性文本的场景。2.2 WD14 标签生成tag_images_by_wd14_tagger.pyfinetune/tag_images_by_wd14_tagger.py使用 WD14 模型为图像生成标签。它可以识别图像中的各种元素如人物、物体、场景等并生成相应的标签。适用于需要为图像添加关键词标签的场景便于模型学习特定的视觉特征。三、使用 BLIP 生成图像标题3.1 基本命令格式python finetune/make_captions.py train_data_dir [--options]3.2 常用参数说明train_data_dir存放训练图像的目录。--caption_weightsBLIP 模型权重文件路径默认为从网络下载。--batch_size批处理大小根据 GPU 内存情况调整默认为 1。--beam_search使用 beam search 生成标题默认为 Nucleus sampling。--max_length标题的最大长度默认为 75。--min_length标题的最小长度默认为 5。--recursive递归搜索子文件夹中的图像。3.3 示例命令python finetune/make_captions.py ./train_data --batch_size 4 --beam_search --max_length 100 --recursive该命令将对./train_data目录及其子目录中的图像使用 BLIP 模型生成标题批处理大小为 4使用 beam search 方法标题最大长度为 100。生成的标题将保存为与图像同名的.caption文件。四、使用 WD14 生成图像标签4.1 基本命令格式python finetune/tag_images_by_wd14_tagger.py train_data_dir [--options]4.2 常用参数说明train_data_dir存放训练图像的目录。--repo_idHugging Face 上 WD14 模型的仓库 ID默认为SmilingWolf/wd-v1-4-convnext-tagger-v2。--batch_size批处理大小默认为 1。--general_threshold通用标签的置信度阈值默认为 0.35。--character_threshold人物标签的置信度阈值默认为 0.35。--caption_extension标签文件的扩展名默认为.txt。--recursive递归搜索子文件夹中的图像。4.3 示例命令python finetune/tag_images_by_wd14_tagger.py ./train_data --batch_size 8 --general_threshold 0.5 --character_threshold 0.6 --recursive该命令将对./train_data目录及其子目录中的图像使用 WD14 模型生成标签批处理大小为 8通用标签置信度阈值为 0.5人物标签置信度阈值为 0.6。生成的标签将保存为与图像同名的.txt文件。五、图像预处理与潜在空间转换prepare_buckets_latents.pyfinetune/prepare_buckets_latents.py用于对图像进行预处理包括调整大小、裁剪和转换为潜在空间表示以提高模型训练效率。5.1 基本命令格式python finetune/prepare_buckets_latents.py train_data_dir in_json out_json model_name_or_path [--options]5.2 常用参数说明train_data_dir存放训练图像的目录。in_json输入的元数据文件路径。out_json输出的元数据文件路径。model_name_or_path用于生成潜在空间表示的模型名称或路径。--batch_size批处理大小默认为 1。--max_resolution训练时的最大图像分辨率格式为 width,height默认为 512,512。--bucket_reso_stepsbucket 分辨率的步长建议为 8 的倍数默认为 64。--flip_aug是否对图像进行左右翻转增强生成翻转图像的潜在空间表示。--skip_existing如果潜在空间文件已存在则跳过处理。--recursive递归搜索子文件夹中的图像。5.3 示例命令python finetune/prepare_buckets_latents.py ./train_data metadata.json new_metadata.json stabilityai/stable-diffusion-v1-5 --batch_size 4 --max_resolution 768,768 --flip_aug --recursive该命令将对./train_data目录及其子目录中的图像进行预处理使用stabilityai/stable-diffusion-v1-5模型生成潜在空间表示批处理大小为 4最大分辨率为 768x768并进行左右翻转增强。处理后的元数据将保存到new_metadata.json文件中潜在空间表示以.npz文件形式保存。六、数据预处理完整流程总结图像收集与整理将图像存放在指定目录可创建子文件夹分类。选择标注工具根据需求选择make_captions.py生成描述性标题或tag_images_by_wd14_tagger.py生成关键词标签。生成标注文件运行相应的标注工具命令为图像生成标注文件。图像预处理与潜在空间转换使用prepare_buckets_latents.py对图像进行预处理生成潜在空间表示和更新元数据。通过以上步骤即可完成 Kohya Trainer 的数据预处理工作为后续的模型训练做好准备。合理的数据预处理能够有效提高模型的训练效果和生成质量建议用户在进行训练前仔细处理数据。七、常见问题与解决方法7.1 图像无法加载或处理错误检查图像文件是否损坏或格式是否不受支持。可以尝试使用图像查看器打开图像确认图像是否正常。对于损坏的图像建议删除或替换。7.2 标注生成速度慢可以适当增大--batch_size参数利用 GPU 并行处理能力提高速度。但需注意不要超过 GPU 内存限制。7.3 潜在空间转换时内存不足减小--batch_size参数或降低--max_resolution参数以减少内存占用。如果条件允许也可以使用内存更大的 GPU。希望本文能够帮助新手用户顺利完成 Kohya Trainer 的数据预处理工作祝大家训练出满意的 AI 绘图模型 【免费下载链接】kohya-trainerAdapted from https://note.com/kohya_ss/n/nbf7ce8d80f29 for easier cloning项目地址: https://gitcode.com/gh_mirrors/ko/kohya-trainer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考