{
  "wando_provider": 1,
  "id": "runcomfy",
  "name": "RunComfy",
  "version": "1.3.2",
  "author": "Wando",
  "updated": "2026-10-20",
  "docs_url": "https://docs.runcomfy.com/model-apis/quickstart",
  "update_url": "https://wandostudios.com/files/bblog/runcomfy.wandoprovider",
  "notes": "A proof of concept, written against RunComfy's model catalog and API docs on 2026-10-20 and not maintained; if you change it, delete update_url. FLUX.1 Kontext edits, Z-Image Turbo with an image and Z-Image Inpaint need Cloudflare R2. Other models send data URLs; if one refuses them or a large photo fails, switch it to hosted_url (see the README).",
  "hosts": ["model-api.runcomfy.net"],
  "auth": {
    "label": "RunComfy API token",
    "header": "Authorization",
    "prefix": "Bearer ",
    "help_url": "https://www.runcomfy.com/profile"
  },
  "models": [
    {
      "id": "flux-2",
      "label": "FLUX.2",
      "group": "FLUX",
      "description": "Black Forest Labs FLUX.2 [pro]: studio-grade images with precise color and layout. Add up to 10 images to edit or combine them.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, or the change to your images..." },
      "references": { "mode": "optional", "max": 10, "send_as": "data_url" },
      "fields": [
        {
          "key": "image_size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "landscape_4_3",
          "options": [
            { "label": "1:1 HD", "value": "square_hd" },
            { "label": "1:1", "value": "square" },
            { "label": "3:4", "value": "portrait_4_3" },
            { "label": "9:16", "value": "portrait_16_9" },
            { "label": "4:3", "value": "landscape_4_3" },
            { "label": "16:9", "value": "landscape_16_9" }
          ]
        },
        {
          "key": "image_size_auto",
          "label": "Size",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            { "label": "Auto", "value": "auto" },
            { "label": "1:1 HD", "value": "square_hd" },
            { "label": "1:1", "value": "square" },
            { "label": "3:4", "value": "portrait_4_3" },
            { "label": "9:16", "value": "portrait_16_9" },
            { "label": "4:3", "value": "landscape_4_3" },
            { "label": "16:9", "value": "landscape_16_9" }
          ]
        },
        {
          "key": "guidance_scale",
          "label": "Guidance",
          "type": "float_slider",
          "min": 0,
          "max": 20,
          "step": 0.1,
          "decimals": 1,
          "default": 2.5,
          "help": "How closely the image follows your prompt. Higher follows it more strictly."
        },
        {
          "key": "guidance_scale_flex",
          "label": "Guidance",
          "type": "float_slider",
          "min": 1.5,
          "max": 10,
          "step": 0.1,
          "decimals": 1,
          "default": 3.5,
          "help": "How closely the image follows your prompt. Higher follows it more strictly."
        },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 4,
          "max": 50,
          "default": 28,
          "help": "How many passes refine the image. More is slower and can add detail."
        },
        {
          "key": "enable_prompt_expansion",
          "label": "Expand prompt",
          "type": "bool",
          "default": false,
          "help": "The model adds detail to your prompt first. Results can drift from what you wrote."
        },
        {
          "key": "enable_prompt_expansion_flex",
          "label": "Expand prompt",
          "type": "bool",
          "default": true,
          "help": "The model adds detail to your prompt first. Results can drift from what you wrote."
        },
        { "key": "num_images", "label": "Images", "type": "int_slider", "min": 1, "max": 4, "default": 1 },
        { "type": "seed" }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-2/pro/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "image_size": "{{fields.image_size}}",
          "output_format": "png",
          "seed": "{{fields.seed}}"
        }
      },
      "without_references": {
        "fields": [
          "image_size", "guidance_scale", "guidance_scale_flex", "num_inference_steps", "enable_prompt_expansion_flex",
          "seed"
        ]
      },
      "with_references": {
        "fields": [
          "image_size_auto", "guidance_scale_flex", "num_inference_steps", "enable_prompt_expansion_flex", "seed"
        ],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-2/pro/edit",
          "body": {
            "prompt": "{{prompt}}",
            "image_urls": "{{images}}",
            "image_size": "{{fields.image_size_auto}}",
            "output_format": "png",
            "seed": "{{fields.seed}}"
          }
        },
        "pricing": { "amount": "cost", "per_image": 0.1, "note": "RunComfy's price: $0.10 per image." }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.05, "note": "RunComfy's price: $0.05 per image." },
      "variants": {
        "label": "Version",
        "default": "pro",
        "options": [
          {
            "id": "pro",
            "label": "Pro",
            "fields": ["image_size", "image_size_auto", "seed"],
            "description": "Black Forest Labs FLUX.2 [pro]: studio-grade images with precise color and layout. Add up to 10 images to edit or combine them."
          },
          {
            "id": "max",
            "label": "Max",
            "description": "Black Forest Labs FLUX.2 [max]: the highest quality FLUX.2, strongest on photorealism and typography. Add up to 10 images to edit or combine them.",
            "fields": ["image_size", "image_size_auto", "seed"],
            "request": { "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-2/max/text-to-image" },
            "pricing": { "amount": "cost", "per_image": 0.08, "note": "RunComfy's price: $0.08 per image." },
            "with_references": {
              "request": { "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-2/max/edit" },
              "pricing": { "amount": "cost", "per_image": 0.08, "note": "RunComfy's price: $0.08 per image." }
            }
          },
          {
            "id": "flex",
            "label": "Flex",
            "description": "Black Forest Labs FLUX.2 [flex]: adjustable steps and guidance, strong on text and exact colors. Add up to 10 images to edit or combine them.",
            "fields": [
              "image_size", "image_size_auto", "guidance_scale_flex", "num_inference_steps",
              "enable_prompt_expansion_flex", "seed"
            ],
            "request": {
              "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-2/flex/text-to-image",
              "body": {
                "prompt": "{{prompt}}",
                "image_size": "{{fields.image_size}}",
                "guidance_scale": "{{fields.guidance_scale_flex}}",
                "num_inference_steps": "{{fields.num_inference_steps}}",
                "enable_prompt_expansion": "{{fields.enable_prompt_expansion_flex}}",
                "output_format": "png",
                "seed": "{{fields.seed}}"
              }
            },
            "pricing": { "amount": "cost", "per_image": 0.066, "note": "RunComfy's price: $0.066 per image." },
            "with_references": {
              "request": {
                "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-2/flex/edit",
                "body": {
                  "prompt": "{{prompt}}",
                  "image_urls": "{{images}}",
                  "image_size": "{{fields.image_size_auto}}",
                  "guidance_scale": "{{fields.guidance_scale_flex}}",
                  "num_inference_steps": "{{fields.num_inference_steps}}",
                  "enable_prompt_expansion": "{{fields.enable_prompt_expansion_flex}}",
                  "output_format": "png",
                  "seed": "{{fields.seed}}"
                }
              },
              "pricing": { "amount": "cost", "per_image": 0.12, "note": "RunComfy's price: $0.12 per image." }
            }
          },
          {
            "id": "dev",
            "label": "Dev",
            "description": "Black Forest Labs FLUX.2 [dev], the open-weight model. Add up to 3 images to edit them, with steps, guidance and up to 4 results.",
            "references": { "max": 3 },
            "fields": [
              "image_size", "guidance_scale", "num_inference_steps", "enable_prompt_expansion", "num_images", "seed"
            ],
            "request": {
              "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-2/dev/text-to-image",
              "body": { "prompt": "{{prompt}}", "image_size": "{{fields.image_size}}", "seed": "{{fields.seed}}" }
            },
            "pricing": { "amount": "cost", "per_image": 0.013, "note": "RunComfy's price: $0.013 per image." },
            "without_references": { "fields": ["image_size", "seed"] },
            "with_references": {
              "fields": [
                "image_size", "guidance_scale", "num_inference_steps", "enable_prompt_expansion", "num_images", "seed"
              ],
              "request": {
                "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-2/dev/edit",
                "body": {
                  "prompt": "{{prompt}}",
                  "image_urls": "{{images}}",
                  "image_size": "{{fields.image_size}}",
                  "guidance_scale": "{{fields.guidance_scale}}",
                  "num_inference_steps": "{{fields.num_inference_steps}}",
                  "enable_prompt_expansion": "{{fields.enable_prompt_expansion}}",
                  "num_images": "{{fields.num_images}}",
                  "output_format": "png",
                  "seed": "{{fields.seed}}"
                }
              },
              "pricing": {
                "amount": "cost",
                "per_image": 0.026,
                "count_field": "num_images",
                "note": "RunComfy's price: $0.026 per image."
              }
            }
          },
          {
            "id": "flash",
            "label": "Flash",
            "description": "Black Forest Labs FLUX.2 Flash: fast, and the lowest price of these FLUX.2 versions. Add up to 4 images to edit them.",
            "references": { "max": 4 },
            "fields": ["image_size", "guidance_scale", "seed"],
            "request": {
              "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-2/flash/text-to-image",
              "body": {
                "prompt": "{{prompt}}",
                "image_size": "{{fields.image_size}}",
                "guidance_scale": "{{fields.guidance_scale}}",
                "output_format": "png",
                "seed": "{{fields.seed}}"
              }
            },
            "pricing": { "amount": "cost", "per_image": 0.005, "note": "RunComfy's price: $0.005 per image." },
            "with_references": {
              "fields": ["image_size", "guidance_scale", "seed"],
              "request": {
                "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-2/flash/edit",
                "body": {
                  "prompt": "{{prompt}}",
                  "image_urls": "{{images}}",
                  "image_size": "{{fields.image_size}}",
                  "guidance_scale": "{{fields.guidance_scale}}",
                  "output_format": "png",
                  "seed": "{{fields.seed}}"
                }
              },
              "pricing": { "amount": "cost", "per_image": 0.02, "note": "RunComfy's price: $0.02 per image." }
            }
          },
          {
            "id": "turbo",
            "label": "Turbo",
            "description": "Black Forest Labs FLUX.2 Turbo: fast and low cost. Add up to 4 images to edit them.",
            "references": { "max": 4 },
            "fields": ["image_size", "guidance_scale", "seed"],
            "request": {
              "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-2/turbo/text-to-image",
              "body": {
                "prompt": "{{prompt}}",
                "image_size": "{{fields.image_size}}",
                "guidance_scale": "{{fields.guidance_scale}}",
                "output_format": "png",
                "seed": "{{fields.seed}}"
              }
            },
            "pricing": { "amount": "cost", "per_image": 0.009, "note": "RunComfy's price: $0.009 per image." },
            "with_references": {
              "fields": ["image_size", "guidance_scale", "seed"],
              "request": {
                "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-2/turbo/edit",
                "body": {
                  "prompt": "{{prompt}}",
                  "image_urls": "{{images}}",
                  "image_size": "{{fields.image_size}}",
                  "guidance_scale": "{{fields.guidance_scale}}",
                  "output_format": "png",
                  "seed": "{{fields.seed}}"
                }
              },
              "pricing": { "amount": "cost", "per_image": 0.03, "note": "RunComfy's price: $0.03 per image." }
            }
          }
        ]
      }
    },
    {
      "id": "flux-3",
      "label": "FLUX 3",
      "group": "FLUX",
      "description": "Black Forest Labs FLUX 3, up to 4K. Add up to 10 images to edit or combine them.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, or add images and describe the change..." },
      "references": { "mode": "optional", "max": 10, "send_as": "data_url", "max_megapixels": 4, "min_side": 256 },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["21:9", "2:1", "16:9", "3:2", "7:5", "4:3", "5:4", "1:1", "4:5", "3:4", "5:7", "2:3", "9:16", "1:2"]
        },
        {
          "key": "aspect_ratio_edit",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            { "label": "Auto", "value": "auto" },
            "21:9", "2:1", "16:9", "3:2", "7:5", "4:3", "5:4", "1:1", "4:5", "3:4", "5:7", "2:3", "9:16", "1:2"
          ]
        },
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "default": "1k",
          "options": [
            { "label": "1K", "value": "1k" },
            { "label": "2K", "value": "2k" },
            { "label": "4K", "value": "4k" }
          ]
        },
        {
          "key": "enable_prompt_expansion",
          "label": "Expand prompt",
          "type": "bool",
          "default": false,
          "help": "The model adds detail to your prompt first. Results can drift from what you wrote."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-3/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "resolution": "{{fields.resolution}}",
          "enable_prompt_expansion": "{{fields.enable_prompt_expansion}}",
          "output_format": "png"
        }
      },
      "without_references": { "fields": ["aspect_ratio", "resolution", "enable_prompt_expansion"] },
      "with_references": {
        "fields": ["aspect_ratio_edit", "resolution", "enable_prompt_expansion"],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-3/image-edit",
          "body": {
            "prompt": "{{prompt}}",
            "images": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio_edit}}",
            "resolution": "{{fields.resolution}}",
            "enable_prompt_expansion": "{{fields.enable_prompt_expansion}}",
            "output_format": "png"
          }
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.715,
        "by_field": { "resolution": { "1k": 0.055, "2k": 0.132, "4k": 0.715 } },
        "note": "RunComfy's price: $0.055 per image at 1K, $0.132 at 2K and $0.715 at 4K."
      }
    },
    {
      "id": "flux-1-kontext",
      "label": "FLUX.1 Kontext",
      "group": "FLUX",
      "description": "Black Forest Labs FLUX.1 Kontext [pro]. Add one image to edit it; editing needs Cloudflare R2 in Wando Settings.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, or the change to your image..." },
      "references": { "mode": "optional", "max": 1, "send_as": "hosted_url" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "16:9",
          "options": ["21:9", "16:9", "4:3", "3:2", "1:1", "2:3", "3:4", "9:16", "9:21"]
        },
        {
          "key": "aspect_ratio_text",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "16:9",
          "options": ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16"]
        },
        { "type": "seed" }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-1-kontext/pro/text-to-image",
        "body": { "prompt": "{{prompt}}", "aspect_ratio": "{{fields.aspect_ratio_text}}" }
      },
      "without_references": {
        "fields": ["aspect_ratio_text"],
        "sizes": [
          { "aspect": "21:9", "width": 1568, "height": 672, "values": { "aspect_ratio_text": "21:9" } },
          { "aspect": "13:7", "width": 1392, "height": 752, "values": { "aspect_ratio_text": "16:9" } },
          { "aspect": "4:3", "width": 1184, "height": 880, "values": { "aspect_ratio_text": "4:3" } },
          { "aspect": "1:1", "width": 1024, "height": 1024, "values": { "aspect_ratio_text": "1:1" } },
          { "aspect": "3:4", "width": 880, "height": 1184, "values": { "aspect_ratio_text": "3:4" } },
          { "aspect": "7:13", "width": 752, "height": 1392, "values": { "aspect_ratio_text": "9:16" } }
        ]
      },
      "with_references": {
        "fields": ["aspect_ratio", "seed"],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-1-kontext/pro/edit",
          "body": {
            "prompt": "{{prompt}}",
            "image_url": "{{image}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "seed": "{{fields.seed}}"
          }
        },
        "pricing": { "amount": "cost", "per_image": 0.044, "note": "RunComfy's price: $0.044 per image." }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.039, "note": "RunComfy's price: $0.039 per image." },
      "sizes": [
        { "aspect": "21:9", "width": 1568, "height": 672, "values": { "aspect_ratio": "21:9" } },
        { "aspect": "13:7", "width": 1392, "height": 752, "values": { "aspect_ratio": "16:9" } },
        { "aspect": "4:3", "width": 1184, "height": 880, "values": { "aspect_ratio": "4:3" } },
        { "aspect": "3:2", "width": 1248, "height": 832, "values": { "aspect_ratio": "3:2" } },
        { "aspect": "1:1", "width": 1024, "height": 1024, "values": { "aspect_ratio": "1:1" } },
        { "aspect": "2:3", "width": 832, "height": 1248, "values": { "aspect_ratio": "2:3" } },
        { "aspect": "3:4", "width": 880, "height": 1184, "values": { "aspect_ratio": "3:4" } },
        { "aspect": "7:13", "width": 752, "height": 1392, "values": { "aspect_ratio": "9:16" } },
        { "aspect": "9:21", "width": 672, "height": 1568, "values": { "aspect_ratio": "9:21" } }
      ],
      "variants": {
        "label": "Version",
        "default": "pro",
        "options": [
          {
            "id": "pro",
            "label": "Pro",
            "description": "Black Forest Labs FLUX.1 Kontext [pro]. Add one image to edit it; editing needs Cloudflare R2 in Wando Settings."
          },
          {
            "id": "max",
            "label": "Max",
            "description": "Black Forest Labs FLUX.1 Kontext [max], stronger on prompts and typography. Add one image to edit it; editing needs Cloudflare R2 in Wando Settings.",
            "request": {
              "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-1-kontext/max/text-to-image",
              "body": { "prompt": "{{prompt}}", "aspect_ratio": "{{fields.aspect_ratio}}", "seed": "{{fields.seed}}" }
            },
            "pricing": { "amount": "cost", "per_image": 0.08, "note": "RunComfy's price: $0.08 per image." },
            "without_references": {
              "fields": ["aspect_ratio", "seed"],
              "sizes": [
                { "aspect": "21:9", "width": 1568, "height": 672, "values": { "aspect_ratio": "21:9" } },
                { "aspect": "13:7", "width": 1392, "height": 752, "values": { "aspect_ratio": "16:9" } },
                { "aspect": "4:3", "width": 1184, "height": 880, "values": { "aspect_ratio": "4:3" } },
                { "aspect": "3:2", "width": 1248, "height": 832, "values": { "aspect_ratio": "3:2" } },
                { "aspect": "1:1", "width": 1024, "height": 1024, "values": { "aspect_ratio": "1:1" } },
                { "aspect": "2:3", "width": 832, "height": 1248, "values": { "aspect_ratio": "2:3" } },
                { "aspect": "3:4", "width": 880, "height": 1184, "values": { "aspect_ratio": "3:4" } },
                { "aspect": "7:13", "width": 752, "height": 1392, "values": { "aspect_ratio": "9:16" } },
                { "aspect": "9:21", "width": 672, "height": 1568, "values": { "aspect_ratio": "9:21" } }
              ]
            },
            "with_references": {
              "request": { "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-1-kontext/max/edit" },
              "pricing": { "amount": "cost", "per_image": 0.088, "note": "RunComfy's price: $0.088 per image." }
            }
          }
        ]
      }
    },
    {
      "id": "flux-2-klein",
      "label": "FLUX.2 Klein",
      "group": "FLUX",
      "description": "Black Forest Labs FLUX.2 [klein] 9B: fast, low cost text to image with sharp text rendering.",
      "prompt": { "mode": "required", "placeholder": "Describe the image..." },
      "fields": [
        {
          "key": "size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "1:1 (1024 x 1024)",
          "options": [
            { "label": "1:1 (1024 x 1024)", "value": { "width": 1024, "height": 1024 } },
            { "label": "4:3 (1152 x 864)", "value": { "width": 1152, "height": 864 } },
            { "label": "3:4 (864 x 1152)", "value": { "width": 864, "height": 1152 } },
            { "label": "3:2 (1248 x 832)", "value": { "width": 1248, "height": 832 } },
            { "label": "2:3 (832 x 1248)", "value": { "width": 832, "height": 1248 } },
            { "label": "16:9 (1360 x 768)", "value": { "width": 1360, "height": 768 } },
            { "label": "9:16 (768 x 1360)", "value": { "width": 768, "height": 1360 } }
          ]
        },
        {
          "key": "steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 1,
          "max": 100,
          "default": 25,
          "help": "How many passes refine the image. More is slower and can add detail."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-2-klein/9b/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "width": "{{fields.size.width}}",
          "height": "{{fields.size.height}}",
          "steps": "{{fields.steps}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.003,
        "note": "RunComfy's price: $0.003 per image (a limited-time offer)."
      },
      "variants": {
        "label": "Version",
        "default": "9b",
        "options": [
          {
            "id": "9b",
            "label": "9B",
            "description": "Black Forest Labs FLUX.2 [klein] 9B: fast, low cost text to image with sharp text rendering."
          },
          {
            "id": "4b",
            "label": "4B",
            "description": "Black Forest Labs FLUX.2 [klein] 4B: sub-second, low cost text to image.",
            "fields": ["size"],
            "request": {
              "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-2-klein/4b/text-to-image",
              "body": { "prompt": "{{prompt}}", "width": "{{fields.size.width}}", "height": "{{fields.size.height}}" }
            }
          }
        ]
      }
    },
    {
      "id": "flux-1-1-pro",
      "label": "FLUX1.1 Pro",
      "group": "FLUX",
      "description": "Black Forest Labs FLUX1.1 [pro], text to image.",
      "prompt": { "mode": "required", "placeholder": "Describe the image..." },
      "fields": [
        {
          "key": "image_size",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "16:9",
          "options": ["16:9", "4:3", "1:1", { "label": "1:1 HD", "value": "1:1 (hd)" }, "3:4", "9:16"]
        },
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "16:9",
          "options": ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16", "9:21"]
        },
        {
          "key": "raw",
          "label": "Raw mode",
          "type": "bool",
          "default": false,
          "help": "Less processed, more natural-looking images, closer to a candid photo."
        },
        { "type": "seed" }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-1-1-pro/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "image_size": "{{fields.image_size}}",
          "raw": "{{fields.raw}}",
          "seed": "{{fields.seed}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.04, "note": "RunComfy's price: $0.04 per image." },
      "variants": {
        "label": "Version",
        "default": "pro",
        "options": [
          {
            "id": "pro",
            "label": "Pro",
            "fields": ["image_size", "raw", "seed"],
            "description": "Black Forest Labs FLUX1.1 [pro], text to image."
          },
          {
            "id": "ultra",
            "label": "Ultra",
            "description": "Black Forest Labs FLUX1.1 [pro] Ultra: larger, up to 4 megapixel photorealistic images.",
            "fields": ["aspect_ratio", "raw", "seed"],
            "request": {
              "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-1-1-pro/ultra/text-to-image",
              "body": {
                "prompt": "{{prompt}}",
                "aspect_ratio": "{{fields.aspect_ratio}}",
                "raw": "{{fields.raw}}",
                "seed": "{{fields.seed}}"
              }
            },
            "pricing": { "amount": "cost", "per_image": 0.06, "note": "RunComfy's price: $0.06 per image." }
          }
        ]
      }
    },
    {
      "id": "flux-1-kontext-dev",
      "label": "FLUX.1 Kontext Dev",
      "group": "FLUX",
      "description": "Edits one image with Black Forest Labs FLUX.1 Kontext [dev]. Needs Cloudflare R2 in Wando Settings.",
      "prompt": { "mode": "required", "placeholder": "Describe the change..." },
      "references": { "mode": "required", "max": 1, "send_as": "hosted_url" },
      "fields": [
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 10,
          "max": 50,
          "default": 28,
          "help": "How many passes refine the image. More is slower and can add detail."
        },
        { "type": "seed" }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-1-kontext/dev/image-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "image_url": "{{image}}",
          "num_inference_steps": "{{fields.num_inference_steps}}",
          "seed": "{{fields.seed}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.06, "note": "RunComfy's price: $0.06 per image." }
    },
    {
      "id": "flux-1-schnell",
      "label": "FLUX.1 Schnell",
      "group": "FLUX",
      "description": "Black Forest Labs FLUX.1 [schnell]: quick drafts in a few steps, at the lowest price.",
      "prompt": { "mode": "required", "placeholder": "Describe the image..." },
      "fields": [
        {
          "key": "image_size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "square_hd",
          "options": [
            { "label": "1:1 HD", "value": "square_hd" },
            { "label": "1:1", "value": "square" },
            { "label": "3:4", "value": "portrait_4_3" },
            { "label": "9:16", "value": "portrait_16_9" },
            { "label": "4:3", "value": "landscape_4_3" },
            { "label": "16:9", "value": "landscape_16_9" }
          ]
        },
        { "type": "seed" }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/blackforestlabs/flux-1-schnell/text-to-image",
        "body": { "prompt": "{{prompt}}", "image_size": "{{fields.image_size}}", "seed": "{{fields.seed}}" }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.003, "note": "RunComfy's price: $0.003 per image." }
    },
    {
      "id": "nano-banana-pro",
      "label": "Nano Banana Pro",
      "group": "Google",
      "description": "Google's Nano Banana Pro, up to 4K. Add up to 14 images to edit or combine them.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, or add images and describe the change..." },
      "references": { "mode": "optional", "max": 14, "send_as": "data_url" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16"]
        },
        {
          "key": "aspect_ratio_edit",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            { "label": "Auto", "value": "auto" },
            "21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16"
          ]
        },
        { "key": "resolution", "label": "Resolution", "type": "combo", "default": "1K", "options": ["1K", "2K", "4K"] }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/google/nano-banana/pro/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "resolution": "{{fields.resolution}}"
        }
      },
      "without_references": { "fields": ["aspect_ratio", "resolution"] },
      "with_references": {
        "fields": ["aspect_ratio_edit", "resolution"],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/google/nano-banana/pro/edit",
          "body": {
            "prompt": "{{prompt}}",
            "image_urls": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio_edit}}",
            "resolution": "{{fields.resolution}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.13,
        "by_field": { "resolution": { "1K": 0.13, "2K": 0.13, "4K": 0.22 } },
        "note": "RunComfy's price: $0.13 per image, $0.22 at 4K."
      },
      "size_table": "nano-banana-pro"
    },
    {
      "id": "nano-banana-2",
      "label": "Nano Banana 2",
      "group": "Google",
      "description": "Google's Nano Banana 2, fast, from 0.5K to 4K. Add up to 14 images to edit or combine them.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, or add images and describe the change..." },
      "references": { "mode": "optional", "max": 14, "send_as": "data_url" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            { "label": "Auto", "value": "auto" },
            "21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16"
          ]
        },
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "default": "1K",
          "options": ["0.5K", "1K", "2K", "4K"]
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/google/nano-banana-2/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "image_urls": "{{images}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "resolution": "{{fields.resolution}}"
        }
      },
      "with_references": { "request": { "url": "https://model-api.runcomfy.net/v1/models/google/nano-banana-2/edit" } },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.063,
        "by_field": { "resolution": { "0.5K": 0.041, "1K": 0.063, "2K": 0.1, "4K": 0.13 } },
        "note": "RunComfy's price: $0.063 per image at 1K, $0.041 at 0.5K, $0.10 at 2K and $0.13 at 4K."
      },
      "size_table": "nano-banana-v2"
    },
    {
      "id": "nano-banana-2-1",
      "label": "Nano Banana 2.1",
      "group": "Google",
      "description": "Google's Nano Banana 2.1, an update to Nano Banana 2 with sharper text and steadier characters, up to 4K. Add up to 10 images to edit or combine them.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, or add images and describe the change..." },
      "references": { "mode": "optional", "max": 10, "send_as": "data_url" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            { "label": "Auto", "value": "auto" },
            "21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16", "1:4", "4:1", "1:8", "8:1"
          ]
        },
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "default": "1K",
          "options": ["1K", "2K", "4K"]
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/google/nano-banana-2.1/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "image_urls": "{{images}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "resolution": "{{fields.resolution}}"
        }
      },
      "with_references": { "request": { "url": "https://model-api.runcomfy.net/v1/models/google/nano-banana-2.1/edit" } },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.035,
        "by_field": { "resolution": { "1K": 0.035, "2K": 0.053, "4K": 0.121 } },
        "per_input_image": 0.0008,
        "note": "RunComfy's price: $0.035 per image at 1K, $0.053 at 2K and $0.121 at 4K. Each reference adds $0.0008."
      },
      "size_table": "nano-banana-v2-1"
    },
    {
      "id": "nano-banana",
      "label": "Nano Banana",
      "group": "Google",
      "description": "Google's first Nano Banana (Gemini 2.5 Flash Image). Add up to 10 images to edit or combine them.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, or add images and describe the change..." },
      "references": { "mode": "optional", "max": 10, "send_as": "data_url" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16"]
        },
        {
          "key": "aspect_ratio_edit",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            { "label": "Auto", "value": "auto" },
            "21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16"
          ]
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/google/nano-banana/text-to-image",
        "body": { "prompt": "{{prompt}}", "aspect_ratio": "{{fields.aspect_ratio}}" }
      },
      "without_references": {
        "fields": ["aspect_ratio"],
        "sizes": [
          { "aspect": "1:1", "width": 1024, "height": 1024, "values": { "aspect_ratio": "1:1" } },
          { "aspect": "2:3", "width": 832, "height": 1248, "values": { "aspect_ratio": "2:3" } },
          { "aspect": "3:2", "width": 1248, "height": 832, "values": { "aspect_ratio": "3:2" } },
          { "aspect": "3:4", "width": 864, "height": 1184, "values": { "aspect_ratio": "3:4" } },
          { "aspect": "4:3", "width": 1184, "height": 864, "values": { "aspect_ratio": "4:3" } },
          { "aspect": "4:5", "width": 896, "height": 1152, "values": { "aspect_ratio": "4:5" } },
          { "aspect": "5:4", "width": 1152, "height": 896, "values": { "aspect_ratio": "5:4" } },
          { "aspect": "9:16", "width": 768, "height": 1344, "values": { "aspect_ratio": "9:16" } },
          { "aspect": "16:9", "width": 1344, "height": 768, "values": { "aspect_ratio": "16:9" } },
          { "aspect": "21:9", "width": 1536, "height": 672, "values": { "aspect_ratio": "21:9" } }
        ]
      },
      "with_references": {
        "fields": ["aspect_ratio_edit"],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/google/nano-banana/edit",
          "body": { "prompt": "{{prompt}}", "image_urls": "{{images}}", "aspect_ratio": "{{fields.aspect_ratio_edit}}" }
        },
        "pricing": {
          "amount": "cost",
          "per_image": 0.034,
          "note": "RunComfy's price: $0.034 per edited image, $0.05 per new image."
        },
        "sizes": [
          { "aspect": "1:1", "width": 1024, "height": 1024, "values": { "aspect_ratio_edit": "1:1" } },
          { "aspect": "2:3", "width": 832, "height": 1248, "values": { "aspect_ratio_edit": "2:3" } },
          { "aspect": "3:2", "width": 1248, "height": 832, "values": { "aspect_ratio_edit": "3:2" } },
          { "aspect": "3:4", "width": 864, "height": 1184, "values": { "aspect_ratio_edit": "3:4" } },
          { "aspect": "4:3", "width": 1184, "height": 864, "values": { "aspect_ratio_edit": "4:3" } },
          { "aspect": "4:5", "width": 896, "height": 1152, "values": { "aspect_ratio_edit": "4:5" } },
          { "aspect": "5:4", "width": 1152, "height": 896, "values": { "aspect_ratio_edit": "5:4" } },
          { "aspect": "9:16", "width": 768, "height": 1344, "values": { "aspect_ratio_edit": "9:16" } },
          { "aspect": "16:9", "width": 1344, "height": 768, "values": { "aspect_ratio_edit": "16:9" } },
          { "aspect": "21:9", "width": 1536, "height": 672, "values": { "aspect_ratio_edit": "21:9" } }
        ]
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.05,
        "note": "RunComfy's price: $0.05 per new image, $0.034 per edited image."
      }
    },
    {
      "id": "nano-banana-2-lite",
      "label": "Nano Banana 2 Lite",
      "group": "Google",
      "description": "Google's quickest, cheapest Nano Banana, at 1K. Add up to 10 images to edit or combine them.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, or add images and describe the change..." },
      "references": { "mode": "optional", "max": 10, "send_as": "data_url" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            { "label": "Auto", "value": "auto" },
            "21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16", "4:1", "1:4", "8:1", "1:8"
          ]
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/google/nano-banana-2-lite/text-to-image",
        "body": { "prompt": "{{prompt}}", "image_urls": "{{images}}", "aspect_ratio": "{{fields.aspect_ratio}}" }
      },
      "with_references": {
        "request": { "url": "https://model-api.runcomfy.net/v1/models/google/nano-banana-2-lite/edit" }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.036, "note": "RunComfy's price: $0.036 per image." },
      "size_table": "nano-banana-v2-lite"
    },
    {
      "id": "gemini-3-pro",
      "label": "Gemini 3 Pro",
      "group": "Google",
      "description": "Google's Gemini 3 Pro Image Preview, the model behind Nano Banana Pro, under its own RunComfy listing and price. Add up to 14 images to edit or combine them.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, or add images and describe the change..." },
      "references": { "mode": "optional", "max": 14, "send_as": "data_url" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16"]
        },
        {
          "key": "aspect_ratio_edit",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            { "label": "Auto", "value": "auto" },
            "21:9", "16:9", "3:2", "4:3", "5:4", "1:1", "4:5", "3:4", "2:3", "9:16"
          ]
        },
        { "key": "resolution", "label": "Resolution", "type": "combo", "default": "1K", "options": ["1K", "2K", "4K"] }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/google/gemini-3-pro-image-preview/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "resolution": "{{fields.resolution}}"
        }
      },
      "without_references": { "fields": ["aspect_ratio", "resolution"] },
      "with_references": {
        "fields": ["aspect_ratio_edit", "resolution"],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/google/gemini-3-pro-image-preview/edit",
          "body": {
            "prompt": "{{prompt}}",
            "image_urls": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio_edit}}",
            "resolution": "{{fields.resolution}}"
          }
        },
        "pricing": {
          "amount": "cost",
          "per_image": 0.17,
          "by_field": { "resolution": { "1K": 0.17, "2K": 0.17, "4K": 0.22 } },
          "note": "RunComfy's price: $0.17 per edited image, $0.22 at 4K. New images cost $0.13."
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.13,
        "by_field": { "resolution": { "1K": 0.13, "2K": 0.13, "4K": 0.22 } },
        "note": "RunComfy's price: $0.13 per new image, $0.22 at 4K. Edits cost $0.17."
      },
      "size_table": "nano-banana-pro"
    },
    {
      "id": "imagen-4",
      "label": "Imagen 4",
      "group": "Google",
      "description": "Google Imagen 4, text to image.",
      "prompt": { "mode": "required", "placeholder": "Describe the image..." },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "4:3", "3:4", "16:9", "9:16"]
        },
        {
          "key": "negative_prompt",
          "label": "Negative prompt",
          "type": "textarea",
          "placeholder": "What to leave out of the image"
        },
        { "type": "seed" }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/google-deepmind/imagen-4/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "negative_prompt": "{{fields.negative_prompt}}",
          "seed": "{{fields.seed}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.044, "note": "RunComfy's price: $0.044 per image." }
    },
    {
      "id": "gpt-image-2-5",
      "label": "GPT Image 2.5",
      "group": "OpenAI",
      "description": "OpenAI GPT Image 2.5, up to 4K. Add up to 16 images to edit or combine them. Flare is the faster version, Sunburst the more precise one.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, or add images and describe the change..." },
      "references": { "mode": "optional", "max": 16, "send_as": "data_url" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            "1:1", "3:2", "2:3", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9", "2:1", "1:2", "3:1", "1:3", "9:21"
          ]
        },
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "default": "1k",
          "options": [
            { "label": "1K", "value": "1k" },
            { "label": "2K", "value": "2k" },
            { "label": "4K", "value": "4k" }
          ]
        },
        {
          "key": "quality",
          "label": "Quality",
          "type": "combo",
          "default": "medium",
          "options": [
            { "label": "Low", "value": "low" },
            { "label": "Medium", "value": "medium" },
            { "label": "High", "value": "high" },
            { "label": "Extra High", "value": "xhigh" },
            { "label": "Max", "value": "max" }
          ]
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/openai/gpt-image-2.5/flare/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "images": "{{images}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "resolution": "{{fields.resolution}}",
          "quality": "{{fields.quality}}",
          "output_format": "png"
        }
      },
      "with_references": {
        "request": { "url": "https://model-api.runcomfy.net/v1/models/openai/gpt-image-2.5/flare/edit" },
        "pricing": {
          "amount": "cost",
          "per_image": 1.009,
          "by_field": {
            "quality": {
              "low": { "resolution": { "1k": 0.019, "2k": 0.029, "4k": 0.039 } },
              "medium": { "resolution": { "1k": 0.033, "2k": 0.049, "4k": 0.079 } },
              "high": { "resolution": { "1k": 0.099, "2k": 0.159, "4k": 0.279 } },
              "xhigh": { "resolution": { "1k": 0.169, "2k": 0.279, "4k": 0.489 } },
              "max": { "resolution": { "1k": 0.369, "2k": 0.609, "4k": 1.009 } }
            }
          },
          "per_input_image": 0.012,
          "free_input_images": 1,
          "note": "RunComfy's price by quality and resolution: low $0.019 at 1K up to max $1.009 at 4K. Each image after the first adds $0.012."
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.999,
        "by_field": {
          "quality": {
            "low": { "resolution": { "1k": 0.009, "2k": 0.019, "4k": 0.029 } },
            "medium": { "resolution": { "1k": 0.023, "2k": 0.039, "4k": 0.069 } },
            "high": { "resolution": { "1k": 0.089, "2k": 0.149, "4k": 0.269 } },
            "xhigh": { "resolution": { "1k": 0.159, "2k": 0.269, "4k": 0.479 } },
            "max": { "resolution": { "1k": 0.359, "2k": 0.599, "4k": 0.999 } }
          }
        },
        "note": "RunComfy's price by quality and resolution: low $0.009 at 1K up to max $0.999 at 4K."
      },
      "variants": {
        "label": "Version",
        "default": "flare",
        "options": [
          {
            "id": "flare",
            "label": "Flare",
            "description": "GPT Image 2.5 Flare: the faster version, for quick iteration. Add up to 16 images to edit or combine them."
          },
          {
            "id": "sunburst",
            "label": "Sunburst",
            "description": "GPT Image 2.5 Sunburst: tuned for precise, polished results. Add up to 16 images to edit or combine them.",
            "request": { "url": "https://model-api.runcomfy.net/v1/models/openai/gpt-image-2.5/sunburst/text-to-image" },
            "with_references": {
              "request": { "url": "https://model-api.runcomfy.net/v1/models/openai/gpt-image-2.5/sunburst/edit" }
            }
          }
        ]
      }
    },
    {
      "id": "gpt-image-2",
      "label": "GPT Image 2",
      "group": "OpenAI",
      "description": "OpenAI GPT Image 2, strong at text in images, up to 4K. Add up to 10 images to edit them.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, or add images and describe the change..." },
      "references": { "mode": "optional", "max": 10, "send_as": "data_url" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "3:2", "2:3", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9"]
        },
        {
          "key": "aspect_ratio_edit",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "Auto",
          "options": [
            { "label": "Auto", "value": "" },
            "1:1", "3:2", "2:3", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9"
          ]
        },
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "default": "1k",
          "options": [
            { "label": "1K", "value": "1k" },
            { "label": "2K", "value": "2k" },
            { "label": "4K", "value": "4k" }
          ]
        },
        {
          "key": "quality",
          "label": "Quality",
          "type": "combo",
          "default": "medium",
          "options": [
            { "label": "Low", "value": "low" },
            { "label": "Medium", "value": "medium" },
            { "label": "High", "value": "high" }
          ]
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/openai/gpt-image-2/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "resolution": "{{fields.resolution}}",
          "quality": "{{fields.quality}}",
          "output_format": "png"
        }
      },
      "without_references": { "fields": ["aspect_ratio", "resolution", "quality"] },
      "with_references": {
        "fields": ["aspect_ratio_edit", "resolution", "quality"],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/openai/gpt-image-2/edit",
          "body": {
            "prompt": "{{prompt}}",
            "images": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio_edit}}",
            "resolution": "{{fields.resolution}}",
            "quality": "{{fields.quality}}",
            "output_format": "png"
          }
        },
        "pricing": {
          "amount": "cost",
          "per_image": 0.81,
          "by_field": {
            "quality": {
              "low": { "resolution": { "1k": 0.03, "2k": 0.06, "4k": 0.09 } },
              "medium": { "resolution": { "1k": 0.069, "2k": 0.138, "4k": 0.207 } },
              "high": { "resolution": { "1k": 0.27, "2k": 0.54, "4k": 0.81 } }
            }
          },
          "note": "RunComfy's price: low $0.03, medium $0.069, high $0.27 at 1K; 2K costs twice that, 4K three times."
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.81,
        "by_field": {
          "quality": {
            "low": { "resolution": { "1k": 0.02, "2k": 0.04, "4k": 0.06 } },
            "medium": { "resolution": { "1k": 0.059, "2k": 0.118, "4k": 0.177 } },
            "high": { "resolution": { "1k": 0.27, "2k": 0.54, "4k": 0.81 } }
          }
        },
        "note": "RunComfy's price: low $0.02, medium $0.059, high $0.27 at 1K; 2K costs twice that, 4K three times."
      }
    },
    {
      "id": "gpt-image-1-5",
      "label": "GPT Image 1.5",
      "group": "OpenAI",
      "description": "OpenAI GPT Image 1.5. Add up to 10 images to edit or combine them.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, or add images and describe the change..." },
      "references": { "mode": "optional", "max": 10, "send_as": "data_url" },
      "fields": [
        {
          "key": "image_size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "1024x1024",
          "options": [
            { "label": "1:1 (1024 x 1024)", "value": "1024x1024" },
            { "label": "3:2 (1536 x 1024)", "value": "1536x1024" },
            { "label": "2:3 (1024 x 1536)", "value": "1024x1536" }
          ]
        },
        {
          "key": "image_size_edit",
          "label": "Size",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            { "label": "Auto", "value": "auto" },
            { "label": "1:1 (1024 x 1024)", "value": "1024x1024" },
            { "label": "3:2 (1536 x 1024)", "value": "1536x1024" },
            { "label": "2:3 (1024 x 1536)", "value": "1024x1536" }
          ]
        },
        {
          "key": "quality",
          "label": "Quality",
          "type": "combo",
          "default": "high",
          "options": [
            { "label": "Low", "value": "low" },
            { "label": "Medium", "value": "medium" },
            { "label": "High", "value": "high" }
          ]
        },
        {
          "key": "background",
          "label": "Background",
          "type": "combo",
          "default": "auto",
          "options": [
            { "label": "Auto", "value": "auto" },
            { "label": "Transparent", "value": "transparent" },
            { "label": "Opaque", "value": "opaque" }
          ]
        },
        {
          "key": "input_fidelity",
          "label": "Input Fidelity",
          "type": "combo",
          "default": "high",
          "options": [{ "label": "Low", "value": "low" }, { "label": "High", "value": "high" }],
          "help": "High works harder to match the style and features of your images, faces especially."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/openai/gpt-image-1-5/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "image_size": "{{fields.image_size}}",
          "quality": "{{fields.quality}}",
          "background": "{{fields.background}}",
          "output_format": "png"
        }
      },
      "without_references": {
        "fields": ["image_size", "quality", "background"],
        "sizes": [
          { "aspect": "1:1", "width": 1024, "height": 1024, "values": { "image_size": "1024x1024" } },
          { "aspect": "3:2", "width": 1536, "height": 1024, "values": { "image_size": "1536x1024" } },
          { "aspect": "2:3", "width": 1024, "height": 1536, "values": { "image_size": "1024x1536" } }
        ]
      },
      "with_references": {
        "fields": ["image_size_edit", "quality", "background", "input_fidelity"],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/openai/gpt-image-1-5/image-to-image",
          "body": {
            "prompt": "{{prompt}}",
            "image_urls": "{{images}}",
            "image_size": "{{fields.image_size_edit}}",
            "quality": "{{fields.quality}}",
            "background": "{{fields.background}}",
            "input_fidelity": "{{fields.input_fidelity}}",
            "output_format": "png"
          }
        },
        "pricing": {
          "amount": "cost",
          "per_image": 0.02,
          "by_field": { "quality": { "low": 0.02, "medium": 0.06, "high": 0.27 } },
          "note": "RunComfy's price: $0.02 low, $0.06 medium, $0.27 high quality."
        },
        "sizes": [
          { "aspect": "1:1", "width": 1024, "height": 1024, "values": { "image_size_edit": "1024x1024" } },
          { "aspect": "3:2", "width": 1536, "height": 1024, "values": { "image_size_edit": "1536x1024" } },
          { "aspect": "2:3", "width": 1024, "height": 1536, "values": { "image_size_edit": "1024x1536" } }
        ]
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.02,
        "by_field": { "quality": { "low": 0.02, "medium": 0.06, "high": 0.22 } },
        "note": "RunComfy's price: $0.02 low, $0.06 medium, $0.22 high quality."
      }
    },
    {
      "id": "gpt-4o-image",
      "label": "GPT-4o Image",
      "group": "OpenAI",
      "description": "OpenAI's GPT-4o image generation. Add up to 5 images to edit them, and a mask to change only part of the first one. RunComfy doesn't document its mask, so Wando sends OpenAI's form: the area to change transparent, the rest opaque white. Not yet confirmed with a real masked run.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, or add images and describe the change..." },
      "references": { "mode": "optional", "max": 5, "send_as": "data_url" },
      "fields": [
        { "key": "size", "label": "Size", "type": "aspect_combo", "default": "1:1", "options": ["1:1", "3:2", "2:3"] },
        {
          "key": "background",
          "label": "Background",
          "type": "combo",
          "default": "opaque",
          "options": [{ "label": "Opaque", "value": "opaque" }, { "label": "Transparent", "value": "transparent" }]
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/openai/gpt-4o-image/text-to-image",
        "body": { "prompt": "{{prompt}}", "size": "{{fields.size}}", "background": "{{fields.background}}" }
      },
      "without_references": { "fields": ["size", "background"] },
      "with_references": {
        "fields": ["size"],
        "mask": { "mode": "optional", "paint": "transparent" },
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/openai/gpt-4o-image/edit",
          "body": { "prompt": "{{prompt}}", "image": "{{images}}", "mask": ["{{mask}}"], "size": "{{fields.size}}" }
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.11, "note": "RunComfy's price: $0.11 per image." },
      "size_table": "gpt4o-image"
    },
    {
      "id": "seedream-5-pro",
      "label": "Seedream 5.0 Pro",
      "group": "Seedream",
      "description": "ByteDance Seedream 5.0 Pro, strong on layout and text in images. Add up to 10 images to edit them.",
      "references": { "mode": "optional", "max": 10, "send_as": "data_url", "max_mb": 30 },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "4:3", "3:4", "16:9", "9:16", "2:3", "3:2", "21:9"]
        },
        {
          "key": "aspect_ratio_edit",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "auto",
          "options": [{ "label": "Auto", "value": "auto" }, "1:1", "4:3", "3:4", "16:9", "9:16", "2:3", "3:2", "21:9"]
        },
        { "key": "resolution", "label": "Resolution", "type": "combo", "default": "2K", "options": ["1K", "2K"] }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/bytedance/seedream-5.0-pro/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "resolution": "{{fields.resolution}}",
          "output_format": "png"
        }
      },
      "without_references": { "fields": ["aspect_ratio", "resolution"] },
      "with_references": {
        "fields": ["aspect_ratio_edit", "resolution"],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/bytedance/seedream-5.0-pro/image-to-image",
          "body": {
            "prompt": "{{prompt}}",
            "image": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio_edit}}",
            "resolution": "{{fields.resolution}}",
            "output_format": "png"
          }
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.1,
        "by_field": { "resolution": { "1K": 0.05, "2K": 0.1 } },
        "note": "RunComfy's list price: $0.05 per image at 1K, $0.10 at 2K. Its page may show a limited-time offer."
      }
    },
    {
      "id": "seedream-5-lite",
      "label": "Seedream 5.0 Lite",
      "group": "Seedream",
      "description": "ByteDance Seedream 5.0 Lite, with up to 14 images to edit. An Auto size takes the shape from your prompt.",
      "references": { "mode": "optional", "max": 14, "send_as": "data_url", "max_mb": 10 },
      "fields": [
        {
          "key": "resolution",
          "label": "Size",
          "type": "aspect_combo",
          "default": "2048x2048 (1:1)",
          "options": [
            { "label": "Auto 2K", "value": "2K" },
            { "label": "Auto 3K", "value": "3K" },
            { "label": "1:1 (2048 x 2048)", "value": "2048x2048 (1:1)" },
            { "label": "4:3 (2304 x 1728)", "value": "2304x1728 (4:3)" },
            { "label": "3:4 (1728 x 2304)", "value": "1728x2304 (3:4)" },
            { "label": "16:9 (2848 x 1600)", "value": "2848x1600 (16:9)" },
            { "label": "9:16 (1600 x 2848)", "value": "1600x2848 (9:16)" },
            { "label": "3:2 (2496 x 1664)", "value": "2496x1664 (3:2)" },
            { "label": "2:3 (1664 x 2496)", "value": "1664x2496 (2:3)" },
            { "label": "21:9 (3136 x 1344)", "value": "3136x1344 (21:9)" },
            { "label": "1:1 (3072 x 3072)", "value": "3072x3072 (1:1)" },
            { "label": "4:3 (3456 x 2592)", "value": "3456x2592 (4:3)" },
            { "label": "3:4 (2592 x 3456)", "value": "2592x3456 (3:4)" },
            { "label": "16:9 (4096 x 2304)", "value": "4096x2304 (16:9)" },
            { "label": "9:16 (2304 x 4096)", "value": "2304x4096 (9:16)" },
            { "label": "3:2 (3744 x 2496)", "value": "3744x2496 (3:2)" },
            { "label": "2:3 (2496 x 3744)", "value": "2496x3744 (2:3)" },
            { "label": "21:9 (4704 x 2016)", "value": "4704x2016 (21:9)" }
          ]
        },
        {
          "key": "sequential_image_generation",
          "label": "Series",
          "type": "combo",
          "default": "disabled",
          "options": [{ "label": "Off", "value": "disabled" }, { "label": "Auto", "value": "auto" }],
          "help": "Auto lets the model return a set of related images, up to Max Images."
        },
        {
          "key": "max_images",
          "label": "Max Images",
          "type": "int_slider",
          "min": 1,
          "max": 15,
          "default": 1,
          "help": "Used only when Series is Auto."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/bytedance/seedream-5/lite/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "image": "{{images}}",
          "resolution": "{{fields.resolution}}",
          "sequential_image_generation": "{{fields.sequential_image_generation}}",
          "max_images": "{{fields.max_images}}",
          "output_format": "png"
        }
      },
      "with_references": {
        "request": { "url": "https://model-api.runcomfy.net/v1/models/bytedance/seedream-5/lite/edit" }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.028,
        "count_field": "max_images",
        "note": "RunComfy's price: $0.028 per image. With Series on Auto, you pay for each image it returns."
      },
      "sizes": [
        { "aspect": "1:1", "tier": "2K", "width": 2048, "height": 2048, "values": { "resolution": "2048x2048 (1:1)" } },
        { "aspect": "4:3", "tier": "2K", "width": 2304, "height": 1728, "values": { "resolution": "2304x1728 (4:3)" } },
        { "aspect": "3:4", "tier": "2K", "width": 1728, "height": 2304, "values": { "resolution": "1728x2304 (3:4)" } },
        {
          "aspect": "16:9",
          "tier": "2K",
          "width": 2848,
          "height": 1600,
          "values": { "resolution": "2848x1600 (16:9)" }
        },
        {
          "aspect": "9:16",
          "tier": "2K",
          "width": 1600,
          "height": 2848,
          "values": { "resolution": "1600x2848 (9:16)" }
        },
        { "aspect": "3:2", "tier": "2K", "width": 2496, "height": 1664, "values": { "resolution": "2496x1664 (3:2)" } },
        { "aspect": "2:3", "tier": "2K", "width": 1664, "height": 2496, "values": { "resolution": "1664x2496 (2:3)" } },
        {
          "aspect": "21:9",
          "tier": "2K",
          "width": 3136,
          "height": 1344,
          "values": { "resolution": "3136x1344 (21:9)" }
        },
        { "aspect": "1:1", "tier": "3K", "width": 3072, "height": 3072, "values": { "resolution": "3072x3072 (1:1)" } },
        { "aspect": "4:3", "tier": "3K", "width": 3456, "height": 2592, "values": { "resolution": "3456x2592 (4:3)" } },
        { "aspect": "3:4", "tier": "3K", "width": 2592, "height": 3456, "values": { "resolution": "2592x3456 (3:4)" } },
        {
          "aspect": "16:9",
          "tier": "3K",
          "width": 4096,
          "height": 2304,
          "values": { "resolution": "4096x2304 (16:9)" }
        },
        {
          "aspect": "9:16",
          "tier": "3K",
          "width": 2304,
          "height": 4096,
          "values": { "resolution": "2304x4096 (9:16)" }
        },
        { "aspect": "3:2", "tier": "3K", "width": 3744, "height": 2496, "values": { "resolution": "3744x2496 (3:2)" } },
        { "aspect": "2:3", "tier": "3K", "width": 2496, "height": 3744, "values": { "resolution": "2496x3744 (2:3)" } },
        {
          "aspect": "21:9",
          "tier": "3K",
          "width": 4704,
          "height": 2016,
          "values": { "resolution": "4704x2016 (21:9)" }
        }
      ]
    },
    {
      "id": "seedream-4-5",
      "label": "Seedream 4.5",
      "group": "Seedream",
      "description": "ByteDance Seedream 4.5. Add up to 14 images to edit or combine them.",
      "references": { "mode": "optional", "max": 14, "send_as": "data_url", "max_mb": 10 },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3", "21:9"]
        },
        {
          "key": "aspect_ratio_edit",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "auto",
          "options": [{ "label": "Auto", "value": "auto" }, "1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3", "21:9"]
        },
        { "key": "resolution", "label": "Resolution", "type": "combo", "default": "2K", "options": ["2K", "4K"] }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/bytedance/seedream-4-5/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "resolution": "{{fields.resolution}}"
        }
      },
      "without_references": { "fields": ["aspect_ratio", "resolution"] },
      "with_references": {
        "fields": ["aspect_ratio_edit", "resolution"],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/bytedance/seedream-4-5/edit",
          "body": {
            "prompt": "{{prompt}}",
            "images": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio_edit}}",
            "resolution": "{{fields.resolution}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.032, "note": "RunComfy's price: $0.032 per image." }
    },
    {
      "id": "seedream-4-5-series",
      "label": "Seedream 4.5 Series",
      "group": "Seedream",
      "description": "Seedream 4.5 makes a set of up to 15 related images, with up to 14 images to edit. Say in the prompt how many you want (and the shape, for an Auto size) and set Images to match.",
      "prompt": {
        "mode": "required",
        "placeholder": "Say how many images you want, e.g. Generate 3 images of a lighthouse through the seasons"
      },
      "references": { "mode": "optional", "max": 14, "send_as": "data_url", "max_mb": 10, "max_side": 5999 },
      "fields": [
        {
          "key": "resolution",
          "label": "Size",
          "type": "aspect_combo",
          "default": "2048x2048 (1:1)",
          "options": [
            { "label": "Auto 2K", "value": "2K" },
            { "label": "Auto 4K", "value": "4K" },
            { "label": "1:1 (2048 x 2048)", "value": "2048x2048 (1:1)" },
            { "label": "4:3 (2304 x 1728)", "value": "2304x1728 (4:3)" },
            { "label": "3:4 (1728 x 2304)", "value": "1728x2304 (3:4)" },
            { "label": "16:9 (2560 x 1440)", "value": "2560x1440 (16:9)" },
            { "label": "9:16 (1440 x 2560)", "value": "1440x2560 (9:16)" },
            { "label": "3:2 (2496 x 1664)", "value": "2496x1664 (3:2)" },
            { "label": "2:3 (1664 x 2496)", "value": "1664x2496 (2:3)" },
            { "label": "21:9 (3024 x 1296)", "value": "3024x1296 (21:9)" },
            { "label": "1:1 (4096 x 4096)", "value": "4096x4096 (1:1)" }
          ]
        },
        {
          "key": "sequential_image_generation_options",
          "label": "Images",
          "type": "int_slider",
          "min": 1,
          "max": 15,
          "default": 3
        },
        { "type": "seed" }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/bytedance/seedream-4-5/sequential",
        "body": {
          "prompt": "{{prompt}}",
          "images": "{{images}}",
          "resolution": "{{fields.resolution}}",
          "sequential_image_generation_options": "{{fields.sequential_image_generation_options}}",
          "seed": "{{fields.seed}}"
        }
      },
      "with_references": {
        "request": { "url": "https://model-api.runcomfy.net/v1/models/bytedance/seedream-4-5/edit-sequential" }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.032,
        "count_field": "sequential_image_generation_options",
        "note": "RunComfy's price: $0.032 per image."
      },
      "sizes": [
        { "aspect": "1:1", "tier": "2K", "width": 2048, "height": 2048, "values": { "resolution": "2048x2048 (1:1)" } },
        { "aspect": "4:3", "tier": "2K", "width": 2304, "height": 1728, "values": { "resolution": "2304x1728 (4:3)" } },
        { "aspect": "3:4", "tier": "2K", "width": 1728, "height": 2304, "values": { "resolution": "1728x2304 (3:4)" } },
        {
          "aspect": "16:9",
          "tier": "2K",
          "width": 2560,
          "height": 1440,
          "values": { "resolution": "2560x1440 (16:9)" }
        },
        {
          "aspect": "9:16",
          "tier": "2K",
          "width": 1440,
          "height": 2560,
          "values": { "resolution": "1440x2560 (9:16)" }
        },
        { "aspect": "3:2", "tier": "2K", "width": 2496, "height": 1664, "values": { "resolution": "2496x1664 (3:2)" } },
        { "aspect": "2:3", "tier": "2K", "width": 1664, "height": 2496, "values": { "resolution": "1664x2496 (2:3)" } },
        {
          "aspect": "21:9",
          "tier": "2K",
          "width": 3024,
          "height": 1296,
          "values": { "resolution": "3024x1296 (21:9)" }
        },
        { "aspect": "1:1", "tier": "4K", "width": 4096, "height": 4096, "values": { "resolution": "4096x4096 (1:1)" } }
      ]
    },
    {
      "id": "seedream-4",
      "label": "Seedream 4.0",
      "group": "Seedream",
      "description": "ByteDance Seedream 4.0. Add up to 10 images to edit or combine them.",
      "references": { "mode": "optional", "max": 10, "send_as": "data_url", "max_mb": 10 },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "4:3", "3:4", "16:9", "9:16", "3:2", "2:3", "21:9"]
        },
        { "key": "resolution", "label": "Resolution", "type": "combo", "default": "2K", "options": ["1K", "2K", "4K"] }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/bytedance/seedream-4-0/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "images": "{{images}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "resolution": "{{fields.resolution}}"
        }
      },
      "with_references": {
        "request": { "url": "https://model-api.runcomfy.net/v1/models/bytedance/seedream-4-0/edit" }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.03, "note": "RunComfy's price: $0.03 per image." }
    },
    {
      "id": "seedream-4-series",
      "label": "Seedream 4.0 Series",
      "group": "Seedream",
      "description": "Seedream 4.0 makes a set of up to 15 related images, with up to 10 images to edit. Say in the prompt how many you want and set Images to match.",
      "prompt": {
        "mode": "required",
        "placeholder": "Say how many images you want, e.g. Generate 3 images of a lighthouse through the seasons"
      },
      "references": { "mode": "optional", "max": 10, "send_as": "data_url", "max_mb": 10, "max_side": 5999 },
      "fields": [
        {
          "key": "image_size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "2560:1440 (16:9)",
          "options": [
            { "label": "1:1 (2048 x 2048)", "value": "2048:2048 (1:1)" },
            { "label": "4:3 (2304 x 1728)", "value": "2304:1728 (4:3)" },
            { "label": "3:4 (1728 x 2304)", "value": "1728:2304 (3:4)" },
            { "label": "16:9 (2560 x 1440)", "value": "2560:1440 (16:9)" },
            { "label": "9:16 (1440 x 2560)", "value": "1440:2560 (9:16)" },
            { "label": "3:2 (2496 x 1664)", "value": "2496:1664 (3:2)" },
            { "label": "2:3 (1664 x 2496)", "value": "1664:2496 (2:3)" },
            { "label": "21:9 (3024 x 1296)", "value": "3024:1296 (21:9)" }
          ]
        },
        {
          "key": "sequential_image_generation_options",
          "label": "Images",
          "type": "int_slider",
          "min": 1,
          "max": 15,
          "default": 3
        },
        {
          "key": "optimize_prompt_options",
          "label": "Prompt Mode",
          "type": "combo",
          "default": "fast",
          "options": [{ "label": "Fast", "value": "fast" }, { "label": "Standard", "value": "standard" }],
          "help": "Standard gives better results but takes longer. Fast is quicker, with lower quality."
        },
        { "type": "seed" }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/bytedance/seedream-4-0/sequential",
        "body": {
          "text": "{{prompt}}",
          "images": "{{images}}",
          "image_size": "{{fields.image_size}}",
          "sequential_image_generation_options": "{{fields.sequential_image_generation_options}}",
          "optimize_prompt_options": "{{fields.optimize_prompt_options}}",
          "seed": "{{fields.seed}}"
        }
      },
      "with_references": {
        "request": { "url": "https://model-api.runcomfy.net/v1/models/bytedance/seedream-4-0/edit-sequential" }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.03,
        "count_field": "sequential_image_generation_options",
        "note": "RunComfy's price: $0.03 per image, billed for the Images setting even if fewer come back."
      },
      "sizes": [
        { "aspect": "1:1", "width": 2048, "height": 2048, "values": { "image_size": "2048:2048 (1:1)" } },
        { "aspect": "4:3", "width": 2304, "height": 1728, "values": { "image_size": "2304:1728 (4:3)" } },
        { "aspect": "3:4", "width": 1728, "height": 2304, "values": { "image_size": "1728:2304 (3:4)" } },
        { "aspect": "16:9", "width": 2560, "height": 1440, "values": { "image_size": "2560:1440 (16:9)" } },
        { "aspect": "9:16", "width": 1440, "height": 2560, "values": { "image_size": "1440:2560 (9:16)" } },
        { "aspect": "3:2", "width": 2496, "height": 1664, "values": { "image_size": "2496:1664 (3:2)" } },
        { "aspect": "2:3", "width": 1664, "height": 2496, "values": { "image_size": "1664:2496 (2:3)" } },
        { "aspect": "21:9", "width": 3024, "height": 1296, "values": { "image_size": "3024:1296 (21:9)" } }
      ]
    },
    {
      "id": "dreamina-4",
      "label": "Dreamina 4.0",
      "group": "Seedream",
      "description": "ByteDance Dreamina 4.0, built on Seedream 4.0, up to 4K. Add up to 10 images to edit or combine them.",
      "prompt": { "mode": "required", "placeholder": "Describe the image (under 800 characters)..." },
      "references": { "mode": "optional", "max": 10, "send_as": "data_url", "max_mb": 15, "max_side": 4096 },
      "fields": [
        {
          "key": "size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "2048x2048(1:1)",
          "options": [
            { "label": "1:1 (1024 x 1024)", "value": "1024x1024(1:1)" },
            { "label": "1:1 (2048 x 2048)", "value": "2048x2048(1:1)" },
            { "label": "4:3 (2304 x 1728)", "value": "2304x1728(4:3)" },
            { "label": "3:2 (2496 x 1664)", "value": "2496x1664(3:2)" },
            { "label": "16:9 (2560 x 1440)", "value": "2560x1440(16:9)" },
            { "label": "21:9 (3024 x 1296)", "value": "3024x1296(21:9)" },
            { "label": "1:1 (4096 x 4096)", "value": "4096x4096(1:1)" },
            { "label": "4:3 (4694 x 3520)", "value": "4694x3520(4:3)" },
            { "label": "3:2 (4992 x 3328)", "value": "4992x3328(3:2)" },
            { "label": "16:9 (5404 x 3040)", "value": "5404x3040(16:9)" },
            { "label": "21:9 (6198 x 2656)", "value": "6198x2656(21:9)" }
          ]
        },
        {
          "key": "prompt_scale",
          "label": "Prompt Strength",
          "type": "float_slider",
          "min": 0,
          "max": 1,
          "step": 0.05,
          "decimals": 2,
          "default": 0.5,
          "help": "Higher follows the prompt more closely, lower stays closer to your reference images."
        },
        {
          "key": "force_single",
          "label": "Single image",
          "type": "bool",
          "default": true,
          "help": "Off lets the model return several images when the prompt asks for a set. Each image is billed."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/bytedance/dreamina-4-0/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "image_urls": "{{images}}",
          "width×height": "{{fields.size}}",
          "scale": "{{fields.prompt_scale}}",
          "force_single": "{{fields.force_single}}"
        }
      },
      "without_references": { "fields": ["size", "force_single"] },
      "with_references": {
        "request": { "url": "https://model-api.runcomfy.net/v1/models/bytedance/dreamina-4-0/edit" }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.04, "note": "RunComfy's price: $0.04 per image." },
      "sizes": [
        { "aspect": "1:1", "tier": "1K", "width": 1024, "height": 1024, "values": { "size": "1024x1024(1:1)" } },
        { "aspect": "1:1", "tier": "2K", "width": 2048, "height": 2048, "values": { "size": "2048x2048(1:1)" } },
        { "aspect": "4:3", "tier": "2K", "width": 2304, "height": 1728, "values": { "size": "2304x1728(4:3)" } },
        { "aspect": "3:2", "tier": "2K", "width": 2496, "height": 1664, "values": { "size": "2496x1664(3:2)" } },
        { "aspect": "16:9", "tier": "2K", "width": 2560, "height": 1440, "values": { "size": "2560x1440(16:9)" } },
        { "aspect": "21:9", "tier": "2K", "width": 3024, "height": 1296, "values": { "size": "3024x1296(21:9)" } },
        { "aspect": "1:1", "tier": "4K", "width": 4096, "height": 4096, "values": { "size": "4096x4096(1:1)" } },
        { "aspect": "4:3", "tier": "4K", "width": 4694, "height": 3520, "values": { "size": "4694x3520(4:3)" } },
        { "aspect": "3:2", "tier": "4K", "width": 4992, "height": 3328, "values": { "size": "4992x3328(3:2)" } },
        { "aspect": "16:9", "tier": "4K", "width": 5404, "height": 3040, "values": { "size": "5404x3040(16:9)" } },
        { "aspect": "21:9", "tier": "4K", "width": 6198, "height": 2656, "values": { "size": "6198x2656(21:9)" } }
      ]
    },
    {
      "id": "qwen-image-3",
      "label": "Qwen Image 3.0",
      "group": "Qwen",
      "description": "Qwen Image 3.0, strong at text and layout. Add up to 3 images to edit them; the result takes the aspect ratio you pick. Pro is the more detailed version.",
      "prompt": { "mode": "required" },
      "references": { "mode": "optional", "max": 3, "send_as": "data_url" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "16:9", "9:16", "4:3", "3:4"]
        },
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "default": "2k",
          "options": [{ "label": "1K", "value": "1k" }, { "label": "2K", "value": "2k" }]
        },
        {
          "key": "enable_prompt_expansion",
          "label": "Expand prompt",
          "type": "bool",
          "default": true,
          "help": "The model adds detail to your prompt first. Results can drift from what you wrote."
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-image-3.0/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "image_urls": "{{images}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "resolution": "{{fields.resolution}}",
          "enable_prompt_expansion": "{{fields.enable_prompt_expansion}}",
          "seed": "{{fields.seed}}"
        }
      },
      "with_references": { "request": { "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-image-3.0/edit" } },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.028,
        "note": "RunComfy's price: $0.028 per image at 1K or 2K. Editing adds $0.0028 per input image.",
        "per_input_image": 0.0028
      },
      "size_table": "qwen-v3",
      "variants": {
        "label": "Version",
        "default": "standard",
        "options": [
          {
            "id": "standard",
            "label": "Standard",
            "description": "Qwen Image 3.0, strong at text and layout. Add up to 3 images to edit them; the result takes the aspect ratio you pick."
          },
          {
            "id": "pro",
            "label": "Pro",
            "description": "Qwen Image 3.0 Pro, for polished, detailed results. Add up to 3 images to edit them; the result takes the aspect ratio you pick.",
            "request": { "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-image-3.0/pro/text-to-image" },
            "with_references": {
              "request": { "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-image-3.0/pro/edit" }
            },
            "pricing": {
              "amount": "cost",
              "per_image": 0.038,
              "by_field": { "resolution": { "1k": 0.038, "2k": 0.072 } },
              "note": "RunComfy's price: $0.038 per image at 1K, $0.072 at 2K. Editing adds $0.0028 per input image.",
              "per_input_image": 0.0028
            }
          }
        ]
      }
    },
    {
      "id": "qwen-image-2-1",
      "label": "Qwen Image 2.1",
      "group": "Qwen",
      "description": "Qwen Image 2.1, which can make real transparent backgrounds. Add up to 10 images to edit them. To change only part of one image, use Qwen Image 2.1 Inpaint.",
      "prompt": { "mode": "required" },
      "references": { "mode": "optional", "max": 10, "send_as": "data_url", "max_mb": 28.5, "max_megapixels": 25 },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "4:3", "3:4", "3:2", "2:3", "16:9", "9:16", "21:9", "9:21"]
        },
        {
          "key": "aspect_ratio_edit",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            { "label": "Auto", "value": "auto" },
            "1:1", "4:3", "3:4", "3:2", "2:3", "16:9", "9:16", "21:9", "9:21"
          ]
        },
        { "key": "resolution", "label": "Resolution", "type": "combo", "default": "1K", "options": ["1K", "2K"] },
        {
          "key": "background",
          "label": "Background",
          "type": "combo",
          "default": "opaque",
          "options": [{ "label": "Opaque", "value": "opaque" }, { "label": "Transparent", "value": "transparent" }],
          "help": "Transparent gives the result a real alpha channel. Describe only the subject, or the model may fill the background back in."
        },
        {
          "key": "enhance_prompt",
          "label": "Expand prompt",
          "type": "bool",
          "default": true,
          "help": "The model adds detail to your prompt first. Results can drift from what you wrote."
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-image-2.1/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "background": "{{fields.background}}",
          "enhance_prompt": "{{fields.enhance_prompt}}",
          "output_format": "png",
          "resolution": "{{fields.resolution}}",
          "seed": "{{fields.seed}}"
        }
      },
      "without_references": { "fields": ["aspect_ratio", "resolution", "background", "enhance_prompt", "seed"] },
      "with_references": {
        "description": "Qwen Image 2.1 edits up to 10 images. To change only part of one image, use Qwen Image 2.1 Inpaint.",
        "fields": ["aspect_ratio_edit", "resolution", "background", "enhance_prompt", "seed"],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-image-2.1/edit",
          "body": {
            "prompt": "{{prompt}}",
            "image_urls": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio_edit}}",
            "background": "{{fields.background}}",
            "enhance_prompt": "{{fields.enhance_prompt}}",
            "output_format": "png",
            "resolution": "{{fields.resolution}}",
            "seed": "{{fields.seed}}"
          }
        },
        "pricing": {
          "amount": "cost",
          "per_image": 0.029,
          "by_field": { "resolution": { "1K": 0.029, "2K": 0.119 } },
          "note": "RunComfy's price: $0.029 per edited image at 1K, $0.119 at 2K."
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.02,
        "by_field": { "resolution": { "1K": 0.02, "2K": 0.079 } },
        "note": "RunComfy's price: $0.02 per image at 1K, $0.079 at 2K."
      }
    },
    {
      "id": "qwen-image-2-1-inpaint",
      "label": "Qwen Image 2.1 Inpaint",
      "group": "Qwen",
      "description": "Qwen Image 2.1 repaints only the area you mask, following your prompt. Add one image and paint over the part to change.",
      "prompt": { "mode": "required", "placeholder": "Describe what goes in the masked area..." },
      "references": { "mode": "required", "max": 1, "send_as": "data_url", "max_mb": 28.5, "max_megapixels": 25 },
      "mask": { "mode": "required", "paint": "white" },
      "fields": [
        { "key": "resolution", "label": "Resolution", "type": "combo", "default": "1K", "options": ["1K", "2K"] },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-image-2.1/edit",
        "body": {
          "prompt": "{{prompt}}",
          "image_urls": "{{images}}",
          "mask_url": "{{mask}}",
          "output_format": "png",
          "resolution": "{{fields.resolution}}",
          "seed": "{{fields.seed}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.029,
        "by_field": { "resolution": { "1K": 0.029, "2K": 0.119 } },
        "note": "RunComfy's price: $0.029 per edited image at 1K, $0.119 at 2K."
      }
    },
    {
      "id": "qwen-image-2512",
      "label": "Qwen Image 2512",
      "group": "Qwen",
      "description": "Qwen Image 2512, good at text and lifelike people. Add up to 10 images to edit them with Qwen Image Edit 2511.",
      "prompt": { "mode": "required" },
      "references": { "mode": "optional", "max": 10, "send_as": "data_url" },
      "fields": [
        {
          "key": "image_size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "landscape_4_3",
          "options": [
            { "label": "1:1 HD", "value": "square_hd" },
            { "label": "1:1", "value": "square" },
            { "label": "3:4", "value": "portrait_4_3" },
            { "label": "9:16", "value": "portrait_16_9" },
            { "label": "4:3", "value": "landscape_4_3" },
            { "label": "16:9", "value": "landscape_16_9" }
          ]
        },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 1,
          "max": 50,
          "default": 28,
          "help": "How many passes refine the image. More is slower and can add detail."
        },
        {
          "key": "guidance_scale",
          "label": "Guidance",
          "type": "float_slider",
          "min": 1,
          "max": 20,
          "step": 0.5,
          "default": 4.5,
          "help": "How closely the image follows your prompt. Higher follows it more strictly."
        },
        { "key": "negative_prompt", "label": "Negative prompt", "type": "textarea" },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-image/qwen-image-2512",
        "body": {
          "prompt": "{{prompt}}",
          "image_urls": "{{images}}",
          "image_size": "{{fields.image_size}}",
          "num_inference_steps": "{{fields.num_inference_steps}}",
          "guidance_scale": "{{fields.guidance_scale}}",
          "negative_prompt": "{{fields.negative_prompt}}",
          "output_format": "png",
          "seed": "{{fields.seed}}"
        }
      },
      "with_references": {
        "description": "Qwen Image Edit 2511 edits or combines your images (up to 10) following the prompt.",
        "request": { "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-image/qwen-image-edit-2511" },
        "pricing": {
          "amount": "cost",
          "per_image": 0.033,
          "note": "RunComfy's price for Qwen Image Edit 2511: $0.033 per image."
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.022, "note": "RunComfy's price: $0.022 per image." }
    },
    {
      "id": "qwen-image",
      "label": "Qwen Image",
      "group": "Qwen",
      "description": "The first Qwen Image, good at text in images. Add one image to edit it; it must be between 384 and 3072 pixels on each side and under 10 MB. Keep prompts under 800 characters.",
      "prompt": { "mode": "required" },
      "references": { "mode": "optional", "max": 1, "send_as": "data_url", "max_mb": 10, "max_side": 3071 },
      "fields": [
        {
          "key": "resolution",
          "label": "Size",
          "type": "aspect_combo",
          "default": "1328x1328 (1:1)",
          "options": [
            { "label": "16:9 (1664 x 928)", "value": "1664x928 (16:9)" },
            { "label": "4:3 (1472 x 1140)", "value": "1472x1140 (4:3)" },
            { "label": "1:1 (1328 x 1328)", "value": "1328x1328 (1:1)" },
            { "label": "3:4 (1140 x 1472)", "value": "1140x1472 (3:4)" },
            { "label": "9:16 (928 x 1664)", "value": "928x1664 (9:16)" }
          ]
        },
        {
          "key": "enable_prompt_expansion",
          "label": "Expand prompt",
          "type": "bool",
          "default": true,
          "help": "The model adds detail to your prompt first. Results can drift from what you wrote."
        },
        { "key": "negative_prompt", "label": "Negative prompt", "type": "textarea" }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-image/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "resolution": "{{fields.resolution}}",
          "enable_prompt_expansion": "{{fields.enable_prompt_expansion}}",
          "negative_prompt": "{{fields.negative_prompt}}"
        }
      },
      "without_references": {
        "fields": ["resolution", "enable_prompt_expansion", "negative_prompt"],
        "sizes": [
          { "aspect": "16:9", "width": 1664, "height": 928, "values": { "resolution": "1664x928 (16:9)" } },
          { "aspect": "9:7", "width": 1472, "height": 1140, "values": { "resolution": "1472x1140 (4:3)" } },
          { "aspect": "1:1", "width": 1328, "height": 1328, "values": { "resolution": "1328x1328 (1:1)" } },
          { "aspect": "7:9", "width": 1140, "height": 1472, "values": { "resolution": "1140x1472 (3:4)" } },
          { "aspect": "9:16", "width": 928, "height": 1664, "values": { "resolution": "928x1664 (9:16)" } }
        ]
      },
      "with_references": {
        "fields": ["negative_prompt"],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-image/edit",
          "body": { "prompt": "{{prompt}}", "image_url": "{{image}}", "negative_prompt": "{{fields.negative_prompt}}" }
        },
        "pricing": { "amount": "cost", "per_image": 0.04, "note": "RunComfy's price: $0.04 per edited image." }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.03, "note": "RunComfy's price: $0.03 per image." }
    },
    {
      "id": "qwen-edit-2509",
      "label": "Qwen Edit 2509",
      "group": "Qwen",
      "description": "Qwen Image Edit 2509 edits or combines up to 3 images. Call them Image 1, Image 2 and Image 3 in the prompt. Each image must be 384 to 3072 pixels on each side and at most 10 MB. Keep prompts under 800 characters.",
      "prompt": { "mode": "required", "placeholder": "e.g. Seat the girl from Image 1 beside the baby in Image 2" },
      "references": { "mode": "required", "max": 3, "send_as": "data_url", "max_mb": 10, "max_side": 3072 },
      "fields": [
        { "key": "n", "label": "Images", "type": "int_slider", "min": 1, "max": 6, "default": 1 },
        {
          "key": "negative_prompt",
          "label": "Negative prompt",
          "type": "textarea",
          "placeholder": "Up to 500 characters"
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-edit-2509/multi-image-edit-plus",
        "body": {
          "text": "{{prompt}}",
          "image": "{{images}}",
          "n": "{{fields.n}}",
          "negative_prompt": "{{fields.negative_prompt}}",
          "seed": "{{fields.seed}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.035,
        "count_field": "n",
        "note": "RunComfy's price: $0.035 per image."
      }
    },
    {
      "id": "qwen-edit-2509-effects",
      "label": "Qwen Edit Effects",
      "group": "Qwen",
      "description": "Qwen Image Edit 2509 with a preset effect. Pick the effect, add an image and describe the result.",
      "prompt": { "mode": "required" },
      "references": { "mode": "required", "max": 1, "send_as": "data_url" },
      "fields": [
        {
          "key": "image_size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "landscape_16_9",
          "options": [
            { "label": "1:1 HD", "value": "square_hd" },
            { "label": "1:1", "value": "square" },
            { "label": "3:4", "value": "portrait_4_3" },
            { "label": "9:16", "value": "portrait_16_9" },
            { "label": "4:3", "value": "landscape_4_3" },
            { "label": "16:9", "value": "landscape_16_9" }
          ]
        },
        { "key": "num_images", "label": "Images", "type": "int_slider", "min": 1, "max": 4, "default": 1 },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 2,
          "max": 50,
          "default": 28,
          "help": "How many passes refine the image. More is slower and can add detail."
        },
        {
          "key": "guidance_scale",
          "label": "Guidance",
          "type": "float_slider",
          "min": 0,
          "max": 20,
          "step": 0.5,
          "default": 4,
          "help": "How closely the image follows your prompt. Higher follows it more strictly."
        },
        { "key": "negative_prompt", "label": "Negative prompt", "type": "textarea" },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-edit-2509/lora/multiple-angles",
        "body": {
          "prompt": "{{prompt}}",
          "image_urls": "{{images}}",
          "image_size": "{{fields.image_size}}",
          "num_images": "{{fields.num_images}}",
          "num_inference_steps": "{{fields.num_inference_steps}}",
          "guidance_scale": "{{fields.guidance_scale}}",
          "negative_prompt": "{{fields.negative_prompt}}",
          "output_format": "png",
          "seed": "{{fields.seed}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.035,
        "count_field": "num_images",
        "note": "RunComfy's price: $0.035 per image."
      },
      "variants": {
        "label": "Effect",
        "default": "multiple-angles",
        "options": [
          {
            "id": "multiple-angles",
            "label": "Multiple Angles",
            "description": "Shows the subject from another angle. Add one image and describe the camera move, e.g. Move the camera right."
          },
          {
            "id": "relight",
            "label": "Relight",
            "description": "Relights the picture. Add one image and describe the new light, e.g. soft, diffuse light from the left.",
            "request": { "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-edit-2509/lora/relight" }
          },
          {
            "id": "next-scene",
            "label": "Next Scene",
            "description": "Makes the next shot of a film sequence, keeping the characters and the light. Add one image and start the prompt with \"Next Scene:\" and the camera move, e.g. Next Scene: slow push-in on the hero.",
            "request": { "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-edit-2509/lora/next-scene" },
            "pricing": {
              "amount": "cost",
              "per_image": 0.039,
              "count_field": "num_images",
              "note": "RunComfy's price: $0.039 per image."
            }
          },
          {
            "id": "inscene",
            "label": "In-Scene",
            "description": "Makes a new shot in the same scene, such as a closer or tilted view, keeping its people and objects. Add one image.",
            "request": { "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-edit-2509/lora/inscene" }
          },
          {
            "id": "fusion",
            "label": "Fusion",
            "description": "Blends images into one picture, such as a person into a new setting. Add up to 10 images and say how they fit together.",
            "request": { "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-edit-2509/lora/fusion" },
            "references": { "max": 10 },
            "pricing": {
              "amount": "cost",
              "per_image": 0.039,
              "count_field": "num_images",
              "note": "RunComfy's price: $0.039 per image."
            }
          },
          {
            "id": "edit-skin",
            "label": "Skin Detail",
            "description": "Brings out natural skin detail in portraits. Add one image and describe the change, e.g. make the skin details more prominent and natural.",
            "request": { "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-edit-2509/lora/edit-skin" },
            "pricing": {
              "amount": "cost",
              "per_image": 0.039,
              "count_field": "num_images",
              "note": "RunComfy's price: $0.039 per image."
            }
          }
        ]
      }
    },
    {
      "id": "qwen-image-layered",
      "label": "Qwen Image Layered",
      "group": "Qwen",
      "description": "Splits your image into 2 to 10 transparent layers. Wando saves each layer and a layered composite. A prompt is optional and can name the layers.",
      "prompt": { "mode": "optional", "placeholder": "Optional, e.g. Layer 1: sky, Layer 2: mountains, Layer 3: hiker" },
      "magic_prompt": false,
      "references": { "mode": "required", "max": 1, "send_as": "data_url" },
      "fields": [
        { "key": "num_layers", "label": "Layers", "type": "int_slider", "min": 2, "max": 10, "default": 4 },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 1,
          "max": 50,
          "default": 28,
          "help": "How many passes refine the layers. More is slower and can give cleaner edges."
        },
        {
          "key": "guidance_scale",
          "label": "Guidance",
          "type": "float_slider",
          "min": 1,
          "max": 20,
          "step": 0.5,
          "default": 5,
          "help": "How closely the layers follow your prompt. Higher follows it more strictly."
        },
        { "key": "negative_prompt", "label": "Negative prompt", "type": "textarea" },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/qwen/qwen-image-layered",
        "body": {
          "prompt": "{{prompt}}",
          "image_url": "{{image}}",
          "num_layers": "{{fields.num_layers}}",
          "num_inference_steps": "{{fields.num_inference_steps}}",
          "guidance_scale": "{{fields.guidance_scale}}",
          "negative_prompt": "{{fields.negative_prompt}}",
          "output_format": "png",
          "seed": "{{fields.seed}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"], "kind": "layers", "layer_order": "bottom_first" },
      "pricing": {
        "amount": "cost",
        "per_image": 0.055,
        "count_field": "num_layers",
        "note": "RunComfy's price: $0.055 per output image. Each layer is one output."
      }
    },
    {
      "id": "wan-2-7",
      "label": "Wan 2.7",
      "group": "Wan",
      "description": "Alibaba's Wan 2.7. Makes up to 5 images from a prompt. Add up to 4 images to edit them. Pro gives more detail at a higher price.",
      "references": { "mode": "optional", "max": 4, "send_as": "data_url" },
      "fields": [
        {
          "key": "image_size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "square_hd",
          "options": [
            { "label": "1:1 HD", "value": "square_hd" },
            { "label": "1:1", "value": "square" },
            { "label": "3:4", "value": "portrait_4_3" },
            { "label": "9:16", "value": "portrait_16_9" },
            { "label": "4:3", "value": "landscape_4_3" },
            { "label": "16:9", "value": "landscape_16_9" }
          ]
        },
        { "key": "max_images", "label": "Images", "type": "int_slider", "min": 1, "max": 5, "default": 1 },
        { "key": "num_images", "label": "Images", "type": "int_slider", "min": 1, "max": 4, "default": 1 },
        {
          "key": "negative_prompt",
          "label": "Negative prompt",
          "type": "textarea",
          "placeholder": "Up to 500 characters"
        },
        {
          "key": "enable_prompt_expansion",
          "label": "Expand prompt",
          "type": "bool",
          "default": true,
          "help": "The model adds detail to your prompt first. Results can drift from what you wrote."
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/wan-ai/wan-2.7/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "negative_prompt": "{{fields.negative_prompt}}",
          "image_size": "{{fields.image_size}}",
          "max_images": "{{fields.max_images}}",
          "seed": "{{fields.seed}}"
        }
      },
      "without_references": { "fields": ["image_size", "max_images", "negative_prompt", "seed"] },
      "with_references": {
        "fields": ["image_size", "num_images", "negative_prompt", "enable_prompt_expansion", "seed"],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/wan-ai/wan-2.7/edit",
          "body": {
            "prompt": "{{prompt}}",
            "image_urls": "{{images}}",
            "negative_prompt": "{{fields.negative_prompt}}",
            "image_size": "{{fields.image_size}}",
            "num_images": "{{fields.num_images}}",
            "enable_prompt_expansion": "{{fields.enable_prompt_expansion}}",
            "seed": "{{fields.seed}}"
          }
        },
        "pricing": {
          "amount": "cost",
          "per_image": 0.027,
          "count_field": "num_images",
          "note": "RunComfy's price: $0.027 per edited image. You pay for the images returned."
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.03,
        "count_field": "max_images",
        "note": "RunComfy's price: $0.03 per image. You pay for the images returned."
      },
      "variants": {
        "label": "Version",
        "default": "standard",
        "options": [
          {
            "id": "standard",
            "label": "Standard",
            "description": "Alibaba's Wan 2.7. Makes up to 5 images from a prompt. Add up to 4 images to edit them."
          },
          {
            "id": "pro",
            "label": "Pro",
            "description": "Alibaba's Wan 2.7 Pro, for final images with more detail. Makes up to 5 images from a prompt. Add up to 4 images to edit them.",
            "request": { "url": "https://model-api.runcomfy.net/v1/models/wan-ai/wan-2.7/pro/text-to-image" },
            "pricing": {
              "amount": "cost",
              "per_image": 0.075,
              "count_field": "max_images",
              "note": "RunComfy's price: $0.075 per image. You pay for the images returned."
            },
            "with_references": {
              "request": { "url": "https://model-api.runcomfy.net/v1/models/wan-ai/wan-2.7/pro/edit" },
              "pricing": {
                "amount": "cost",
                "per_image": 0.075,
                "count_field": "num_images",
                "note": "RunComfy's price: $0.075 per edited image. You pay for the images returned."
              }
            }
          }
        ]
      }
    },
    {
      "id": "wan-2-6",
      "label": "Wan 2.6",
      "group": "Wan",
      "description": "Alibaba's Wan 2.6. Makes up to 5 images from a prompt. Add up to 3 images to edit them (each 384 to 5000 pixels a side and under 10 MB).",
      "prompt": { "mode": "required", "placeholder": "Describe the image or the change (up to 2000 characters)" },
      "references": { "mode": "optional", "max": 3, "send_as": "data_url", "max_mb": 10, "max_side": 4999 },
      "fields": [
        {
          "key": "image_size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "1024*1024 (1:1)",
          "options": [
            { "label": "1:1 (1024 x 1024)", "value": "1024*1024 (1:1)" },
            { "label": "2:3 (800 x 1200)", "value": "800*1200 (2:3)" },
            { "label": "3:2 (1200 x 800)", "value": "1200*800 (3:2)" },
            { "label": "3:4 (960 x 1280)", "value": "960*1280 (3:4)" },
            { "label": "4:3 (1280 x 960)", "value": "1280*960 (4:3)" },
            { "label": "9:16 (720 x 1280)", "value": "720*1280 (9:16)" },
            { "label": "16:9 (1280 x 720)", "value": "1280*720 (16:9)" },
            { "label": "21:9 (1344 x 576)", "value": "1344*576 (21:9)" }
          ]
        },
        { "key": "max_images", "label": "Images", "type": "int_slider", "min": 1, "max": 5, "default": 1 },
        {
          "key": "negative_prompt",
          "label": "Negative prompt",
          "type": "textarea",
          "placeholder": "Up to 500 characters"
        },
        {
          "key": "prompt_extend",
          "label": "Expand prompt",
          "type": "bool",
          "default": true,
          "help": "The model adds detail to your prompt first. Results can drift from what you wrote."
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/wan-ai/wan-2-6/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "negative_prompt": "{{fields.negative_prompt}}",
          "image_size": "{{fields.image_size}}",
          "max_images": "{{fields.max_images}}",
          "seed": "{{fields.seed}}"
        }
      },
      "without_references": { "fields": ["image_size", "max_images", "negative_prompt", "seed"] },
      "with_references": {
        "fields": ["image_size", "negative_prompt", "prompt_extend", "seed"],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/wan-ai/wan-2-6/image-to-image",
          "body": {
            "prompt": "{{prompt}}",
            "image_urls": "{{images}}",
            "negative_prompt": "{{fields.negative_prompt}}",
            "image_size": "{{fields.image_size}}",
            "prompt_extend": "{{fields.prompt_extend}}",
            "seed": "{{fields.seed}}"
          }
        },
        "pricing": { "amount": "cost", "per_image": 0.017, "note": "RunComfy's price: $0.017 per image." }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.017,
        "count_field": "max_images",
        "note": "RunComfy's price: $0.017 per image. Images is an upper limit: the model may make fewer, and you pay for the images returned."
      },
      "sizes": [
        { "aspect": "1:1", "width": 1024, "height": 1024, "values": { "image_size": "1024*1024 (1:1)" } },
        { "aspect": "2:3", "width": 800, "height": 1200, "values": { "image_size": "800*1200 (2:3)" } },
        { "aspect": "3:2", "width": 1200, "height": 800, "values": { "image_size": "1200*800 (3:2)" } },
        { "aspect": "3:4", "width": 960, "height": 1280, "values": { "image_size": "960*1280 (3:4)" } },
        { "aspect": "4:3", "width": 1280, "height": 960, "values": { "image_size": "1280*960 (4:3)" } },
        { "aspect": "9:16", "width": 720, "height": 1280, "values": { "image_size": "720*1280 (9:16)" } },
        { "aspect": "16:9", "width": 1280, "height": 720, "values": { "image_size": "1280*720 (16:9)" } },
        { "aspect": "21:9", "width": 1344, "height": 576, "values": { "image_size": "1344*576 (21:9)" } }
      ]
    },
    {
      "id": "wan-2-5",
      "label": "Wan 2.5",
      "group": "Wan",
      "description": "Alibaba's Wan 2.5 Preview, text to image.",
      "prompt": { "mode": "required", "placeholder": "Describe the image (up to 2000 characters)" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Size",
          "type": "aspect_combo",
          "default": "1024:1024 (1:1)",
          "options": [
            { "label": "16:9 (1440 x 810)", "value": "1440:810 (16:9)" },
            { "label": "5:3 (1440 x 864)", "value": "1440:864 (5:3)" },
            { "label": "3:2 (1440 x 960)", "value": "1440:960 (3:2)" },
            { "label": "7:5 (1440 x 1024)", "value": "1440:1024 (7:5)" },
            { "label": "4:3 (1360 x 1020)", "value": "1360:1020 (4:3)" },
            { "label": "5:4 (1280 x 1024)", "value": "1280:1024 (5:4)" },
            { "label": "1:1 (1024 x 1024)", "value": "1024:1024 (1:1)" },
            { "label": "4:5 (1024 x 1280)", "value": "1024:1280 (4:5)" },
            { "label": "3:4 (1024 x 1365)", "value": "1024:1365 (3:4)" },
            { "label": "5:7 (1024 x 1434)", "value": "1024:1434 (5:7)" },
            { "label": "2:3 (960 x 1440)", "value": "960:1440 (2:3)" },
            { "label": "3:5 (864 x 1440)", "value": "864:1440 (3:5)" },
            { "label": "9:16 (810 x 1440)", "value": "810:1440 (9:16)" }
          ]
        },
        { "key": "negative_prompt", "label": "Negative prompt", "type": "textarea" }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/wan-ai/wan-2-5/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "negative_prompt": "{{fields.negative_prompt}}",
          "aspect_ratio": "{{fields.aspect_ratio}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.029, "note": "RunComfy's price: $0.029 per image." },
      "sizes": [
        { "aspect": "16:9", "width": 1440, "height": 810, "values": { "aspect_ratio": "1440:810 (16:9)" } },
        { "aspect": "5:3", "width": 1440, "height": 864, "values": { "aspect_ratio": "1440:864 (5:3)" } },
        { "aspect": "3:2", "width": 1440, "height": 960, "values": { "aspect_ratio": "1440:960 (3:2)" } },
        { "aspect": "7:5", "width": 1440, "height": 1024, "values": { "aspect_ratio": "1440:1024 (7:5)" } },
        { "aspect": "4:3", "width": 1360, "height": 1020, "values": { "aspect_ratio": "1360:1020 (4:3)" } },
        { "aspect": "5:4", "width": 1280, "height": 1024, "values": { "aspect_ratio": "1280:1024 (5:4)" } },
        { "aspect": "1:1", "width": 1024, "height": 1024, "values": { "aspect_ratio": "1024:1024 (1:1)" } },
        { "aspect": "4:5", "width": 1024, "height": 1280, "values": { "aspect_ratio": "1024:1280 (4:5)" } },
        { "aspect": "3:4", "width": 1024, "height": 1365, "values": { "aspect_ratio": "1024:1365 (3:4)" } },
        { "aspect": "5:7", "width": 1024, "height": 1434, "values": { "aspect_ratio": "1024:1434 (5:7)" } },
        { "aspect": "2:3", "width": 960, "height": 1440, "values": { "aspect_ratio": "960:1440 (2:3)" } },
        { "aspect": "3:5", "width": 864, "height": 1440, "values": { "aspect_ratio": "864:1440 (3:5)" } },
        { "aspect": "9:16", "width": 810, "height": 1440, "values": { "aspect_ratio": "810:1440 (9:16)" } }
      ]
    },
    {
      "id": "wan-2-2",
      "label": "Wan 2.2",
      "group": "Wan",
      "description": "Alibaba's Wan 2.2, text to image. Flash is faster and cheaper than Plus.",
      "prompt": { "mode": "required", "placeholder": "Describe the image (under 800 characters works best)" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Size",
          "type": "aspect_combo",
          "default": "1024:1024 (1:1)",
          "options": [
            { "label": "2:1 (1440 x 720)", "value": "1440:720 (2:1)" },
            { "label": "16:9 (1440 x 810)", "value": "1440:810 (16:9)" },
            { "label": "5:3 (1440 x 864)", "value": "1440:864 (5:3)" },
            { "label": "3:2 (1440 x 960)", "value": "1440:960 (3:2)" },
            { "label": "7:5 (1440 x 1024)", "value": "1440:1024 (7:5)" },
            { "label": "4:3 (1360 x 1020)", "value": "1360:1020 (4:3)" },
            { "label": "5:4 (1280 x 1024)", "value": "1280:1024 (5:4)" },
            { "label": "1:1 (1024 x 1024)", "value": "1024:1024 (1:1)" },
            { "label": "4:5 (1024 x 1280)", "value": "1024:1280 (4:5)" },
            { "label": "3:4 (1024 x 1365)", "value": "1024:1365 (3:4)" },
            { "label": "5:7 (1024 x 1434)", "value": "1024:1434 (5:7)" },
            { "label": "2:3 (960 x 1440)", "value": "960:1440 (2:3)" },
            { "label": "3:5 (864 x 1440)", "value": "864:1440 (3:5)" },
            { "label": "9:16 (810 x 1440)", "value": "810:1440 (9:16)" },
            { "label": "1:2 (720 x 1440)", "value": "720:1440 (1:2)" }
          ]
        },
        { "key": "negative_prompt", "label": "Negative prompt", "type": "textarea" },
        {
          "key": "prompt_extend",
          "label": "Expand prompt",
          "type": "bool",
          "default": true,
          "help": "The model adds detail to your prompt first. Results can drift from what you wrote."
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/wan-ai/wan-2-2/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "negative_prompt": "{{fields.negative_prompt}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "prompt_extend": "{{fields.prompt_extend}}",
          "seed": "{{fields.seed}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.03, "note": "RunComfy's price: $0.03 per image." },
      "sizes": [
        { "aspect": "2:1", "width": 1440, "height": 720, "values": { "aspect_ratio": "1440:720 (2:1)" } },
        { "aspect": "16:9", "width": 1440, "height": 810, "values": { "aspect_ratio": "1440:810 (16:9)" } },
        { "aspect": "5:3", "width": 1440, "height": 864, "values": { "aspect_ratio": "1440:864 (5:3)" } },
        { "aspect": "3:2", "width": 1440, "height": 960, "values": { "aspect_ratio": "1440:960 (3:2)" } },
        { "aspect": "7:5", "width": 1440, "height": 1024, "values": { "aspect_ratio": "1440:1024 (7:5)" } },
        { "aspect": "4:3", "width": 1360, "height": 1020, "values": { "aspect_ratio": "1360:1020 (4:3)" } },
        { "aspect": "5:4", "width": 1280, "height": 1024, "values": { "aspect_ratio": "1280:1024 (5:4)" } },
        { "aspect": "1:1", "width": 1024, "height": 1024, "values": { "aspect_ratio": "1024:1024 (1:1)" } },
        { "aspect": "4:5", "width": 1024, "height": 1280, "values": { "aspect_ratio": "1024:1280 (4:5)" } },
        { "aspect": "3:4", "width": 1024, "height": 1365, "values": { "aspect_ratio": "1024:1365 (3:4)" } },
        { "aspect": "5:7", "width": 1024, "height": 1434, "values": { "aspect_ratio": "1024:1434 (5:7)" } },
        { "aspect": "2:3", "width": 960, "height": 1440, "values": { "aspect_ratio": "960:1440 (2:3)" } },
        { "aspect": "3:5", "width": 864, "height": 1440, "values": { "aspect_ratio": "864:1440 (3:5)" } },
        { "aspect": "9:16", "width": 810, "height": 1440, "values": { "aspect_ratio": "810:1440 (9:16)" } },
        { "aspect": "1:2", "width": 720, "height": 1440, "values": { "aspect_ratio": "720:1440 (1:2)" } }
      ],
      "variants": {
        "label": "Version",
        "default": "plus",
        "options": [
          { "id": "plus", "label": "Plus", "description": "Alibaba's Wan 2.2 Plus, text to image." },
          {
            "id": "flash",
            "label": "Flash",
            "description": "Alibaba's Wan 2.2 Flash, text to image. Faster and cheaper than Plus.",
            "request": { "url": "https://model-api.runcomfy.net/v1/models/wan-ai/wan-2-2/flash/text-to-image" },
            "pricing": { "amount": "cost", "per_image": 0.02, "note": "RunComfy's price: $0.02 per image." }
          }
        ]
      }
    },
    {
      "id": "z-image-turbo",
      "label": "Z-Image Turbo",
      "group": "Z-Image",
      "description": "Tongyi-MAI's fast Z-Image Turbo. Makes up to 4 images from a prompt. Add one image to rework it; that needs Cloudflare R2 in Wando Settings.",
      "references": { "mode": "optional", "max": 1, "send_as": "hosted_url" },
      "fields": [
        {
          "key": "image_size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "square_hd",
          "options": [
            { "label": "1:1 HD", "value": "square_hd" },
            { "label": "1:1", "value": "square" },
            { "label": "3:4", "value": "portrait_4_3" },
            { "label": "9:16", "value": "portrait_16_9" },
            { "label": "4:3", "value": "landscape_4_3" },
            { "label": "16:9", "value": "landscape_16_9" }
          ]
        },
        {
          "key": "image_size_edit",
          "label": "Size",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            { "label": "Auto", "value": "auto" },
            { "label": "1:1 HD", "value": "square_hd" },
            { "label": "1:1", "value": "square" },
            { "label": "3:4", "value": "portrait_4_3" },
            { "label": "9:16", "value": "portrait_16_9" },
            { "label": "4:3", "value": "landscape_4_3" },
            { "label": "16:9", "value": "landscape_16_9" }
          ]
        },
        { "key": "num_images", "label": "Images", "type": "int_slider", "min": 1, "max": 4, "default": 1 },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 1,
          "max": 30,
          "default": 8,
          "help": "Z-Image Turbo is tuned for 8 steps."
        },
        {
          "key": "num_inference_steps_edit",
          "label": "Steps",
          "type": "int_slider",
          "min": 1,
          "max": 8,
          "default": 8,
          "help": "Z-Image Turbo is tuned for 4 to 8 steps when it reworks an image."
        },
        {
          "key": "strength",
          "label": "Strength",
          "type": "float_slider",
          "min": 0,
          "max": 1,
          "step": 0.05,
          "decimals": 2,
          "default": 0.6,
          "help": "Low values keep the result close to your image; high values change it more."
        },
        {
          "key": "enable_prompt_expansion",
          "label": "Expand prompt",
          "type": "bool",
          "default": false,
          "help": "The model adds detail to your prompt first, for a small extra charge. Results can drift from what you wrote."
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/tongyi-mai/z-image/turbo/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "image_size": "{{fields.image_size}}",
          "num_images": "{{fields.num_images}}",
          "num_inference_steps": "{{fields.num_inference_steps}}",
          "output_format": "png",
          "seed": "{{fields.seed}}"
        }
      },
      "without_references": { "fields": ["image_size", "num_images", "num_inference_steps", "seed"] },
      "with_references": {
        "fields": ["image_size_edit", "num_inference_steps_edit", "strength", "enable_prompt_expansion", "seed"],
        "request": {
          "url": "https://model-api.runcomfy.net/v1/models/tongyi-mai/z-image/turbo/image-to-image",
          "body": {
            "prompt": "{{prompt}}",
            "image_url": "{{image}}",
            "image_size": "{{fields.image_size_edit}}",
            "num_inference_steps": "{{fields.num_inference_steps_edit}}",
            "strength": "{{fields.strength}}",
            "enable_prompt_expansion": "{{fields.enable_prompt_expansion}}",
            "output_format": "png",
            "seed": "{{fields.seed}}"
          }
        },
        "pricing": {
          "amount": "cost",
          "per_image": 0.006,
          "note": "RunComfy's price: $0.006 per image, plus $0.0025 to expand the prompt.",
          "extra_by_field": { "enable_prompt_expansion": { "true": 0.0025 } }
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.006,
        "count_field": "num_images",
        "note": "RunComfy's price: $0.006 per image."
      }
    },
    {
      "id": "z-image-inpaint",
      "label": "Z-Image Inpaint",
      "group": "Z-Image",
      "description": "Z-Image Turbo repaints only the area you mask, following your prompt. Add one image and paint over the part to change; this needs Cloudflare R2 in Wando Settings.",
      "prompt": { "mode": "required", "placeholder": "Describe what goes in the masked area..." },
      "references": { "mode": "required", "max": 1, "send_as": "hosted_url" },
      "mask": { "mode": "required", "paint": "white" },
      "fields": [
        {
          "key": "image_size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            { "label": "Auto", "value": "auto" },
            { "label": "1:1 HD", "value": "square_hd" },
            { "label": "1:1", "value": "square" },
            { "label": "3:4", "value": "portrait_4_3" },
            { "label": "9:16", "value": "portrait_16_9" },
            { "label": "4:3", "value": "landscape_4_3" },
            { "label": "16:9", "value": "landscape_16_9" }
          ]
        },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 1,
          "max": 30,
          "default": 20,
          "help": "How many passes refine the image. More is slower and can add detail."
        },
        {
          "key": "strength",
          "label": "Strength",
          "type": "float_slider",
          "min": 0,
          "max": 1,
          "step": 0.05,
          "decimals": 2,
          "default": 1,
          "help": "How much the masked area changes. Lower values keep more of what is there now."
        },
        {
          "key": "control_scale",
          "label": "Control Scale",
          "type": "float_slider",
          "min": 0,
          "max": 1,
          "step": 0.05,
          "decimals": 2,
          "default": 0.75,
          "help": "How closely the repaint follows the shapes of your image. Lower values give the model more freedom."
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/tongyi-mai/z-image/turbo/inpainting",
        "body": {
          "prompt": "{{prompt}}",
          "image_url": "{{image}}",
          "mask_image_url": "{{mask}}",
          "image_size": "{{fields.image_size}}",
          "num_inference_steps": "{{fields.num_inference_steps}}",
          "strength": "{{fields.strength}}",
          "control_scale": "{{fields.control_scale}}",
          "output_format": "png",
          "seed": "{{fields.seed}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.01, "note": "RunComfy's price: $0.01 per image." }
    },
    {
      "id": "ideogram-v4",
      "label": "Ideogram V4",
      "group": "Ideogram",
      "description": "Ideogram V4, made for posters, logos and other images with legible text. Text to image.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, with any text in quotes..." },
      "fields": [
        {
          "key": "size",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "3:4", "4:3", "16:9", "9:16"]
        },
        {
          "key": "rendering_speed",
          "label": "Rendering Speed",
          "type": "combo",
          "default": "BALANCED",
          "options": [
            { "label": "Turbo", "value": "TURBO" },
            { "label": "Balanced", "value": "BALANCED" },
            { "label": "Quality", "value": "QUALITY" }
          ],
          "help": "Turbo is the fastest and cheapest, Quality the slowest and most detailed, Balanced in between."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/ideogram-ai/ideogram-v4/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "size": "{{fields.size}}",
          "rendering_speed": "{{fields.rendering_speed}}",
          "output_format": "png"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.12,
        "by_field": {
          "rendering_speed": {
            "TURBO": { "size": { "1:1": 0.04, "3:4": 0.03, "4:3": 0.03, "16:9": 0.02, "9:16": 0.02 } },
            "BALANCED": { "size": { "1:1": 0.08, "3:4": 0.06, "4:3": 0.06, "16:9": 0.04, "9:16": 0.04 } },
            "QUALITY": { "size": { "1:1": 0.12, "3:4": 0.09, "4:3": 0.09, "16:9": 0.07, "9:16": 0.07 } }
          }
        },
        "note": "RunComfy's price per image at Turbo, Balanced, Quality: 1:1 $0.04, $0.08, $0.12; 3:4 and 4:3 $0.03, $0.06, $0.09; 16:9 and 9:16 $0.02, $0.04, $0.07."
      }
    },
    {
      "id": "ideogram-3",
      "label": "Ideogram 3.0",
      "group": "Ideogram",
      "description": "Ideogram 3.0, strong at text in images. Add an image to remix it with your prompt.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, with any text in quotes..." },
      "references": { "mode": "optional", "max": 1, "send_as": "data_url" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "16:9",
          "options": ["16:9", "4:3", "1:1", "3:4", "9:16"]
        },
        {
          "key": "rendering_speed",
          "label": "Rendering Speed",
          "type": "combo",
          "default": "BALANCED",
          "options": [
            { "label": "Turbo", "value": "TURBO" },
            { "label": "Balanced", "value": "BALANCED" },
            { "label": "Quality", "value": "QUALITY" }
          ],
          "help": "Turbo is the fastest and cheapest, Quality the slowest and most detailed, Balanced in between."
        },
        {
          "key": "style_type",
          "label": "Style",
          "type": "combo",
          "default": "Auto",
          "options": ["Auto", "General", "Realistic", "Design"],
          "help": "Realistic suits photos, Design graphics and lettering, General anything. Auto lets Ideogram choose."
        },
        {
          "key": "magic_prompt",
          "label": "Expand prompt",
          "type": "combo",
          "default": "ON",
          "options": [
            { "label": "Auto", "value": "AUTO" },
            { "label": "On", "value": "ON" },
            { "label": "Off", "value": "OFF" }
          ],
          "help": "The model adds detail to your prompt first, so results can drift from what you wrote. Auto lets Ideogram decide."
        },
        {
          "key": "color_palette",
          "label": "Color Palette",
          "type": "palette",
          "max": 10,
          "options": [
            { "label": "Ember", "value": { "name": "Ember" } },
            { "label": "Fresh", "value": { "name": "Fresh" } },
            { "label": "Jungle", "value": { "name": "Jungle" } },
            { "label": "Magic", "value": { "name": "Magic" } },
            { "label": "Melon", "value": { "name": "Melon" } },
            { "label": "Mosaic", "value": { "name": "Mosaic" } },
            { "label": "Pastel", "value": { "name": "Pastel" } },
            { "label": "Ultramarine", "value": { "name": "Ultramarine" } }
          ],
          "item": { "rgb": "{{color.r}}_{{color.g}}_{{color.b}}", "color_weight": 0.5 },
          "wrap": { "members": "{{colors}}" }
        },
        {
          "key": "image_weight",
          "label": "Image Weight",
          "type": "int_slider",
          "min": 1,
          "max": 100,
          "default": 50,
          "help": "How much of your image the remix keeps. Higher stays closer to it."
        },
        { "key": "negative_prompt", "label": "Negative prompt", "type": "textarea" },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/ideogram/ideogram-v3/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "image": "{{image}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "rendering_speed": "{{fields.rendering_speed}}",
          "magic_prompt": "{{fields.magic_prompt}}",
          "style": { "style_type": "{{fields.style_type}}" },
          "color_palette": "{{fields.color_palette}}",
          "negative_prompt": "{{fields.negative_prompt}}",
          "image_weight": "{{fields.image_weight}}",
          "seed": "{{fields.seed}}"
        }
      },
      "without_references": {
        "fields": [
          "aspect_ratio", "rendering_speed", "style_type", "magic_prompt", "color_palette", "negative_prompt", "seed"
        ]
      },
      "with_references": { "request": { "url": "https://model-api.runcomfy.net/v1/models/ideogram/ideogram-v3/remix" } },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.03,
        "by_field": { "rendering_speed": { "TURBO": 0.03, "BALANCED": 0.06, "QUALITY": 0.09 } },
        "note": "RunComfy's price: $0.03 per image at Turbo, $0.06 at Balanced, $0.09 at Quality."
      },
      "size_table": "ideogram3"
    },
    {
      "id": "ideogram-3-edit",
      "label": "Ideogram 3.0 Edit",
      "group": "Ideogram",
      "description": "Ideogram 3.0 repaints only the area you mask, following your prompt. Add one image and paint over part of it; a mask that covers the whole image does not work.",
      "prompt": { "mode": "required", "placeholder": "Describe what goes in the masked area..." },
      "references": { "mode": "required", "max": 1, "send_as": "data_url" },
      "mask": { "mode": "required", "paint": "white" },
      "fields": [
        {
          "key": "rendering_speed",
          "label": "Rendering Speed",
          "type": "combo",
          "default": "BALANCED",
          "options": [
            { "label": "Turbo", "value": "TURBO" },
            { "label": "Balanced", "value": "BALANCED" },
            { "label": "Quality", "value": "QUALITY" }
          ],
          "help": "Turbo is the fastest and cheapest, Quality the slowest and most detailed, Balanced in between."
        },
        {
          "key": "style_type",
          "label": "Style",
          "type": "combo",
          "default": "Auto",
          "options": ["Auto", "General", "Realistic", "Design"],
          "help": "Realistic suits photos, Design graphics and lettering, General anything. Auto lets Ideogram choose."
        },
        {
          "key": "magic_prompt",
          "label": "Expand prompt",
          "type": "combo",
          "default": "ON",
          "options": [
            { "label": "Auto", "value": "AUTO" },
            { "label": "On", "value": "ON" },
            { "label": "Off", "value": "OFF" }
          ],
          "help": "The model adds detail to your prompt first, so results can drift from what you wrote. Auto lets Ideogram decide."
        },
        {
          "key": "color_palette",
          "label": "Color Palette",
          "type": "palette",
          "max": 10,
          "options": [
            { "label": "Ember", "value": { "name": "Ember" } },
            { "label": "Fresh", "value": { "name": "Fresh" } },
            { "label": "Jungle", "value": { "name": "Jungle" } },
            { "label": "Magic", "value": { "name": "Magic" } },
            { "label": "Melon", "value": { "name": "Melon" } },
            { "label": "Mosaic", "value": { "name": "Mosaic" } },
            { "label": "Pastel", "value": { "name": "Pastel" } },
            { "label": "Ultramarine", "value": { "name": "Ultramarine" } }
          ],
          "item": { "rgb": "{{color.r}}_{{color.g}}_{{color.b}}", "color_weight": 0.5 },
          "wrap": { "members": "{{colors}}" }
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/ideogram/ideogram-v3/edit",
        "body": {
          "prompt": "{{prompt}}",
          "image": "{{image}}",
          "mask": "{{mask}}",
          "rendering_speed": "{{fields.rendering_speed}}",
          "magic_prompt": "{{fields.magic_prompt}}",
          "style": { "style_type": "{{fields.style_type}}" },
          "color_palette": "{{fields.color_palette}}",
          "seed": "{{fields.seed}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.03,
        "by_field": { "rendering_speed": { "TURBO": 0.03, "BALANCED": 0.06, "QUALITY": 0.09 } },
        "note": "RunComfy's price: $0.03 per image at Turbo, $0.06 at Balanced, $0.09 at Quality."
      }
    },
    {
      "id": "ideogram-3-background",
      "label": "Ideogram 3.0 Background",
      "group": "Ideogram",
      "description": "Keeps the subject of your photo and replaces the background with the scene you describe. Add one image.",
      "prompt": { "mode": "required", "placeholder": "Describe the new background..." },
      "references": { "mode": "required", "max": 1, "send_as": "data_url" },
      "fields": [
        {
          "key": "rendering_speed",
          "label": "Rendering Speed",
          "type": "combo",
          "default": "BALANCED",
          "options": [
            { "label": "Turbo", "value": "TURBO" },
            { "label": "Balanced", "value": "BALANCED" },
            { "label": "Quality", "value": "QUALITY" }
          ],
          "help": "Turbo is the fastest and cheapest, Quality the slowest and most detailed, Balanced in between."
        },
        {
          "key": "magic_prompt",
          "label": "Expand prompt",
          "type": "combo",
          "default": "ON",
          "options": [
            { "label": "Auto", "value": "AUTO" },
            { "label": "On", "value": "ON" },
            { "label": "Off", "value": "OFF" }
          ],
          "help": "The model adds detail to your prompt first, so results can drift from what you wrote. Auto lets Ideogram decide."
        },
        {
          "key": "color_palette",
          "label": "Color Palette",
          "type": "palette",
          "max": 10,
          "options": [
            { "label": "Ember", "value": { "name": "Ember" } },
            { "label": "Fresh", "value": { "name": "Fresh" } },
            { "label": "Jungle", "value": { "name": "Jungle" } },
            { "label": "Magic", "value": { "name": "Magic" } },
            { "label": "Melon", "value": { "name": "Melon" } },
            { "label": "Mosaic", "value": { "name": "Mosaic" } },
            { "label": "Pastel", "value": { "name": "Pastel" } },
            { "label": "Ultramarine", "value": { "name": "Ultramarine" } }
          ],
          "item": { "rgb": "{{color.r}}_{{color.g}}_{{color.b}}", "color_weight": 0.5 },
          "wrap": { "members": "{{colors}}" }
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/ideogram/ideogram-v3/replace-background",
        "body": {
          "prompt": "{{prompt}}",
          "image": "{{image}}",
          "rendering_speed": "{{fields.rendering_speed}}",
          "magic_prompt": "{{fields.magic_prompt}}",
          "color_palette": "{{fields.color_palette}}",
          "seed": "{{fields.seed}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.03,
        "by_field": { "rendering_speed": { "TURBO": 0.03, "BALANCED": 0.06, "QUALITY": 0.09 } },
        "note": "RunComfy's price: $0.03 per image at Turbo, $0.06 at Balanced, $0.09 at Quality."
      }
    },
    {
      "id": "ideogram-3-reframe",
      "label": "Ideogram 3.0 Reframe",
      "group": "Ideogram",
      "description": "Extends a square image to a new shape and size, filling in the new areas. Add one square image. No prompt needed.",
      "prompt": { "mode": "none" },
      "references": { "mode": "required", "max": 1, "send_as": "data_url" },
      "fields": [
        {
          "key": "resolution",
          "label": "Size",
          "type": "aspect_combo",
          "default": "1152:864 (4:3)",
          "options": [
            { "label": "12:5 (1536 x 640)", "value": "1536:640 (12:5)" },
            { "label": "8:3 (1536 x 576)", "value": "1536:576 (8:3)" },
            { "label": "3:1 (1536 x 512)", "value": "1536:512 (3:1)" },
            { "label": "23:11 (1472 x 704)", "value": "1472:704 (23:11)" },
            { "label": "23:10 (1472 x 640)", "value": "1472:640 (23:10)" },
            { "label": "23:9 (1472 x 576)", "value": "1472:576 (23:9)" },
            { "label": "2:1 (1408 x 704)", "value": "1408:704 (2:1)" },
            { "label": "11:5 (1408 x 640)", "value": "1408:640 (11:5)" },
            { "label": "22:9 (1408 x 576)", "value": "1408:576 (22:9)" },
            { "label": "7:4 (1344 x 768)", "value": "1344:768 (7:4)" },
            { "label": "21:11 (1344 x 704)", "value": "1344:704 (21:11)" },
            { "label": "21:10 (1344 x 640)", "value": "1344:640 (21:10)" },
            { "label": "41:23 (1312 x 736)", "value": "1312:736 (41:23)" },
            { "label": "8:5 (1280 x 800)", "value": "1280:800 (8:5)" },
            { "label": "5:3 (1280 x 768)", "value": "1280:768 (5:3)" },
            { "label": "20:11 (1280 x 704)", "value": "1280:704 (20:11)" },
            { "label": "3:2 (1248 x 832)", "value": "1248:832 (3:2)" },
            { "label": "19:13 (1216 x 832)", "value": "1216:832 (19:13)" },
            { "label": "19:12 (1216 x 768)", "value": "1216:768 (19:12)" },
            { "label": "19:11 (1216 x 704)", "value": "1216:704 (19:11)" },
            { "label": "9:7 (1152 x 896)", "value": "1152:896 (9:7)" },
            { "label": "4:3 (1152 x 864)", "value": "1152:864 (4:3)" },
            { "label": "18:13 (1152 x 832)", "value": "1152:832 (18:13)" },
            { "label": "18:11 (1152 x 704)", "value": "1152:704 (18:11)" },
            { "label": "5:4 (1120 x 896)", "value": "1120:896 (5:4)" },
            { "label": "17:15 (1088 x 960)", "value": "1088:960 (17:15)" },
            { "label": "17:14 (1088 x 896)", "value": "1088:896 (17:14)" },
            { "label": "17:13 (1088 x 832)", "value": "1088:832 (17:13)" },
            { "label": "17:12 (1088 x 768)", "value": "1088:768 (17:12)" },
            { "label": "1:1 (1024 x 1024)", "value": "1024:1024 (1:1)" },
            { "label": "16:15 (1024 x 960)", "value": "1024:960 (16:15)" },
            { "label": "8:7 (1024 x 896)", "value": "1024:896 (8:7)" },
            { "label": "16:13 (1024 x 832)", "value": "1024:832 (16:13)" },
            { "label": "15:17 (960 x 1088)", "value": "960:1088 (15:17)" },
            { "label": "15:16 (960 x 1024)", "value": "960:1024 (15:16)" },
            { "label": "15:14 (960 x 896)", "value": "960:896 (15:14)" },
            { "label": "15:13 (960 x 832)", "value": "960:832 (15:13)" },
            { "label": "7:9 (896 x 1152)", "value": "896:1152 (7:9)" },
            { "label": "4:5 (896 x 1120)", "value": "896:1120 (4:5)" },
            { "label": "14:17 (896 x 1088)", "value": "896:1088 (14:17)" },
            { "label": "7:8 (896 x 1024)", "value": "896:1024 (7:8)" },
            { "label": "14:15 (896 x 960)", "value": "896:960 (14:15)" },
            { "label": "3:4 (864 x 1152)", "value": "864:1152 (3:4)" },
            { "label": "2:3 (832 x 1248)", "value": "832:1248 (2:3)" },
            { "label": "13:19 (832 x 1216)", "value": "832:1216 (13:19)" },
            { "label": "13:18 (832 x 1152)", "value": "832:1152 (13:18)" },
            { "label": "13:17 (832 x 1088)", "value": "832:1088 (13:17)" },
            { "label": "13:16 (832 x 1024)", "value": "832:1024 (13:16)" },
            { "label": "13:15 (832 x 960)", "value": "832:960 (13:15)" },
            { "label": "5:8 (800 x 1280)", "value": "800:1280 (5:8)" },
            { "label": "4:7 (768 x 1344)", "value": "768:1344 (4:7)" },
            { "label": "3:5 (768 x 1280)", "value": "768:1280 (3:5)" },
            { "label": "12:19 (768 x 1216)", "value": "768:1216 (12:19)" },
            { "label": "12:17 (768 x 1088)", "value": "768:1088 (12:17)" },
            { "label": "23:41 (736 x 1312)", "value": "736:1312 (23:41)" },
            { "label": "11:23 (704 x 1472)", "value": "704:1472 (11:23)" },
            { "label": "1:2 (704 x 1408)", "value": "704:1408 (1:2)" },
            { "label": "11:21 (704 x 1344)", "value": "704:1344 (11:21)" },
            { "label": "11:20 (704 x 1280)", "value": "704:1280 (11:20)" },
            { "label": "11:19 (704 x 1216)", "value": "704:1216 (11:19)" },
            { "label": "11:18 (704 x 1152)", "value": "704:1152 (11:18)" },
            { "label": "5:12 (640 x 1536)", "value": "640:1536 (5:12)" },
            { "label": "10:23 (640 x 1472)", "value": "640:1472 (10:23)" },
            { "label": "5:11 (640 x 1408)", "value": "640:1408 (5:11)" },
            { "label": "10:21 (640 x 1344)", "value": "640:1344 (10:21)" },
            { "label": "3:8 (576 x 1536)", "value": "576:1536 (3:8)" },
            { "label": "9:23 (576 x 1472)", "value": "576:1472 (9:23)" },
            { "label": "9:22 (576 x 1408)", "value": "576:1408 (9:22)" },
            { "label": "1:3 (512 x 1536)", "value": "512:1536 (1:3)" }
          ]
        },
        {
          "key": "rendering_speed",
          "label": "Rendering Speed",
          "type": "combo",
          "default": "BALANCED",
          "options": [
            { "label": "Turbo", "value": "TURBO" },
            { "label": "Balanced", "value": "BALANCED" },
            { "label": "Quality", "value": "QUALITY" }
          ],
          "help": "Turbo is the fastest and cheapest, Quality the slowest and most detailed, Balanced in between."
        },
        {
          "key": "color_palette",
          "label": "Color Palette",
          "type": "palette",
          "max": 10,
          "options": [
            { "label": "Ember", "value": { "name": "Ember" } },
            { "label": "Fresh", "value": { "name": "Fresh" } },
            { "label": "Jungle", "value": { "name": "Jungle" } },
            { "label": "Magic", "value": { "name": "Magic" } },
            { "label": "Melon", "value": { "name": "Melon" } },
            { "label": "Mosaic", "value": { "name": "Mosaic" } },
            { "label": "Pastel", "value": { "name": "Pastel" } },
            { "label": "Ultramarine", "value": { "name": "Ultramarine" } }
          ],
          "item": { "rgb": "{{color.r}}_{{color.g}}_{{color.b}}", "color_weight": 0.5 },
          "wrap": { "members": "{{colors}}" }
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/ideogram/ideogram-v3/reframe",
        "body": {
          "image": "{{image}}",
          "resolution": "{{fields.resolution}}",
          "rendering_speed": "{{fields.rendering_speed}}",
          "color_palette": "{{fields.color_palette}}",
          "seed": "{{fields.seed}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.03,
        "by_field": { "rendering_speed": { "TURBO": 0.03, "BALANCED": 0.06, "QUALITY": 0.09 } },
        "note": "RunComfy's price: $0.03 per image at Turbo, $0.06 at Balanced, $0.09 at Quality."
      },
      "sizes": [
        { "aspect": "12:5", "width": 1536, "height": 640, "values": { "resolution": "1536:640 (12:5)" } },
        { "aspect": "8:3", "width": 1536, "height": 576, "values": { "resolution": "1536:576 (8:3)" } },
        { "aspect": "3:1", "width": 1536, "height": 512, "values": { "resolution": "1536:512 (3:1)" } },
        { "aspect": "23:11", "width": 1472, "height": 704, "values": { "resolution": "1472:704 (23:11)" } },
        { "aspect": "23:10", "width": 1472, "height": 640, "values": { "resolution": "1472:640 (23:10)" } },
        { "aspect": "23:9", "width": 1472, "height": 576, "values": { "resolution": "1472:576 (23:9)" } },
        { "aspect": "2:1", "width": 1408, "height": 704, "values": { "resolution": "1408:704 (2:1)" } },
        { "aspect": "11:5", "width": 1408, "height": 640, "values": { "resolution": "1408:640 (11:5)" } },
        { "aspect": "22:9", "width": 1408, "height": 576, "values": { "resolution": "1408:576 (22:9)" } },
        { "aspect": "7:4", "width": 1344, "height": 768, "values": { "resolution": "1344:768 (7:4)" } },
        { "aspect": "21:11", "width": 1344, "height": 704, "values": { "resolution": "1344:704 (21:11)" } },
        { "aspect": "21:10", "width": 1344, "height": 640, "values": { "resolution": "1344:640 (21:10)" } },
        { "aspect": "41:23", "width": 1312, "height": 736, "values": { "resolution": "1312:736 (41:23)" } },
        { "aspect": "8:5", "width": 1280, "height": 800, "values": { "resolution": "1280:800 (8:5)" } },
        { "aspect": "5:3", "width": 1280, "height": 768, "values": { "resolution": "1280:768 (5:3)" } },
        { "aspect": "20:11", "width": 1280, "height": 704, "values": { "resolution": "1280:704 (20:11)" } },
        { "aspect": "3:2", "width": 1248, "height": 832, "values": { "resolution": "1248:832 (3:2)" } },
        { "aspect": "19:13", "width": 1216, "height": 832, "values": { "resolution": "1216:832 (19:13)" } },
        { "aspect": "19:12", "width": 1216, "height": 768, "values": { "resolution": "1216:768 (19:12)" } },
        { "aspect": "19:11", "width": 1216, "height": 704, "values": { "resolution": "1216:704 (19:11)" } },
        { "aspect": "9:7", "width": 1152, "height": 896, "values": { "resolution": "1152:896 (9:7)" } },
        { "aspect": "4:3", "width": 1152, "height": 864, "values": { "resolution": "1152:864 (4:3)" } },
        { "aspect": "18:13", "width": 1152, "height": 832, "values": { "resolution": "1152:832 (18:13)" } },
        { "aspect": "18:11", "width": 1152, "height": 704, "values": { "resolution": "1152:704 (18:11)" } },
        { "aspect": "5:4", "width": 1120, "height": 896, "values": { "resolution": "1120:896 (5:4)" } },
        { "aspect": "17:15", "width": 1088, "height": 960, "values": { "resolution": "1088:960 (17:15)" } },
        { "aspect": "17:14", "width": 1088, "height": 896, "values": { "resolution": "1088:896 (17:14)" } },
        { "aspect": "17:13", "width": 1088, "height": 832, "values": { "resolution": "1088:832 (17:13)" } },
        { "aspect": "17:12", "width": 1088, "height": 768, "values": { "resolution": "1088:768 (17:12)" } },
        { "aspect": "1:1", "width": 1024, "height": 1024, "values": { "resolution": "1024:1024 (1:1)" } },
        { "aspect": "16:15", "width": 1024, "height": 960, "values": { "resolution": "1024:960 (16:15)" } },
        { "aspect": "8:7", "width": 1024, "height": 896, "values": { "resolution": "1024:896 (8:7)" } },
        { "aspect": "16:13", "width": 1024, "height": 832, "values": { "resolution": "1024:832 (16:13)" } },
        { "aspect": "15:17", "width": 960, "height": 1088, "values": { "resolution": "960:1088 (15:17)" } },
        { "aspect": "15:16", "width": 960, "height": 1024, "values": { "resolution": "960:1024 (15:16)" } },
        { "aspect": "15:14", "width": 960, "height": 896, "values": { "resolution": "960:896 (15:14)" } },
        { "aspect": "15:13", "width": 960, "height": 832, "values": { "resolution": "960:832 (15:13)" } },
        { "aspect": "7:9", "width": 896, "height": 1152, "values": { "resolution": "896:1152 (7:9)" } },
        { "aspect": "4:5", "width": 896, "height": 1120, "values": { "resolution": "896:1120 (4:5)" } },
        { "aspect": "14:17", "width": 896, "height": 1088, "values": { "resolution": "896:1088 (14:17)" } },
        { "aspect": "7:8", "width": 896, "height": 1024, "values": { "resolution": "896:1024 (7:8)" } },
        { "aspect": "14:15", "width": 896, "height": 960, "values": { "resolution": "896:960 (14:15)" } },
        { "aspect": "3:4", "width": 864, "height": 1152, "values": { "resolution": "864:1152 (3:4)" } },
        { "aspect": "2:3", "width": 832, "height": 1248, "values": { "resolution": "832:1248 (2:3)" } },
        { "aspect": "13:19", "width": 832, "height": 1216, "values": { "resolution": "832:1216 (13:19)" } },
        { "aspect": "13:18", "width": 832, "height": 1152, "values": { "resolution": "832:1152 (13:18)" } },
        { "aspect": "13:17", "width": 832, "height": 1088, "values": { "resolution": "832:1088 (13:17)" } },
        { "aspect": "13:16", "width": 832, "height": 1024, "values": { "resolution": "832:1024 (13:16)" } },
        { "aspect": "13:15", "width": 832, "height": 960, "values": { "resolution": "832:960 (13:15)" } },
        { "aspect": "5:8", "width": 800, "height": 1280, "values": { "resolution": "800:1280 (5:8)" } },
        { "aspect": "4:7", "width": 768, "height": 1344, "values": { "resolution": "768:1344 (4:7)" } },
        { "aspect": "3:5", "width": 768, "height": 1280, "values": { "resolution": "768:1280 (3:5)" } },
        { "aspect": "12:19", "width": 768, "height": 1216, "values": { "resolution": "768:1216 (12:19)" } },
        { "aspect": "12:17", "width": 768, "height": 1088, "values": { "resolution": "768:1088 (12:17)" } },
        { "aspect": "23:41", "width": 736, "height": 1312, "values": { "resolution": "736:1312 (23:41)" } },
        { "aspect": "11:23", "width": 704, "height": 1472, "values": { "resolution": "704:1472 (11:23)" } },
        { "aspect": "1:2", "width": 704, "height": 1408, "values": { "resolution": "704:1408 (1:2)" } },
        { "aspect": "11:21", "width": 704, "height": 1344, "values": { "resolution": "704:1344 (11:21)" } },
        { "aspect": "11:20", "width": 704, "height": 1280, "values": { "resolution": "704:1280 (11:20)" } },
        { "aspect": "11:19", "width": 704, "height": 1216, "values": { "resolution": "704:1216 (11:19)" } },
        { "aspect": "11:18", "width": 704, "height": 1152, "values": { "resolution": "704:1152 (11:18)" } },
        { "aspect": "5:12", "width": 640, "height": 1536, "values": { "resolution": "640:1536 (5:12)" } },
        { "aspect": "10:23", "width": 640, "height": 1472, "values": { "resolution": "640:1472 (10:23)" } },
        { "aspect": "5:11", "width": 640, "height": 1408, "values": { "resolution": "640:1408 (5:11)" } },
        { "aspect": "10:21", "width": 640, "height": 1344, "values": { "resolution": "640:1344 (10:21)" } },
        { "aspect": "3:8", "width": 576, "height": 1536, "values": { "resolution": "576:1536 (3:8)" } },
        { "aspect": "9:23", "width": 576, "height": 1472, "values": { "resolution": "576:1472 (9:23)" } },
        { "aspect": "9:22", "width": 576, "height": 1408, "values": { "resolution": "576:1408 (9:22)" } },
        { "aspect": "1:3", "width": 512, "height": 1536, "values": { "resolution": "512:1536 (1:3)" } }
      ]
    },
    {
      "id": "ideogram-2",
      "label": "Ideogram 2.0",
      "group": "Ideogram",
      "description": "Ideogram 2.0, the earlier Ideogram model, with bold typography. Text to image.",
      "prompt": { "mode": "required", "placeholder": "Describe the image, with any text in quotes..." },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["3:1", "16:9", "16:10", "3:2", "4:3", "1:1", "3:4", "2:3", "10:16", "9:16", "1:3"]
        },
        {
          "key": "style",
          "label": "Style",
          "type": "combo",
          "default": "auto",
          "options": [
            { "label": "Auto", "value": "auto" },
            { "label": "General", "value": "general" },
            { "label": "Realistic", "value": "realistic" },
            { "label": "Design", "value": "design" },
            { "label": "3D Render", "value": "render_3D" },
            { "label": "Anime", "value": "anime" }
          ],
          "help": "Realistic suits photos, Design graphics and lettering, General anything. Auto lets Ideogram choose."
        },
        {
          "key": "expand_prompt",
          "label": "Expand prompt",
          "type": "bool",
          "default": true,
          "help": "The model adds detail to your prompt first. Results can drift from what you wrote."
        },
        { "key": "negative_prompt", "label": "Negative prompt", "type": "textarea" },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/ideogram/ideogram-v2/generate",
        "body": {
          "prompt": "{{prompt}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "style": "{{fields.style}}",
          "expand_prompt": "{{fields.expand_prompt}}",
          "negative_prompt": "{{fields.negative_prompt}}",
          "seed": "{{fields.seed}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.088, "note": "RunComfy's price: $0.088 per image." }
    },
    {
      "id": "chrono-edit",
      "label": "Chrono Edit",
      "group": "Chrono & Upscale",
      "description": "NVIDIA ChronoEdit edits one image following your prompt while keeping its layout and lighting. The result keeps your image's shape, at 480p or 720p.",
      "prompt": { "mode": "required", "placeholder": "Describe the change..." },
      "references": { "mode": "required", "max": 1, "send_as": "data_url" },
      "fields": [
        { "key": "resolution", "label": "Resolution", "type": "combo", "default": "720p", "options": ["480p", "720p"] },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 2,
          "max": 50,
          "default": 8,
          "help": "How many passes refine the image. More is slower and can add detail."
        },
        {
          "key": "enable_prompt_expansion",
          "label": "Expand prompt",
          "type": "bool",
          "default": true,
          "help": "The model adds detail to your prompt first. Results can drift from what you wrote."
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/nvidia/chrono-edit/lora",
        "body": {
          "prompt": "{{prompt}}",
          "image_url": "{{image}}",
          "resolution": "{{fields.resolution}}",
          "num_inference_steps": "{{fields.num_inference_steps}}",
          "enable_prompt_expansion": "{{fields.enable_prompt_expansion}}",
          "seed": "{{fields.seed}}",
          "output_format": "png"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.02,
        "by_field": { "resolution": { "480p": 0.02, "720p": 0.03 } },
        "note": "RunComfy's price: $0.02 per image at 480p, $0.03 at 720p."
      }
    },
    {
      "id": "chrono-paintbrush",
      "label": "Chrono Paintbrush",
      "group": "Chrono & Upscale",
      "description": "NVIDIA ChronoEdit with its paintbrush LoRA. Sketch roughly on your image in black first, then describe what the sketch should become. Add one image, and a mask if only part of it should change.",
      "prompt": { "mode": "required", "placeholder": "What should the sketch become..." },
      "references": { "mode": "required", "max": 1, "send_as": "data_url" },
      "mask": { "mode": "optional", "paint": "black" },
      "fields": [
        { "key": "resolution", "label": "Resolution", "type": "combo", "default": "720p", "options": ["480p", "720p"] },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 2,
          "max": 50,
          "default": 8,
          "help": "How many passes refine the image. More is slower and can add detail."
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/nvidia/chrono-edit/lora/paintbrush",
        "body": {
          "prompt": "{{prompt}}",
          "image_url": "{{image}}",
          "mask_url": "{{mask}}",
          "resolution": "{{fields.resolution}}",
          "num_inference_steps": "{{fields.num_inference_steps}}",
          "seed": "{{fields.seed}}",
          "output_format": "png"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.02,
        "by_field": { "resolution": { "480p": 0.02, "720p": 0.03 } },
        "note": "RunComfy's price: $0.02 per image at 480p, $0.03 at 720p."
      }
    },
    {
      "id": "chrono-upscaler",
      "label": "Chrono Upscaler",
      "group": "Chrono & Upscale",
      "description": "NVIDIA ChronoEdit's upscaler sharpens and enlarges one image without changing its content. No prompt needed. RunComfy says it upscales to 4K but doesn't say exactly, so Wando can't show the result's size before the run.",
      "prompt": { "mode": "none" },
      "references": { "mode": "required", "max": 1, "send_as": "data_url" },
      "fields": [
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 2,
          "max": 50,
          "default": 30,
          "help": "How many passes refine the image. More is slower and can add detail."
        },
        {
          "key": "lora_scale",
          "label": "LoRA Scale",
          "type": "float_slider",
          "min": 0,
          "max": 2,
          "default": 1,
          "step": 0.05,
          "decimals": 2,
          "help": "How strongly the upscaling LoRA reworks the image. 1 is its standard strength."
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/nvidia/chrono-edit/lora/upscaler",
        "body": {
          "image_url": "{{image}}",
          "num_inference_steps": "{{fields.num_inference_steps}}",
          "lora_scale": "{{fields.lora_scale}}",
          "seed": "{{fields.seed}}",
          "output_format": "png"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.24,
        "note": "RunComfy lists $0.16 per image at 480p and $0.24 at 720p, and this endpoint has no setting for either, so the estimate uses $0.24."
      }
    },
    {
      "id": "crystal-upscaler",
      "label": "Crystal Upscaler",
      "group": "Chrono & Upscale",
      "description": "Clarity AI's Crystal Upscaler enlarges one image and restores detail, especially in portraits. No prompt needed.",
      "prompt": { "mode": "none" },
      "references": { "mode": "required", "max": 1, "send_as": "data_url" },
      "fields": [
        { "key": "scale_factor", "label": "Upscale", "type": "int_slider", "min": 1, "max": 16, "default": 2 },
        {
          "key": "creativity",
          "label": "Creativity",
          "type": "float_slider",
          "min": 0,
          "max": 10,
          "default": 0,
          "step": 0.5,
          "decimals": 1,
          "help": "Higher lets the upscaler invent more new detail. 0 stays closest to your image."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/clarityai/crystal-upscaler",
        "body": {
          "image_url": "{{image}}",
          "scale_factor": "{{fields.scale_factor}}",
          "creativity": "{{fields.creativity}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.14, "note": "RunComfy's price: $0.14 per image." },
      "upscale": { "field": "scale_factor" }
    },
    {
      "id": "recraft-v3",
      "label": "Recraft V3",
      "group": "More",
      "description": "Recraft V3 for illustrations, vector art and text in images. Vector styles may return SVG files.",
      "prompt": { "mode": "required" },
      "fields": [
        {
          "key": "image_size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "1024:1024 (1:1)",
          "options": [
            { "label": "2:1 (2048 x 1024)", "value": "2048:1024 (2:1)" },
            { "label": "16:9 (1820 x 1024)", "value": "1820:1024 (16:9)" },
            { "label": "5:3 (1707 x 1024)", "value": "1707:1024 (5:3)" },
            { "label": "3:2 (1536 x 1024)", "value": "1536:1024 (3:2)" },
            { "label": "7:5 (1434 x 1024)", "value": "1434:1024 (7:5)" },
            { "label": "4:3 (1365 x 1024)", "value": "1365:1024 (4:3)" },
            { "label": "5:4 (1280 x 1024)", "value": "1280:1024 (5:4)" },
            { "label": "1:1 (1024 x 1024)", "value": "1024:1024 (1:1)" },
            { "label": "4:5 (1024 x 1280)", "value": "1024:1280 (4:5)" },
            { "label": "3:4 (1024 x 1365)", "value": "1024:1365 (3:4)" },
            { "label": "5:7 (1024 x 1434)", "value": "1024:1434 (5:7)" },
            { "label": "2:3 (1024 x 1536)", "value": "1024:1536 (2:3)" },
            { "label": "3:5 (1024 x 1707)", "value": "1024:1707 (3:5)" },
            { "label": "9:16 (1024 x 1820)", "value": "1024:1820 (9:16)" },
            { "label": "1:2 (1024 x 2048)", "value": "1024:2048 (1:2)" }
          ]
        },
        {
          "key": "style",
          "label": "Style",
          "type": "combo",
          "default": "any",
          "options": [
            { "label": "Any", "value": "any" },
            { "label": "Realistic", "value": "realistic_image" },
            { "label": "Realistic: black and white", "value": "realistic_image/b_and_w" },
            { "label": "Realistic: hard flash", "value": "realistic_image/hard_flash" },
            { "label": "Realistic: HDR", "value": "realistic_image/hdr" },
            { "label": "Realistic: natural light", "value": "realistic_image/natural_light" },
            { "label": "Realistic: studio portrait", "value": "realistic_image/studio_portrait" },
            { "label": "Realistic: enterprise", "value": "realistic_image/enterprise" },
            { "label": "Realistic: motion blur", "value": "realistic_image/motion_blur" },
            { "label": "Realistic: evening light", "value": "realistic_image/evening_light" },
            { "label": "Realistic: faded nostalgia", "value": "realistic_image/faded_nostalgia" },
            { "label": "Realistic: forest life", "value": "realistic_image/forest_life" },
            { "label": "Realistic: mystic naturalism", "value": "realistic_image/mystic_naturalism" },
            { "label": "Realistic: natural tones", "value": "realistic_image/natural_tones" },
            { "label": "Realistic: organic calm", "value": "realistic_image/organic_calm" },
            { "label": "Realistic: real life glow", "value": "realistic_image/real_life_glow" },
            { "label": "Realistic: retro realism", "value": "realistic_image/retro_realism" },
            { "label": "Realistic: retro snapshot", "value": "realistic_image/retro_snapshot" },
            { "label": "Realistic: urban drama", "value": "realistic_image/urban_drama" },
            { "label": "Realistic: village realism", "value": "realistic_image/village_realism" },
            { "label": "Realistic: warm folk", "value": "realistic_image/warm_folk" },
            { "label": "Digital illustration", "value": "digital_illustration" },
            { "label": "Digital illustration: pixel art", "value": "digital_illustration/pixel_art" },
            { "label": "Digital illustration: hand drawn", "value": "digital_illustration/hand_drawn" },
            { "label": "Digital illustration: grain", "value": "digital_illustration/grain" },
            { "label": "Digital illustration: infantile sketch", "value": "digital_illustration/infantile_sketch" },
            { "label": "Digital illustration: 2D art poster", "value": "digital_illustration/2d_art_poster" },
            { "label": "Digital illustration: handmade 3D", "value": "digital_illustration/handmade_3d" },
            { "label": "Digital illustration: hand drawn outline", "value": "digital_illustration/hand_drawn_outline" },
            { "label": "Digital illustration: engraving color", "value": "digital_illustration/engraving_color" },
            { "label": "Digital illustration: 2D art poster 2", "value": "digital_illustration/2d_art_poster_2" },
            { "label": "Digital illustration: antiquarian", "value": "digital_illustration/antiquarian" },
            { "label": "Digital illustration: bold fantasy", "value": "digital_illustration/bold_fantasy" },
            { "label": "Digital illustration: child book", "value": "digital_illustration/child_book" },
            { "label": "Digital illustration: child books", "value": "digital_illustration/child_books" },
            { "label": "Digital illustration: cover", "value": "digital_illustration/cover" },
            { "label": "Digital illustration: crosshatch", "value": "digital_illustration/crosshatch" },
            { "label": "Digital illustration: digital engraving", "value": "digital_illustration/digital_engraving" },
            { "label": "Digital illustration: expressionism", "value": "digital_illustration/expressionism" },
            { "label": "Digital illustration: freehand details", "value": "digital_illustration/freehand_details" },
            { "label": "Digital illustration: grain 20", "value": "digital_illustration/grain_20" },
            { "label": "Digital illustration: graphic intensity", "value": "digital_illustration/graphic_intensity" },
            { "label": "Digital illustration: hard comics", "value": "digital_illustration/hard_comics" },
            { "label": "Digital illustration: long shadow", "value": "digital_illustration/long_shadow" },
            { "label": "Digital illustration: modern folk", "value": "digital_illustration/modern_folk" },
            { "label": "Digital illustration: multicolor", "value": "digital_illustration/multicolor" },
            { "label": "Digital illustration: neon calm", "value": "digital_illustration/neon_calm" },
            { "label": "Digital illustration: noir", "value": "digital_illustration/noir" },
            { "label": "Digital illustration: nostalgic pastel", "value": "digital_illustration/nostalgic_pastel" },
            { "label": "Digital illustration: outline details", "value": "digital_illustration/outline_details" },
            { "label": "Digital illustration: pastel gradient", "value": "digital_illustration/pastel_gradient" },
            { "label": "Digital illustration: pastel sketch", "value": "digital_illustration/pastel_sketch" },
            { "label": "Digital illustration: pop art", "value": "digital_illustration/pop_art" },
            { "label": "Digital illustration: pop renaissance", "value": "digital_illustration/pop_renaissance" },
            { "label": "Digital illustration: street art", "value": "digital_illustration/street_art" },
            { "label": "Digital illustration: tablet sketch", "value": "digital_illustration/tablet_sketch" },
            { "label": "Digital illustration: urban glow", "value": "digital_illustration/urban_glow" },
            { "label": "Digital illustration: urban sketching", "value": "digital_illustration/urban_sketching" },
            { "label": "Digital illustration: vanilla dreams", "value": "digital_illustration/vanilla_dreams" },
            { "label": "Digital illustration: young adult book", "value": "digital_illustration/young_adult_book" },
            { "label": "Digital illustration: young adult book 2", "value": "digital_illustration/young_adult_book_2" },
            { "label": "Vector illustration", "value": "vector_illustration" },
            { "label": "Vector illustration: bold stroke", "value": "vector_illustration/bold_stroke" },
            { "label": "Vector illustration: chemistry", "value": "vector_illustration/chemistry" },
            { "label": "Vector illustration: colored stencil", "value": "vector_illustration/colored_stencil" },
            { "label": "Vector illustration: contour pop art", "value": "vector_illustration/contour_pop_art" },
            { "label": "Vector illustration: cosmics", "value": "vector_illustration/cosmics" },
            { "label": "Vector illustration: cutout", "value": "vector_illustration/cutout" },
            { "label": "Vector illustration: depressive", "value": "vector_illustration/depressive" },
            { "label": "Vector illustration: editorial", "value": "vector_illustration/editorial" },
            { "label": "Vector illustration: emotional flat", "value": "vector_illustration/emotional_flat" },
            { "label": "Vector illustration: infographical", "value": "vector_illustration/infographical" },
            { "label": "Vector illustration: marker outline", "value": "vector_illustration/marker_outline" },
            { "label": "Vector illustration: mosaic", "value": "vector_illustration/mosaic" },
            { "label": "Vector illustration: naivector", "value": "vector_illustration/naivector" },
            { "label": "Vector illustration: roundish flat", "value": "vector_illustration/roundish_flat" },
            { "label": "Vector illustration: segmented colors", "value": "vector_illustration/segmented_colors" },
            { "label": "Vector illustration: sharp contrast", "value": "vector_illustration/sharp_contrast" },
            { "label": "Vector illustration: thin", "value": "vector_illustration/thin" },
            { "label": "Vector illustration: vector photo", "value": "vector_illustration/vector_photo" },
            { "label": "Vector illustration: vivid shapes", "value": "vector_illustration/vivid_shapes" },
            { "label": "Vector illustration: engraving", "value": "vector_illustration/engraving" },
            { "label": "Vector illustration: line art", "value": "vector_illustration/line_art" },
            { "label": "Vector illustration: line circuit", "value": "vector_illustration/line_circuit" },
            { "label": "Vector illustration: linocut", "value": "vector_illustration/linocut" }
          ]
        },
        { "key": "colors", "label": "Colors", "type": "palette", "max": 10, "item": "{{color.r}}_{{color.g}}_{{color.b}}" }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/recraft/recraft-v3/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "image_size": "{{fields.image_size}}",
          "style": "{{fields.style}}",
          "colors": "{{fields.colors}}"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.04,
        "by_field": {
          "style": {
            "vector_illustration": 0.08,
            "vector_illustration/bold_stroke": 0.08,
            "vector_illustration/chemistry": 0.08,
            "vector_illustration/colored_stencil": 0.08,
            "vector_illustration/contour_pop_art": 0.08,
            "vector_illustration/cosmics": 0.08,
            "vector_illustration/cutout": 0.08,
            "vector_illustration/depressive": 0.08,
            "vector_illustration/editorial": 0.08,
            "vector_illustration/emotional_flat": 0.08,
            "vector_illustration/infographical": 0.08,
            "vector_illustration/marker_outline": 0.08,
            "vector_illustration/mosaic": 0.08,
            "vector_illustration/naivector": 0.08,
            "vector_illustration/roundish_flat": 0.08,
            "vector_illustration/segmented_colors": 0.08,
            "vector_illustration/sharp_contrast": 0.08,
            "vector_illustration/thin": 0.08,
            "vector_illustration/vector_photo": 0.08,
            "vector_illustration/vivid_shapes": 0.08,
            "vector_illustration/engraving": 0.08,
            "vector_illustration/line_art": 0.08,
            "vector_illustration/line_circuit": 0.08,
            "vector_illustration/linocut": 0.08
          }
        },
        "note": "RunComfy's price: $0.04 per image, $0.08 for vector styles."
      },
      "sizes": [
        { "aspect": "2:1", "width": 2048, "height": 1024, "values": { "image_size": "2048:1024 (2:1)" } },
        { "aspect": "16:9", "width": 1820, "height": 1024, "values": { "image_size": "1820:1024 (16:9)" } },
        { "aspect": "5:3", "width": 1707, "height": 1024, "values": { "image_size": "1707:1024 (5:3)" } },
        { "aspect": "3:2", "width": 1536, "height": 1024, "values": { "image_size": "1536:1024 (3:2)" } },
        { "aspect": "7:5", "width": 1434, "height": 1024, "values": { "image_size": "1434:1024 (7:5)" } },
        { "aspect": "4:3", "width": 1365, "height": 1024, "values": { "image_size": "1365:1024 (4:3)" } },
        { "aspect": "5:4", "width": 1280, "height": 1024, "values": { "image_size": "1280:1024 (5:4)" } },
        { "aspect": "1:1", "width": 1024, "height": 1024, "values": { "image_size": "1024:1024 (1:1)" } },
        { "aspect": "4:5", "width": 1024, "height": 1280, "values": { "image_size": "1024:1280 (4:5)" } },
        { "aspect": "3:4", "width": 1024, "height": 1365, "values": { "image_size": "1024:1365 (3:4)" } },
        { "aspect": "5:7", "width": 1024, "height": 1434, "values": { "image_size": "1024:1434 (5:7)" } },
        { "aspect": "2:3", "width": 1024, "height": 1536, "values": { "image_size": "1024:1536 (2:3)" } },
        { "aspect": "3:5", "width": 1024, "height": 1707, "values": { "image_size": "1024:1707 (3:5)" } },
        { "aspect": "9:16", "width": 1024, "height": 1820, "values": { "image_size": "1024:1820 (9:16)" } },
        { "aspect": "1:2", "width": 1024, "height": 2048, "values": { "image_size": "1024:2048 (1:2)" } }
      ]
    },
    {
      "id": "vidu-q2",
      "label": "Vidu Q2",
      "group": "More",
      "description": "ShengShu Vidu Q2 images up to 4K. Add up to 7 images of a subject to keep it consistent in a new picture.",
      "prompt": { "mode": "required", "placeholder": "Describe the image (up to 1500 characters)..." },
      "references": { "mode": "optional", "max": 7, "send_as": "data_url", "role": "guide" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "16:9",
          "options": ["16:9", "9:16", "1:1"]
        },
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "default": "1080p",
          "options": ["1080p", { "label": "2K", "value": "2k" }, { "label": "4K", "value": "4k" }]
        },
        { "type": "seed" }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/vidu/q2/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "images": "{{images}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "resolution": "{{fields.resolution}}",
          "seed": "{{fields.seed}}"
        }
      },
      "with_references": {
        "request": { "url": "https://model-api.runcomfy.net/v1/models/vidu/q2/reference-to-image" },
        "pricing": {
          "amount": "cost",
          "per_image": 0.05,
          "by_field": { "resolution": { "1080p": 0.05, "2k": 0.07, "4k": 0.08 } },
          "note": "RunComfy's price with reference images: $0.05 per image at 1080p, $0.07 at 2K, $0.08 at 4K."
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.03,
        "note": "RunComfy's price: $0.03 per image. With reference images: $0.05 at 1080p, $0.07 at 2K, $0.08 at 4K."
      }
    },
    {
      "id": "grok-2-image",
      "label": "Grok 2 Image",
      "group": "More",
      "description": "xAI's Grok 2 image model, text to image. Keep the prompt under 1024 characters.",
      "prompt": { "mode": "required" },
      "fields": [{ "key": "num_images", "label": "Images", "type": "int_slider", "min": 1, "max": 10, "default": 1 }],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/x-ai/grok-2/image",
        "body": { "prompt": "{{prompt}}", "num_images": "{{fields.num_images}}" }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.08,
        "count_field": "num_images",
        "note": "RunComfy's price: $0.08 per image."
      }
    },
    {
      "id": "longcat-image",
      "label": "LongCat Image",
      "group": "More",
      "description": "Meituan LongCat Image, strong at Chinese and English text in images. Add an image to edit it instead.",
      "prompt": { "mode": "required" },
      "references": { "mode": "optional", "max": 1, "send_as": "data_url" },
      "fields": [
        {
          "key": "image_size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "landscape_4_3",
          "options": [
            { "label": "1:1 HD", "value": "square_hd" },
            { "label": "1:1", "value": "square" },
            { "label": "3:4", "value": "portrait_4_3" },
            { "label": "9:16", "value": "portrait_16_9" },
            { "label": "4:3", "value": "landscape_4_3" },
            { "label": "16:9", "value": "landscape_16_9" }
          ]
        },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 1,
          "max": 50,
          "default": 28,
          "help": "How many passes refine the image. More is slower and can add detail."
        },
        {
          "key": "guidance_scale",
          "label": "Guidance",
          "type": "float_slider",
          "min": 1,
          "max": 20,
          "default": 4.5,
          "step": 0.5,
          "decimals": 1,
          "help": "How closely the image follows your prompt. Higher follows it more strictly."
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/meituan/longcat-image/text-to-image",
        "body": {
          "prompt": "{{prompt}}",
          "image_url": "{{image}}",
          "image_size": "{{fields.image_size}}",
          "num_inference_steps": "{{fields.num_inference_steps}}",
          "guidance_scale": "{{fields.guidance_scale}}",
          "seed": "{{fields.seed}}",
          "output_format": "png"
        }
      },
      "with_references": {
        "fields": ["num_inference_steps", "guidance_scale", "seed"],
        "request": { "url": "https://model-api.runcomfy.net/v1/models/meituan/longcat-image/edit" },
        "pricing": { "amount": "cost", "per_image": 0.15, "note": "RunComfy's price: $0.15 per edited image." }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": {
        "amount": "cost",
        "per_image": 0.145,
        "note": "RunComfy's price: $0.145 per image, $0.15 per edited image."
      }
    },
    {
      "id": "imagineart-1-5",
      "label": "ImagineArt 1.5",
      "group": "More",
      "description": "ImagineArt 1.5 Preview, text to image with realistic lighting and clean typography.",
      "prompt": { "mode": "required" },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "3:1", "1:3", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"]
        },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/imagineart/imagineart-1.5-preview/text-to-image",
        "body": { "prompt": "{{prompt}}", "aspect_ratio": "{{fields.aspect_ratio}}", "seed": "{{fields.seed}}" }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.033, "note": "RunComfy's price: $0.033 per image." }
    },
    {
      "id": "step1x-edit-2",
      "label": "Step1X Edit 2",
      "group": "More",
      "description": "StepFun Step1X-Edit v2 edits one image from plain instructions and keeps faces and identity. Add one image.",
      "prompt": { "mode": "required", "placeholder": "Describe the change..." },
      "references": { "mode": "required", "max": 1, "send_as": "data_url" },
      "fields": [
        {
          "key": "enable_thinking_mode",
          "label": "Thinking",
          "type": "bool",
          "default": true,
          "help": "A language model works out abstract instructions before the edit."
        },
        {
          "key": "enable_reflection_mode",
          "label": "Reflection",
          "type": "bool",
          "default": true,
          "help": "Reviews the result, corrects unintended changes and decides when the edit is done."
        },
        { "key": "negative_prompt", "label": "Negative prompt", "type": "textarea" },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/stepfun-ai/stepx-edit2",
        "body": {
          "prompt": "{{prompt}}",
          "image_url": "{{image}}",
          "negative_prompt": "{{fields.negative_prompt}}",
          "enable_thinking_mode": "{{fields.enable_thinking_mode}}",
          "enable_reflection_mode": "{{fields.enable_reflection_mode}}",
          "seed": "{{fields.seed}}",
          "output_format": "png"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.2, "note": "RunComfy's price: $0.20 per image." }
    },
    {
      "id": "ovis-image",
      "label": "Ovis Image",
      "group": "More",
      "description": "AIDC Ovis Image, a fast text-to-image model that is good at text in images.",
      "prompt": { "mode": "required" },
      "fields": [
        {
          "key": "image_size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "landscape_4_3",
          "options": [
            { "label": "1:1 HD", "value": "square_hd" },
            { "label": "1:1", "value": "square" },
            { "label": "3:4", "value": "portrait_4_3" },
            { "label": "9:16", "value": "portrait_16_9" },
            { "label": "4:3", "value": "landscape_4_3" },
            { "label": "16:9", "value": "landscape_16_9" }
          ]
        },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 1,
          "max": 50,
          "default": 28,
          "help": "How many passes refine the image. More is slower and can add detail."
        },
        {
          "key": "guidance_scale",
          "label": "Guidance",
          "type": "float_slider",
          "min": 1,
          "max": 20,
          "default": 5,
          "step": 0.5,
          "decimals": 1,
          "help": "How closely the image follows your prompt. Higher follows it more strictly."
        },
        { "key": "negative_prompt", "label": "Negative prompt", "type": "textarea" },
        { "type": "seed", "max": 2147483647 }
      ],
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/aidc-ai/ovis-image",
        "body": {
          "prompt": "{{prompt}}",
          "image_size": "{{fields.image_size}}",
          "negative_prompt": "{{fields.negative_prompt}}",
          "num_inference_steps": "{{fields.num_inference_steps}}",
          "guidance_scale": "{{fields.guidance_scale}}",
          "seed": "{{fields.seed}}",
          "output_format": "png"
        }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.012, "note": "RunComfy's price: $0.012 per image." }
    },
    {
      "id": "sam-3",
      "label": "SAM 3",
      "group": "More",
      "description": "Meta SAM 3 finds everything in one image that matches a short label, such as Person, and returns the segmentation as images. Add one image.",
      "prompt": { "mode": "required", "placeholder": "What to find, e.g. Person" },
      "magic_prompt": false,
      "references": { "mode": "required", "max": 1, "send_as": "data_url" },
      "request": {
        "method": "POST",
        "url": "https://model-api.runcomfy.net/v1/models/meta/sam-3/image-to-image",
        "body": { "image_url": "{{image}}", "text_prompt": "{{prompt}}" }
      },
      "poll": {
        "url": "{{submit.status_url}}",
        "status": "status",
        "done": ["completed"],
        "failed": ["cancelled"],
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "fetch": {
        "url": "{{submit.result_url}}",
        "query": { "include_cost": "true" },
        "status": "status",
        "failed": ["failed", "cancelled"],
        "error": "error"
      },
      "result": { "images": ["output.images", "output.image"] },
      "pricing": { "amount": "cost", "per_image": 0.005, "note": "RunComfy's price: $0.005 per image." }
    }
  ]
}
