Stable Diffusion 使用详解(2)---- 图生图原理,操作,参数

目录

背景

图生图原理

基本原理

1. 扩散模型基础

2. 图生图的具体流程

3. 关键技术点

4. 应用实例

CLIP 原理

1.基本概念

2. 核心特点

使用及参数

随机种子

重绘幅度

图像宽高

采样方法

1. DPM(扩散概率模型)

2. SDE(随机微分方程)

3. Karras等人的优化策略

4. DPM + SDE Karas的特点

5. 应用场景

prompt的书写

小结

正向提示词

反向提示词

其他设置

底模


背景

图生图,应该说应用非常广泛。因为文生图,AI绘画只能根据你描述的语言进行绘制,可能执行100次,100次的结果都不同。但是图生图的机制不太一样。当使用图生图机制时,AI首先会分析原画的一些特征,有一些语言很难表达,比较晦涩的特征会被AI 通过原画的方式进行捕捉。因为如果说你大脑中所想,经过人类语言描述AI可能不大能很好的把握,通过提示词的技巧可以使得你想表达的东西距离AI越近(如果你还不会提示词技巧,看下上一篇文章 Stable Diffusion 详解(1)---- 提示词及相关参数-CSDN博客),那么直接用图的方式让AI自己图提取特征就更为直接。如果熟悉神经网络和卷积的朋友都应该清楚,AI 正是通过无数个卷积神经网络提取不同图片的特征,当然著名的model 也很多,比如ResNet-50 等,当然这不是这次讲的重点,重点是你需要知道通过原图提取图片特征是一种更为直接的手段,不要让AI作画范围跑的太偏了。他与prompt 结合,可能会产生一些更好的结果。比如将你的头像转为二次元头像等。

图生图原理

基本原理

其实第一次介绍stable diffusion,大致说了下VAE的基本原理。这次仔细阐述下。实际上图生图的原理所用到的基本模型思想和在另一个专栏里写的 Milvus 实践(1) --- 文本-图片交互式search搭建及原理-CSDN博客有异曲同工之处,AI在输入上接受两个维度的输入信息,一个维度是图片本身的,你可以用诸如ResNet-50 提取。只不过对于stable diffusion 来说,采用了一种称之为 diffusion的encoder方式完成隐空间特征。另一维度,来自文本,一般可以采用诸多LLM embedding coding 中的一种就行,stable diffusion也不例外,只不过采用了一种与图片diffusion encoder相匹配的 embedding coding的方式完成。就像在文本搜索中,CLIP的做法总是将图片与文本的两个维度信息转换为相同向量的维度进行合成一样。

图生图原理主要基于扩散模型(Diffusion Model)的框架,该模型通过模仿物理过程中的分子扩散现象,将图像从纯噪声逐渐演化为清晰图像。在图生图场景中,Stable Diffusion不仅接受文字提示,还接受一张源图片作为额外条件,从而生成与源图相关联且符合提示要求的新图像。以下是Stable Diffusion图生图原理的详细解释:

1. 扩散模型基础

  • 定义:扩散模型是一种深度学习模型,它通过逐步添加噪声来“扩散”图像,然后将图像从完全噪声中逐步恢复出原始图像或生成新图像。
  • 过程:扩散过程分为两个相反的阶段:扩散(增加噪声)和逆扩散(去除噪声并恢复结构)。在图生图场景中,逆扩散阶段被用来根据用户提供的输入图片和提示词,逐步生成目标图像。

2. 图生图的具体流程

  • 输入:用户需要提供一张源图片和相应的提示词。源图片的信息被编码为隐空间中的向量表示,与文字提示共同作为逆扩散过程的起点。
  • 编码:源图片通过图像编码器(如VAE Encoder)生成隐空间特征(Latent Feature),同时提示词通过CLIP Text Encoder编码为文本特征。
  • 逆扩散:在逆扩散过程中,模型使用噪声预测器(如U-Net结构)来逐步去除隐空间中的噪声,同时根据提示词的语义信息指导生成过程。这个过程中,模型会同时参考源图片的结构特征和提示词的语义信息,从而生成新的图像。
  • 解码:经过逆扩散过程后,得到的隐空间特征通过图像解码器(如VAE Decoder)转换回像素空间,生成最终的图像。

3. 关键技术点

  • 隐空间表示:源图片的信息被编码为隐空间中的向量表示,这使得模型能够处理高维的图像数据并降低计算复杂性。
  • 噪声预测器:U-Net结构的噪声预测器负责预测并去除隐空间中的噪声,同时注入文本语义信息以指导生成过程。
  • 语义信息融合:通过CLIP Text Encoder将提示词转换为文本特征,并以Cross Attention的形式与U-Net结构耦合,实现文本和图像的语义信息融合。
  • 采样器和重绘幅度:采样器负责协调整个去噪过程,并根据设计模式在动态调整U-Net去噪强度。重绘幅度决定了新生成的图片在多大程度上改变参考图片。

4. 应用实例

在图生图任务中,Stable Diffusion可以应用于多种场景,如将真人照片转换为二次元风格、对图片进行局部修改(如修改颜色、添加元素等)等。用户可以通过调整提示词、重绘幅度等参数来控制生成结果的效果。

综上所述,Stable Diffusion的图生图原理是基于扩散模型的框架,通过编码源图片和提示词、逆扩散过程以及解码过程来生成新的图像。这一过程中涉及了隐空间表示、噪声预测器、语义信息融合等关键技术点,使得Stable Diffusion能够生成出与源图相关联且符合提示要求的新图像。

CLIP 原理

如果你已经是AI 高手了,CLIP 不用我多解释,如果你不是很明白,我还是解释下CLIP的前世今生。

“Contrastive Language-Image Pre-training”,是由OpenAI开发的一种能够同时理解文本和图像的人工智能模型。以下是对CLIP的详细解释:

1.基本概念

  • 定义:CLIP是一个基于对比学习的多模态学习模型,旨在通过同时学习图像和文本特征,使得模型能够理解并关联不同模态的信息。不得不提一下,最初这个概念是OpenAI 提出的,虽然我们被禁止调用了,但是这个思想还是很不错的。

2. 核心特点

  1. 多模态能力
    • CLIP能够同时处理文本和图像两种不同类型的输入,这是其最显著的特点之一。传统的AI模型通常只处理单一类型的输入,如只理解文字(如GPT-3)或只理解图像(如ResNet)。
    • 这种多模态能力使得CLIP特别适合于需要将文字和图像关联起来的任务,如图像搜索、图像生成等。
  2. 对比学习方法
    • CLIP的名字中的“Contrastive”指的是一种学习方法,即对比学习。在这种学习方法中,模型通过比较不同样本之间的相似性和差异性来学习数据特征。
    • 在CLIP中,对比学习被用来训练模型理解图像和文本之间的对应关系。具体来说,模型会学习将相关的图像和文本对映射到相似的特征空间中,而将不相关的图像和文本对映射到不同的特征空间中。
  3. 强大的关联能力
    • 通过学习图像和文本之间的映射关系,CLIP能够准确地生成符合文本描述的图像,或者根据图像内容找到合适的文本标签。
    • 这种关联能力使得CLIP在图像生成、图像识别、内容创建等任务中具有巨大的潜力。

使用及参数

随机种子

这个参数要说一下,在上一节中,有人问,根据相同提示词,AI绘制出的东西总是不同的,确实是这样,因为AI 绘画有随机性,他只需要满足你描述的prompt即可。但是我们有时候只是想改变背景,保留住主元素,比如上一节的哪个快艇,我们想保留住,只是想改变背景蓝色的大海怎么办?

那这时,就需要看下当时的随机数是多少,用当时的随机数即可。比如上一节的例子中,最后绘制出来的图片是这样的:

我们想保留之前的那个快艇:

将随机种子找到,hold 住。再生成图:

就回来了。

重绘幅度

就是希望AI重新绘制的力度是多少,太大容易走样,太小没有什么新意。根据我的经验,设置在6-8之间比较合适。

图像宽高

建议是生成的图片与原图片等比例,不然容易出问题,哪怕是以后重新扩图也行。今天绘制一个stable diffusion 生成的美女,看看把她变为 二次元风格会是怎样。

原图信息

 

采样方法

其实采用方法很多,主要用来描述怎么解析原图和怎么与之生成配对的新图的方案。我比较喜欢采用DPM + Karas 的方式,但是我还是解释下原理,没听明白,可以跳过,其实数学的东西比较多。先泛泛解释下。

采样方法DPM + SDE Karas(或DPM++ SDE Karras)是Stable Diffusion等图像生成模型中的一种采样策略,它结合了DPM(Diffusion Probabilistic Models,扩散概率模型)和SDE(Stochastic Differential Equation,随机微分方程)以及Karras等人的优化策略。以下是对该采样方法的详细解析:

1. DPM(扩散概率模型)

DPM是一种通过逐步添加噪声到数据中,然后学习如何逐步去除噪声以恢复原始数据的生成模型。这种方法在图像生成领域取得了显著成果,因为它能够生成高质量的图像,并且具有较好的可解释性和可控性。

2. SDE(随机微分方程)

SDE是一种描述系统随时间变化的随机过程的数学工具。在图像生成中,SDE被用来模拟图像数据的扩散过程,即图像数据逐渐添加噪声的过程。通过求解SDE的逆过程,可以生成去噪后的图像,即原始图像。

3. Karras等人的优化策略

Karras等人提出了一种高效的随机数生成方法和优化策略,这些策略被应用于DPM + SDE Karas中,以减少计算量和内存消耗,同时提高生成图像的质量和效率。

4. DPM + SDE Karas的特点

  1. 高效性:结合了DPM和SDE的优点,能够在较少的采样步数下生成高质量的图像。
  2. 可控性:通过调整SDE的参数和Karras等人的优化策略,可以实现对生成图像过程的精细控制。
  3. 多样性:由于SDE的随机性,DPM + SDE Karas能够生成具有多样性的图像样本。

5. 应用场景

DPM + SDE Karas适用于需要高质量、高效率图像生成的场景,如艺术创作、游戏开发、虚拟现实等。此外,它还可以用于图像编辑、图像超分辨率等图像处理任务。

prompt的书写

上一篇已经解释过了,就是 内容prompt + 通用prompt。内容很简单,我就写 1 girl。 通用 prompt 基本就是那些套路,这个需要多练,直接上那些固定讨论写法就好。 

小结

看下最终的设置如下:

正向提示词

a girl,
(masterpiece:1,2),best quality,masterpiece,highres,original,extremely detailed wallpaper,

反向提示词

NSFW,(worst quality:2),(low quality:2),(normal quality:2),lowres,normal quality,((monochrome)),((grayscale)),skin spots,acnes,skin blemishes,age spot,(ugly:1.331),(duplicate:1.331),(morbid:1.21),(mutilated:1.21),(tranny:1.331),mutated hands,(poorly drawn hands:1.5),blurry,(bad anatomy:1.21),(bad proportions:1.331),extra limbs,(disfigured:1.331),(missing arms:1.331),(extra legs:1.331),(fused fingers:1.61051),(too many fingers:1.61051),(unclear eyes:1.331),lowers,bad hands,missing fingers,extra digit,bad hands,missing fingers,(((extra arms and legs))),

其他设置

底模

其实已经有很多人上传了各种你你可能需要的底膜,所谓底膜,如果你懂AI原理,其实就是 以前的checkpoint,说直白点就是AI 绘画大模型针对当下你需要的这个场景提前训练好的模型参数。不过现在用safetensor 的方式比较流行,以前是 kpt 文件的方式存储,有安全问题,可能引入其他可执行代码。相对来说 safetensor 就是存储的模型layer 张量数据,很单纯,安全性高。不扯远了,你可以选择一个已经有的成熟底膜。我这里选择的是

好了,设置完成,看看出图效果。

第一幅是原图,后面三张是二次元生成的动漫效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/48027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

能源化工5G防爆终端能给行业带来什么重要作用?

在能源化工领域,5G防爆终端的引入无疑为行业带来了革命性的变革与重要作用。这些集成了先进5G通信技术和防爆设计的高端设备,不仅提升了生产作业的安全性,还极大地增强了运营效率与智能化水平。 高速、低延迟的5G网络为防爆终端提供了前所未有…

机器人控制:物理人机交互控制中的不稳定性因素及其解决思路

机器人控制:物理人机交互控制中的不稳定性因素及其解决思路 物理人机交互控制中的不稳定性是指在机器人或相关物理系统与人类进行交互时,系统行为表现出的一种非预期、不可控或难以预测的动态特性。这种不稳定性可能源于多个方面,包括但不限于…

SPA Fiori开发实战课程(一)

前言 由于工作需要,对Fiori的开发有了一些具体实践,所以做一些记录和总结。 准备工作 1. 对前端有一定的了解,熟悉Node.js,Vue等前端服务器和基础框架。 2. 后端使用ABAP系统。 3. 使用Visual Studio Code进行开发。 工程搭建 打…

基于springboot+vue+uniapp的开放实验室预约管理系统

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

通信流程:https【SSL/TLS】,git仓库【https/SSH】,蓝牙【面对面快传/AirDrop】

目录 HTTPS HTTP(80端口) SSL/TLS协议(传输层,443端口) 密文传输:SSL的后续版本TLS TLS1.2握手 1.摘要算法(散列函数 Hash Function):验证信息的完整性,不可逆 第三方认证 引…

弹性网络回归(Elastic Net Regression)

弹性网络回归(Elastic Net Regression)的详细理论知识推导 理论背景 弹性网络回归结合了岭回归(Ridge Regression)和Lasso回归(Lasso Regression)的优点,通过引入两个正则化参数来实现特征选择…

【Android】ConstrainLayout约束布局基本操作

文章目录 介绍约束条件添加方式外边距设置删除方式 添加约束条件父级位置对齐方式基线对齐引导线约束屏障约束 约束偏差使用链控制线性组 介绍 约束布局ConstraintLayout是 Android Studio 2.3 起创建布局后的默认布局 主要是为了解决布局多层嵌套问题,以灵活的方式…

抖音/腾讯/百度ocpm深度回传如何操作?广告投放双出价的投放技巧?

要实现抖音、腾讯和百度的OCPM(Optimized Cost Per Mille)深度回传,可以通过借助第三方平台,例如(转化宝)实现广告数据精准回传,如此之外,在广告投放过程中还需要注重这些方面。 转化…

ros笔记02--从零体验ros2中的服务通信方式

ros笔记02--从零体验ros2中的服务通信方式 介绍创建步骤注意事项说明 介绍 在ROS 2中,服务指的是远程过程调用,client调用server,server节点收到数据后计算出结果并返回给client. 服务通常期望能快速返回,因此不应当用于处理长时…

深度学习落地实战:大模型生成图片

前言 大家好,我是机长 本专栏将持续收集整理市场上深度学习的相关项目,旨在为准备从事深度学习工作或相关科研活动的伙伴,储备、提升更多的实际开发经验,每个项目实例都可作为实际开发项目写入简历,且都附带完整的代…

TypeScript 教程(十):项目配置、代码质量与前端框架集成

目录 前言回顾类型声明文件与异步编程1. tsconfig.json 高级配置a. 基本配置b. 高级配置选项 2. 使用 Webpack 构建 TypeScript 项目a. 安装依赖b. 配置 Webpack 3. 使用 Babel 编译 TypeScripta. 安装依赖b. 配置 Babelc. 配置 Webpack 使用 Babel 4. 使用 ESLint 和 TSLinta.…

复杂网络的任意子节点的网络最短距离

复杂网络的任意子节点的网络最短距离 题目要求介绍 本文算法测试用的数据集为空手道俱乐部,其中空手道俱乐部的数据集可通过这个链接进行下载•http://vlado.fmf.uni-lj.si/pub/networks/data/Ucinet/UciData.htm#zachary 摘要 本文旨在解决复杂网络中任意子节点…

Godot学习笔记2——GDScript变量与函数

目录 一、代码编写界面 二、变量 三、函数 四、变量的类型 Godot使用的编程语言是GDS,语法上与python有些类似。 一、代码编写界面 在新建的Godot项目中,点击“创建根节点”中的“其他节点”,选择“Node”。 点击场景界面右上角的绿色…

前端Vue组件化实践:自定义发送短信验证码弹框组件

在前端开发中,随着业务逻辑的日益复杂和交互需求的不断增长,传统的整体式开发方式逐渐暴露出效率低下、维护困难等问题。为了解决这些问题,组件化开发成为了一种流行的解决方案。通过组件化,我们可以将复杂的系统拆分成多个独立的…

LeetCode 860柠檬水找零(贪心算法)/406根据身高重建队列(贪心算法)

1. 柠檬水找零 思路分析 只需要维护三种金额的数量,5,10和20。 有如下三种情况: 情况一:账单是5,直接收下。情况二:账单是10,消耗一个5,增加一个10情况三:账单是20&am…

使用Java -jar运行就jar包时报异常:org.yaml.snakeyaml.error.YAMLException异常

Java运行就 .jar包时出现的 YAMLException 异常 我在本地环境测试时,使用 java -jar 命令运行 Java 可执行 .jar 包时,遇到了 org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length 1 异常;这…

关于集成网络变压器的RJ45网口

集成网络变压器的RJ45网口是一种将网络变压器与RJ45接口集成在一起的网络连接解决方案。这种集成设计具有多项优势,使其在现代网络设备中得到广泛应用。 优势与特点 1. **空间节省**:集成设计减少了组件数量和连接线缆长度,有助于节省设备内…

激光打印机原理学习

文章目录 参考资料印刷四分色模式激光打印机的工作原理 参考资料 全网最清晰的打印机工作原理 印刷四分色模式 四分色(Quadtone)印刷是一种特殊的印刷技术,它使用四种不同的颜色通道来再现彩色图像。这四种标准颜色是:C青色&am…

Linux云计算 |【第一阶段】ENGINEER-DAY5

主要内容: SELinux、系统故障修复、HTTPD/FTP服务搭建、防火墙策略管理、服务管理 一、SELinux安全制度 SELinux(Security-Enhanced Linux),美国NSA国家安全局主导开发,一套增强Linux系统安全的强制访问控制体系&…

【Android】 dp与sp,加冕为王

目录 重要概念 屏幕尺寸 屏幕分辨率 屏幕像素密度 基础知识: ppi pt DPI 的定义和重要性 Android 中的 DPI 级别 px dp(Density Independent Pixels) sp(Scale-independent Pixels) 安卓的dp/dip、sp 虚拟…