ComfyUI的节点式工作流在处理单张图片时通常使用Load Image节点,但面对成百上千张图像的批量任务,逐个手动加载显然不现实。Load Images From Directory节点的出现正是为了解决这个场景,它允许用户指定一个文件夹,一次性读取其中的多张图片并输出为批次张量,供后续节点批量加工。接下来我们将从节点参数、工作流连接方式以及常见性能问题三个层面来展开。

认识Load Images From Directory的输入输出与参数
该节点在节点菜单中通常位于image类别下,搜索关键词load或directory就能找到。将它拖入画布后,可以看到左侧没有输入插槽,右侧至少有一个IMAGE输出插槽,部分实现还会额外提供MASK输出和filename输出。IMAGE输出是一个形状为[N, H, W, C]的张量,其中N代表本批次读取到的图片数量,H、W、C分别对应图片的高度、宽度和颜色通道。这意味着后续节点可以像处理单张图片一样对这批图片进行整体操作,而不必循环调用。
参数方面,最核心的是目录路径,也就是directory字段。你需要在这里填写图片所在的文件夹地址。在Windows系统上,可以直接输入类似C:\ComfyUI\input的路径;在Linux或macOS上则使用/home/user/images这样的风格。如果路径中包含空格或中文字符,一般不需要额外加引号,节点会按原样解析。第二个常用参数是文件过滤,有些节点用pattern或file_types表示,例如*.png或*.jpg;*.jpeg;*.webp,用来限定只读取特定格式的图片。第三个参数是起始索引start_index,它决定了从排序后的文件列表中的第几张开始加载。第四个参数是最大加载数量max_images,用来限制一次最多读取多少张,避免显存被一次性占满。此外,一些第三方版本还支持递归搜索子目录、按名称或修改时间排序、随机打乱顺序等开关。
理解输出张量的批次特性很重要。当你把该节点连接到Image Resize或ImageScale节点时,缩放操作会应用到所有N张图片上;如果后面接的是Upscale模型,那么每一张图片都会独立经过模型推理。整个流程的耗时约等于单张耗时乘以图片数量,所以在搭建工作流之前要估算好显存和计算时间。如果目录里既有png又有jpg,节点会尝试用对应的解码器处理,但不同格式的透明度信息会略有差异,这可能会影响后续的遮罩或合成操作。
搭建批量处理工作流的完整示例
一个典型的批量读图工作流包含四个环节:目录读取、预处理、核心推理、批量输出。假设我们要对一批素材图统一缩放到512×512,然后送入一个图像增强模型,最后保存为新的png文件。节点连接顺序为:Load Images From Directory → Image Resize → Upscale Model Loader → Upscale Image (using Model) → Save Images。这里Save Images节点与普通的Save Image不同,它能够识别批次中的每一张图片并自动编号保存。如果找不到批量保存节点,也可以使用循环子图或脚本节点来拆分批次。
下面给出一个简化的工作流JSON片段,展示该节点与其他节点的连接关系。需要注意的是,实际ComfyUI的JSON格式更复杂,但节点类型和输入输出连接的思路是一致的。代码中省略了坐标和具体参数值,只保留核心结构。你可以把它作为理解节点之间数据流向的参考。
{
"nodes": [
{
"id": 1,
"type": "LoadImagesFromDirectory",
"inputs": [],
"outputs": [
{"name": "IMAGE", "type": "IMAGE"}
]
},
{
"id": 2,
"type": "ImageResize",
"inputs": [
{"name": "image", "link": 1}
],
"outputs": [
{"name": "IMAGE", "type": "IMAGE"}
]
},
{
"id": 3,
"type": "SaveImages",
"inputs": [
{"name": "images", "link": 2}
],
"outputs": []
}
]
}
如果你希望在读取后直接查看批次内容,可以临时接入Preview Image节点,它会显示当前批次中的第一张或指定索引的图片。不过Preview节点在批量任务中会拖慢速度,正式运行前应移除或绕过。另外,批量保存时文件命名规则通常基于原文件名加上后缀,但不同节点的实现有差异。建议输出目录保持为空,或者提前清理,以免旧文件干扰结果核对。
批量读图时的常见问题与优化建议
最常见的错误是目录路径写错。ComfyUI运行在服务端,节点读取的路径是相对于服务器所在机器的文件系统,而不是你本地浏览器所在的电脑。如果你通过浏览器远程访问ComfyUI,那么C:\input这样的路径必须存在于运行ComfyUI的那台机器上。另一个容易被忽略的问题是文件排序。操作系统的目录列表不保证按自然数字顺序返回,比如image2.png可能会排在image10.png之后。如果你的批处理对顺序敏感,建议在文件名中补零,例如image_002.png,或者使用节点提供的排序参数强制按名称升序排列。
显存不足是批量任务中另一个高频故障。即使单张图片只有几百KB,解码后加载到显存中的张量会占用大量内存。例如100张1024×1024的RGB图片,每个像素3通道、每通道1字节,总数据量约300MB,但经过模型推理时中间激活可能会放大数倍。建议分批处理,将max_images设置一个合理值,比如8或16,然后通过队列多次运行。部分节点版本还支持load_always开关,关闭后节点只在第一次运行时扫描目录,后续运行沿用缓存列表,这能减少文件系统I/O,但修改目录内容后需要手动刷新。
对于需要严格按顺序处理大量文件的场景,可以在节点之前或之后加入自定义脚本来管理文件列表。例如用Python脚本预先扫描目录、过滤出尺寸异常的图片并重命名,再让ComfyUI读取处理后的目录。下面是一个简单的脚本示例,它遍历指定目录,打印所有png文件路径并统计数量,同时演示了如何在Windows路径中正确保留反斜杠。
import os
import glob
# 注意:原始字符串保留反斜杠,请根据实际目录修改
input_dir = r"C:\ComfyUI\input"
pattern = os.path.join(input_dir, "*.png")
files = sorted(glob.glob(pattern))
print(f"共发现 {len(files)} 张png图片")
for idx, file_path in enumerate(files):
print(f"{idx:04d}: {file_path}")
最后,要养成定期清理comfyui临时目录和输出目录的习惯。批量任务会产生大量中间结果,如果磁盘空间不足,节点写入失败时可能不会显式报错,而是静默跳过某些图片。你可以通过日志窗口观察节点执行状态,如果某次运行输出的图片数量与目录中的文件数不符,优先检查路径权限、文件扩展名过滤条件以及是否有损坏的图片文件。
ComfyUI批量处理Load Images From Directory批量读图修改时间:2026-09-23 07:34:17