ELLA
ELLA 是一款旨在提升文生图质量的开源项目,其核心理念是将大型语言模型(LLM)的强大语义理解能力赋予扩散模型。传统绘图工具往往难以精准捕捉复杂提示词中的深层含义,导致生成图像与文字描述出现偏差。ELLA 通过引入先进的语言模型作为“大脑”,显著增强了图像生成过程中的语义对齐能力,让画面能更准确、细腻地还原用户脑海中那些抽象或复杂的创意描述。
该项目特别适合 AI 研究人员、开发者以及追求高质量创作效果的设计师使用。对于希望深入探索多模态技术融合的极客,或是需要利用 ComfyUI 等工作流进行专业创作的艺术家,ELLA 提供了丰富的接口和插件支持。其独特亮点在于不仅发布了基于 SD1.5 的优化模型,还推出了便捷的 ComfyUI 插件,让用户能轻松在现有工作流中体验升级后的生成效果。此外,团队后续推出的 EMMA 项目进一步拓展了其处理多模态提示的能力。作为一个处于快速迭代中的前沿研究项目,ELLA 为突破当前文生图技术的语义瓶颈提供了极具价值的解决方案。
使用场景
某独立游戏开发者正在为奇幻 RPG 项目批量生成具有复杂剧情互动的 NPC 角色立绘,需要精准还原剧本中细腻的动作与情感描述。
没有 ELLA 时
- 语义理解偏差:传统扩散模型难以解析长难句,常忽略提示词中“一边擦拭血迹一边颤抖”这类复合动作细节,导致生成的角色姿态僵硬或动作缺失。
- 逻辑关联断裂:当提示词包含因果逻辑(如“因愤怒而捏碎酒杯”)时,模型往往只画出愤怒表情或碎杯子,无法呈现两者间的动态联系。
- 反复试错成本高:为了修正语义对齐问题,开发者需手动拆解提示词并尝试数十次随机种子,耗费大量时间筛选可用素材。
- 抽象概念具象化困难:对于“被诅咒的忧郁眼神”等抽象描述,模型倾向于生成通用悲伤表情,缺乏独特的故事氛围感。
使用 ELLA 后
- 深层语义精准捕捉:ELLA 内置的大语言模型能深度理解复杂句式,准确生成角色“擦拭血迹且手部颤抖”的精细动作,画面叙事性显著增强。
- 逻辑关系完美呈现:模型能推理提示词中的因果链条,生动描绘出角色因愤怒发力而捏碎酒杯的瞬间张力,人物情绪与动作高度统一。
- 生成效率大幅提升:开发者只需输入一段完整的剧本描述,ELLA 即可一次性输出高匹配度图像,将单张角色的调试时间从半小时缩短至几分钟。
- 抽象氛围生动还原:借助 LLM 的联想能力,ELLA 能将“被诅咒的忧郁”转化为独特的光影与微表情组合,直接产出符合世界观设定的高质量立绘。
ELLA 通过引入大语言模型强化语义对齐,让文生图工具真正读懂了人类复杂的创作意图,将“抽卡式”生成转变为可控的创意落地过程。
运行环境要求
- 未说明
需要 NVIDIA GPU (基于 V100 实验),必须支持 FP16 精度,不支持 BF16
未说明

快速开始
ELLA & EMMA
ELLA项目官网: ELLA |
EMMA论文: EMMA: 您的文本到图像扩散模型可以秘密地接受多模态提示 项目官网: EMMA |
ELLA: 为扩散模型配备大语言模型以增强语义对齐
“ELLA: 为扩散模型配备大语言模型以增强语义对齐”的官方代码。
🌟 更改记录
- [2024.6.14] 🔥🔥 EMMA: 技术报告, 项目官网
- [2024.5.13] EMMA 即将发布。让我们先预览一下 EMMA 的成果:中文版,英文版
- [2024.4.19] 我们提供了 ELLA 的 ComfyUI 插件:TencentQQGYLab/ComfyUI-ELLA
- [2024.4.11] 添加了一些 EMMA(高效多模态适配器) 的结果
- [2024.4.9] 🔥🔥🔥 发布了 ELLA-SD1.5 检查点!欢迎大家试用!
- [2024.3.11] 🔥 发布了 DPG-Bench!欢迎大家试用!
- [2024.3.7] 初始更新
🚀 使用方法
下载
您可以从 QQGYLab/ELLA 下载 ELLA 模型。
快速查看
# 在 https://huggingface.co/QQGYLab/ELLA/blob/main/ella-sd1.5-tsc-t5xl.safetensors 获取 ELLA-SD1.5
# 比较 ella-sd1.5 和 sd1.5
# 将在 `./assets/ella-inference-examples` 生成图片
python3 inference.py test --save_folder ./assets/ella-inference-examples --ella_path /path/to/ella-sd1.5-tsc-t5xl.safetensors
构建一个比较 SD1.5 和 ELLA-SD1.5 的演示
GRADOI_SERVER_NAME=0.0.0.0 GRADIO_SERVER_PORT=8082 python3 ./inference.py demo /path/to/ella-sd1.5-tsc-t5xl.safetensors
在 ComfyUI 中使用 ELLA
我们提供了 ELLA 的 ComfyUI 插件:TencentQQGYLab/ComfyUI-ELLA,它支持 ControlNet、img2img 等功能。欢迎您尝试使用。
感谢 @ExponentialML 和 @kijai,他们为 ELLA 提供了第三方 ComfyUI 插件:
📙 注意事项
ELLA 目前仍处于研究的早期阶段,我们尚未对 ELLA 的所有潜在应用进行全面测试。我们欢迎社区提出建设性的友好建议。
在此,我们分享一些目前发现的关于如何更好地利用 ELLA 的技巧:
1. 文本描述升级
ELLA 是使用 MLLM 标注的合成文本描述进行训练的。正如 通过更好的文本描述提升图像生成 中所述,在使用 ELLA 之前对输入文本描述进行“上采样”处理,可以充分发挥其潜力。
我们发现,利用大语言模型的上下文学习(ICL)能力,可以轻松实现一个文本描述升级器:
示例指令:
请根据给定的示例,将简短的提示词扩展为较长的版本。长提示词应由 3 到 5 句话组成。长提示词必须明确描述所包含物体的颜色、形状、纹理或空间关系。切勿生成任何关于氛围的描述!!!
短:一只闭着眼睛的三花猫栖息在一辆梅赛德斯车上。
长:一只色彩斑斓的猫栖息在一辆闪亮的黑色汽车顶部。这辆车停在一栋木墙建筑前,旁边有一道绿色栅栏。汽车光洁的表面映照出车辆及周围环境的倒影。
短:一个男孩坐在椅子上,手里拿着游戏手柄。
长:一位身穿蓝色衬衫和带有字母“m”字样的棒球帽的小男孩正坐在椅子上。他脖子上挂着一枚红色奖章,手中握着一个白色的游戏控制器。在他身后还有另外两个人,其中一人背着背包。男孩右侧有一个蓝色的垃圾桶,上面贴着“自动派对”的标志。
短:一名男子在水边钓鱼。
长:一片宁静的水景,一位身穿蓝色夹克和红色毛线帽的人站在浅水中,用一根长竿钓鱼。平静的水面远处停靠着几艘帆船,背景则是一片云雾缭绕的山脉。
短:一间厨房,台面杂乱,配有木质橱柜。
长:一间光线充足的厨房,拥有木质橱柜、黑白相间的方格地砖以及侧面贴有花卉贴纸的冰箱。厨房台面上摆放着咖啡机、罐子和水果等物品。
短:一只浣熊高举着一颗闪亮的红苹果
使用:https://huggingface.co/spaces/Qwen/Qwen-72B-Chat-Demo
得到的结果:
一只顽皮的浣熊站立在后腿上,用它毛茸茸的爪子高高举起一颗鲜红的苹果。苹果在茂密森林的背景下熠熠生辉,树叶在微风中沙沙作响。浣熊脚下散落着几块石头,旁边还矗立着一棵粗糙的树干。
文本描述升级前后对比
原始提示词:一只浣熊高举着一颗闪亮的红苹果
| SD1.5 | ELLA-SD1.5_固定token长度 | ELLA-SD1.5_灵活token长度 |
|---|

Qwen-72B 优化后的文本描述:一只顽皮的浣熊站立在后腿上,用它毛茸茸的爪子高高举起一颗鲜红的苹果。苹果在茂密森林的背景下熠熠生辉,树叶在微风中沙沙作响。浣熊脚下散落着几块石头,旁边还矗立着一棵粗糙的树干。
| SD1.5 | ELLA-SD1.5_固定token长度 | ELLA-SD1.5_灵活token长度 |
|---|

原始提示词:穿着毛衣的鳄鱼
| SD1.5 | ELLA-SD1.5_固定token长度 | ELLA-SD1.5_灵活token长度 |
|---|

GPT4 优化后的文本描述:一只体型巨大的绿色鳄鱼,皮肤布满纹理,舒适地躺在草地上,身上披着一件可爱的橙色针织毛衣。毛衣领口处有着蓝黄相间的趣味条纹图案。背景中,一块光滑的灰色岩石部分遮挡了眼前小池塘的景色,池塘表面漂浮着睡莲叶。
| SD1.5 | ELLA-SD1.5_固定token长度 | ELLA-SD1.5_灵活token长度 |
|---|

2. 灵活的 token 长度
在 ELLA 的训练过程中,使用了较长的合成文本描述,最大 token 数被设定为 128。当用短文本描述测试 ELLA 时,除了前面提到的文本描述上采样技术外,还可以采用“flexible_token_length”技巧。即把分词器的 max_length 设置为 None,从而取消任何文本的填充或截断操作。我们观察到,这一技巧有助于提升短文本描述对应的生成图像质量。
3. ELLA+CLIP 用于社区模型
我们的测试表明,一些严重依赖触发词的社区模型在使用 ELLA 时可能会出现显著的风格损失,主要原因是 ELLA 推理过程中完全未使用 CLIP。
尽管在训练过程中并未使用 CLIP,但我们发现仍可在推理阶段将 ELLA 的输入与 CLIP 的输出拼接起来(Bx77x768 + Bx64x768 -> Bx141x768),作为 UNet 的条件输入。我们预计,将 ELLA 与 CLIP 结合使用,能够更好地融入现有的社区生态体系,尤其是与 CLIP 特有的技术,如文本反转和触发词等。 我们的目标是确保 ELLA 能够与更广泛的社区模型兼容;然而,目前我们尚无全面的经验可供分享。如果您有任何建议,请在 issue 中告知我们,我们将不胜感激。
4. FlanT5 必须以 fp16 模式运行。
如 issues#23 所述,我们绝大多数实验都在 V100 上进行,而 V100 不支持 bf16,因此我们不得不使用 fp16 版本的 T5 进行训练。经过测试发现,fp16 版本的 T5 和 bf16 版本的 T5 在输出上的差异不容忽视,这导致生成的图像也存在明显区别。 因此,建议在推理时使用 fp16 版本的 T5。
📊 DPG-Bench
DPG-Bench 的使用指南:
请根据我们的 提示词 生成图像。 建议每个提示词生成 4 张图像,并以 2x2 的格式排列。请确保您生成的图像文件名与提示词文件名一致。
运行以下命令进行评估。
bash dpg_bench/dist_eval.sh $YOUR_IMAGE_PATH $RESOLUTION
衷心感谢 DSG 的出色工作,我们遵循他们的指导,生成了 DPG-Bench 的问答内容。
🚧 EMMA - 高效多模态适配器(正在进行中)
正如 ELLA 论文的结论部分以及 issue#15 所述, 我们计划研究将 MLLM 与扩散模型相结合,从而在图像生成过程中利用交错的图文输入作为条件组件。以下是使用 EMMA-SD1.5 的一些非常早期的结果,敬请期待。
| 提示词 | 物体图像 | 结果 |
|---|---|---|
| 一位女士正穿着亮橙色滑雪服和护目镜,在雪山上滑雪。 | ![]() |
![]() |
| 一位女士身穿无袖球衣,在室外球场上打篮球。 | ![]() |
|
| 一位女士穿着绿色迷彩夹克,背着背包,在茂密的森林中徒步旅行。 | ![]() |
|
| 一只狗在雪天跳过一辆汽车 | ![]() |
![]() |
| 一只戴着粉红色眼镜的狗正在看书 | ![]() |
|
| 一只狗站在山顶上,俯瞰壮丽的景色。远处是白雪皑皑的山峰,山谷间有一条蜿蜒的河流。 | ![]() |
![]() |
📝 待办事项
- 发布检查点
- 发布推理代码
- 发布 DPG-Bench
💡 其他
我们还发现了 LaVi-Bridge,这是一项独立但相似的工作,几乎同时完成,提供了 ELLA 未涵盖的额外见解。ELLA 和 LaVi-Bridge 之间的区别可以在 issue 13 中找到。我们非常欢迎其他研究人员和社区用户共同推动该领域的发展。
😉 引用
如果您发现 ELLA 对您的研究和应用有所帮助,请使用以下 BibTeX 格式引用我们:
@misc{hu2024ella,
title={ELLA: 为扩散模型配备 LLM 以增强语义对齐},
author={Xiwei Hu and Rui Wang and Yixiao Fang and Bin Fu and Pei Cheng and Gang Yu},
year={2024},
eprint={2403.05135},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
常见问题
相似工具推荐
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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。
PaddleOCR
PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。
tesseract
Tesseract 是一款历史悠久且备受推崇的开源光学字符识别(OCR)引擎,最初由惠普实验室开发,后由 Google 维护,目前由全球社区共同贡献。它的核心功能是将图片中的文字转化为可编辑、可搜索的文本数据,有效解决了从扫描件、照片或 PDF 文档中提取文字信息的难题,是数字化归档和信息自动化的重要基础工具。 在技术层面,Tesseract 展现了强大的适应能力。从版本 4 开始,它引入了基于长短期记忆网络(LSTM)的神经网络 OCR 引擎,显著提升了行识别的准确率;同时,为了兼顾旧有需求,它依然支持传统的字符模式识别引擎。Tesseract 原生支持 UTF-8 编码,开箱即用即可识别超过 100 种语言,并兼容 PNG、JPEG、TIFF 等多种常见图像格式。输出方面,它灵活支持纯文本、hOCR、PDF、TSV 等多种格式,方便后续数据处理。 Tesseract 主要面向开发者、研究人员以及需要构建文档处理流程的企业用户。由于它本身是一个命令行工具和库(libtesseract),不包含图形用户界面(GUI),因此最适合具备一定编程能力的技术人员集成到自动化脚本或应用程序中








