Stable Diffusion训练图片时,简陋的数据处理
0 图片从命名
如果有强迫症,看到似乎乱码的命名会不舒服,那么就批量从命名
import osdef rename_files_in_directory(directory, key_word, new_suffix):i = 1for filename in os.listdir(directory):new_file = key_word + str(i).zfill(3) + new_suffixsource = os.path.join(directory, filename)destination = os.path.join(directory, new_file)os.rename(source, destination)i += 1
# 使用方法
# rename_files_in_directory('/path/to/directory', '.new_suffix')
# D:\SdTrainerGUI\lora-scripts-v1.7.3\train\XiboBird\5_zkz
1 批量缩小图片分辨率
如果是用同一个相机拍的,分辨率都是一样的,只不过分辨率太大了8K以上的分辨率显卡受不了
from PIL import Image
import osdef resize_image(image_path, output_path, scale_factor):# 打开图片img = Image.open(image_path)# 获取图片的宽度和高度width, height = img.size# 计算新的宽度和高度new_width = width // scale_factornew_height = height // scale_factor# 使用ANTIALIAS滤镜来缩小图片# new_img = img.resize((new_width, new_height), Image.ANTIALIAS)new_img = img.resize((new_width, new_height), Image.ANTIALIAS)# 保存新图片new_img.save(output_path)def get_all_image(path, file_extension=".jpg"):return [os.path.join(path, f) for f in os.listdir(path) if f.endswith(file_extension)]def process_images(catalog_of_original_images, file_extension, scale_factor):# 获取原始图像目录的上一级目录parent_directory = os.path.dirname(catalog_of_original_images)# 设置输出目录output_catalog = os.path.join(parent_directory, "output")# 创建输出目录if not os.path.exists(output_catalog):os.makedirs(output_catalog)image_list = get_all_image(catalog_of_original_images, file_extension)for image in image_list:# 获取图片的文件名image_name = os.path.basename(image)# 设置输出图片的路径output_image_path = os.path.join(output_catalog, image_name)# 缩小图片并保存resize_image(image, output_image_path, scale_factor)if __name__ == '__main__':process_images(r"E:\Dwk\Photos\祥春鸟", ".jpg", 10)
2 图片数据集增强
最简易的增强是图片镜像,就是左右颠倒各一张,图片数据集数量直接翻倍
import os
from PIL import Image, ImageOpsdef data_enhancement(image_catalog, file_extension=".jpg"):image_list = [os.path.join(image_catalog, f) for f in os.listdir(image_catalog) if f.endswith(file_extension)]for image in image_list:# 打开图片img = Image.open(image)# 创建镜像图片mirror_img = ImageOps.mirror(img)# 获取图片的文件名(不包括后缀)image_name = os.path.splitext(os.path.basename(image))[0]# 设置镜像图片的文件名mirror_image_name = image_name + "_mirror" + file_extension# 设置镜像图片的路径mirror_image_path = os.path.join(image_catalog, mirror_image_name)# 保存镜像图片mirror_img.save(mirror_image_path)if __name__ == '__main__':data_enhancement(r"E:\Dwk\Photos\output", ".jpg")
3 tag内容批量修改(这里是只替换)
避免一个个文件打开逐个tag修改
import osdef replace_words_in_files(directory, old_word, new_word):# 获取指定目录下的所有文件files = os.listdir(directory)# 遍历所有文件for file in files:# 检查文件是否为.txt文件if file.endswith('.txt'):# 构建完整的文件路径file_path = os.path.join(directory, file)# 打开文件with open(file_path, 'r') as f:content = f.read()# 替换内容content = content.replace(old_word, new_word)# 写回文件with open(file_path, 'w') as f:f.write(content)if __name__ == '__main__':replace_words_in_files(r'D:\SdTrainerGUI\lora-scripts-v1.7.3\train\PreprocessingOutput','girl','boy')
相关文章:
Stable Diffusion训练图片时,简陋的数据处理
0 图片从命名 如果有强迫症,看到似乎乱码的命名会不舒服,那么就批量从命名 import osdef rename_files_in_directory(directory, key_word, new_suffix):i 1for filename in os.listdir(directory):new_file key_word str(i).zfill(3) new_suffixsou…...
如何在ubuntu 18.04中升级python 3.6到3.7
在ubuntu下安装python 3.7有两种方法: 1,通过使用Deadsnakes PPA中的标准apt工具(本文暂时只介绍这种方法) 2,从源代码进行构建。 前提条件: 需要以root用户或具有sudo访问权限的用户身份登录才能在Ubuntu系统上安装软件包。 方法一:使用apt工具安装…...
python爬虫基础实验:通过DBLP数据库获取数据挖掘顶会KDD在2023年的论文收录和相关作者信息
Task1 读取网站主页整个页面的 html 内容并解码为文本串(可使用urllib.request的相应方法),将其以UTF-8编码格式写入page.txt文件。 Code1 import urllib.requestwith urllib.request.urlopen(https://dblp.dagstuhl.de/db/conf/kdd/kdd202…...
简单记录一次帮维修手机经历(Vivo x9)
简介 手边有一台朋友亲戚之前坏掉的Vivo X9手机, 一直说要我帮忙修理一下, 我一直是拒绝的, 因为搞程序的不等于维修的(会电脑不等于维修电器),不知道这种思路如何根深蒂固的,不过好吧ÿ…...
ap聚类是什么
AP聚类(Affinity Propagation clustering)是一种聚类算法,它基于数据点之间的相似度进行聚类。AP聚类算法无需预先指定簇的数量,而是根据数据点之间的相似性动态地确定簇的个数和分配情况。 AP聚类的核心思想是通过迭代计算数据点…...
C数据类型(C语言)---变量的类型决定了什么?
目录 数据类型(Data Type) 变量的类型决定了什么? (1)不同类型数据占用的内存大小不同 如何计算变量或类型占内存的大小 (2)不同数据类型的表数范围不同 (3)不同类型…...
axios、axios二次封装、api解耦
import axios from axios// 环境的切换切换测试与生产环境 if (process.env.NODE_ENV development) { axios.defaults.baseURL /api; } else if (process.env.NODE_ENV debug) { axios.defaults.baseURL ; } else if (process.env.NODE_ENV production) { axios.…...
HTML 特殊元素:展示PDF、展示JSON 数据
<pre> 标签 (preformatted text) <pre> 标签用来表示预格式化的文本内容 在页面数据展示时,后端返回了一段未经处理的JSON 数据,将这段数据在页面正常展示,让可读性更高。 {/"project": {/ "title": "…...
算法·动态规划Dynamic Programming
很多人听到动态规划或者什么dp数组了,或者是做到一道关于动态规划的题目时,就会有一种他很难且不好解决的恐惧心理,但是如果我们从基础的题目开始深入挖掘动规思想,在后边遇到动态规划的难题时就迎难而解了。 其实不然ÿ…...
鸿蒙Harmony应用开发—ArkTS-转场动画(共享元素转场)
当路由进行切换时,可以通过设置组件的 sharedTransition 属性将该元素标记为共享元素并设置对应的共享元素转场动效。 说明: 从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 属性 名称参数参数描述…...
【C语言】循环语句(语句使用建议)
文章目录 **while循环****while循环的实践****补充:if语句与while语句区别****for循环(使用频率最高)****for循环的实践****while循环和for循环的对比****Do-while循环****break和continue语句****循环的嵌套****goto语句(不常用)****循环语句的效率(来自于高质量的C/C编程书籍…...
Spring Data访问Elasticsearch----响应式Reactive存储库
Spring Data访问Elasticsearch----响应式Reactive存储库 一、用法二、配置 Reactive Elasticsearch存储库支持建立在存储库中解释的核心存储库支持之上,利用由 Reactive REST客户端执行的 Reactive Elasticsearch Operations提供的操作。 Spring Data Elasticsear…...
堆排序(c语言)
文章目录 前言一.什么是堆二.向下调整算法三.堆排序的创建总结 前言 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于&#x…...
开源IT自动化运维工具Ansible解析
Ansible 是一款开源的 IT 自动化工具,用于简化应用程序部署、配置管理、持续集成、基础设施即代码(Infrastructure as Code, IaC)和服务编排。它由 Michael DeHaan 创建,并在2012年首次发布,到2015年被红帽公司&#x…...
【C++】仿函数优先级队列反向迭代器
目录 一、优先级队列 1、priority_queue 的介绍 2、priority_queue 的使用 3、 priority_queue 的模拟实现 1)priority_queue()/priority_queue(first, last) 2)push(x) 3)pop() 4&#…...
UE4_调试工具_绘制调试球体
学习笔记,仅供参考! 效果: 步骤: 睁开眼睛就是该变量在此蓝图的实例上可公开编辑。 勾选效果:...
机器人路径规划:基于冠豪猪优化算法(Crested Porcupine Optimizer,CPO)的机器人路径规划(提供MATLAB代码)
一、机器人路径规划介绍 移动机器人(Mobile robot,MR)的路径规划是 移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或…...
探索.NET中的定时器:选择最适合你的应用场景
概述:.NET提供多种定时器,如 System.Windows.Forms.Timer适用于UI,System.Web.UI.Timer用于Web,System.Diagnostics.Timer用于性能监控,System.Threading.Timer和System.Timers.Timer用于一般定时任务。在.NET 6及以上…...
5467: 【搜索】流浪奶牛
题目描述 吃不到饭的奶牛Bessie一气之下决定离开农场,前往阿尔费茨山脉脚底下的农场(听说那儿的草极其美味)投靠她的亲戚Jimmy。但是前往目的地的山路崎岖,Bessie又没有吃饭,她需要尽量保存体力,以最轻松的…...
spring boot整合elasticsearch实现查询功能
第一步、添加依赖(注意版本对应关系)根据spring boot版本选择合适的版本 <dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.6.2</version></dependenc…...
5步掌握BepInEx框架:从零到精通的完整指南
5步掌握BepInEx框架:从零到精通的完整指南 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx是一个功能强大的Unity游戏插件框架,专门为游戏模组开发者…...
Qwen3.5-9B-AWQ-4bit效果展示:复杂场景图识别准确率实测与典型失败案例复盘
Qwen3.5-9B-AWQ-4bit效果展示:复杂场景图识别准确率实测与典型失败案例复盘 1. 模型能力概览 Qwen3.5-9B-AWQ-4bit是一款支持图像理解的多模态模型,能够结合上传图片与文字提示词输出中文分析结果。这个量化版本在保持较高识别准确率的同时,…...
Go语言怎么嵌入静态文件_Go语言embed嵌入文件教程【秒懂】
Go 1.16 用 embed 包可将文件编译进二进制,但需满足路径为相对包根的字面量、包与变量声明正确三重约束;embed.FS 要求路径不可拼接、不可跨模块、不支持 ./ 前缀;读取需用 fs.ErrNotExist 判断缺失;HTTP 服务中可直接用 http.Fil…...
从石头剪刀布到Nim游戏:用Python代码理解博弈论里的必胜策略
从石头剪刀布到Nim游戏:用Python代码理解博弈论里的必胜策略 博弈论并非遥不可及的数学理论,它隐藏在我们熟知的童年游戏里。想象一下,当你和朋友玩石头剪刀布时,是否曾思考过是否存在必胜策略?或者在井字棋游戏中&…...
“这个PR能合吗?”——SITS2026专家现场演示:实时接入GitHub Actions的AI影响分析沙箱(限免通道将于2024Q3关闭)
第一章:SITS2026专家:AI代码变更影响分析 2026奇点智能技术大会(https://ml-summit.org) 在大规模软件系统持续演进过程中,AI驱动的自动化代码变更(如LLM辅助重构、智能补丁生成)正显著提升开发效率,但其…...
提示工程(Prompt Engineering)完整指南:从原子结构到工业级实践——AI智能体开发实战
提示工程不是“写好一句话让AI听话”,而是在模型能力边界内构建可复现、可验证、可演进的人机契约系统。它融合语言学建模、认知心理学、软件工程与领域知识,是当前大模型落地最核心的底层能力。以下按概念解构 → 结构拆解 → 技术分层 → 场景映射 → …...
别再只用翻转和裁剪了!PyTorch实战:用CutMix和Mixup让你的ResNet50在CIFAR-10上再涨几个点
突破传统数据增强瓶颈:PyTorch中CutMix与Mixup的实战调优指南 当你在CIFAR-10上反复调整学习率和权重衰减却始终无法突破准确率瓶颈时,是否想过问题可能出在数据层面?传统的数据增强方法如随机翻转、裁剪虽然能提供基本的正则化效果ÿ…...
别再用HAL_Delay()了!STM32 HAL库延时函数的3个致命坑与替代方案
别再用HAL_Delay()了!STM32 HAL库延时函数的3个致命坑与替代方案 在STM32开发中,HAL_Delay()可能是最常被调用的函数之一。这个看似简单的毫秒级延时函数,却隐藏着不少开发陷阱。许多工程师在项目后期才会突然发现:为什么我的系统…...
手把手教你用STM32F103C8T6打造USB-C接口J-Link OB(原理图解析、固件烧录、SN修改与实战调试)
1. 硬件原理图解析 先说说为什么选择STM32F103C8T6这款芯片。作为经典的Cortex-M3内核MCU,它内置了USB全速控制器,正好满足J-Link OB对USB通信的需求。我实测过市面上常见的F103最小系统板,发现核心板自带3.3V稳压和USB接口时,改…...
龙泉驿全屋智能选哪家?诺亚家总部直营+1小时服务圈,比本地店省30%
在成都,说到“东进”和宜居,龙泉驿绝对是热门选项。这里的业主,多是追求生活品质的年轻家庭和改善型住户。随着装修季的到来,“全屋智能”几乎成了龙泉驿新家的标配。但问题也来了:市场品牌眼花缭乱,本地…...
