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

Stable Yogi Leather-Dress-Collection数据预处理教程:准备高质量训练数据集

Stable Yogi Leather-Dress-Collection数据预处理教程准备高质量训练数据集想用Stable Diffusion微调出专属于你的皮革连衣裙模型第一步也是最关键的一步就是准备一个高质量的数据集。很多人觉得模型训练很神秘其实成败的70%都取决于你喂给它的数据质量。一个杂乱、标注不清的数据集再强大的模型也学不出好效果。今天我就带你手把手走一遍数据预处理的完整流程从零开始为你的“皮革连衣裙”模型准备一份干净、精准的训练食粮。整个过程就像给食材做预处理清洗、切配、调味每一步都决定了最终菜肴的成败。我们不需要高深的数学跟着步骤做就行。1. 环境准备与工具安装工欲善其事必先利其器。我们先来把需要用到的工具装好。整个过程在普通的电脑上就能完成主要用到Python和一些图像处理库。首先确保你的电脑上已经安装了Python建议3.8或以上版本。然后我们通过pip来安装几个核心的安装包。打开你的命令行终端Windows上是CMD或PowerShellMac/Linux上是Terminal输入以下命令pip install pillow pandas tqdm opencv-python简单解释一下这几个包是干什么的Pillow (PIL)Python里最常用的图像处理库用来打开、保存、调整图片尺寸。Pandas处理表格数据的神器我们用它来管理图片和文本标签的对应关系。tqdm给循环加个进度条让你清楚知道处理到哪一步了避免干等着心慌。OpenCV-python功能强大的计算机视觉库这里我们主要用它来做一些更复杂的图像检查和去重。安装过程通常很快。如果遇到网络问题可以尝试在后面加上-i https://pypi.tuna.tsinghua.edu.cn/simple来使用国内的镜像源加速下载。2. 第一步收集你的原始图片数据集的质量源头是关键。你需要收集尽可能多的、高质量的皮革连衣裙图片。去哪里找电商平台这是最丰富的来源。可以在各大电商网站搜索“皮革连衣裙”、“皮裙”收集商品主图、详情图、模特图。注意尽量选择背景干净、主体突出的图片。开源数据集像Hugging Face、Kaggle上有时会有时尚品类数据集可以看看有没有符合要求的子集。自有图片如果你自己就是设计师或商家那你的产品图库就是最好的资源。收集时要注意什么多样性尽量涵盖不同款式A字、包臀、长款、短款、颜色黑色、棕色、彩色、材质光泽哑光、亮面以及穿着场景。高质量优先选择高清、无大量水印、非拼接的图片。分辨率最好在512x512像素以上。合法性确保你拥有图片的使用权或者使用明确标注可商用的开源图片避免侵权风险。建议先在电脑上建立一个项目文件夹比如叫做leather_dress_dataset然后在里面创建一个raw_images子文件夹把所有收集到的原始图片都放进去。3. 第二步清洗与整理图片收集来的图片往往鱼龙混杂这一步就是“摘菜洗菜”把坏的、没用的挑出去。3.1 统一格式与基础清洗我们写一个简单的Python脚本来做第一批次自动化处理。在项目文件夹下创建一个名为01_clean_images.py的文件并输入以下代码import os from PIL import Image import hashlib from tqdm import tqdm # 设置路径 raw_image_dir “./raw_images” cleaned_image_dir “./cleaned_images” os.makedirs(cleaned_image_dir, exist_okTrue) # 支持的图片格式 valid_extensions (.png, .jpg, .jpeg, .webp, .bmp) # 用于记录图片哈希值以便发现完全相同的重复图片 image_hashes {} duplicates_removed 0 print(“开始清洗图片...”) for filename in tqdm(os.listdir(raw_image_dir)): filepath os.path.join(raw_image_dir, filename) # 1. 检查文件格式 if not filename.lower().endswith(valid_extensions): print(f”跳过非图片文件: {filename}”) continue try: # 2. 打开并验证图片完整性 with Image.open(filepath) as img: img.verify() # 验证文件是否损坏 # 需要重新打开因为verify()会关闭文件 img Image.open(filepath) # 3. 计算图片哈希一种“指纹” with open(filepath, rb) as f: file_hash hashlib.md5(f.read()).hexdigest() # 4. 去重如果哈希值已存在则是完全相同的图片 if file_hash in image_hashes: print(f”发现重复图片已跳过: {filename} (与 {image_hashes[file_hash]} 重复)”) duplicates_removed 1 continue image_hashes[file_hash] filename # 5. 转换为RGB模式避免RGBA等模式导致问题 if img.mode ! RGB: img img.convert(RGB) # 6. 保存到清洗后的文件夹 new_filename f”image_{len(image_hashes):04d}.jpg” # 统一重命名为 image_0001.jpg 格式 save_path os.path.join(cleaned_image_dir, new_filename) img.save(save_path, JPEG, quality95) except Exception as e: print(f”处理图片 {filename} 时出错: {e}已跳过。”) print(f”清洗完成共处理 {len(image_hashes)} 张唯一图片移除了 {duplicates_removed} 张重复图片。”)运行这个脚本它会把raw_images里的图片统一转换成RGB模式的JPG格式自动去掉损坏的和完全相同的图片并按照顺序重命名方便后续管理。3.2 可选进一步视觉去重有时候两张图片内容几乎一样只是尺寸或压缩质量不同哈希值会不一样。我们可以用OpenCV进行更智能的相似度去重。创建一个02_deduplicate_similar.py文件import cv2 import os from tqdm import tqdm # 设置路径 image_dir “./cleaned_images” # 相似度阈值越高越严格1.0为完全相同 SIMILARITY_THRESHOLD 0.95 def extract_features(img_path): 提取图片的特征这里使用简单的直方图对比 img cv2.imread(img_path) if img is None: return None # 调整到统一小尺寸进行比较加快速度 img cv2.resize(img, (64, 64)) # 转换为HSV颜色空间并计算直方图 hsv cv2.cvtColor(img, cv2.COLOR_BGR2HSV) hist cv2.calcHist([hsv], [0, 1], None, [50, 60], [0, 180, 0, 256]) cv2.normalize(hist, hist) return hist print(“开始基于视觉相似度去重...”) image_files [f for f in os.listdir(image_dir) if f.endswith((.jpg, .png))] features [] valid_files [] # 提取所有图片特征 for f in tqdm(image_files, desc”提取特征”): feat extract_features(os.path.join(image_dir, f)) if feat is not None: features.append(feat) valid_files.append(f) to_remove set() # 比较每对图片 for i in tqdm(range(len(features)), desc”比较相似度”): if i in to_remove: continue for j in range(i1, len(features)): if j in to_remove: continue # 计算直方图相关性 similarity cv2.compareHist(features[i], features[j], cv2.HISTCMP_CORREL) if similarity SIMILARITY_THRESHOLD: to_remove.add(j) print(f”图片 {valid_files[j]} 与 {valid_files[i]} 高度相似相似度{similarity:.2f}将被移除。”) # 移动或删除相似图片 for idx in sorted(to_remove, reverseTrue): file_to_remove os.path.join(image_dir, valid_files[idx]) # 可以选择移动到另一个文件夹而不是直接删除 backup_dir “./duplicate_backup” os.makedirs(backup_dir, exist_okTrue) os.rename(file_to_remove, os.path.join(backup_dir, valid_files[idx])) print(f”去重完成移除了 {len(to_remove)} 张高度相似的图片。”)运行这个脚本后cleaned_images文件夹里剩下的就是经过初步清洗和去重的图片了。建议你花点时间人工快速浏览一遍手动剔除那些明显不相关比如根本不是连衣裙或质量极差的图片。4. 第三步撰写精准的文本描述Caption这是整个预处理中最重要、最费神但也最值得投入的一步。模型是通过“看图识字”来学习的你给的“字”描述越准它学得越好。什么是好的描述对于皮革连衣裙一个好的描述应该像给一个盲人朋友形容这件衣服主体一件黑色哑光皮质连衣裙款式细节修身包臀短款V字领长袖背部有隐形拉链材质与质感柔软的小羊皮材质表面有细微的纹理感场景与风格模特在都市街头拍摄搭配高跟鞋呈现简约酷飒风格撰写原则客观在前主观在后先描述图中客观存在的内容物体、属性再补充风格、氛围。从主体到细节先点明“皮革连衣裙”再描述款式、颜色、材质最后是场景、模特姿态等。使用自然语言就像你平时说话一样不要用一堆逗号分隔的关键词堆砌。保持一致性与特异性同一种款式描述方式尽量一致独特的细节一定要写出来。你可以用Excel、记事本或者专门的标注工具来写。这里我建议用一个简单的.csv文件来管理。创建一个captions.csv文件用Excel或文本编辑器打开格式如下image_namecaptionimage_0001.jpg一件黑色亮面皮质连衣裙修身短款方领无袖模特站立背景简洁时尚大片风格。image_0002.jpg棕色哑光皮质的A字型连衣裙中长款带有腰带模特在咖啡馆外坐着自然光线下显得质感柔软。……小技巧如果图片很多可以考虑使用图像描述Image Captioning模型先批量生成一个初稿然后再人工逐一校对和润色这能极大提升效率。比如使用BLIP等开源模型。5. 第四步统一图片尺寸与格式Stable Diffusion模型通常在固定的分辨率下训练效果最好比如512x512或768x768。我们需要把所有图片调整到统一尺寸。创建一个03_resize_images.py脚本from PIL import Image import os from tqdm import tqdm input_dir “./cleaned_images” output_dir “./final_images” target_size (512, 512) # 目标尺寸可根据你的需求修改 os.makedirs(output_dir, exist_okTrue) print(f”开始将图片统一调整至 {target_size}...”) for filename in tqdm(os.listdir(input_dir)): if not filename.lower().endswith((‘.jpg’, ‘.jpeg’, ‘.png’)): continue input_path os.path.join(input_dir, filename) output_path os.path.join(output_dir, filename) try: with Image.open(input_path) as img: # 调整大小使用LANCZOS高质量下采样滤波器 img_resized img.resize(target_size, Image.Resampling.LANCZOS) # 保存为jpg格式 if not filename.lower().endswith(‘.jpg’): output_path output_path.rsplit(‘.’, 1)[0] ‘.jpg’ img_resized.save(output_path, ‘JPEG’, quality95) except Exception as e: print(f”处理 {filename} 时出错: {e}”) print(“图片尺寸调整完成”)运行后所有图片都会变成512x512像素并保存在final_images文件夹中。6. 第五步划分训练集与验证集我们不能把所有数据都用来训练需要留出一小部分作为“期末考试卷”验证集在训练过程中检查模型是否真的学会了而不是死记硬背。创建一个04_split_dataset.py脚本按比例例如90%训练10%验证随机划分import pandas as pd import os import shutil from sklearn.model_selection import train_test_split # 读取标注文件 df pd.read_csv(‘captions.csv’) # 确保你的captions.csv文件在项目根目录 image_dir “./final_images” output_dir “./dataset” train_dir os.path.join(output_dir, “train”) val_dir os.path.join(output_dir, “validation”) os.makedirs(train_dir, exist_okTrue) os.makedirs(val_dir, exist_okTrue) # 划分数据集 train_df, val_df train_test_split(df, test_size0.1, random_state42) # 10%作为验证集 print(f”总样本数: {len(df)}”) print(f”训练集: {len(train_df)}”) print(f”验证集: {len(val_df)}”) # 复制图片到对应文件夹并保存新的标注文件 def copy_files(file_df, target_img_dir, target_csv_path): os.makedirs(target_img_dir, exist_okTrue) for _, row in file_df.iterrows(): img_src os.path.join(image_dir, row[‘image_name’]) img_dst os.path.join(target_img_dir, row[‘image_name’]) if os.path.exists(img_src): shutil.copy2(img_src, img_dst) else: print(f”警告图片 {row[‘image_name’]} 不存在于 {image_dir}”) file_df.to_csv(target_csv_path, indexFalse) copy_files(train_df, train_dir, os.path.join(output_dir, “train.csv”)) copy_files(val_df, val_dir, os.path.join(output_dir, “validation.csv”)) print(“数据集划分完成”) print(f”最终数据集结构已保存在 ‘{output_dir}’ 文件夹中。”)运行后你会得到一个dataset文件夹里面结构清晰dataset/ ├── train/ │ ├── image_0001.jpg │ ├── image_0002.jpg │ └── … ├── train.csv ├── validation/ │ ├── image_0089.jpg │ └── … └── validation.csv7. 总结好了到这里一份为Stable Diffusion微调准备的、高质量的皮革连衣裙数据集就准备好了。整个过程回顾一下其实就是四件核心事找好图、洗干净、说清楚、分好类。我自己的经验是在“说清楚”写描述这一步花的时间最多但回报也最大。你描述得越细致比如“带细微褶皱的哑光皮革”和“光滑如镜的亮面皮革”模型将来就能越精准地生成你想要的质感。刚开始可能觉得有点繁琐但处理完几十张图后你就会找到节奏。最后检查一下你的dataset文件夹确保图片和csv文件里的名字能对上验证集里确实有一些不同款式的图片。接下来你就可以带着这个精心准备的数据集去进行实际的模型微调训练了。记住好的数据是成功的一半这一步的耐心投入绝对会在你看到生成的第一张惊艳的皮革连衣裙图片时感到值得。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关文章:

Stable Yogi Leather-Dress-Collection数据预处理教程:准备高质量训练数据集

Stable Yogi Leather-Dress-Collection数据预处理教程:准备高质量训练数据集 想用Stable Diffusion微调出专属于你的皮革连衣裙模型?第一步,也是最关键的一步,就是准备一个高质量的数据集。很多人觉得模型训练很神秘,…...

揭秘USDT混币器:从智能合约代码到浏览器控制台,一次匿名转账的完整技术栈解析

揭秘USDT混币器:从智能合约代码到浏览器控制台的技术全景 在区块链世界中,隐私保护与交易透明性似乎是一对永恒的矛盾。当每一笔USDT转账都能被链上浏览器追踪到资金流向时,一种名为"混币器"的技术方案正在用密码学重新定义匿名边界…...

别再傻傻克隆了!Conda 4.14+ 一键重命名虚拟环境的正确姿势(附版本检查)

Conda虚拟环境重命名终极指南:从版本检查到高效实践 在Python开发中,虚拟环境管理是每个开发者必备的核心技能。作为最流行的Python环境管理工具之一,Conda在4.14版本引入了一个革命性功能——直接重命名虚拟环境。这个看似简单的改进&#…...

Qwerty Learner终极指南:免费提升英语打字速度的完整教程

Qwerty Learner终极指南:免费提升英语打字速度的完整教程 【免费下载链接】qwerty-learner 项目地址: https://gitcode.com/GitHub_Trending/qw/qwerty-learner Qwerty Learner是一款专为键盘工作者设计的开源工具,通过单词记忆与英语肌肉记忆训…...

OpenClaw深度沟通渠道-全景深度解构

OpenClaw深度沟通渠道-全景深度解构OpenClaw的渠道(Channels)是其“交互层”的核心,是用户意图与AI执行力的唯一交汇点。选择渠道,就是选择将AI能力注入您数字生活的哪个场景。以下分析将超越简单列表,深入每个渠道的技…...

欲望与自感:表征关系分析

欲望与自感:表征关系分析---一、问题意识:为何分析欲望与自感的关系?在AI元人文的建构过程中,“自感”作为意义行为的源初感发,已经与多个哲学概念进行了划界——自感不是冲动、不是主体性、不是概念、不是生命、不是存…...

Windows 11 LTSC系统如何安全添加微软商店:完整解决方案指南

Windows 11 LTSC系统如何安全添加微软商店:完整解决方案指南 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 如果你正在使用Windows 11 24…...

G-Helper:开源硬件控制工具的性能优化实践指南

G-Helper:开源硬件控制工具的性能优化实践指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址: http…...

使用MedGemma 1.5构建医疗知识问答社区的实践

使用MedGemma 1.5构建医疗知识问答社区的实践 1. 引言 医疗行业每天产生海量的专业知识和临床数据,但医生和医学研究者往往难以快速获取精准的医疗信息。传统的医疗知识检索方式效率低下,专业门槛高,让很多医疗工作者在紧急情况下无法及时获…...

终极指南:用Kronos金融大模型5步构建你的量化交易系统

终极指南:用Kronos金融大模型5步构建你的量化交易系统 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos Kronos是首个专为金融市场设计的开源基础…...

Qwen2.5-Coder-1.5B实现计算机网络实验:TCP/IP协议栈分析

Qwen2.5-Coder-1.5B实现计算机网络实验:TCP/IP协议栈分析 1. 引言 计算机网络课程中的TCP/IP协议栈分析实验一直是让学生头疼的内容。传统实验需要手动编写底层网络代码,配置复杂环境,调试过程繁琐。现在有了Qwen2.5-Coder-1.5B这样的代码生…...

老系统兼容Python解决方案:PythonVista版本支持与安装指南

老系统兼容Python解决方案:PythonVista版本支持与安装指南 【免费下载链接】PythonVista Python 3.9 installers that support Windows 7 SP1 and Windows Server 2008 R2 项目地址: https://gitcode.com/gh_mirrors/py/PythonVista 在企业环境和个人用户中&…...

Python AI模型推理慢?3个被90%工程师忽略的代码级优化技巧,立竿见影提升3.2倍吞吐量

第一章:Python AI模型推理慢?3个被90%工程师忽略的代码级优化技巧,立竿见影提升3.2倍吞吐量避免动态类型推断导致的重复开销 Python 的动态类型在模型推理中常引发隐式类型转换和属性查找开销。尤其在循环内调用 model.forward() 时&#xff…...

021工程微服务治理实战:Spring Cloud Alibaba 2024 全景落地指南

工程微服务治理实战:Spring Cloud Alibaba 2024 全景落地指南 在工程行业数字化转型的深水区,我们面临着独特的技术挑战:一个大型地产项目往往涉及设计、采购、施工、监理、成本、营销等十几个业务域,服务调用链路复杂&#xff1b…...

别再乱用Adam了!PyTorch中AdamW优化器的正确打开方式(附代码示例)

别再乱用Adam了!PyTorch中AdamW优化器的正确打开方式(附代码示例) 当你盯着训练曲线发呆,发现验证集表现始终不如预期时,或许该检查一下优化器的选择了。很多开发者习惯性地在PyTorch脚本里写下optim.Adam(model.para…...

告别C盘爆满!Windows 11下ESP-IDF 5.3.2环境安装与路径优化全攻略

告别C盘爆满!Windows 11下ESP-IDF 5.3.2环境安装与路径优化全攻略 你是否经历过C盘空间告急的恐慌?当红色进度条填满磁盘图标时,那种窒息感堪比程序员面对满屏报错。对于嵌入式开发者而言,ESP-IDF环境安装往往成为C盘的"隐形…...

5分钟搞定!Cesium/Leaflet/OpenLayers调用免费瓦片地图资源全攻略

三大地图框架快速调用免费瓦片资源实战指南 第一次接触GIS开发时,最让人头疼的莫过于地图底图资源的获取。作为项目的基础支撑,地图瓦片的质量和稳定性直接影响最终用户体验。但商业地图API往往价格不菲,对个人开发者和小型项目来说成本压力较…...

数据库索引优化与慢查询排查实战:1000名工人工单工单系统性能攻坚

数据库索引优化与慢查询排查实战:千人施工队工单系统性能攻坚场景:某建筑集团大型商业综合体项目 规模:1000名工人,日均生成3000工单,工单表累计800万记录 痛点:早班派工高峰期系统卡顿,工单查询…...

3步实现专业级字幕去除:面向视频创作者的AI处理工具全指南

3步实现专业级字幕去除:面向视频创作者的AI处理工具全指南 【免费下载链接】video-subtitle-remover 基于AI的图片/视频硬字幕去除、文本水印去除,无损分辨率生成去字幕、去水印后的图片/视频文件。无需申请第三方API,本地实现。AI-based too…...

RMBG-2.0在远程办公中的应用:Zoom虚拟背景实时抠像插件开发指南

RMBG-2.0在远程办公中的应用:Zoom虚拟背景实时抠像插件开发指南 远程办公已经成为许多人的日常,视频会议更是其中的核心环节。你是否厌倦了千篇一律的虚拟背景图片?或者因为摄像头背景杂乱而不敢开启视频?今天,我们将…...

石家庄整家定制哪个口碑好

在石家庄选择整家定制服务时,许多家庭会关注品牌的口碑、设计、环保与工艺。一个注重细节、提供系统解决方案的品牌,往往能更好地满足现代家居生活的需求。为什么整家定制受到青睐?整家定制能够根据户型、居住者习惯和审美偏好,提…...

OpenClaw日志分析技巧:GLM-4.7-Flash任务执行问题定位

OpenClaw日志分析技巧:GLM-4.7-Flash任务执行问题定位 1. 为什么需要关注OpenClaw日志 上周我在尝试用GLM-4.7-Flash模型自动处理一批技术文档时,遇到了一个诡异现象:任务明明显示执行成功,但最终输出文件却是空的。这个经历让我…...

两行代码实现全自动网页翻译:translate.js 终极指南

两行代码实现全自动网页翻译:translate.js 终极指南 【免费下载链接】translate Two lines of js realize automatic html translation. No need to change the page, no language configuration file, no API key, SEO friendly! 项目地址: https://gitcode.com/…...

基于FLUX.2-klein-base-9b-nvfp4的Java后端服务集成指南

基于FLUX.2-klein-base-9b-nvfp4的Java后端服务集成指南 最近在做一个内容创作平台的后台重构,产品经理提了个需求,希望用户上传的草图或者简单的线框图,能自动转换成更精美的概念图。这要是放在以前,要么找设计师手动处理&#…...

Autoware.universe 技术栈全景解析:从硬件选型到软件集成的智驾工程实践

1. Autoware.universe技术栈全景概览 第一次接触Autoware.universe时,我被它庞大的技术生态震撼到了。这不仅仅是一个自动驾驶软件框架,更像是一个完整的工程体系。经过几个实际项目的摸爬滚打,我发现要真正掌握这套技术栈,必须建…...

从零开始:用Qwerty Learner提升你的打字速度和英语学习效率

从零开始:用Qwerty Learner提升你的打字速度和英语学习效率 【免费下载链接】qwerty-learner 项目地址: https://gitcode.com/GitHub_Trending/qw/qwerty-learner 还在为打字速度慢而烦恼吗?想同时提升英语词汇量和编程术语记忆吗?Qw…...

3小时从零到一:在Linux上搭建macOS虚拟机的完整实战指南

3小时从零到一:在Linux上搭建macOS虚拟机的完整实战指南 【免费下载链接】OneClick-macOS-Simple-KVM Tools to set up a easy, quick macOS VM in QEMU, accelerated by KVM. Works on Linux AND Windows. 项目地址: https://gitcode.com/gh_mirrors/on/OneClick…...

遥感影像裁剪避坑指南:如何用ENVI5.3的Subset功能精准提取县区数据(含背景值设置技巧)

遥感影像裁剪避坑指南:ENVI5.3 Subset功能深度解析与实战技巧 当你在处理县域尺度的遥感影像分析时,是否遇到过裁剪后图像边缘出现黑边、数据丢失或坐标错位的问题?这些看似简单的操作细节,往往成为影响后续分析精度的关键因素。本…...

简单几步:星图平台快速部署Qwen3-VL:30B,创建专属飞书智能机器人

简单几步:星图平台快速部署Qwen3-VL:30B,创建专属飞书智能机器人 1. 环境准备与镜像部署 1.1 选择合适的基础镜像 在星图AI云平台创建实例时,我们需要选择支持多模态大模型的专用镜像。Qwen3-VL-30B是目前最强的多模态模型之一&#xff0c…...

GTE模型在法律文书智能检索中的突破性应用

GTE模型在法律文书智能检索中的突破性应用 1. 引言 在法律行业,文书检索一直是个让人头疼的问题。传统的检索方式主要依赖关键词匹配,但法律文书往往涉及复杂的语义关系和专业术语,简单的关键词搜索经常会出现"查不全"或"查…...