基于 Stable Diffusion 的数据增强实践方案
'数据不够?那就让 AI 自己画!'——某位凌晨三点还在调 prompt 的算法工程师
当训练数据成了'稀有动物'
做 CV 的兄弟姐妹都懂,数据永远比 idea 贵。
老板一句'我要模型精度再涨 5 个点',背后往往是标注团队通宵达旦地画框、打点、写标签。更惨的是,有些场景连原始图片都凑不齐:
- 医疗影像里,某种罕见病灶一年才出现几十例;
- 工业产线上,缺陷样本比 996 的程序员还稀缺;
- 新零售商品库,长尾 SKU 的货架图只能靠采购小哥手机随手拍——光照、角度、背景全靠缘分。
传统 augmentation 三板斧(旋转、裁剪、颜色抖动)在这些场景下就像用指甲刀砍大树,语义信息没变,但也没增加多少新东西。
直到某天,我盯着 Stable Diffusion 生成的'赛博朋克猫'出神,脑子里突然蹦出一个念头:
既然它能画猫,能不能画'缺陷'?
于是,这篇'血泪踩坑史'就有了开头。
为什么偏偏是 Stable Diffusion?
先别急着抄家伙,生成式模型那么多,凭啥选它?
| 模型 | 可控性 | 开源程度 | 消费级显卡友好度 | 备注 |
|---|---|---|---|---|
| StyleGAN3 | 中 | 高 | 凑合 | 画风偏'艺术',语义控制需额外网络 |
| DALL·E 2 | 高 | 闭源 | ❌ | API 限速 + 钱包警告 |
| Midjourney | 高 | 闭源 | ❌ | 付费 + 不能本地批量 |
| Stable Diffusion | 高 | 完全开源 | RTX 3060 就能 512² 跑 batch | 社区轮子多到用不完 |
一句话:免费、本地、可批量、可微调、社区还卷。
对我们这些**'公司只给预算 0 元'**的开发者来说,它就是天降正义。
把'魔法'拆开:Stable Diffusion 到底干了啥?
'别急着念咒,先搞清楚魔杖是什么木头。'
1. 潜在空间里的'降噪游戏'
Stable Diffusion 把图像压缩到 64×64 的潜在向量(latent space),然后在这块'小画布'上做扩散——前向加噪、反向去噪。
好处?
- 比直接操作像素省显存,512² 图在 8G 显存里能跑 batch=8;
- latent 空间天生带'语义坐标',文本 embedding 像遥控器,往哪儿走它都听得懂。
2. 提示词 = 遥控器的'按钮组合'
正向 prompt:a photo of cracked phone screen, close-up, industrial inspection, 4K, sharp
负向 prompt:cartoon, painting, lowres, blurry, extra fingers


