Omost是一个将大型语言模型(LLM)的编码能力转化为图像生成(或更准确地说,图像合成)能力的项目。Omost这个名字(发音:almost)有两层含义:1)每次使用Omost后,您的图像几乎就完成了;2)"O"代表"omni"(多模态),"most"意味着我们希望从中获得最大的效益。Omost提供大型语言模型,这些模型将编写代码,通过Omost的虚拟画布代理来合成图像视觉内容。这个画布可以通过特定实现的图像生成器来渲染,从而实际生成图像。目前,我们提供了基于Llama3和Phi3变体的3个预训练的大型语言模型(也请参见本页末尾的模型注释)。所有模型都是使用混合数据训练的,包括:(1)包括Open-Images在内的多个数据集的地面真实注释;(2)通过自动注释图像提取的数据;(3)来自DPO(直接偏好优化,"代码是否可以被Python 3.10编译"作为一个直接偏好)的强化;以及(4)来自OpenAI GPT4o的多模态能力的少量调整数据。

目前,Omost提供了三种基于Llama3和Phi3变体的预训练大型语言模型:2. omost-dolphin-2.9-llama3-8b- 来自包括Open-Images在内的多个数据集的地面真实注释。
- 通过直接偏好优化(DPO)进行强化学习,确保代码能够被Python 3.10编译。
- 来自OpenAI GPT-4的多模态能力的少量调整数据。
要开始使用Omost,用户可以访问官方的HuggingFace空间或在本地部署。本地部署需要8GB的Nvidia VRAM。画布代理是Omost图像合成的核心。它提供设置图像全局和局部描述的功能:- `Canvas.set_global_description`:对整个图像进行注释。
- `Canvas.add_local_description`:对图像的特定部分进行注释。
- 描述:这些是“子提示”(少于75个token),独立描述元素。- 位置、偏移量和区域:使用9×9网格系统定义图像元素的边界框,共有729个可能的位置。- HTML网页颜色名称:使用标准HTML颜色名称指定颜色。
Omost提供了一个基于注意力操作的基础渲染器,它提供了几种区域引导扩散的方法,包括:2. 注意力分解:将注意力分割,分别处理不同区域。3. 注意力得分操作:修改注意力得分,确保在指定区域有适当的激活。4. 梯度优化:使用注意力激活来计算损失函数并优化梯度。5. 外部控制模型:利用GLIGEN和InstanceDiffusion等模型进行区域引导。- 提示前缀树:通过将子提示合并为连贯的描述,提高提示理解的结构。
- 标签、氛围、风格和质量元数据:可以提高生成图像的整体质量和氛围的实验性参数。
Omost在利用大型语言模型进行复杂图像合成方面迈出了重要的一步。通过结合强大的编码能力和先进的渲染技术,Omost使用户能够根据详细的描述和对视觉元素的精确控制生成高质量的图像。无论是使用官方的HuggingFace空间还是本地部署,Omost都提供了一个强大的工具集,用于创造引人注目的视觉内容。
参考:
1.https://github.com/lllyasviel/Omost