Skip to content

前言

更新: Invalid Date 字数: 0 字 时长: 0 分钟

🍊Hello,各位好,我是面包!

这篇文档集合了面包的科研实训的经历。

🥕进度汇报


2024年9月25日

  • 初步确定科研实训课题--基本标志物识别
  • 了解通过Stable Diffusion的lora训练AI绘画的基本流程

2024年9月29日

  • 安装B站秋叶的WebUI整合包
  • 上手了AI绘画的文生图的基本流程
  • 根据Up主nely同学的lora教程训练了一个原神角色凝光的人物lora,打通了lora训练的基本流程
  • 进行lora训练,学会打标签

2024年10月15日

  • 拍摄处于干净背景中以黑白圆盘标志物为中心的各种视角的图片
  • 进行生图流程,实现了图片的生成

DANGER

加入了lora训练的生图工作流的成片结果基本过拟合,无法生成背景,缺乏泛化性


2024年11月13日

  • 学习基于Stable Diffusion的图形操作界面comfyui

小纸条

通过节点搭建AI绘画工作流的工具

  • 实现生成不同大小,不同清晰度,不同背景的图片

灵光点

  1. 不同光效->iclight模型
  2. 不同数量->图片融合再调整尺寸
  3. 不同视角->手动拍摄50到100张统一大小且不同视角的图片,再调整成纯色背景
  4. 批量生成->api调用

问题

  1. lora无法训练不同模糊度,不同数量,不同大小的图片,训练出的图片大多是固定大小,固定模糊度,不同视角的图片,
  2. 对于训练不同视角的图片,由于基本标志物的细节要严格与实物一致,所以训练的lora基本上都要过拟合,这样又缺乏泛化性,上次会议说过泛化性,但后面我在训练时发现,过拟合也基本只能生成与图片数据集出现过的视角的图片,不会有新的视角,

2024年11月20日

  • 通过comfyui搭建了一个工作流
  • 实现批量并随机生成不同大小、不同数量、不同模糊度、不同背景、不同视角的灰度图像
  • 24张不同视角的标志物图片作为工作流基础数据
  • 生成随机的图片集

下一步

  1. 微调或优化
  2. 了解模型量化与知识蒸馏

2024年11月29日

  • 尝试了动态提示词与图片反推提示词的节点流效果
  • 使用工业相机拍摄了基本标志物在实际场景下的样例照片

2024年12月4日

  • 添加了雨幕附加和高清放大的节点流程
  • 重新回顾了comfyui的部署流程,在win10服务器上部署了comfyui
  • 进行预计1.5w~2w的图片生成任务

2024年12月4日

  • 完成生成1.5w~2w张图片的任务

图片要求

  1. 数量:15000张(包含)
  2. 分辨率:1440*1080
  3. 标志物出现数量:1,2-5,5-10,10以上

图片分类

  1. 室内设计
  2. 学习环境
  3. 桥梁设计

图片格式

  1. 线性
  2. 线性+模糊
  3. 线性+雨幕
  4. 线性+模糊+雨幕

2025年1月14日

  • 基于sd1.5大模型生成2w张图片数据,实际上只生成了5k张,然后对这些图片进行后期处理,大概可以分成清晰的,模糊的,清晰并附加噪点的,模糊附加噪点的。

  • 发现comfyui可以实现对图片进行简单的标注,但如果一张图片中出现多张或多种标志物久不能准确识别了,有一定概率会识别不到

  • 熟悉了一下yolo模型的训练过程,大概就是对收集的图片数据进行标注,然后将标注后的数据进行模型训练

  • 尝试优化comfyui的工作流,调用其他大模型比如sdxl、flux,但目前的实际效果感觉不如sd1.5.

  • 使用Florence进行图像分割,生成BBOX标注数据

问题

标注成功概率并非100%

  • 尝试flux的canny,depth重绘模型

问题

与周围环境融为一体,无法生成物品的明显边界感

  • 尝试sdxl的controlnet++模型

问题

生成图片背景不过真实

下一步

  1. 为论文出图调整工作流
  2. 语言描述工作流
  3. 论文写稿

2025年1月22日

  • 论文投稿

🥥可行性记录

🍎批量生成图片

  • comfyui界面左上角下三角选项中设置批次数量【失败】

问题

初次加载太慢

  • comfyui界面左上角下三角选项中设置不断生成,按照时间设定【成功】

🥞生成多视角图片

  • 通过lora训练生成新的视角【失败】

🥬数据集的尝试-解决生成图像不同视角【失败】

  1. 第一次尝试

​ 收集了14张以白色桌子为背景的纯标志物图片,以45度为差值和俯视和正视两视图为控制变量

​ 结果:过拟合,基本只能生成以 白色为背景的图片

  1. 第二次尝试

​ 收集了16张通过ps抠图的图片,其余操作同上

​ 结果:可以实现背景的简单替换,但生成稳定标志物的稳定性较差,也不能很好地实现视角的提示词

变换

  1. 第三次尝试

​ 在前面数据集的基础上再添加了8张平视视角的纯白背景标志物图片,同时将所有数据集进行模糊化处理再次生成了24张模糊的数据集,最后再添加4张具有现实场景的图片

​ 结果:SD对模糊度的提示词控制力不够,导致产生的图片基本都有些模糊,无法经过提示词很好地控制,

​ 反思:通过数据集来进行提示词的模糊处理不靠谱。lora只用来训练固定大小,但不同数量,不同视角的图片,而模糊处理、缩放、场景替换则通过comfyui搭建节点工作流来实现。

问题

生成的图片过拟合

  • 通过Stable zero123节点【未进行】

问题

  1. 显存不够
  2. 网络不稳定
  • 图片随机抽取【已成功】

小纸条

  1. 拍摄50张左右干净背景、同等大小的标志物图片
  2. 通过语义分割生成等分辨率、纯色背景的图片
  3. 通过随机读取节点进行工作流的基础图片输入

🌭AI扩图-解决生成物品随机位置与大小

  • 使用inpainting大模型【未进行】
  • 编写自动化脚本进行大规模随机生成【未进行】
  • 利用扩展画布【已成功】

小纸条

  1. 生成与标志物有明显色差的纯色背景,比如(0,255,0)
  2. 通过扩展画布进行随机扩展
  3. 将图片缩放成最符合大模型训练集的尺寸接入工作流

🥕图像模糊-解决生成图像模糊度

  1. 附加节点进行模糊处理【成功】

小纸条

利用高斯模糊直接进行模糊处理

🥪不同光效

  • 在comfyui里使用ic-light节点【成功】

小纸条

  1. 通过数学表达式节点随机生成圆形的遮罩,同时羽化边缘
  2. 调节应用ICLight节点连接的K采样器节点的降噪系数,系数越低,光照越接近光影遮罩

WARNING

  • 插件:【IC-Light】
  • 节点工具:【加载ICLight模型】、【应用ICLight条件】
  • 实现流程:通过模型与遮罩实现光影替换,并可以进一步添加图像细节

🍒随机数量

  • 通过遮罩复合节点生成生成【失败】
  • 通过将正交(11,22,33,44)的图片组合,从有标志物与无标志物的图片中选取【成功】

🧀导出多个图像坐标

  • 调用A=1的次数->图片中标志物的个数
  • 将向左拓展作为x坐标,向上拓展作为y坐标,尺度缩放
  • 将缩放后尺寸与缩放前尺寸作为缩放比例因子,进行比例降化

小纸条

  1. 原缩放坐标/sqrt(输入照片数)
  2. 原缩放坐标/sqrt(输入照片数),x轴+256
  3. 原缩放坐标/sqrt(输入照片数),y轴+256
  4. 原缩放坐标/sqrt(输入照片数),x轴+256,y轴+256

🥑雨幕添加

通过基础文生图工作流生成透明背景的雨幕图片,然后通过【图像混合模式】节点与高清放大后的图片通过【hard light模式】融合。

🥘高清放大

通过分块采样与潜空间缩放生成与工业相机拍摄图片尺寸相符的图片

🥮图片随机或有序读取

  1. 通过【图像批量处理】节点实现随机读取,可以实现单个标志物的图像生成
  2. 添加for循环实现随机选取并正交拼接,实现图片的单个或多个标志物随机选取,,但有可能只选到背景,没有标志物,特别是在一个标志物选择范围内,有二分之一的几率无标志物生成,浪费算力资源
  3. 添加switch节点,无法解决问题,switch与for循环节点之间 可能有调用冲突
  4. 将switch节点换成if节点,解决了生成一个标志物范围时大概率无标志物生成的问题,但生成多个标志物范围时还有小概率生成无标志物图片
  5. 利用for循环索引进行if判断,从而保证至少有一个标志物生成

前提

  • 插件:【was-node-suite-comfyui】
  • 节点工具:【加载批次图像】
  • 实现流程:设置模式为【single_image、incremental_image、random】-> 设置绝对路径

🍝提示词随机生成

前提

  • 插件:【comfyui-dynamicprompts】
  • 节点工具:【动态提示词】、【BrushNet加载器】
  • 实现流程:通过模型处理可实现背景替换

🍛数据集的挑选

1.将黑白圆盘放在桌子上,围绕标志物以45度和视角为变量拍摄 16张图片作为训练集

2.ps抠图制作 纯白背景

3.将sd1.5大模型修改成其他真实场景的大模型

🍿背景

  1. 通过扩图实现

1.数据集收集,纯白背景,斜上方-8,正上方-8,

触发词,背景光影,视角

🍺拍摄图片预处理

前提

  • 插件:【】
  • 节点工具:【SAM模型加载器】、【G-Dino模型加载器】、【G-DinoSAM语义分割】
  • 实现流程:通过模型处理后可得到去除背景的遮罩与图片,把拍摄图片添加绿幕(0,255,0)

🍦图片不同大小

前提

  • 插件:【essentials】、【Custom-Scripts】、【LayerStyle】
  • 节点工具:【数学表达式】、【拓展画布】
  • 实现流程:通过随机函数并通过数学关系输入有限制的随机数将图像替换成等比例不同大小的图片

🥪图片背景

前提

  • 插件:【BrushNet】、【LayerStyle】
  • 节点工具:【BrushNet】、【BrushNet加载器】、【LaMa】
  • 实现流程:通过模型处理可实现符合语义的背景替换

🍩弯路

  • 任何路径都不要有中文路径和空格,否则会生成一些紊乱的图片效果
  • 简单图片容易过拟合,不要老觉得是训练不够,图片混乱十有八九是过拟合了
  • 报错有可能是模型不匹配

问题

  1. 生成图片经过K采样器降噪后基本标志物不能很好地保留原始的圆或对角特征

对经过BrushNet扩图流程的图像与原始绿幕图片经过一定系数的遮罩叠加后再输入后续生图流程

  1. 直接进行sd1.5的1440*1080尺寸图片生成效果不好

先通过sd1.5生成与训练图片集(512×512)相似的尺寸(720×544),然后通过高清放大进行图片扩大