ComfyUI_VLM_nodes
在 ComfyUI 中集成十余种 VLM/LLM 模型,实现图像理解、音乐生成、自动提示词的全链路
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在 ComfyUI 中集成十余种 VLM/LLM 模型,实现图像理解、音乐生成、自动提示词的全链路
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2023 年的某天,AI 创作者 gokayfem 在用 ComfyUI 生成图像时遇到了一个尴尬的局面:他能让 AI 画出一张完美的赛博朋克城市夜景,却没办法让 AI 解释这张图里到底发生了什么——建筑风格是什么、光影情绪如何、人物在做什么动作。他不得不在 ChatGPT 和 Stable Diffusion 之间反复横跳,把图像截图发给语言模型,再把语言模型的描述粘贴回来。
这不是一个人的困境。彼时 ComfyUI 已经是 AI 图像生成领域最强大的节点式工作流工具,数以万计的创作者用它搭建出了精妙的图像生成管线。但它有一个根本性的短板:它只能处理图像生成,无法"理解"图像。视觉语言模型(VLM)在 2023 年蓬勃发展——LLaVA、Qwen2-VL、moondream 等模型陆续发布,但它们与 ComfyUI 之间隔着一道技术鸿沟。
VLM Nodes 正是为了填平这道鸿沟而生。它是一个 ComfyUI 自定义节点扩展,将十余种主流 VLM 和 LLM 模型引入 ComfyUI 工作流,让用户在同一套界面中完成图像理解、图像生成、音乐创作、提示词优化等全链路任务。2024 年 1 月发布至今,已积累 575 Stars、58 Forks,成为 ComfyUI 生态中访问量最高的 VLM 扩展之一。
LLaVA(Large Language and Vision Assistant)是 VLM Nodes 最先支持、也最成熟的功能线。项目采用 llama-cpp-python 作为 GGUF 格式模型的推理后端,这是一种被广泛采用的量化格式——用户无需完整的 CUDA 训练环境,直接加载经过量化压缩的模型文件即可运行。
节点设计上,项目将 LLaVA 拆解为三个独立节点:模型加载器(LLavaLoader)、CLIP 投影处理器(LlavaClipLoader)和采样器(LLavaSamplerSimple)。这种设计遵循 ComfyUI 的节点化哲学——每个节点职责单一,通过连线组合出复杂工作流。CLIP 投影文件(mmproj)是 LLaVA 连接视觉编码器和语言模型的桥梁,项目文档特别强调"每个模型的 CLIP 投影文件是不同的",避免用户混用导致结果失真。
支持的模型包括 LLaVa 1.5(7B/13B)、LLaVa 1.6 Mistral 7B、Nous Hermes 2 Vision、BakLLaVa 等,模型文件从 HuggingFace 的专门 GGUF 仓库下载,放入 models/LLavacheckpoints 目录后即可在节点下拉菜单中选用。
2024 年阿里云通义千问发布的 Qwen2-VL 系列是当前 VLM Nodes 支持的最高性能模型线。项目 qwen2vl.py 使用 transformers 库 + AutoModelForVision2Seq 加载原版模型,同时支持 AWQ/GPTQ 量化变体以降低显存门槛。
显存需求表清晰列出各规格要求:
| 模型 | 精度 | 显存需求 |
|---|---|---|
| Qwen2-VL-2B | 原版 | 4GB |
| Qwen2-VL-7B | 原版 | 14GB |
| Qwen2-VL-7B | AWQ 量化 | 5GB |
| Qwen2-VL-72B | AWQ 量化 | 20GB |
2B 量化版本仅需 2GB 显存,这一特性使 Qwen2-VL 成为入门级多模态任务的最佳选择。项目同样支持自动下载模型文件到 models/LLavacheckpoints/files_for_qwen2vl,下载依赖 huggingface-hub 的 snapshot_download,首次使用时会自动拉取模型权重。
moondream 由独立开发者 vikhyatk 构建,是一款主打轻量化的视觉语言模型——1.6B 参数量的模型可以运行在消费级 GPU 上。项目同时支持 moondream1 和 moondream2 两个版本,后者进一步针对边缘设备优化。
与主流通用 VLM 不同,moondream 的训练数据集结合了 SigLIP(视觉编码器)、Phi-1.5(语言解码器)和 LLaVA 训练集,在保持小体积的同时实现了不错的图像理解能力。JoyTag 则是一款基于 Danbooru 打标 schema 的图像标签模型,支持从写实到二次元的广泛图像类型,由社区贡献者 fpgamine 集成到 VLM Nodes 中。
VLM Nodes 最具创意的功能是 Image to Music 和 LLM to Music。前者利用 VLM 理解图像内容,再通过 LLM 提炼图像的情绪、氛围,最后调用 AudioLDM-2 生成对应风格的音乐片段。后者则基于 ChatMusician——一个将音乐能力内嵌到 LLM 中的开源模型——直接从文字描述生成音乐。
需要注意的是,这些音乐生成功能并不完美。项目作者在文档中坦言"does NOT work perfectly",如果遇到报错,重试(Re-queue prompt)通常可以解决。这一坦诚态度在开源社区中颇为难得。
对于 AI 图像创作者而言,最耗时的往往不是调参,而是想 prompt。VLM Nodes 提供了三套提示词自动化工具:
Get Keyword 节点接收 LLaVA 的图像理解输出,自动提取出关键词;LLM PromptGenerator 基于这些关键词(或直接输入文本),调用 GGUF 格式的专用提示词生成模型(如 Qwen-1.8B-Stable-Diffusion-Prompt-GGUF)产出 Stable Diffusion 风格的图像描述;Suggester 节点则在给定提示词基础上,生成 5 个风格一致(consistent)或随机(random)的变体,供创作者批量尝试。
这套链路将原本需要人工在多个工具间跳转的提示词工程,压缩为一条 ComfyUI 节点流。对于每天需要产出数十张图像的 AI 内容创作者,这意味着显著的生产力提升。
VLM Nodes 的代码组织遵循 ComfyUI 的标准插件规范:
__init__.py 负责插件初始化,自动检测依赖并在缺失时触发 pip 安装(check_requirements_installed),同时调用 install_init.py 中的系统检测逻辑nodes/ 目录存放各功能节点实现,每个 .py 文件对应一类节点web/js/ 提供前端辅助脚本(JsonToText、ViewText、PlaySound)pyproject.toml 定义了完整的依赖声明和 ComfyUI 插件元数据依赖树覆盖了 PyTorch 生态的核心库:transformers、diffusers、accelerate、bitsandbytes(量化推理)、optimum(推理优化)。值得注意的是,项目同时支持 llama-cpp-python 和 transformers 两条推理路径,分别对应 GGUF 量化模型和原版 HuggingFace 模型两种使用场景。
硬件需求方面,显存是硬性门槛。moondream、2B 级 Qwen2-VL 可以在 4-6GB 显存下运行(LLaVA 量化版本同理);但若要使用 7B 原版 Qwen2-VL 或 InternLM-XComposer2,则至少需要 14GB 显存。72B 级 Qwen2-VL 在量化后仍需 20GB 显存,非专业用户难以企及。
操作系统方面支持 Windows 和 Linux,macOS 理论上可行但未经官方测试。项目不支持容器化(无 Dockerfile),需要直接安装到 ComfyUI 的 custom_nodes 目录。
安装流程极为简单:
cd custom_nodes
git clone https://github.com/gokayfem/ComfyUI_VLM_nodes.git
首次加载时,插件会自动检测 requirements.txt 中的依赖并完成安装。llama-cpp-python 的 GPU 加速需要额外配置安装参数(参考项目文档中的链接),否则可能默认使用 CPU 推理导致速度极慢。
软件依赖:Python >= 3.9,PyTorch >= 2.0.1,CUDA(NVIDIA GPU)。内存建议 16GB 以上(系统本身)+ 额外显存满足模型需求。
VLM Nodes 的局限性主要集中在三个方面:
第一,模型下载成本高。 每个 VLM 模型少则 1-2GB,多则数十GB,首次搭建工作流需要等待较长的模型下载时间。InternLM-XComposer2 模型"特别重",作者在文档中专门标注了警告。
第二,音乐生成功能不稳定。 Image to Music 和 LLM to Music 节点报错率不低,作者建议直接重试而非排查问题根源。对于追求稳定工作流的用户,这部分功能目前仍处于"实验性"阶段。
第三,无容器化支持。 作为纯 Python + CUDA 的本地安装插件,VLM Nodes 无法通过 Docker 一键部署,也不支持远程调用。这既是局限,也是它保持高性能的代价——本地推理的响应速度是远程 API 难以比拟的。
VLM Nodes 的核心贡献不在于技术突破,而在于整合与降低门槛。它将分散在各个 HuggingFace 仓库、GitHub 仓库中的 VLM 模型,统一封装为 ComfyUI 节点,让已有 ComfyUI 工作流的用户无需学习新工具就能用上多模态 AI。
从 2024 年 1 月发布到 2026 年 1 月最后一次更新(历时约两年),项目保持着稳定的维护节奏——支持了从 LLaVA 1.5 到 Qwen2-VL 的主要模型迭代。这种跟进速度在社区维护的插件中相当难得。项目的 Apache-2.0 许可也允许商业使用,为其在专业 AI 工作流中的普及扫清了法律障碍。
对于 AI 爱好者,VLM Nodes 是探索多模态 AI 最友好的入口之一——在熟悉的 ComfyUI 界面中逐步尝试不同模型,无需额外部署。对于 AI 开发者,它提供了将新模型快速集成进 ComfyUI 生态的参考实现。