ControlNet作者新作Omost 一句话将LLM的编码能力转化为图像生成能力,秒变构图小作文,再也不用为不会写提示词担心了!

本文主要是介绍ControlNet作者新作Omost 一句话将LLM的编码能力转化为图像生成能力,秒变构图小作文,再也不用为不会写提示词担心了!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

近日,ControlNet的作者推出了一个全新的项目—Omost。Omost是一个将LLM的编码能力转化为图像生成能力的项目。对现有图像模型的提示词理解有着巨大的帮助。通过很短的提示词,就可以生成非常详细并且空间表现很准确的图片。

完美解决新手小白不会写提示词的痛点。现在只需一句超简单的提示词说明意图,Agent就会自己开始“构图”。

这个名字Omost有两层含义:

  • 每次使用 Omost 后,你的图像几乎就完成了;

  • O意思是omni多模式,most意味着我们想最大限度地利用它。

Omost提供LLM模型,该模型将编写代码以使用Omost的虚拟Canvas代理来组合图像视觉内容。这Canvas可以通过图像生成器的特定实现来渲染以实际生成图像。

所有模型都使用以下混合数据进行训练:

  • 包括 Open-Images 在内的多个数据集的真实注释,

  • 通过自动注释图像提取的数据

  • 来自 DPO(直接偏好优化,“代码是否可以由 python 3.10 编译”作为直接偏好)的强化

  • 来自 OpenAI GPT4o 多模态功能的少量调整数据。

相关链接

Github:https://github.com/lllyasviel/Omost HuggingFace:https://huggingface.co/spaces/lllyasviel/Omost

效果展示

以下结果全部采用随机种子:12345

提示词:衣衫褴褛的人:19世纪穿着破夹克的衣衫褴褛的人。

提示词:世界末日后最伟大的逃亡,全人类的希望。

提示词:拥有无尽魔法的最高统治者坐在哥特王座上,不死军团跪着。

提示词:生成战士与龙激烈战斗的图像

参数:description和Detailed_descriptions

我们引入一个概念,叫“子提示”,如果一个提示少于 75 个 token,并且不依赖其他提示就能独立描述某件事,我们就称其为“子提示”。

如description是一个子提示,detailed_descriptions是子提示的列表。

请注意,每个子提示严格少于 75 个标记(通常少于 40 个标记),您可以安全地使用任何剪辑对它们进行编码,而不必担心截断位置会影响语义。

子提示符的设计还允许基于贪婪合并的更令人满意的文本编码。

例如,如果你有

  • sub-prompt A: 25 tokens

  • sub-prompt B: 35 tokens

  • sub-prompt C: 5 tokens

  • sub-prompt D: 60 tokens

  • sub-prompt E: 15 tokens

  • sub-prompt F: 25 tokens

由于每个子提示都保证能够独立描述某件事,我们可以使用贪婪方法将它们合并到类似

  • bag 1 {A, B, C} : 65 tokens

  • bag 2 {D} : 60 tokens

  • bag 1 {E, F} : 40 tokens

每个袋子少于 75 个标记,并且可以一次性通过任何剪辑进行编码(然后将它们连接起来)。

以这种方式对文本进行编码将确保文本编码器永远不会犯语义截断错误。

有人可能会问 - 如果所有子提示都少于 75 个具有独立语义的标记,为什么不直接对它们进行编码而不进行合并然后再连接呢?这主要是因为我们希望文本嵌入更加连贯。例如,假设子提示 A 是“一个男人”,而子提示 B 是“英俊,专业”,那么在编码之前合并它们将为您提供一个更加混合的文本嵌入概念,其中包含英俊专业男人的连贯特征。

所有 Omost LLM 都经过训练,可以提供严格定义的子提示。您可以利用这些定义来设计无损文本编码方法。

参数:位置、偏移、面积

这三个参数定义了一个边界框。首先我们将画布分成33=9个位置:

然后我们进一步将每个位置划分为 33 偏移量,从而得到 9*9=81 个位置:

以这些位置为中心,我们进一步定义 9 种类型的边界框:

我们可以看到,该方法允许999=729个不同的边界框,几乎覆盖了图像中物体的所有常见可能位置。

这篇关于ControlNet作者新作Omost 一句话将LLM的编码能力转化为图像生成能力,秒变构图小作文,再也不用为不会写提示词担心了!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1056620

相关文章

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python运行中频繁出现Restart提示的解决办法

《Python运行中频繁出现Restart提示的解决办法》在编程的世界里,遇到各种奇怪的问题是家常便饭,但是,当你的Python程序在运行过程中频繁出现“Restart”提示时,这可能不仅仅是令人头疼... 目录问题描述代码示例无限循环递归调用内存泄漏解决方案1. 检查代码逻辑无限循环递归调用内存泄漏2.

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

OpenCV图像形态学的实现

《OpenCV图像形态学的实现》本文主要介绍了OpenCV图像形态学的实现,包括腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽运算和黑帽运算,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起... 目录一、图像形态学简介二、腐蚀(Erosion)1. 原理2. OpenCV 实现三、膨胀China编程(

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.