【深度学习】InST,Inversion-Based Style Transfer with Diffusion Models,论文,风格迁移,实战(二)

什么是文本反演?

文本反演:通过几张反映特定概念的图像,教基础模型新的词汇。

这个概念可以是:一个姿势、一种艺术风格、一种纹理等。这个概念不一定要在现实世界中实际存在。例如,您可能见过许多生成的图像,其负面提示(np)包含标签“EasyNegative”。这是一个基于大量某人认为质量差的图像训练出来的人造概念。

它不会丰富模型。如果您的基础模型仅训练在苹果图像上,而您尝试用大约20张香蕉图像教模型“banana”这个词,那么—最多—您的模型在您请求香蕉时会给您长长的黄色苹果。当然,您可以使用1000多张图像让模型大致模拟出香蕉,但这真的值得吗?😉

训练的结果是一个.pt或.bin文件(前者是原作者使用的格式,后者是diffusers库使用的格式),其中包含了嵌入。这些文件可以共享给其他生成艺术家。

使用预训练的嵌入

将嵌入放入嵌入目录,并在提示中使用其文件名。您无需重新启动程序即可使其生效。

例如,这里是我在WD1.2模型上用53张图片(119张增强)训练19500步,设置每个标记8个向量的Usada Pekora的嵌入。

生成的图片:grid-0037

Usada Pekora的肖像

步骤:20,采样器:Euler a,CFG尺度:7,种子:4077357776,大小:512x512,模型哈希:45dee52b

您可以在一个提示中组合多个嵌入:grid-0038

Usada Pekora的肖像,mignon

步骤:20,采样器:Euler a,CFG尺度:7,种子:4077357776,大小:512x512,模型哈希:45dee52b

请非常小心您在使用嵌入时所使用的模型:它们在训练时使用的模型上效果很好,而在不同的模型上效果不好。例如,这里是上述嵌入和1.4稳定扩散模型的原始图:grid-0036

Usada Pekora的肖像

步骤:20,采样器:Euler a,CFG尺度:7,种子:4077357776,大小:512x512,模型哈希:7460a6fa

训练嵌入

文本反演标签

用户界面中对训练嵌入的实验性支持。

创建一个新的空嵌入,选择包含图像的目录,并在其上训练嵌入

该功能非常原始,请自行承担风险

在经过几万步的训练后,我能够重现我在其他仓库中训练动漫艺术家作为风格的结果

可使用半精度浮点数,但需要实验以确定结果是否同样好

如果您有足够的内存,最好使用–no-half --precision full选项运行

用户界面部分可以自动运行图像预处理。

您可以中断并恢复训练而不会丢失任何数据(除了AdamW优化参数,但似乎现有的任何仓库都不会保存这些参数,所以普遍认为它们不重要)

不支持批量大小或梯度累积

不应在–lowvram和–medvram标志下运行此功能。

参数解释

创建嵌入

名称:创建的嵌入的文件名。在提示中引用嵌入时,您也会使用此文本。

初始化文本:创建的嵌入最初将用此文本的向量填充。如果您创建一个名为“zzzz1234”的向量嵌入,初始化文本为“tree”,并在未训练的情况下在提示中使用它,那么提示“a zzzz1234 by monet”将产生与“a tree by monet”相同的图片。

每个标记的向量数:嵌入的大小。这个值越大,您可以在嵌入中包含的主题信息就越多,但它也会占用提示允许的单词数。使用稳定扩散时,提示中有75个标记的限制。如果在提示中使用16个向量的嵌入,则会留出75 - 16 = 59的空间。此外,根据我的经验,向量数越多,您需要的图片也越多,以获得良好的结果。

预处理

这将从目录中提取图像,处理它们以准备进行文本反演,并将结果写入另一个目录。这是一个便利功能,您可以自行预处理图片。

源目录:包含图像的目录

目标目录:写入结果的目录

创建翻转副本:为每张图像还写入其镜像副本

拆分过大的图像:如果图像过高或过宽,将其调整为短边匹配所需分辨率,并创建两个可能相交的图片。

使用BLIP标题作为文件名:使用探查器中的BLIP模型为文件名添加标题。

训练嵌入

嵌入:从此下拉菜单中选择要训练的嵌入。

学习率:训练的速度。设置此参数过高的危险在于,您可能会破坏嵌入。如果您在训练信息文本框中看到Loss: nan,这意味着您失败了,嵌入已失效。使用默认值,不应该发生这种情况。可以使用以下语法在此设置中指定多个学习率:0.005:100, 1e-3:1000, 1e-5 - 这将在前100步使用0.005的学习率训练,然后到1000步使用1e-3的学习率,最后到结束使用1e-5的学习率。

数据集目录:用于训练的图像目录。它们必须全部为正方形。

日志目录:示例图片和部分训练的嵌入副本将写入此目录。

提示模板文件:包含提示文本的文本文件,每行一个,用于训练模型。参见textual_inversion_templates目录中的文件以了解如何使用这些文件。训练风格时使用style.txt,训练对象嵌入时使用subject.txt。文件中可以使用以下标签:

[name]:嵌入的名称

[filewords]:数据集中图像文件名中的单词。详见下文。

最大步数:完成这么多步后训练将停止。一步是显示给模型一张图片(或一批图片,但目前不支持批处理),并用其改进嵌入。如果中断训练并在以后恢复,步数将保留。

将嵌入的图像保存在PNG块中:每次生成图像时,它都会与最近记录的嵌入结合并以可以共享为图像的格式保存到image_embeddings目录中,并可以放入您的嵌入文件夹中加载。

预览提示:如果不为空,此提示将用于生成预览图片。如果为空,将使用训练中的提示。

文件词

[filewords]是提示模板文件的一个标签,允许您将文件名中的文本插入提示中。默认情况下,文件的扩展名会被删除,以及文件名开头的所有数字和破折号(-)。因此,这个文件名:000001-1-a man in suit.png 将成为提示文本:a man in suit。文件名中文本的格式保持不变。

可以使用选项文件名单词正则表达式和文件名连接字符串来更改文件名中的文本:例如,使用单词正则表达式=\w+和连接字符串=, ,上述文件将生成如下文本:a, man, in, suit。正则表达式用于从文本中提取单词(它们是[‘a’, ‘man’, ‘in’, ‘suit’, ]),连接字符串(', ')放置在这些单词之间以创建一个文本:a, man, in, suit。

也可以创建一个与图像文件同名的文本文件(000001-1-a man in suit.txt),并将提示文本放在那里。文件名和正则表达式选项将不被使用。

第三方仓库

我成功使用以下仓库训练嵌入:

nicolai256

lstein

其他选项是使用colabs和/或diffusers库进行训练,这些我不了解。

在线查找嵌入

Github已请求我删除所有链接。

超网络

超网络是一种不接触模型任何权重的微调模型的新颖概念。

当前训练超网络的方法是在文本反演标签中。

训练工作与文本反演相同。

唯一的要求是使用非常低的学习率,如0.000005或0.0000005。

哑哑指南

一位匿名用户编写了带有图片的超网络使用指南:https://rentry.org/hypernetwork4dumdums

训练时卸载VAE和CLIP

设置标签上的此选项允许您在训练时节省一些内存,但会以预览图片生成速度较慢为代价。

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

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

相关文章

Google推出开源模型Gemma 2:性能大幅提升与创新训练方法

引言 近日,Google推出了开源模型Gemma 2,吸引了广大研究人员和开发者的关注。相比上一代模型,Gemma 2在性能和可用性方面实现了显著提升,提供了9B和27B两个版本,并且对外开放免费使用。本文将深入探讨Gemma 2的技术细…

架构师篇-10、DDD实战篇:通过领域模型落地系统

基于领域模型的设计与开发 数据库设计程序设计微服务设计 在线订餐系统的领域事件通知 微服务拆分 事件风暴会议 梳理领域事件进行领域建模识别聚合关系划分限界上下文 用户下单领域模型 更新后的模型 领域模型的设计实现过程 数据库设计 数据库映射:一对一关系…

SpringBoot使用redis 笔记(视频摘抄 哔哩哔哩博主(感谢!):遇见狂神)

springboot集成redis步骤 1.创建springboot项目 2.配置连接 3.测试 创建springboot项目 创建以一个Maven项目 创建之后查看pom.xml配置文件,可以看到 pom文件里面导入了 data-redis 的依赖,那我们就可以在知道,springboot集成redis操作…

计算机基础之汇编语言学习笔记

学习来源:b站各种学习资料 前置知识:计算机组成原理等知识 学习参考的资源 汇编语言编程的速成指南[上]~从零开始的期末抢救计划 (8086汇编)_哔哩哔哩_bilibili 链接: https://pan.baidu.com/s/1tg_ZW7VD3TS_s1v_EjS89w?pwdak6…

Uniapp 默认demo安装到手机里启动只能看得到底tab无法看到加载内容解决方案

Uniapp 默认demo安装到手机里以后,启动APP只能看到底tab栏,无法看到每个tab页对应的内容,HBuilder会有一些这样的报错信息: Waiting to navigate to: /pages/tabBar/API/API, do not operate continuously: 解决方案:…

目标追踪的基石:深度解析边界框(Bounding Box)

标题:目标追踪的基石:深度解析边界框(Bounding Box) 摘要 在计算机视觉和图像处理领域,边界框(Bounding Box)是一种用于目标检测和目标追踪的基本工具。它通过矩形框的形式,精确地…

分治精炼宝库-----快速排序运用(⌯꒪꒫꒪)੭

目录 一.基本概念: 一.颜色分类: 二.排序数组: 三.数组中的第k个最大元素: 解法一:快速选择算法 解法二:简单粗暴优先级队列 四.库存管理Ⅲ: 解法一:快速选择 解法二:简单粗…

Unity扩展编辑器功能的特性

1.添加分组标题 用于在Unity的Inspector视图中为属性或变量组创建一个自定义的标题或头部,有助于在Inspector中组织和分类不同的属性,使其更易于阅读和管理。 [Header("Common Properties")] public float MouseSensitivity 5; public float…

ES中单机部署状态为Yellow解决办法

一、背景 单机的 ES 状态为 Yellow,在 Kibana 的管理界面看到的 index 的状态也是 Yellow 这个问题在于单机版的 ES,是没有备份的,没有副本,设置 index 副本的数量为 0 即可 PUT /index/_settings {"number_of_replicas&q…

家里装修网线的三种预留方式你需要提前知道,避免后悔

聊一下网线。如果让你一天不吃饭你可能受得了,让你一天不喝水你也能受得了,如果让你三个小时不上网,估计很多人都受不了。      因为现在每个人都太依靠网络了,人人都有“网瘾”。所以在装修中,业主对家里的网络关…

学习java第一百一十六天

Spring Framework有哪些不同的功能? 答: 轻量级-Spring 在代码量和透明度方面都很轻便。 IOC-控制反转AOP-面向切面编程可以将应用业务逻辑和系统服务分离,以实现高内聚。容器-Spring 负责创建和管理对象(Bean)的生命周…

Python· 求解一元二次方程实根的函数

在Python中,求解一元二次方程 ( ax^2 bx c 0 ) 的实根可以通过使用math模块中的sqrt函数来实现。这里提供一个简单的函数,它接受三个参数a、b和c,然后返回方程的实根。 import mathdef solve_quadratic(a, b, c):# 计算判别式的值discrim…

微服务中的Docker详细学习

Docker的个人理解 首先我对于Docker的理解分为两部分,第一是对名字上的理解,我们都知道docker的英文翻译是“码头工人”的意思,所以我们也可以理解为docker是码头上的一个个集装箱的使用。这也与他的图标很相似。其次我是对于其功能上的理解&…

计算机网络-第3章数据链路层

信道类型:①点对点信道,一对一的点对点通信方式。②广播信道,一对多的广播通信方式,过程比较复杂。 3.1数据链路层的几个共同问题 3.1.1数据链路和帧 链路就是从一个节点到相邻节点的一段物理线路,而中间没有任何其…

Redis 高可用(理论)

目录 Redis 高可用 Redis 持久化 RDB 持久化 触发条件 手动触发 自动触发 ##其他自动触发机制## 执行流程 启动时加载 AOF 持久化 执行流程 (1)命令追加(append) (2)文件写入(write)和文件同步(sync) (3&…

帝国CMS(EmpireCMS)漏洞复现

简介 《帝国网站管理系统》英文译为Empire CMS,简称Ecms,它是基于B/S结构,且功能强大而帝国CMS-logo易用的网站管理系统。 帝国CMS官网:http://www.phome.net/ 参考相关漏洞分析文章,加上更详细的渗透测试过程。 参考…

snat、dnat和firewalld

目录 概述 SNAT源地址转换 DANT目的地址转换 抓包 firewalld 端口管理 概述 snat :源地址转换 内网——外网 内网ip转换成可以访问外网的ip 也就是内网的多个主机可以只有一个有效的公网ip地址访问外部网络 DNAT:目的地址转发 外部用户&#…

人工智能导论速成笔记

文章目录 前言考试题型第一章、人工智能导引 (10分 )课后习题第二章、Python基础 (10分 )*文件读写NumPy的使用Python绘图基础第三章、机器学习初步(15分 )逻辑回归分类(Logistic Regression)*,3.5线性回归预测(Linear Regression)*,3.6 、3.7、 3.8聚类 3.9第四章、自然语言…

一文带你了解乐观锁和悲观锁的本质区别!

文章目录 悲观锁是什么?乐观锁是什么?如何实现乐观锁?什么是CAS应用局限性ABA问题是什么? 悲观锁是什么? 悲观锁它总是假设最坏的情况,它会认为共享资源在每次被访问的时候就会出现线程安全问题&#xff0…

JVM调优(一)——JVM调优诊断工具详解

最近项目要生产上线,正在做压测性能测试,开始进行一些性能瓶颈分析,记得上一次做性能分析优化,还是国网项目,针对Kafka,Canal,ES,服务,数据库等一系列的排查分析,后面打算补一下总结内容&#x…