GLIGEN
GLIGEN 是一款开源的“开放集定位文本生成图像”模型,旨在让 AI 绘画不仅听懂文字描述,还能精准理解空间布局。它解决了传统文生图模型难以精确控制物体位置、大小及相互关系的痛点。用户只需在输入文字提示词的同时,提供边界框、关键点或参考图像等额外条件,GLIGEN 就能在冻结的基础模型上,将指定内容准确地“放置”在画面的特定区域,实现高质量的局部重绘或整体构图控制。
这项技术的独特亮点在于其强大的零样本(zero-shot)泛化能力。无需针对特定布局进行繁琐的监督训练,GLIGEN 在 COCO 和 LVIS 等基准测试中的表现便大幅超越了现有的监督式布局生成模型。此外,它能与 Grounding DINO 等工具联动,自动从语言提示中识别并定位物体,进一步降低了人工标注边框的成本。
GLIGEN 非常适合需要精细控制画面构图的数字艺术家和设计师,同时也为研究可控生成技术的开发者提供了宝贵的开源基座。对于希望探索交互式图像编辑(如结合 LLaVA-Interactive)的进阶用户而言,GLIGEN 更是实现“所指即所得”创作体验的关键工具。
使用场景
一位电商设计师正在为新品发布会快速生成多张包含特定布局的商品宣传图,需要精确控制产品在画面中的位置和大小。
没有 GLIGEN 时
- 仅靠文字提示词(如“左侧放一个红色杯子”)难以精准控制物体位置,AI 常将杯子画在中间或右侧,反复重试效率极低。
- 若需调整某个商品的位置,必须重新生成整张图片,无法在保留背景和其他元素的同时单独移动目标物体。
- 想要参考某张实拍图的构图来生成新图时,传统模型无法理解“参照这张图的布局”这类指令,导致构图完全随机。
- 团队协作时,设计师需用 Photoshop 手动裁剪、拼贴生成的素材来修正布局,耗时耗力且破坏画面自然度。
使用 GLIGEN 后
- 直接输入“红色杯子”并框选左侧区域作为条件,GLIGEN 即可在指定坐标精准生成杯子,一次成功率高,大幅减少试错成本。
- 支持局部重绘与位置绑定,设计师只需拖动边界框调整位置,GLIGEN 就能在不改变其他内容的情况下实时更新目标物体。
- 可上传草图或参考图提取布局信息,结合文字描述生成符合特定构图的新图像,实现从“灵感草图”到“高清成品”的无缝转化。
- 生成结果天然符合预设布局,无需后期手动修图,团队可直接将高质量素材投入后续设计流程,显著缩短交付周期。
GLIGEN 让创作者从“抽卡式”生成转变为“可控式”创作,真正实现了文本与空间布局的双重精准指挥。
运行环境要求
- Linux
必需 NVIDIA GPU(支持多卡训练),具体型号和显存未说明(基于 Stable Diffusion v1.4,建议 8GB+),CUDA 版本未说明
未说明

快速开始
GLIGEN:开放集接地文本到图像生成(CVPR 2023)
李宇恒、刘浩天、吴庆阳、穆方舟、杨建伟、高剑峰、李春元*、李永在* (*共同资深作者)
[项目页面] [论文] [演示] [YouTube 视频]

- GLIGEN 不仅限于文本提示:它使冻结的文本到图像生成模型具备新能力,能够基于多种类型的提示进行定位,包括边界框、关键点和图像。
- GLIGEN 在 COCO 和 LVIS 数据集上的零样本性能大幅超越现有的有监督布局到图像基线。
:fire: 新闻
- [2023.11.2] GLIGEN 已集成到 LLaVA-Interactive 中:一个用于图像聊天、分割、生成和编辑的一体化演示。通过视觉聊天体验交互式图像编辑的未来。 [项目页面] [演示] [代码] [论文]
[2023.04.18] 我们更新了 arXiv 论文。我们在 这里 解释了 GLIGEN 与 ControlNet 的区别,以帮助研究人员更好地深入理解。
[2023.04.08] GLIGEN 已与 Grounding DINO 结合使用,这使得人类无需再手动标注边界框及其概念。给定一个语言提示,Grounding DINO 会用边界框定位相关概念:图像 → (框, 概念),然后 GLIGEN 对图像进行修复:(框, 概念) → 图像:
- [2023.03.22] 我们发布的 diffusers 分支,支持基于文本-框条件的生成和修复功能,现已推出。现在速度更快、更灵活,并且可以自动从 Hugging Face Hub 下载并加载模型!快来试试吧!
- [2023.03.20] 关注 接地图像生成 等领域的最新研究进展,例如 GLIGEN,请查看
Computer Vision in the Wild (CVinW) 阅读清单。 - [2023.03.19] Yannic Kilcher 在其最新的 YouTube 视频中介绍了 GLIGEN,视频主题为
AI 领域最繁忙的一周。 - [2023.03.05] Gradio 演示代码已在
GLIGEN/demo中发布。 - [2023.03.03] 代码库和检查点已发布。
- [2023.02.28] 论文已被 CVPR 2023 接受。
- [2023.01.17] GLIGEN 论文和演示正式发布。
要求
我们提供了 dockerfile 来设置环境。
下载 GLIGEN 模型
我们提供了十个针对不同应用场景的检查点。所有模型均基于 SD-V-1.4。
| 模式 | 模态 | 下载 |
|---|---|---|
| 生成 | 边框+文本 | HF Hub |
| 生成 | 边框+文本+图像 | HF Hub |
| 生成 | 关键点 | HF Hub |
| 修复 | 边框+文本 | HF Hub |
| 修复 | 边框+文本+图像 | HF Hub |
| 生成 | 边缘图 | HF Hub |
| 生成 | Canny 图 | HF Hub |
| 生成 | 深度图 | HF Hub |
| 生成 | 语义图 | HF Hub |
| 生成 | 法线图 | HF Hub |
请注意,提供的语义图检查点仅在 ADE20K 数据集上训练;法线图检查点仅在 DIODE 数据集上训练。
推理:使用 GLIGEN 生成图像
我们提供了一个脚本,用于使用提供的检查点生成图像。首先下载模型并将其放入 gligen_checkpoints 目录中,然后运行:
python gligen_inference.py
每个检查点的示例样本将保存在 generation_samples 目录中。更多关于接口的详细信息,请参阅 gligen_inference.py。
训练
基于接地的生成训练
首先需要为不同的接地模态条件准备数据。有关我们用于不同 GLIGEN 模型的数据,请参阅 data。数据准备好后,可以使用以下命令来训练 GLIGEN。(我们支持多 GPU 训练)
python main.py --name=your_experiment_name --yaml_file=path_to_your_yaml_config
其中 --yaml_file 是最重要的参数。下面我们将通过一个示例来解释关键组件,以便您熟悉我们的代码,并了解如何针对自己的接地模态自定义训练。其他参数从名称上即可理解。实验结果将保存在 OUTPUT_ROOT/name 目录下。
您可以参考 configs/flicker_text.yaml 作为示例。可以看到,该 YAML 文件定义了 5 个组件:diffusion、model、autoencoder、text_encoder、train_dataset_names 和 grounding_tokenizer_input。通常情况下,diffusion、autoencoder 和 text_encoder 不应更改,因为它们是由 Stable Diffusion 定义的。需要注意的是:
- 在 model 中,我们添加了一个新的参数 grounding_tokenizer,用于定义一个生成接地标记的网络。该网络将在模型中实例化。有关如何定义此网络的详细信息,请参阅
ldm/modules/diffusionmodules/grounding_net_example.py。 - grounding_tokenizer_input 将定义一个网络,它接收来自数据加载器的批量数据,并为接地标记器生成输入。换句话说,它是数据加载器和接地标记器之间的中间层。有关如何定义此类别的详细信息,请参阅
grounding_input/__init__.py。 - train_dataset_names 应列出一系列数据集名称(所有数据集将在内部连接在一起,因此将多个数据集合并进行训练非常有用)。每个数据集名称都应首先在
dataset/catalog.py中注册。我们已经列出了所有使用的数据集;如果您需要在自己的模态数据集上训练 GLIGEN,请务必先将其名称添加到该文件中。
基于接地的修复训练
GLIGEN 还支持修复训练。可以使用以下命令:
python main.py --name=your_experiment_name --yaml_file=path_to_your_yaml_config --inpaint_mode=True --ckpt=path_to_an_adapted_model
通常,我们会先在生成任务上训练 GLIGEN(例如文本接地生成),此时该模型的输入卷积层有 4 个通道(Stable Diffusion 的潜在空间)。然后,我们将保存的检查点修改为 9 个通道,新增的 5 个通道初始化为 0。这种继续训练可以加快收敛速度并获得更好的效果。path_to_an_adapted_model 指的是这个修改后的检查点,可以使用 convert_ckpt.py 来修改检查点。注意:生成和修复训练使用的 YAML 文件是相同的,只需将 --inpaint_mode 参数更改为 True 即可。
引用
@article{li2023gligen,
title={GLIGEN: Open-Set Grounded Text-to-Image Generation},
author={Li, Yuheng and Liu, Haotian and Wu, Qingyang and Mu, Fangzhou and Yang, Jianwei and Gao, Jianfeng and Li, Chunyuan and Lee, Yong Jae},
journal={CVPR},
year={2023}
}
免责声明
原始 GLIGEN 部分是在第一作者于威斯康星大学麦迪逊分校工作期间,在微软兼职实习时实现的。本仓库使用大学提供的 GPU,以 PyTorch 重新实现了 GLIGEN。尽管实现上存在一些细微差异,但本仓库旨在出于研究目的重现论文中的结果和观察。
使用条款
我们对模型检查点和演示的使用有严格的条款和条件限制,仅允许符合 Latent Diffusion Model 和 Stable Diffusion 许可协议的用途。
更广泛的影响
值得注意的是,我们的模型 GLIGEN 专为开放世界的文本接地图像生成而设计,支持标题和各种条件输入(如边界框)。然而,我们也认识到负责任的人工智能的重要性,以及清晰传达我们研究能力和局限性的必要性。虽然接地能力能够很好地泛化到新颖的空间配置和概念上,但在超出其设计范围或预期用途的情境中,模型的表现可能不佳。我们强烈反对在可能导致生成误导性或恶意图像的情况下滥用该模型。此外,我们也承认用于训练模型的数据中可能存在偏见,因此需要持续评估和改进以解决这些问题。为确保透明度和问责制,我们附上了模型卡片,其中描述了模型的预期用途、局限性以及潜在的偏见。我们鼓励用户在将我们的技术应用于新场景时参考该模型卡片,并谨慎行事。我们希望我们的工作能够激发更多关于人工智能伦理影响以及新技术开发中透明度和问责制重要性的研究和讨论。
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
Deep-Live-Cam
Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。
