轻松复现一张AI图片

轻松复现一张AI图片

现在有一个非常漂亮的AI图片,你是不是想知道他是怎么生成的?

今天我会交给大家三种方法,学会了,什么图都可以手到擒来了。

需要的软件

在本教程中,我们将使用AUTOMATIC1111 stable diffusion WebUI。这是一款流行且免费的软件。您可以在Windows、Mac或Google Colab上使用这个软件。

方法1: 通过阅读PNG信息从图像中获取提示

如果AI图像是PNG格式,你可以尝试查看提示和其他设置信息是否写在了PNG元数据字段中。
首先,将图像保存到本地。
打开AUTOMATIC1111 WebUI。导航到PNG信息页面。

image-20240409232941011
将图像拖放到左侧的画布上。

上传了图像的PNG信息页面。
在右边你会找到关于提示词的有用信息。你还可以选择将提示和设置发送到txt2img、img2img、inpainting或者Extras页面进行放大。

方法2:使用CLIP interrogator从图像中推测Prompt

在处理图像信息时,我们常常会发现直接的方法并不总是有效。

有时候,信息并没有在最初就被记录在图像中,或者在后续的图像优化过程中被Web服务器去除。

也有可能这些信息并非由Stable diffusion这类AI技术生成。

面对这种情况,我们可以尝试使用CLIP interrogator作为替代方案。

CLIP interrogator是一种AI模型,它具备推测图像内容标题的能力。这个工具不仅适用于AI生成的图像,也能够应对各种类型的图像。通过这种方式,我们能够对图像内容进行更深入的理解和分析。

什么是CLIP?

CLIP(Contrastive Language–Image Pre-training)是一个神经网络,它将视觉概念映射到自然语言中。CLIP模型是通过大量的图像和图像信息对进行训练的。

image-20240409233700659

在我们的用例中,CLIP模型能够通过对给定图片的分析,推断出一个恰当的图片描述。

这个描述可以作为提示词,帮助我们进一步理解和描述图片的内容。CLIP模型通过学习大量的图像和相关文本数据,掌握了图像识别和语义理解的能力,因此它能够捕捉到图片中的关键元素,并将其转化为一个描述性的标题。

WebUI中自带的CLIP interrogator

如果你倾向于避免安装额外的扩展,可以选择使用AUTOMATIC1111提供的内置CLIP interrogator功能。

WebUI提供了两种识别图像信息的功能。一个是clip:这个功能底层基于BLIP模型,它是在论文《BLIP: 为统一的视觉语言理解和生成进行语言图像预训练》中由李俊楠以及其团队所提出的CLIP模型的一个变种。一个是DeepBooru, 这个比较适合识别二次元图片。

要利用这个内置的CLIP interrogator,你可以按照以下简单的步骤操作:

  1. 启动AUTOMATIC1111:首先,你需要打开AUTOMATIC1111的网站。

  2. 导航至img2img页面:在AUTOMATIC1111的界面中,找到并点击“img2img”这一选项。这是一个专门的页面,用于上传和处理图像。

  3. 上传图像到img2img画布:在这个页面上,你会找到一个用于上传图像的区域,通常被称为“画布”。点击上传按钮,选择你想要分析的图像文件,并将其上传到画布上。

  4. 上传之后在界面右边就可以找到两个interrogator工具了:

image-20240409235643665

点击这两个按钮,就可以获得图像的描述信息了。

我们可以得到下面的信息:

a woman in a blue top and pink skirt standing on a hill near the ocean with a grassy area in the background,Ai Xuan,ocean,a statue,rococo,

我们用这段提示发到text2image中看看效果:

image-20240410161245669

嗯…大体上还是有点相似的… 因为图片跟我们的底模,种子还有采样多种因素有关。所以你想1比1复制,这个比较难。

CLIP扩展

如果您在使用AUTOMATIC1111的内置CLIP interrogator时发现其功能不足以满足您的需求,或者您希望尝试使用不同的CLIP模型来获得更多样化的结果,那么您可以考虑安装CLIP interrogator扩展。这个扩展将为您提供更多的选项和灵活性,以适应您特定的使用场景。

这个插件的下载地址如下:

https://github.com/pharmapsychotic/clip-interrogator-ext

要使用CLIP interrogator扩展。

  1. 打开AUTOMATIC1111 WebUI。

  2. 转到interrogator页面。

  3. 将图像上传到图像画布。

  4. CLIP模型下拉菜单中选择ViT-L-14-336/openai。这是Stable Diffusion v1.5中使用的语言嵌入模型。
    image-20240410000207328

  5. 单击生成以生成提示。

对SDXL模型进行CLIP

如果你的目标是使用Stable Diffusion XL (SDXL)模型,那么我们需要选择不同的CLIP模型。

在“interrogator”页面上,你可以选择很多clip模型,如果要和SDXL模型一起工作的话,那么可以选择ViT-g-14/laion2b_s34b_b88k这个选项。

选择ViT-g-14/laion2b_s34b_b88k模型后,系统将会根据这个模型的特性生成相应的提示。你可以使用这个提示词作为SDXL的提示,从而可以更精确地生成与原始图像内容相符合的图像。

ViT-g-14/laion2b_s34b_b88k模型是一个基于Vision Transformer (ViT)架构的预训练模型,它在大型图像数据集laion2b上进行了训练,具有34亿个参数。这个模型在图像识别和理解方面表现出色,能够有效地捕捉图像的关键特征,并生成与原始图像内容紧密相关的提示。

通过这种方式,就可以确保在使用SDXL模型进行图像生成时,所得到的输出图像能够更好地反映原始图像的意图和风格。

总结一下

我们讲了三种方法来从图片信息中提取出对应的Prompt。

你应该首先尝试使用PNG信息方法。这种方法的优势在于,如果图像中包含了完整的元数据,那么您可以一次性获取到包括提示、使用的模型、采样方法、采样步骤等在内的所有必要信息。这对于重新创建图像非常有帮助。

如果PNG没有信息可用,那么可以考虑使用BLIP和CLIP模型。对于v1.5模型来说,ViT-g-14/laion2b_s34b_b88k模型可能是一个不错的选择,它不仅适用于SDXL模型,也可能在v1.5模型中表现出色。

另外,我们在构建提示词的时候,不要害怕对提示词进行修改。因为自动生成的提示可能并不完全准确,或者可能遗漏了一些图像中的关键对象。

所以需要根据自己的观察和需求,来修改提示词以确保它能准确地描述图像内容。这对于最终生成的图像质量和准确性至关重要。

同时,选择正确的checkpoint模型也非常关键。因为提示中可能并不总是包含正确的风格信息。

例如,如果您的目标是生成一个真实人物图像,那么你肯定不能选择一个卡通模型。

点我查看更多精彩内容:www.flydean.com

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

按照模板导出复杂样式的excel

导出excel通常使用的是apache poi,但是poi的api相当复杂,所以当导出的excel样式比较复杂时,写起来就比较头疼了,这里推荐使用easypoi, 可以很方便的根据模板来导出复杂excel 文档地址: 1.1 介绍 - Powered by MinDoc 我们要实现如图所示效果…

【报错】ModuleNotFoundError: No module named ‘einops‘

1 报错 💔💔💔 ModuleNotFoundError: No module named einops 解决方法 💚 💚 💚 pip --default-timeout=100 install einops -i https://pypi.tuna.tsinghua.edu.cn/simple 问题解决啦!!!🌺🌺🌺 2 报错 💔💔💔 ModuleNotFoundError: No module

基于postCSS手写postcss-px-to-vewiport插件实现移动端适配

🌟前言 目前前端实现移动端适配方案千千万,眼花缭乱各有有缺,但目前来说postcss-px-to-vewiport是一种非常合适的实现方案,postcss-px-to-vewiport是一个基于postCss开发的插件,其原理就是将项目中的px单位转换为vw(视…

HTML5+JavaScript实现语音合成(文字转语音)

HTML5JavaScript实现语音合成(文字转语音) 本文介绍用HTML5和JavaScript实现语音合成朗读(文字转语音)。 Web Speech API 有两个部分:SpeechSynthesis 语音合成(文本到语音 TTS)和 SpeechReco…

汽车研发项目进度管理的挑战与优化策略

随着汽车行业的快速发展和市场竞争的加剧,新车型研发项目的进度管理成为车企赢得市场的关键。然而,由于汽车研发项目通常具有投资大、周期长、技术难度高、参与方众多等特点,项目进度管理面临着诸多挑战。为了提升车型研发效率、缩短研发周期…

SQL的基础语句

1、select语句 select colums from table_name 2、条件语句 #查询出查询出用户id为1和3的用户记录 IN 操作符允许我们在 WHERE 子句中规定多个值。 select * from student where id in (1,3) #查询出所有姓王的同学 模糊查询 like 通配符(% 任意多个字符 _单个字符) #下例…

使用Docker搭建本地Nexus私有仓库

0-1开始Java语言编程之路 一、Ubuntu下Java语言环境搭建 二、Ubuntu下Docker环境安装 三、使用Docker搭建本地Nexus Maven私有仓库 四、Ubuntu下使用VisualStudioCode进行Java开发 你需要Nexus Java应用编译构建的一种主流方式就是通过Maven, Maven可以很方便的管理Java应用的…

病理验证mIF和TMA路线(自学)

目录 技术 使用配对病理切片 mIF验证 单基因使用TMA验证 技术 多重荧光免疫组化技术 (Multiplex immunohistochemical,mIHC) 也称作酪氨酸信号放大 (Tyramide dignal amplification,TSA) 技术,是一类利用辣根过氧化酶 (Horseradish Pero…

【数据结构(邓俊辉)学习笔记】向量01——接口与实现

文章目录 0.意图1、概述2 从数组到向量3 向量ADT接口4 Vector 模板类5 构造与析构5.1默认构造方法5.2基于复制的构造方法5.3 析构方法 0.意图 一方面是将工作学习中零星的知识点串起来,另一方面向量是其他数据类型的基础,比如栈队列等,所以基…

算法练习|Leetcode49字母异位词分词 ,Leetcode128最长连续序列,Leetcode3无重复字符的最长子串,sql总结

目录 一、Leetcode49字母异位词分词题目描述解题思路方法:哈希总结 二、Leetcode128最长连续序列题目描述解题思路方法:总结 三、Leetcode3无重复字符的最长子串题目描述解题思路方法:双指针法总结sql总结 一、Leetcode49字母异位词分词 题目描述 给你一个字符串数组&#xf…

linux下 Mysql8.0 离线安装

环境:centos7.9 MysqlL8.0.36安装包 链接:https://pan.baidu.com/s/1bKwHr05z8Ye82dT9tntdUA 提取码:3a5z 参考Centos安装MYSQL8(离线可用) 文章目录 1、解压安装2、配置启动2.1 修改配置文件2.2 mysql 启动 3、mysql 测试 1、解压安装 #…

kettle数据迁移从oracle到mysql

kettle数据迁移从oracle到mysql 下载方式1:方式2:方式3:下载后解压就行 二、启动三、连接数据库1.前期2.oracle数据库3.mysql数据库 四、迁移一、配置表输入参数1.在【转换】里面,选择【核心对象】,选中将【表输入】拖…

springboot 批量下载文件, zip压缩下载

一、使用hutool 工具类 效果&#xff1a;下载速度可以 1、依赖&#xff1a;hutool <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.26</version> </dependency>2、调用方式 im…

Rust 使用结构体组织相关联的数据

目录 结构体的定义和实例化 使用字段初始化简写语法使用结构体更新语法从其他实例创建实例使用没有命名字段的元组结构体来创建不同的类型没有任何字段的类单元结构体结构体示例程序 通过派生 trait 增加实用功能方法语法 定义方法带有更多参数的方法关联函数多个 impl 块本文有…

向量的点积和叉积的几何意义

1. 点积 点积(dot product)&#xff0c;又称标量积&#xff08;scalar product&#xff09;。结果等于。 可用于 判断的是否垂直求投影长度求向量是抑制作用还是促进作用 2. 叉积 叉积(cross product)&#xff0c;又称为向量积(vector product)。模长等于&#xff0c;方向…

简单学量化——pandas的应用26——sort_values函数5

简单学量化——pandas的应用26——sort_values函数5 sort_values是pandas中的排序函数&#xff0c;语法如下&#xff1a; DataFrame.sort_values(by,axis0,ascendingTrue,inplaceFalse,kindquicksort,na_positionlast, ignore_indexFalse,keyNone) 前面我们学习了by、axis、a…

嵌入式linux中uboot的启动过程分析

之前对这个uboot的源码了解有些许遗忘。最近做AVB校验,需要uboot到kernel的这个过程。这里再复习一下。 与大多数BootLoader一样,uboot的启动过程分为BL1和BL2两个阶段。 BL1阶段通常是开发板的配置等设备初始化代码,需要依赖依赖于SoC体系结构,通常用汇编语言来实现; …

Java | Leetcode Java题解之第43题字符串相乘

题目&#xff1a; 题解&#xff1a; class Solution {public String multiply(String num1, String num2) {if (num1.equals("0") || num2.equals("0")) {return "0";}int m num1.length(), n num2.length();int[] ansArr new int[m n];for…

转行做银行测试,需要了解哪些?

在这个内卷严重的时代&#xff0c;银行的业务不断增加&#xff0c;随着软件信息化的要求越来越高&#xff0c;银行对软件测试人员也提出了非常高的要求。 银行的软件测试是针对银行的软件系统&#xff08;如柜面系统、信贷系统&#xff09;和银行专用设备&#xff08;如ATM机、…

新手学习C++常去的网站!

1、cppreference cppreference 是一个免费学习 C 的网站&#xff0c;你也可以把它看成是一个 C 学习手册&#xff0c;内容相当丰富&#xff0c;涵盖几乎所有 C 的知识点&#xff0c;除此以外&#xff0c;它内容更新很快&#xff0c;紧随 C 标准&#xff0c;目前已经到 C23 的内…