如何在Dify中处理多图片输入并生成分析报告
要在Dify工作流里真正接收用户上传的多张图片,并让大模型基于图像内容自动生成结构化分析报告,就必须绕开默认的单图限制、显式启用多模态解析链路,还得保证下游模型能同时消费多个图像特征——否则系统只会取第一张图,或者干脆报错。

先明确一个前提:
必须选择Workflow类型,并启用多模态输入,配置File list字段
{{#each $input.img_list}}调用多图描述,最终接入Qwen-VL生成结构化报告。下面拆开来说具体怎么做。
创建支持多图输入的工作流
进入Dify Studio → 点击Create from blank → 关键一步:
必须选择Workflow类型
创建工作流后,立刻点击画布空白处 → 打开全局设置 → 在“Input Schema”中勾选【Enable multi-modal input】。这一步如果跳过,所有Image/File字段都会被当作普通字符串处理,payload里根本没有binary_data字段,后面就全废了。
配置多图输入节点
方法一:单节点支持多图上传(推荐用于同场景批量分析)
从左侧拖入User Input节点 → 点击配置 → 添加字段 → 字段类型选
File list
img_list(全小写+下划线,不能含空格)→ 标签名写“上传多张图片” → 允许上传类型选Both → 支持文件类型只勾选Image → 最多上传数量设为20(Dify的硬性上限)。
方法二:多个独立Image字段(适用于分类明确的图文组合)
添加两个Image类型字段:变量名分别为front_img和back_img,标签写“正面图”“背面图”。注意这两个字段在运行时会生成两个独立的{{$input.front_img}}和{{$input.back_img}}路径,不能用{{$input.img_list.0}}索引访问。
关键提醒:变量名如果写成FrontImg或front-img,下游LLM节点将无法通过{{$input.front_img}}正确引用,直接报undefined error。变量名必须全小写+下划线。
接入文档提取器并开启多图解析
第一步:拖入Document Extractor节点 → 输入参数选择img_list(对应File list字段)或分别连front_img和back_img(需要两个Extract节点)。
第二步:在Document Extractor配置中,关闭“Extract text only”开关。
默认是开启的,这是个陷阱
第三步:确认输出变量类型。当输入是File list时,Document Extractor输出为array[string],每一项是单张图的结构化描述文本。这个数组可以直接传给多模态大模型节点。
连接多模态大模型生成报告
拖入Multimodal LLM节点 → 模型选Qwen-VL-7B或Qwen-VL-14B(需平台已部署)→ 在Prompt模板中使用如下结构:
“你是一名专业图像分析师。请基于以下{{#each $input.img_list}}第{{$index + 1}}张图:{{this}} {{/each}}内容,按「对象识别→异常检测→关联推理」三段式生成中文分析报告,总字数不超过800字。”
注意:不要用{{#each $input.img_list}}嵌套{{#each}},Dify模板引擎不支持双重循环。必须用一个{{#each}}一次性展开全部图像描述文本,再由LLM自行分图理解。
最后连接一个Text Output节点,把LLM输出直接返回给用户。这样整个链路就通了。