DiffusionGPT: LLM-Driven Text-to-Image Generation System
公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)
目录
0. 摘要
扩散模型为图像生成领域开辟了新的途径,导致高质量模型在开源平台上得以广泛传播。然而,当前文本到图像系统面临的主要挑战在于往往无法处理多样化的输入,或者限制于单一模型的结果。目前的统一尝试通常分为两个正交方面:i)在输入阶段解析多样的提示;ii)激活专业模型以输出。为了结合两者的优势,我们提出了 DiffusionGPT,它利用大型语言模型(LLM)构建了一个统一的生成系统,能够无缝地适应各种类型的提示,并集成领域专家模型。DiffusionGPT 根据先前的知识为各种生成模型构建领域特定的树。当提供输入时,LLM 解析提示并使用思维树(Trees-of-Thought)来指导选择合适的模型,从而放宽输入限制,确保在不同领域表现出色。此外,我们引入了优势数据库,其中思维树通过人类反馈进行丰富,使模型选择过程与人类偏好保持一致。通过大量实验证明了 DiffusionGPT 的有效性,展示了其在多样领域图像合成方面拓展界限的潜力。
项目页面:https://DiffusionGPT.github.io
3. 方法
DiffusionGPT 是一个专门设计用于多样输入提示下生成高质量图像的 all-in-one 系统。其主要目标是解析输入提示并确定产生最优结果的生成模型,该结果具有高泛化性、高实用性和便利性。
DiffusionGPT 由一个大型语言模型(LLM)和来自开源社区的各种领域专家生成模型(例如Hugging Face、Civitai)组成。LLM 扮演核心控制器的角色,负责整个系统的工作流程,包括四个步骤:提示解析、模型构建与搜索的思维树、带有人类反馈的模型选择,以及生成。DiffusionGPT 的整体流程如图 2 所示。
3.1. 提示解析
提示解析代理在我们的方法论中发挥着关键作用,因为它利用大型语言模型(LLM)来分析和提取输入提示中的显著文本信息。由于用户输入的固有复杂性,准确解析提示对于有效生成所需内容至关重要。该代理适用于各种类型的提示,包括基于提示、基于指令、基于灵感、基于假设等。
基于提示(Prompt-based):将整个输入用作生成的提示。例如,如果输入是 “一只狗”,生成的提示将是 “一只狗”。
基于指令(Instruction-based):提取指令的核心部分作为生成的提示。例如,如果输入是 “生成一张狗的图片”,则识别出的提示将是 “一张狗的图片”。
基于灵感(Inspiration-based):提取期望的目标主题,并将其用作生成的提示(例如,输入:“我想看到海滩”;识别出:“一个海滩”)。
基于假设(Hypothesis-based):涉及提取假设条件(“如果 xxx,我将 xxx”)和即将发生的动作的对象作为生成的提示。例如,如果输入是 “如果你给我一个玩具,我会非常高兴地笑”,则识别出的提示将是 “一个玩具和一个笑脸”。
通过识别这些形式的提示,提示解析代理使 DiffusionGPT 能够准确识别用户想要生成的核心内容,同时减轻噪声文本的影响。这个过程对于选择适当的生成模型并实现高质量的生成结果至关重要。
3.2. 模型的思维树
在提示解析阶段之后,后续步骤涉及从庞大的模型库中选择适当的生成模型以生成所需的图像。然而,考虑到可用的模型数量众多,将所有模型同时输入到大型语言模型(LLM)进行选择是不切实际的。此外,由于不同模型可能在其生成空间中展示相似性,通过在整个模型库中进行单一模糊匹配来准确识别最合适的模型变得具有挑战性。为了解决这个问题并确定最优模型,我们提出利用基于 “Tree-of-Thought”(TOT)概念的模型树。通过利用模型树的搜索能力,我们可以缩小候选模型集合并提高模型选择过程的准确性。
使用 TOT 构建模型树。模型构建代理的 “Tree-of-Thought”(TOT)用于基于所有模型的标签属性自动构建模型树。通过将所有模型的标签属性输入到代理中,它分析并总结从主题领域和风格领域派生出的潜在类别。然后,将风格类别作为主题类别的子类,建立一个两层次的分层树结构。随后,根据其属性将所有模型分配到适当的叶节点,从而完成全面的模型树结构。由于模型树是由代理自动构建的,这种方法确保了方便的可扩展性,以纳入新模型。每当添加新模型时,代理会根据其属性无缝地将它们放置在模型树内的适当位置。
使用 TOT 搜索模型树。在基于模型搜索代理的 “Tree-of-Thought”(TOT)的模型树内进行搜索过程旨在确定与给定提示紧密对齐的候选模型集合。该搜索方法采用广度优先方法,系统地评估每个叶节点的最佳子类别。在每个级别,将输入提示与类别进行比较,以确定表现出最接近匹配的类别。这个迭代过程持续推导出下一个叶节点的候选集,搜索继续进行直到达到最终节点,其中获得了模型的候选集。这个模型的候选集将作为后续阶段模型选择的基础。
3.3. 模型选择
模型选择阶段旨在从先前阶段获取的候选集中确定生成所需图像的最合适模型。这个候选集代表了整个模型库的子集,包括与输入提示相对高匹配度的模型。然而,来自开源社区的有限属性信息在精确确定最佳模型同时向大型语言模型(LLM)提供详细模型信息方面存在挑战。为解决这个问题,我们提出了一个模型选择代理,利用人类反馈并利用优势数据库技术将模型选择过程与人类偏好对齐。
对于优势数据库,我们使用奖励模型来基于 10,000 个提示的语料库计算所有模型生成结果的分数,并存储分数信息。在收到输入提示后,我们计算输入提示与这 10,000 个提示之间的语义相似性,识别出相似性最高的前 5 个提示。随后,模型选择代理从离线数据库中检索每个模型对这些提示的预先计算性能,并为每个选定的提示选择前 5 个模型。这个过程产生了一个 5x5 模型的候选集。
然后,代理将模型集与模型的 TOT 阶段获得的模型候选集相交,重点关注具有更高出现概率和相对较高排名的模型。这些模型最终被选择为模型生成的最终选择。
3.4. 生成
一旦选择了最合适的模型,所选的生成模型就会使用获取的核心提示生成所需的图像。
提示扩展。为了在生成过程中提高提示的质量,采用提示扩展代理来增强提示。该代理利用所选模型的提示示例来自动丰富输入提示。示例提示和输入提示都以上下文学习范式发送到 LLM。特别是,该代理根据示例提示的句子模式向输入提示添加丰富的描述和详细的词汇。例如,如果输入提示是 “一个笑着的女人的形象,时尚杂志封面”,而示例提示是 “时尚摄影女性化形象,穿着时尚服装的女性头像,蓝色蓬松的外星人雨林,有花有鸟,幻想,八角渲染,HDR,杜比视觉,(精细细节,超精细:1.2),(自然肌肤质地,超现实主义,柔和光线:1.2),蓬松的短发,锐利的焦点,夜晚,项链,中国神话,乳沟,中等胸部,科幻头巾,看着观众,最佳质量,完美身材”,那么提示扩展代理将其增强为更详细和富有表现力的形式,如:“杂志封面上的女人正在欢笑,她的眼睛闪烁着喜悦。她穿着一套时尚的服装,突显出她的曲线,她的头发造型与她的特征相辅相成”。这种增强显著提高了生成输出的质量。
4. 实验
4.6. 限制与进一步工作
尽管 DiffusionGPT 已经展示了生成高质量图像的能力,但仍存在一些限制,我们的未来计划如下:
- 反馈驱动的优化。我们的目标是将反馈直接纳入 LLM 的优化过程中,实现更精细的提示解析和模型选择。
- 扩展候选模型。为了进一步丰富模型生成空间并取得更令人印象深刻的结果,我们将扩展可用模型的丰富度。
- 超越文本到图像任务。我们打算将我们的见解应用于更广泛的任务集,包括可控生成、风格迁移、属性编辑等。