DIfy tool comfyUI the Image Node ID List not match your upload image files. #713

Closed
opened 2026-02-16 10:20:16 -05:00 by yindo · 1 comment
Owner

Originally created by @lcy0520 on GitHub (Oct 14, 2025).

Self Checks

  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues Dify issues & Dify Official Plugins, including closed ones.
  • I confirm that I am using English to submit this report (我已阅读并同意 Language Policy).
  • [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

1.9.1

Plugin version

0.3.2

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

The plugin is comfyui workflow, the content in the workflow json is the workflow json API exported from the comfyui workflow, and its Chinese input has been replaced with the text generated by the LLM model, the image input is replaced with an empty string, and the image input is a single image data obtained by the list operation node.

✔️ Error log

The plugin accepts input as :
{
"workflow_json": "{\n "84": {\n "inputs": {\n "clip_name": "umt5_xxl_fp8_e4m3fn_scaled.safetensors",\n "type": "wan",\n "device": "default"\n },\n "class_type": "CLIPLoader",\n "_meta": {\n "title": "加载CLIP"\n }\n },\n "85": {\n "inputs": {\n "add_noise": "disable",\n "noise_seed": 0,\n "steps": 4,\n "cfg": 1,\n "sampler_name": "euler",\n "scheduler": "simple",\n "start_at_step": 2,\n "end_at_step": 4,\n "return_with_leftover_noise": "disable",\n "model": [\n "103",\n 0\n ],\n "positive": [\n "98",\n 0\n ],\n "negative": [\n "98",\n 1\n ],\n "latent_image": [\n "86",\n 0\n ]\n },\n "class_type": "KSamplerAdvanced",\n "_meta": {\n "title": "K采样器(高级)"\n }\n },\n "86": {\n "inputs": {\n "add_noise": "enable",\n "noise_seed": 138073435077572,\n "steps": 4,\n "cfg": 1,\n "sampler_name": "euler",\n "scheduler": "simple",\n "start_at_step": 0,\n "end_at_step": 2,\n "return_with_leftover_noise": "enable",\n "model": [\n "104",\n 0\n ],\n "positive": [\n "98",\n 0\n ],\n "negative": [\n "98",\n 1\n ],\n "latent_image": [\n "98",\n 2\n ]\n },\n "class_type": "KSamplerAdvanced",\n "_meta": {\n "title": "K采样器(高级)"\n }\n },\n "87": {\n "inputs": {\n "samples": [\n "85",\n 0\n ],\n "vae": [\n "90",\n 0\n ]\n },\n "class_type": "VAEDecode",\n "_meta": {\n "title": "VAE解码"\n }\n },\n "89": {\n "inputs": {\n "text": "色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走",\n "clip": [\n "84",\n 0\n ]\n },\n "class_type": "CLIPTextEncode",\n "_meta": {\n "title": "CLIP Text Encode (Negative Prompt)"\n }\n },\n "90": {\n "inputs": {\n "vae_name": "wan_2.1_vae.safetensors"\n },\n "class_type": "VAELoader",\n "_meta": {\n "title": "加载VAE"\n }\n },\n "93": {\n "inputs": {\n "text": "\n\nA girl dances on the beach.",\n "clip": [\n "84",\n 0\n ]\n },\n "class_type": "CLIPTextEncode",\n "_meta": {\n "title": "CLIP Text Encode (Positive Prompt)"\n }\n },\n "94": {\n "inputs": {\n "fps": 16,\n "images": [\n "87",\n 0\n ]\n },\n "class_type": "CreateVideo",\n "_meta": {\n "title": "创建视频"\n }\n },\n "95": {\n "inputs": {\n "unet_name": "wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors",\n "weight_dtype": "default"\n },\n "class_type": "UNETLoader",\n "_meta": {\n "title": "UNet加载器"\n }\n },\n "96": {\n "inputs": {\n "unet_name": "wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors",\n "weight_dtype": "default"\n },\n "class_type": "UNETLoader",\n "_meta": {\n "title": "UNet加载器"\n }\n },\n "97": {\n "inputs": {\n "image": ""\n },\n "class_type": "LoadImage",\n "_meta": {\n "title": "加载图像"\n }\n },\n "98": {\n "inputs": {\n "width": 640,\n "height": 640,\n "length": 81,\n "batch_size": 1,\n "positive": [\n "93",\n 0\n ],\n "negative": [\n "89",\n 0\n ],\n "vae": [\n "90",\n 0\n ],\n "start_image": [\n "97",\n 0\n ]\n },\n "class_type": "WanImageToVideo",\n "_meta": {\n "title": "Wan图像到视频"\n }\n },\n "101": {\n "inputs": {\n "lora_name": "wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors",\n "strength_model": 1.0000000000000002,\n "model": [\n "95",\n 0\n ]\n },\n "class_type": "LoraLoaderModelOnly",\n "_meta": {\n "title": "LoRA加载器(仅模型)"\n }\n },\n "102": {\n "inputs": {\n "lora_name": "wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors",\n "strength_model": 1.0000000000000002,\n "model": [\n "96",\n 0\n ]\n },\n "class_type": "LoraLoaderModelOnly",\n "_meta": {\n "title": "LoRA加载器(仅模型)"\n }\n },\n "103": {\n "inputs": {\n "shift": 5.000000000000001,\n "model": [\n "102",\n 0\n ]\n },\n "class_type": "ModelSamplingSD3",\n "_meta": {\n "title": "采样算法(SD3)"\n }\n },\n "104": {\n "inputs": {\n "shift": 5.000000000000001,\n "model": [\n "101",\n 0\n ]\n },\n "class_type": "ModelSamplingSD3",\n "_meta": {\n "title": "采样算法(SD3)"\n }\n },\n "108": {\n "inputs": {\n "filename_prefix": "video/ComfyUI",\n "format": "auto",\n "codec": "auto",\n "video": [\n "94",\n 0\n ]\n },\n "class_type": "SaveVideo",\n "meta": {\n "title": "保存视频"\n }\n }\n}",
"images": {
"dify_model_identity": "dify__file",
"id": null,
"tenant_id": "f09ae8e4-807c-4c82-b788-d05ca60e2735",
"type": "image",
"transfer_method": "tool_file",
"remote_url": null,
"related_id": "b3646fa9-7c06-4ea7-a327-5861b76736be",
"filename": "ComfyUI_00018
.png",
"extension": ".png",
"mime_type": "image/png",
"size": 1588534,
"url": "http://xy.dnset.com:1280//files/tools/b3646fa9-7c06-4ea7-a327-5861b76736be.png?timestamp=1760426080&nonce=56e45394a15b333b577c6c90597a1392&sign=7_lVtM3SfH9VRXU79YGlXe_sihUh5PuVZbv8fcWVbZE="
},
"image_ids": ""
}

An error occurred in the plugin, please contact the author of langgenius/comfyui/comfyui for help, error type: ToolProviderCredentialValidationError, error details: the Image Node ID List not match your upload image files.

Originally created by @lcy0520 on GitHub (Oct 14, 2025). ### Self Checks - [x] This is only for bug report, if you would like to ask a question, please head to [Discussions](https://github.com/langgenius/dify/discussions/categories/general). - [x] I have searched for existing issues [Dify issues](https://github.com/langgenius/dify/issues) & [Dify Official Plugins](https://github.com/langgenius/dify-official-plugins/issues), including closed ones. - [x] I confirm that I am using English to submit this report (我已阅读并同意 [Language Policy](https://github.com/langgenius/dify/issues/1542)). - [x] [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:) - [x] Please do not modify this template :) and fill in all the required fields. ### Dify version 1.9.1 ### Plugin version 0.3.2 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce The plugin is comfyui workflow, the content in the workflow json is the workflow json API exported from the comfyui workflow, and its Chinese input has been replaced with the text generated by the LLM model, the image input is replaced with an empty string, and the image input is a single image data obtained by the list operation node. ### ✔️ Error log The plugin accepts input as : { "workflow_json": "{\n \"84\": {\n \"inputs\": {\n \"clip_name\": \"umt5_xxl_fp8_e4m3fn_scaled.safetensors\",\n \"type\": \"wan\",\n \"device\": \"default\"\n },\n \"class_type\": \"CLIPLoader\",\n \"_meta\": {\n \"title\": \"加载CLIP\"\n }\n },\n \"85\": {\n \"inputs\": {\n \"add_noise\": \"disable\",\n \"noise_seed\": 0,\n \"steps\": 4,\n \"cfg\": 1,\n \"sampler_name\": \"euler\",\n \"scheduler\": \"simple\",\n \"start_at_step\": 2,\n \"end_at_step\": 4,\n \"return_with_leftover_noise\": \"disable\",\n \"model\": [\n \"103\",\n 0\n ],\n \"positive\": [\n \"98\",\n 0\n ],\n \"negative\": [\n \"98\",\n 1\n ],\n \"latent_image\": [\n \"86\",\n 0\n ]\n },\n \"class_type\": \"KSamplerAdvanced\",\n \"_meta\": {\n \"title\": \"K采样器(高级)\"\n }\n },\n \"86\": {\n \"inputs\": {\n \"add_noise\": \"enable\",\n \"noise_seed\": 138073435077572,\n \"steps\": 4,\n \"cfg\": 1,\n \"sampler_name\": \"euler\",\n \"scheduler\": \"simple\",\n \"start_at_step\": 0,\n \"end_at_step\": 2,\n \"return_with_leftover_noise\": \"enable\",\n \"model\": [\n \"104\",\n 0\n ],\n \"positive\": [\n \"98\",\n 0\n ],\n \"negative\": [\n \"98\",\n 1\n ],\n \"latent_image\": [\n \"98\",\n 2\n ]\n },\n \"class_type\": \"KSamplerAdvanced\",\n \"_meta\": {\n \"title\": \"K采样器(高级)\"\n }\n },\n \"87\": {\n \"inputs\": {\n \"samples\": [\n \"85\",\n 0\n ],\n \"vae\": [\n \"90\",\n 0\n ]\n },\n \"class_type\": \"VAEDecode\",\n \"_meta\": {\n \"title\": \"VAE解码\"\n }\n },\n \"89\": {\n \"inputs\": {\n \"text\": \"色调艳丽,过曝,静态,细节模糊不清,字幕,风格,作品,画作,画面,静止,整体发灰,最差质量,低质量,JPEG压缩残留,丑陋的,残缺的,多余的手指,画得不好的手部,画得不好的脸部,畸形的,毁容的,形态畸形的肢体,手指融合,静止不动的画面,杂乱的背景,三条腿,背景人很多,倒着走\",\n \"clip\": [\n \"84\",\n 0\n ]\n },\n \"class_type\": \"CLIPTextEncode\",\n \"_meta\": {\n \"title\": \"CLIP Text Encode (Negative Prompt)\"\n }\n },\n \"90\": {\n \"inputs\": {\n \"vae_name\": \"wan_2.1_vae.safetensors\"\n },\n \"class_type\": \"VAELoader\",\n \"_meta\": {\n \"title\": \"加载VAE\"\n }\n },\n \"93\": {\n \"inputs\": {\n \"text\": \"\n\nA girl dances on the beach.\",\n \"clip\": [\n \"84\",\n 0\n ]\n },\n \"class_type\": \"CLIPTextEncode\",\n \"_meta\": {\n \"title\": \"CLIP Text Encode (Positive Prompt)\"\n }\n },\n \"94\": {\n \"inputs\": {\n \"fps\": 16,\n \"images\": [\n \"87\",\n 0\n ]\n },\n \"class_type\": \"CreateVideo\",\n \"_meta\": {\n \"title\": \"创建视频\"\n }\n },\n \"95\": {\n \"inputs\": {\n \"unet_name\": \"wan2.2_i2v_high_noise_14B_fp8_scaled.safetensors\",\n \"weight_dtype\": \"default\"\n },\n \"class_type\": \"UNETLoader\",\n \"_meta\": {\n \"title\": \"UNet加载器\"\n }\n },\n \"96\": {\n \"inputs\": {\n \"unet_name\": \"wan2.2_i2v_low_noise_14B_fp8_scaled.safetensors\",\n \"weight_dtype\": \"default\"\n },\n \"class_type\": \"UNETLoader\",\n \"_meta\": {\n \"title\": \"UNet加载器\"\n }\n },\n \"97\": {\n \"inputs\": {\n \"image\": \"\"\n },\n \"class_type\": \"LoadImage\",\n \"_meta\": {\n \"title\": \"加载图像\"\n }\n },\n \"98\": {\n \"inputs\": {\n \"width\": 640,\n \"height\": 640,\n \"length\": 81,\n \"batch_size\": 1,\n \"positive\": [\n \"93\",\n 0\n ],\n \"negative\": [\n \"89\",\n 0\n ],\n \"vae\": [\n \"90\",\n 0\n ],\n \"start_image\": [\n \"97\",\n 0\n ]\n },\n \"class_type\": \"WanImageToVideo\",\n \"_meta\": {\n \"title\": \"Wan图像到视频\"\n }\n },\n \"101\": {\n \"inputs\": {\n \"lora_name\": \"wan2.2_i2v_lightx2v_4steps_lora_v1_high_noise.safetensors\",\n \"strength_model\": 1.0000000000000002,\n \"model\": [\n \"95\",\n 0\n ]\n },\n \"class_type\": \"LoraLoaderModelOnly\",\n \"_meta\": {\n \"title\": \"LoRA加载器(仅模型)\"\n }\n },\n \"102\": {\n \"inputs\": {\n \"lora_name\": \"wan2.2_i2v_lightx2v_4steps_lora_v1_low_noise.safetensors\",\n \"strength_model\": 1.0000000000000002,\n \"model\": [\n \"96\",\n 0\n ]\n },\n \"class_type\": \"LoraLoaderModelOnly\",\n \"_meta\": {\n \"title\": \"LoRA加载器(仅模型)\"\n }\n },\n \"103\": {\n \"inputs\": {\n \"shift\": 5.000000000000001,\n \"model\": [\n \"102\",\n 0\n ]\n },\n \"class_type\": \"ModelSamplingSD3\",\n \"_meta\": {\n \"title\": \"采样算法(SD3)\"\n }\n },\n \"104\": {\n \"inputs\": {\n \"shift\": 5.000000000000001,\n \"model\": [\n \"101\",\n 0\n ]\n },\n \"class_type\": \"ModelSamplingSD3\",\n \"_meta\": {\n \"title\": \"采样算法(SD3)\"\n }\n },\n \"108\": {\n \"inputs\": {\n \"filename_prefix\": \"video/ComfyUI\",\n \"format\": \"auto\",\n \"codec\": \"auto\",\n \"video\": [\n \"94\",\n 0\n ]\n },\n \"class_type\": \"SaveVideo\",\n \"_meta\": {\n \"title\": \"保存视频\"\n }\n }\n}", "images": { "dify_model_identity": "__dify__file__", "id": null, "tenant_id": "f09ae8e4-807c-4c82-b788-d05ca60e2735", "type": "image", "transfer_method": "tool_file", "remote_url": null, "related_id": "b3646fa9-7c06-4ea7-a327-5861b76736be", "filename": "ComfyUI_00018_.png", "extension": ".png", "mime_type": "image/png", "size": 1588534, "url": "http://xy.dnset.com:1280//files/tools/b3646fa9-7c06-4ea7-a327-5861b76736be.png?timestamp=1760426080&nonce=56e45394a15b333b577c6c90597a1392&sign=7_lVtM3SfH9VRXU79YGlXe_sihUh5PuVZbv8fcWVbZE=" }, "image_ids": "" } An error occurred in the plugin, please contact the author of langgenius/comfyui/comfyui for help, error type: ToolProviderCredentialValidationError, error details: the Image Node ID List not match your upload image files.
yindo added the bug label 2026-02-16 10:20:16 -05:00
yindo closed this issue 2026-02-16 10:20:16 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Oct 14, 2025):

Hi @lcy0520! I'm Dosu and I’m helping the dify-official-plugins team.

The error happens because the comfyUI plugin expects the uploaded image files to match the image node IDs defined in your workflow JSON. In your case, node "97" (LoadImage) has its "image" input set to an empty string, while you provide a PNG file but leave image_ids empty. This mismatch triggers the strict validation logic, resulting in the ToolProviderCredentialValidationError.

To fix this, make sure:

  • The workflow JSON's LoadImage node(s) reference the correct image filename or ID.
  • The uploaded image files are mapped to the expected node IDs.
  • The image_ids field is populated with the correct node ID(s) that correspond to the uploaded image(s).

If your workflow expects a single image, set the "image" input in node "97" to the filename or ID of your uploaded image, and ensure image_ids includes the corresponding node ID. This will allow the plugin to validate and process the image correctly.

The comfyUI plugin's validation is intentionally strict to prevent workflow errors, so any mismatch between workflow JSON and uploaded images will cause this error. For more details, see the implementation and validation logic in the plugin code (source).

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Join Discord Share on X

@dosubot[bot] commented on GitHub (Oct 14, 2025): <!-- Greeting --> Hi @lcy0520! I'm [Dosu](https://go.dosu.dev/dosubot) and I’m helping the dify-official-plugins team. <!-- Answer --> The error happens because the comfyUI plugin expects the uploaded image files to match the image node IDs defined in your workflow JSON. In your case, node "97" (`LoadImage`) has its "image" input set to an empty string, while you provide a PNG file but leave `image_ids` empty. This mismatch triggers the strict validation logic, resulting in the ToolProviderCredentialValidationError. To fix this, make sure: - The workflow JSON's `LoadImage` node(s) reference the correct image filename or ID. - The uploaded image files are mapped to the expected node IDs. - The `image_ids` field is populated with the correct node ID(s) that correspond to the uploaded image(s). If your workflow expects a single image, set the "image" input in node "97" to the filename or ID of your uploaded image, and ensure `image_ids` includes the corresponding node ID. This will allow the plugin to validate and process the image correctly. The comfyUI plugin's validation is intentionally strict to prevent workflow errors, so any mismatch between workflow JSON and uploaded images will cause this error. For more details, see the implementation and validation logic in the plugin code ([source](https://github.com/langgenius/dify-official-plugins/pull/1772)). <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/a1df0b90-3239-456e-8e4e-25854408a10f?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/a1df0b90-3239-456e-8e4e-25854408a10f?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/a1df0b90-3239-456e-8e4e-25854408a10f?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/a1df0b90-3239-456e-8e4e-25854408a10f?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/a1df0b90-3239-456e-8e4e-25854408a10f?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/a1df0b90-3239-456e-8e4e-25854408a10f?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/a1df0b90-3239-456e-8e4e-25854408a10f?feedback_type=other)</sup>&nbsp;&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify-official-plugins/issues/1856)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify-official-plugins#713