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

Stable Diffusion 图像生成 GUI 应用:图像缩放等五个优化——SD界面学习记录

本篇续前面Stable Diffusion+Pyqt5实现图像生成和管理界面,链接如下:
Stable Diffusion+Pyqt5: 实现图像生成与管理界面(带保存 + 历史记录 + 删除功能)——我的实验记录(结尾附系统效果图)-CSDN博客
前面功能较简,为提升用户体验,这篇是一个基于 PyQt5 的 GUI 应用,简化了 Stable Diffusion 的图像生成过程,优化后包含另存为、缩放等功能通过多项优化增强了功能性和灵活性。以下是优化前后的对比以及改进的核心内容。

目录

优化前的功能​编辑

优化后的界面

 优化一

 优化二 

 优化三    

 优化四

  优化五     

总结

优化前的功能

初始版本已具备基本功能,但存在以下局限性

  1. 图像生成与提示词输入:用户输入提示词后,点击生成按钮,异步调用模型生成图像。

  2. 历史记录管理:通过 QListWidget 显示已生成图像和提示词,支持逐一删除。

  3. 状态反馈:通过 QTextEdit 显示生成过程中的状态,如开始、完成、错误。

局限性

  • 图像管理单一,缺少批量删除功能(后续优化点)。

  • 生成参数固定,无法调整推理步数或优化强度(优化点,后可调)。

  • 图像预览固定大小,无法查看细节(优化点,后可放大)。

  • 没有搜索功能,历史记录难以管理。

  • 图像保存路径固定(后加另存为功能,可存到本地)。

优化后的界面

针对以上问题,我进行了五项主要优化:

 优化一

            另存为功能:用户可以通过点击“另存为”按钮选择路径保存图像。

           实现:添加 QPushButtonQFileDialog,实现图像路径自定义保存。

          点击图像可另存为,可选择本地文件夹

 优化二 

            批量删除历史图像:支持多选历史图像,批量删除选中的文件。

            实现:在 QListWidget 中启用多选模式,修改删除逻辑,批量移除文件。

 优化三    

            图像预览缩放:支持通过鼠标滚轮缩放图像预览。

            实现:为 QLabel 添加滚轮事件监听,动态调整图像显示比例。

缩放效果(前):

 缩放效果(后):

 优化四

            自定义生成参数:用户可调整推理步数和优化强度(如 num_inference_stepsstrength)。

            实现:通过 QSpinBoxQDoubleSpinBox 控件调整生成参数
尝试修改参数,优化强度0.3改为0.6,推理步数30改为15步,点击开始生成

A cute little Asian girl playing with her dog in a little princess dress一个可爱的亚洲小女孩在和狗狗玩耍,穿着小公主裙

  优化五     


       A cute little boy in short sleeves is playing soccer with a kitten on a soccer field

      一个可爱小男孩穿着短袖在和小猫踢足球,在足球场上。

            历史记录搜索:通过搜索框过滤历史记录,可以按提示词或文件名查找。

            实现:为 QLineEdit 添加监听,实现动态筛选历史记录。      

搜索00:

 搜索006:

总结

优化后,应用的功能和交互性得到了显著提升。用户不仅可以更灵活地保存和管理图像,还可以根据需求调整生成参数,查看图像细节,并高效搜索历史记录。通过这些改进,整个应用变得更加实用,且仍保持简洁高效。
深度学习项目记录·Stable Diffusion从零搭建、复现笔记-CSDN博客
Stable Diffusion+Pyqt5: 实现图像生成与管理界面(带保存 + 历史记录 + 删除功能)——我的实验记录(结尾附系统效果图)-CSDN博客

SD + Contronet,扩散模型V1.5+约束条件后续优化:保存Canny边缘图,便于视觉理解——stable diffusion项目学习笔记-CSDN博客

相关文章:

  • yml文件上传并映射到实体类
  • Service生命周期
  • 微图4在《宁夏清水湾小流域治理》工程项目中的应用案例
  • Arrays.asList()的对象不能调用add/remove/clear方法
  • 力扣-hot100(最长连续序列 - Hash)
  • C++高级2 智能指针
  • CodeBuddy 焕新升级: 软件开发智能体 Craft 重磅发布
  • Function Calling 与 RAG的关系
  • [第十六届蓝桥杯 JavaB 组] 真题 + 经验分享
  • MySQL 数据库备份和恢复全指南
  • 多线程(三)
  • Python Pandas实现导出两个Excel数据集的分组记录数分析
  • 封装一个搜索区域 SearchForm.vue组件
  • 【项目】构建高性能多线程内存池:简化版 tcmalloc 实现指南
  • scoped+组件通信+props校验+记事本组件
  • 企业微信PC端 开启调试模式
  • 关于我的服务器
  • Python + 淘宝 API 开发实战:自动化采集商品详情与 SKU 数据清洗指南
  • Qt项目——串口调试助手
  • vite【详解】常用配置 vite.config.js / vite.config.ts
  • 最高法典型案例:学生在校受伤,学校并非必然担责
  • 中国与柬埔寨签署多领域合作文件
  • 民生访谈|电动自行车换新补贴会优化吗?今年汛期情况如何?市应急局回应
  • 美股再遭重挫,标普500指数11个板块全线溃败
  • 青创上海—2025浦东徒步行活动举行,“青年草坪创新创业湃对”正式亮相
  • 云南:近两千亩拍得土地因规划变更不得开发,政府要求转型、企业无力为继