{
  "config": {},
  "extra": {
    "ds": {
      "offset": [
        9247.864065025406,
        -1474.0947088085522
      ],
      "scale": 0.3138428376721386
    },
    "frontendVersion": "1.21.0"
  },
  "groups": [
    {
      "bounding": [
        -6650,
        2030,
        390,
        460
      ],
      "color": "#3f789e",
      "flags": {},
      "font_size": 24,
      "id": 1,
      "title": "Input Files"
    },
    {
      "bounding": [
        -6730,
        2670,
        894.080078125,
        537.5999755859375
      ],
      "color": "#3f789e",
      "flags": {},
      "font_size": 24,
      "id": 2,
      "title": "Multiple images input example"
    }
  ],
  "id": "083c898c-0a6e-4f9a-b9c1-7e8ce36506da",
  "last_link_id": 14,
  "last_node_id": 18,
  "links": [
    [
      2,
      3,
      0,
      2,
      0,
      "*"
    ],
    [
      3,
      4,
      0,
      3,
      2,
      "OPENAI_CHAT_CONFIG"
    ],
    [
      4,
      5,
      0,
      3,
      0,
      "IMAGE"
    ],
    [
      6,
      6,
      0,
      7,
      0,
      "OPENAI_INPUT_FILES"
    ],
    [
      7,
      7,
      0,
      3,
      1,
      "OPENAI_INPUT_FILES"
    ],
    [
      8,
      11,
      0,
      10,
      0,
      "IMAGE"
    ],
    [
      9,
      12,
      0,
      10,
      1,
      "IMAGE"
    ],
    [
      12,
      10,
      0,
      16,
      0,
      "IMAGE"
    ],
    [
      14,
      13,
      0,
      16,
      1,
      "IMAGE"
    ]
  ],
  "nodes": [
    {
      "flags": {},
      "id": 2,
      "inputs": [
        {
          "link": 2,
          "name": "source",
          "type": "*"
        }
      ],
      "mode": 0,
      "order": 12,
      "outputs": [],
      "pos": [
        -5390,
        2080
      ],
      "properties": {
        "Node name for S&R": "PreviewAny"
      },
      "size": [
        490,
        350
      ],
      "type": "PreviewAny",
      "widgets_values": []
    },
    {
      "flags": {},
      "id": 4,
      "inputs": [],
      "mode": 0,
      "order": 0,
      "outputs": [
        {
          "links": [
            3
          ],
          "name": "OPENAI_CHAT_CONFIG",
          "type": "OPENAI_CHAT_CONFIG"
        }
      ],
      "pos": [
        -6230,
        2420
      ],
      "properties": {
        "Node name for S&R": "OpenAIChatConfig"
      },
      "size": [
        390,
        230
      ],
      "type": "OpenAIChatConfig",
      "widgets_values": [
        "auto",
        4096,
        "You are an AI specialized in image-to-text prompt generation. Analyze the given image carefully and describe it in a detailed, structured, and prompt-friendly format. Include elements such as subject, clothing, style, environment, lighting, composition, color palette, mood, camera angle, and any other relevant visual details. Your output should resemble a high-quality text-to-image prompt that can help recreate the image. Use concise, descriptive language. Do not include explanations, just output the prompt."
      ]
    },
    {
      "bgcolor": "#653",
      "color": "#432",
      "flags": {},
      "id": 3,
      "inputs": [
        {
          "link": 4,
          "name": "images",
          "shape": 7,
          "type": "IMAGE"
        },
        {
          "link": 7,
          "name": "files",
          "shape": 7,
          "type": "OPENAI_INPUT_FILES"
        },
        {
          "link": 3,
          "name": "advanced_options",
          "shape": 7,
          "type": "OPENAI_CHAT_CONFIG"
        }
      ],
      "mode": 0,
      "order": 10,
      "outputs": [
        {
          "links": [
            2
          ],
          "name": "STRING",
          "type": "STRING"
        }
      ],
      "pos": [
        -5810,
        2080
      ],
      "properties": {
        "Node name for S&R": "OpenAIChatNode"
      },
      "size": [
        400,
        580
      ],
      "type": "OpenAIChatNode",
      "widgets_values": [
        "Describe this image",
        false,
        "o1-pro"
      ]
    },
    {
      "flags": {},
      "id": 6,
      "inputs": [
        {
          "link": null,
          "name": "OPENAI_INPUT_FILES",
          "shape": 7,
          "type": "OPENAI_INPUT_FILES"
        }
      ],
      "mode": 4,
      "order": 1,
      "outputs": [
        {
          "links": [
            6
          ],
          "name": "OPENAI_INPUT_FILES",
          "type": "OPENAI_INPUT_FILES"
        }
      ],
      "pos": [
        -6640,
        2110
      ],
      "properties": {
        "Node name for S&R": "OpenAIInputFiles"
      },
      "size": [
        361.078125,
        58
      ],
      "type": "OpenAIInputFiles",
      "widgets_values": [
        "input.txt"
      ]
    },
    {
      "flags": {},
      "id": 7,
      "inputs": [
        {
          "link": 6,
          "name": "OPENAI_INPUT_FILES",
          "shape": 7,
          "type": "OPENAI_INPUT_FILES"
        }
      ],
      "mode": 4,
      "order": 8,
      "outputs": [
        {
          "links": [
            7
          ],
          "name": "OPENAI_INPUT_FILES",
          "type": "OPENAI_INPUT_FILES"
        }
      ],
      "pos": [
        -6640,
        2220
      ],
      "properties": {
        "Node name for S&R": "OpenAIInputFiles"
      },
      "size": [
        361.078125,
        58
      ],
      "type": "OpenAIInputFiles",
      "widgets_values": [
        "input.txt"
      ]
    },
    {
      "flags": {},
      "id": 13,
      "inputs": [],
      "mode": 4,
      "order": 2,
      "outputs": [
        {
          "links": [
            14
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "links": null,
          "name": "MASK",
          "type": "MASK"
        }
      ],
      "pos": [
        -6120,
        2880
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "size": [
        274.080078125,
        314.0001220703125
      ],
      "type": "LoadImage",
      "widgets_values": [
        "example.png",
        "image"
      ]
    },
    {
      "flags": {},
      "id": 11,
      "inputs": [],
      "mode": 4,
      "order": 3,
      "outputs": [
        {
          "links": [
            8
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "links": null,
          "name": "MASK",
          "type": "MASK"
        }
      ],
      "pos": [
        -6420,
        2880
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "size": [
        274.080078125,
        314.0001220703125
      ],
      "type": "LoadImage",
      "widgets_values": [
        "example.png",
        "image"
      ]
    },
    {
      "flags": {},
      "id": 12,
      "inputs": [],
      "mode": 4,
      "order": 4,
      "outputs": [
        {
          "links": [
            9
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "links": null,
          "name": "MASK",
          "type": "MASK"
        }
      ],
      "pos": [
        -6720,
        2880
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "size": [
        274.080078125,
        314.0001220703125
      ],
      "type": "LoadImage",
      "widgets_values": [
        "example.png",
        "image"
      ]
    },
    {
      "flags": {},
      "id": 10,
      "inputs": [
        {
          "link": 8,
          "name": "image1",
          "type": "IMAGE"
        },
        {
          "link": 9,
          "name": "image2",
          "type": "IMAGE"
        }
      ],
      "mode": 4,
      "order": 9,
      "outputs": [
        {
          "links": [
            12
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        }
      ],
      "pos": [
        -6290,
        2760
      ],
      "properties": {
        "Node name for S&R": "ImageBatch"
      },
      "size": [
        140,
        46
      ],
      "type": "ImageBatch",
      "widgets_values": []
    },
    {
      "flags": {},
      "id": 16,
      "inputs": [
        {
          "link": 12,
          "name": "image1",
          "type": "IMAGE"
        },
        {
          "link": 14,
          "name": "image2",
          "type": "IMAGE"
        }
      ],
      "mode": 4,
      "order": 11,
      "outputs": [
        {
          "links": null,
          "name": "IMAGE",
          "type": "IMAGE"
        }
      ],
      "pos": [
        -5990,
        2760
      ],
      "properties": {
        "Node name for S&R": "ImageBatch"
      },
      "size": [
        140,
        46
      ],
      "type": "ImageBatch",
      "widgets_values": []
    },
    {
      "bgcolor": "#000",
      "color": "#432",
      "flags": {},
      "id": 9,
      "inputs": [],
      "mode": 0,
      "order": 5,
      "outputs": [],
      "pos": [
        -6640,
        2320
      ],
      "properties": {},
      "size": [
        360,
        150
      ],
      "type": "MarkdownNote",
      "widgets_values": [
        "The corresponding files need to already exist in the **ComfyUI/input** folder. The supported formats are `.txt` and `.pdf`. However, we are currently improving this node, and in the future, we will use an uploadable node to replace it.  \n\n---\n\n需要对应的文件在 **ComfyUI/input** 文件夹下已经存在，支持 `.txt` 和 `.pdf` 格式，不过我们目前正在改进这一节点，后续将会使用可以上传的节点来替代"
      ]
    },
    {
      "flags": {},
      "id": 5,
      "inputs": [],
      "mode": 0,
      "order": 6,
      "outputs": [
        {
          "links": [
            4
          ],
          "name": "IMAGE",
          "type": "IMAGE"
        },
        {
          "links": null,
          "name": "MASK",
          "type": "MASK"
        }
      ],
      "pos": [
        -6230,
        2050
      ],
      "properties": {
        "Node name for S&R": "LoadImage"
      },
      "size": [
        370,
        326
      ],
      "type": "LoadImage",
      "widgets_values": [
        "example.png",
        "image"
      ]
    },
    {
      "bgcolor": "#000",
      "color": "#432",
      "flags": {},
      "id": 18,
      "inputs": [],
      "mode": 0,
      "order": 7,
      "outputs": [],
      "pos": [
        -7060,
        2060
      ],
      "properties": {},
      "size": [
        390,
        320
      ],
      "title": "About API Node",
      "type": "MarkdownNote",
      "widgets_values": [
        "[About API Node](https://docs.comfy.org/tutorials/partner-nodes/overview) | [关于 API 节点](https://docs.comfy.org/zh-CN/tutorials/partner-nodes/overview)\n\nTo use the API, you must be in a secure network environment:\n\n- Allows access from `127.0.0.1` or `localhost`.\n\n- Use our API Node in website services starting with `https`\n\n- Make sure you can normally connect to our API services (some regions may need a proxy).\n\n- Make sure you are logged in in the settings and that your account still has enough credits to cover the consumption of API calls.\n\n- On non-whitelisted sites or local area networks (LANs), please try to [log in using an API Key](https://docs.comfy.org/interface/user#logging-in-with-an-api-key).\n\n---\n\n要使用API，你必须处于安全的网络环境中：\n\n- 允许从`127.0.0.1`或`localhost`访问。\n- 在带有 https 开头的服务中使用我们的 API Node\n- 确保你能够正常连接我们的API服务（某些地区可能需要代理）。\n- 确保你已在设置中登录，且你的账户仍有足够的积分来支付API调用的消耗。\n- 在非白名单站点或者局域网（LAN），请尝试[使用 API Key 来登录](https://docs.comfy.org/zh-CN/interface/user#%E4%BD%BF%E7%94%A8-api-key-%E8%BF%9B%E8%A1%8C%E7%99%BB%E5%BD%95)\n"
      ]
    }
  ],
  "revision": 0,
  "version": 0.4
}