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

AI 绘画Stable Diffusion 研究(九)sd图生图功能详解-老照片高清修复放大


大家好,我是风雨无阻。


通过前面几篇文章的介绍,相信各位小伙伴,对 Stable Diffusion 这款强大的AI 绘图系统有了全新的认知。我们见识到了借助 Stable Diffusion的文生图功能,利用简单的几个单词,就可以生成完美的图片。本期我们一起来研究 Stable Diffusion图生图功能这个宝藏。


对于新朋友,想详细了解Stable Diffusion 的话,请查看往期文章:

AI 绘画Stable Diffusion 研究(一)sd整合包v4.2 版本安装说明
AI 绘画Stable Diffusion 研究(二)sd模型ControlNet1.1 介绍与安装
AI 绘画Stable Diffusion 研究(三)sd模型种类介绍及安装使用详解
AI 绘画Stable Diffusion 研究(四)sd文生图功能详解(上)
AI 绘画Stable Diffusion 研究(五)sd文生图功能详解(下)
AI 绘画Stable Diffusion 研究(六)sd提示词插件
AI 绘画Stable Diffusion 研究(七) 一文读懂 Stable Diffusion 工作原理
AI 绘画Stable Diffusion 研究(八)sd采样方法详解


为了让大家更直观的了解图生图功能,这里以几个实用价值比较高的案例来介绍图生图功能到底是干嘛的,能做什么事情?


  • 第一个案例 老照片高清修复放大

  • 第二个案例 精美二维码的制作

  • 第三个案例 美女换装


这里以案例穿插知识点说明的方式进行讲解。

各位朋友,可以根据我的步骤一边进行实操,一边进行理论知识的学习,这样能提高学习效率。


老照片高清修复放大案例


第一步,我们在修复照片之前,需要先进行设置


设置->面部修复

  • 勾选FGPGAN 选项
  • codeFromer 权重设置为1
  • 勾选处理完成后,将面部修复模型从显存卸载到内存
  • 保存设置
  • 重载前端

在这里插入图片描述


第二步,切换到图生图界面

在这里插入图片描述


第三步,选择需要修复的照片

  • 切换到局部重绘标签页面

  • 将需要修复的图片拖入图片上传区域


在这里插入图片描述


第四步,选择缩放模式


在选择缩放模式前,我们现来看看缩放模式的知识点,四个缩放模式有什么区别:


  • 仅调整大小

    图片会直接缩放拉伸,例如,尺寸从512x512 调整为768x512 , 如图

在这里插入图片描述


  • 裁剪后缩放

    例如,尺寸从512x512 调整为400x512 , 选择此模式后,图片宽度内容会被裁剪掉,如图:


在这里插入图片描述


  • 缩放后填充空白

    例如,尺寸从512x512 调整为768x512 , 选择此模式后,图片宽度方向会以相近的内容自动填充,如图:

在这里插入图片描述


  • 调整大小(潜空间放大)

这种模式和第一种模式比较相似,但是也有区别。

第一种模式,是在图片生成后被缩放。

而这种模式,是图片生成前,在潜空间内先进行缩放,这种缩放,每次出图的效果不太一样,有微小的差别。


例如,尺寸从512x512 调整为768x512:

在这里插入图片描述


所以,可根据自己的需求进行缩放模式的选择。

这里,我们之间选择第一种缩放模式。

在这里插入图片描述


第五步,选择采样方法和迭代步数

采样方法,在前面也有详细介绍,感兴趣的朋友可以前往查看:

AI 绘画Stable Diffusion 研究(八)sd采样方法详解


这里贴一下我的选择建议:

  • 如果想快速生成质量不错的图片,建议选择 DPM++ 2M Karras (20 -30步) 、UNIPC (15-25步)
  • 如果想要高质量的图,不关心重现性,建议选择 DPM++ SDE Karras (10-15步 较慢) ,DDIM(10-15步 较快)
  • 如果想要简单的图,建议选择 Euler,Heun(可以减少步骤以节省时间)
  • 如果想要稳定可重现的图像,请避免选择任何祖先采样器(名字里面带a或SDE)
  • 相反,如果想要每次生成不一样的图像,可以选择不收敛的祖先采样器(名字里面带a或SDE)

这里我们选择 DPM++ 2M Karras (28步)

在这里插入图片描述


第六步、面部修复选择

在选择面部修复相关设置之前,我们先来介绍一下面部修复相关的知识点。

面部修复有两种方式,一种重绘尺寸倍数,一种是重绘尺寸。


  • 重绘尺寸

我们可以点击“三角形”按钮 , 将自动获取到原图的尺寸

在这里插入图片描述


  • 重绘尺寸倍数

按照倍数来,可根据自己的需求,进行选择,例如: 1倍、2倍 、3倍

在这里插入图片描述


在这个案例中,我们直接选择按原图的重绘尺寸,倍数选择1。

  • 重绘幅度

    假如把重绘幅度设置为0,则表示AI 什么都不会做,保持原图。

    假如把重绘幅度设置为1,则表示AI 完全自由发挥,产生的图片跟原图关联性就很小。

因为这里我们要做照片的高清修复,所以这里不需要AI 去重绘 ,设置为0 。


第七步、点击生成


效果如下:

在这里插入图片描述


可以看到效果并不明显,并没有达到预期。这是因为在上述步骤中,只处理了面部细节,对其他部分并未进行处理,那么此时我们还需要进行后期处理。


第八步、后期处理

我们将生成好的图像,点击“发送到后期处理”按钮,切换到后期处理页面。

在这里插入图片描述


缩放比例,选择:1

放大算法选择:SwinIR_4x

在这里插入图片描述


生成效果如下:


在这里插入图片描述


根据对比图,我们可以看到,面部细节以及发色、背景都做了高清处理。


如果你对生成的图像还不满意,那么我再告诉你一个图像高清终极大法,相信高清修复后的图像你绝对没话说。


请继续往下看。


第九步、图像高清终极大法

图像高清终极大法究竟是什么呢?那就是使用ConctrolNet title 进行控制图像效果。


相信阅读过 AI 绘画Stable Diffusion 研究(二)sd模型ControlNet1.1 介绍与安装 这篇文章的朋友应该有印象。


这里在介绍 ConctrolNet 新增的 Tile 模型时,曾经说到过:Tile 模型对于图片高清修复、提升细节、根据画面自动推断内容有着很好效果,大家还记得吗?


好,废话不多说,直接上操作步骤:


(1)、首先切换到图生图界面,并上传需要修复的图片


在这里插入图片描述


(2)、选择缩放模式、采样方法 、开启面部修复


在这里插入图片描述


(3)、启用ControlNet ,并选择需要控制的图片


在这里插入图片描述


(4)、重点来了

  • 控制类型: 选择title 分块
  • 预处理器选择:title_resample
  • 模型选择:control_v11fle_sd15_title

在这里插入图片描述


(5)、点击生成

对比效果如下:

在这里插入图片描述


对这个高清和细节修复效果,你是否还满意?

当然做老照片高清修复的方法网络上也有很多,这里还是着重介绍图生图的功能。

好了,我们的第一个图生图的功能案例就到此结束。

相关文章:

AI 绘画Stable Diffusion 研究(九)sd图生图功能详解-老照片高清修复放大

大家好,我是风雨无阻。 通过前面几篇文章的介绍,相信各位小伙伴,对 Stable Diffusion 这款强大的AI 绘图系统有了全新的认知。我们见识到了借助 Stable Diffusion的文生图功能,利用简单的几个单词,就可以生成完美的图片…...

Linux系统安装Google Chrome

1.进入谷歌浏览器官网 Google Chrome - Download the Fast, Secure Browser from GoogleGet more done with the new Google Chrome. A more simple, secure, and faster web browser than ever, with Google’s smarts built-in. Download now.http://www.google.cn/intl/en_…...

带你了解SpringBoot支持的复杂参数--自定义对象参数-自动封装

😀前言 本篇博文是关于SpringBoot 在响应客户端请求时支持的复杂参数和自定义对象参数,希望您能够喜欢😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章…...

Raspberry Pi Pico RP2040制作低成本FPGA JTAG工具

目录 1 准备工作和前提条件 1.1 Raspberry Pi Pico RP2040板子一个 1.2 xvcPico.uf2固件 1.3 Vivado USB驱动 2 操作指南 2.1 按住Raspberry Pi Pico开发板的BOOTSEL按键,再接上USB接口到电脑 2.2 刷入固件 2.3 Vivado USB 驱动 2.3.1 打开Zadig驱动工具 2.3…...

【工具】Python从临时邮箱获取验证码

安装好依赖库之后代码可直接运行, captcha re.search(r您的验证码为: \*(\w)\*, response.json()[body][html])正则表达式部分改成自己的。 import random import requests import re from faker import Fakerdomain "https://api.mail.cx/api/v1" # 临…...

时序预测 | MATLAB实现基于GRU门控循环单元的时间序列预测-递归预测未来(多指标评价)

时序预测 | MATLAB实现基于GRU门控循环单元的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于GRU门控循环单元的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 1.Matlab实现GRU门控循环单元时间序列预测未…...

在本地搭建WAMP服务器并通过端口实现局域网访问(无需公网IP)

文章目录 前言1.Wamp服务器搭建1.1 Wamp下载和安装1.2 Wamp网页测试 2. Cpolar内网穿透的安装和注册2.1 本地网页发布2.2 Cpolar云端设置2.3 Cpolar本地设置 3. 公网访问测试4. 结语 前言 软件技术的发展日新月异,各种能方便我们生活、工作和娱乐的新软件层出不穷&a…...

Redis之删除策略

文章目录 前言一、过期数据二、数据删除策略2.1定时删除2.2惰性删除2.3 定期删除2.4 删除策略比对 三、逐出算法3.1影响数据逐出的相关配置 总结 前言 Redis的常用删除策略 一、过期数据 Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可…...

SpringBoot的配置文件以及日志设置

在使用SpringBoot开发的过程中我们通常会用到配置文件来设置配置信息 以及使用日志来进行记录我们的操作,方便我们对错误的定位 配置文件的作用在于:设置端口,设置数据库连接信息,设置日志等等 在SpringBoot中,配置…...

【Java集合框架面试题(30道)】

文章目录 Java集合框架面试题(30道)引言1.说说有哪些常见集合? List2.ArrayList和LinkedList有什么区别?3.ArrayList的扩容机制了解吗?4.ArrayList怎么序列化的知道吗?为什么用transient修饰数组?5.快速失败&#xff0…...

Android 组件

TextView 文本框 用于显示文本的一个控件。文本的字体尺寸单位为 sp 。sp: scaled pixels(放大像素). 主要用于字体显示。 文本常用属性 属性名说明id为TextView设置一个组件id,根据id,我们可以在Java代码中通过 findViewById()的方法获取到该对象&…...

kotlin的数据类型和类型转换

在 Kotlin 中,数据类型是变量或表达式的属性,确定了存储的数据类型以及可以在该数据上执行的操作。Kotlin 支持与 Java 类似的基本数据类型,但还引入了一些增强的数据类型和类型安全的特性。 一,基本数据类型 Byte:8…...

常见架构类型

目录 1.单机架构 2.应用数据分离架构 3.读写分离架构 4.冷热分离架构 5.垂直分库架构 6.微服务架构 7.容器编排架构 1.单机架构 单机架构是简单的将应用服务和数据库服务部署到同一台机器上。 缺点:存在很大的性能限制。 2.应用数据分离架构 引入负载均衡&a…...

搭建Web服务器并用cpolar发布至公网访问

本地电脑搭建Web服务器并用cpolar发布至公网访问 文章目录 本地电脑搭建Web服务器并用cpolar发布至公网访问前言1. 首先在电脑安装PHPStudy、WordPress、cpolar2. 安装cpolar,进入Web-UI界面3. 安装wordpress4. 进入wordpress网页安装程序5. 利用cpolar建立的内网穿…...

NanoPi NEO移植LVGL8.3.5到1.69寸ST7789V屏幕

移植前准备 移植好fbtft屏幕驱动 参考链接:友善之臂NanoPi NEO利用fbtft驱动点亮1.69寸ST7789V2屏幕 获取源码 名称地址描述lvglhttps://github.com/lvgl/lvgl.gitlvgl-8.3.5lv_drivershttps://github.com/lvgl/lv_drivers.gitlv_drivers-6.1.1 创建工程目录 创…...

阿里云服务区ECS,申请免费的服务器之后,如何使用xshell 登陆,找不到匹配的host key 算法

目录 1 问题2 解决 1 问题 当在阿里云免费领取服务器之后,使用xshell 登陆不上,提示 找不到匹配的host key 算法 或者 找不到匹配的keyexchange算法 咋解决 2 解决 在在服务器端配置文件:/etc/ssh/sshd_config # 在行尾增加",ecdh…...

【CTF-web】备份是个好习惯(查找备份文件、双写绕过、md5加密绕过)

题目链接:https://ctf.bugku.com/challenges/detail/id/83.html 经过扫描可以找到index.php.bak备份文件,下载下来后打开发现是index.php的原代码,如下图所示。 由代码可知我们要绕过md5加密,两数如果满足科学计数法的形式的话&a…...

C#和Java的大端位和小端位的问题

C#代码里就是小端序,Java代码里就是大端序, 大端位:big endian,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,也叫高尾端 小端位:little endian,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存…...

如何在 iOS 上安装并使用 ONLYOFFICE 文档

借助 iOS 版文档应用,您可在移动端设备上访问存储于 ONLYOFFICE 账户中的文件,查看和编辑现有文本文档、电子表格和演示文稿,创建新文档并对其进行整理,以及连接第三方云存储服务。您可与其他门户网站用户协作编辑文档&#xff0c…...

【AI】如何用AI生成XMind思维导图

哈喽,大家好,我是木头左,物联网搬砖工一名,致力于为大家淘出更多好用的AI工具! 背景 随着人工智能技术的不断发展,越来越多的应用场景开始涉及到AI技术。在办公软件领域,XMind是一款非常受欢迎…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

基于服务器使用 apt 安装、配置 Nginx

🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

django filter 统计数量 按属性去重

在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如&#xff1a…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...