{
  "wando_provider": 1,
  "id": "black-forest-labs",
  "name": "Black Forest Labs",
  "version": "1.2.1",
  "author": "Wando",
  "updated": "2026-10-20",
  "docs_url": "https://docs.bfl.ai/flux_3/flux3_image_overview",
  "update_url": "https://wandostudios.com/files/bblog/black-forest-labs.wandoprovider",
  "hosts": [
    "api.bfl.ai",
    "api.*.bfl.ai"
  ],
  "auth": {
    "header": "x-key",
    "prefix": "",
    "label": "BFL API key",
    "help_url": "https://dashboard.bfl.ai"
  },
  "notes": "A proof of concept, checked on 2026-10-20 and not maintained by Wando; if you change it, delete update_url. Twenty-one hosted BFL image endpoints support commercial output under the API terms. FLUX 3 Image and Klein take ten references and placement/edit boxes; Image adds grounding and Klein exact pixels; tools include outpainting, erase, deblur and virtual try-on. See the companion README for limits, pricing and licensing.",
  "models": [
    {
      "id": "flux-3-image",
      "label": "FLUX 3 Image",
      "group": "FLUX 3",
      "prompt": {
        "mode": "required"
      },
      "references": {
        "mode": "optional",
        "max": 10,
        "send_as": "base64",
        "max_megapixels": 16,
        "min_side": 256
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect ratio",
          "type": "aspect_combo",
          "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",
            "9:21"
          ],
          "default": "auto"
        },
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "options": [
            {
              "label": "0.6 MP",
              "value": "768sq"
            },
            {
              "label": "1K",
              "value": "1k"
            },
            {
              "label": "1.5K",
              "value": "1.5k"
            },
            {
              "label": "2K",
              "value": "2k"
            },
            {
              "label": "4K",
              "value": "4k"
            }
          ],
          "default": "1k"
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 7 the most permissive; the default is 2. BFL approves the highest level each account may use and refuses a level above it.",
          "type": "int_slider",
          "min": 0,
          "max": 7,
          "default": 2
        },
        {
          "key": "grounding",
          "label": "Web and image search",
          "type": "bool",
          "default": true
        },
        {
          "key": "layout",
          "label": "Layout and edit regions",
          "type": "bounding_boxes",
          "help": "Mention each box as <name> in your prompt, using coordinates from 0 to 1000. Source images follow reference-panel order; boxes guide placement and edits."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-3-image",
        "body": {
          "images": "{{images}}",
          "prompt": "{{prompt}}\n{{fields.layout}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "resolution": "{{fields.resolution}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "grounding": "{{fields.grounding}}",
          "version": "latest"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "note": "Published resolution rates. Actual submission credits override estimates.",
        "by_field": {
          "resolution": {
            "768sq": 0.041,
            "1k": 0.048,
            "1.5k": 0.07,
            "2k": 0.1,
            "4k": 0.607
          }
        }
      }
    },
    {
      "id": "flux-3-image-klein",
      "label": "FLUX 3 Klein",
      "group": "FLUX 3",
      "prompt": {
        "mode": "required"
      },
      "references": {
        "mode": "optional",
        "max": 10,
        "send_as": "base64",
        "max_megapixels": 16,
        "min_side": 256
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect ratio",
          "type": "aspect_combo",
          "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",
            "9:21"
          ],
          "default": "auto"
        },
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "options": [
            {
              "label": "0.6 MP",
              "value": "768sq"
            },
            {
              "label": "1K",
              "value": "1k"
            },
            {
              "label": "1.5K",
              "value": "1.5k"
            },
            {
              "label": "2K",
              "value": "2k"
            },
            {
              "label": "4K",
              "value": "4k"
            }
          ],
          "default": "1k"
        },
        {
          "key": "width",
          "label": "Width",
          "type": "int",
          "min": 64,
          "max": 6256,
          "default": 1024
        },
        {
          "key": "height",
          "label": "Height",
          "type": "int",
          "min": 64,
          "max": 6256,
          "default": 1024
        },
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 7 the most permissive; the default is 2. BFL approves the highest level each account may use and refuses a level above it.",
          "type": "int_slider",
          "min": 0,
          "max": 7,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            }
          ],
          "default": "png"
        },
        {
          "key": "steps",
          "label": "Steps",
          "help": "More sampling passes can improve detail, but take longer to generate.",
          "type": "int",
          "min": 1,
          "max": 16,
          "default": 16
        },
        {
          "key": "layout",
          "label": "Layout and edit regions",
          "type": "bounding_boxes",
          "help": "Mention each box as <name> in your prompt, using coordinates from 0 to 1000. Source images follow reference-panel order; boxes guide placement and edits."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-3-image-klein",
        "body": {
          "images": "{{images}}",
          "prompt": "{{prompt}}\n{{fields.layout}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "resolution": "{{fields.resolution}}",
          "seed": "{{fields.seed}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}",
          "steps": "{{fields.steps}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "note": "Published resolution rates. Actual submission credits override estimates.",
        "by_field": {
          "resolution": {
            "768sq": 0.008,
            "1k": 0.009,
            "1.5k": 0.011,
            "2k": 0.014,
            "4k": 0.036
          }
        }
      },
      "output_limits": {
        "max_megapixels": 16.82
      },
      "variants": {
        "label": "Size mode",
        "default": "tiers",
        "options": [
          {
            "id": "tiers",
            "label": "Ratio & resolution",
            "description": "Choose a shape and an equal-area tier. Auto follows the first reference, or the prompt without one; BFL picks the exact pixels.",
            "fields": [
              "aspect_ratio",
              "resolution",
              "seed",
              "safety_tolerance",
              "output_format",
              "steps",
              "layout"
            ]
          },
          {
            "id": "custom",
            "label": "Custom (exact pixels)",
            "description": "Enter an exact width and height, each 64 to 6256 px and up to 16.8 MP.",
            "fields": [
              "width",
              "height",
              "seed",
              "safety_tolerance",
              "output_format",
              "steps",
              "layout"
            ],
            "request": {
              "method": "POST",
              "url": "https://api.bfl.ai/v1/flux-3-image-klein",
              "body": {
                "images": "{{images}}",
                "prompt": "{{prompt}}\n{{fields.layout}}",
                "width": "{{fields.width}}",
                "height": "{{fields.height}}",
                "seed": "{{fields.seed}}",
                "safety_tolerance": "{{fields.safety_tolerance}}",
                "output_format": "{{fields.output_format}}",
                "steps": "{{fields.steps}}"
              }
            },
            "pricing": {
              "amount": "submit.cost",
              "amount_multiplier": 0.01,
              "per_image_by_output_pixels": [
                {
                  "max_pixels": 589824,
                  "price": 0.008
                },
                {
                  "max_pixels": 1048576,
                  "price": 0.009
                },
                {
                  "max_pixels": 2097152,
                  "price": 0.011
                },
                {
                  "max_pixels": 4194304,
                  "price": 0.014
                },
                {
                  "price": 0.036
                }
              ],
              "note": "Priced at the published tier whose area covers the size; BFL has not said how exact sizes are billed. Actual submission credits override estimates."
            }
          }
        ]
      }
    },
    {
      "id": "flux-2-max",
      "label": "Max",
      "group": "FLUX.2",
      "prompt": {
        "mode": "required"
      },
      "references": {
        "mode": "optional",
        "max": 8,
        "send_as": "base64"
      },
      "fields": [
        {
          "key": "canvas",
          "label": "Size",
          "type": "size",
          "options": [
            {
              "label": "Match input",
              "value": null
            },
            {
              "label": "768x768",
              "value": {
                "width": 768,
                "height": 768
              }
            },
            {
              "label": "1024x1024",
              "value": {
                "width": 1024,
                "height": 1024
              }
            },
            {
              "label": "1536x1536",
              "value": {
                "width": 1536,
                "height": 1536
              }
            },
            {
              "label": "1984x1984",
              "value": {
                "width": 1984,
                "height": 1984
              }
            },
            {
              "label": "1168x496",
              "value": {
                "width": 1168,
                "height": 496
              }
            },
            {
              "label": "1568x672",
              "value": {
                "width": 1568,
                "height": 672
              }
            },
            {
              "label": "2352x1008",
              "value": {
                "width": 2352,
                "height": 1008
              }
            },
            {
              "label": "3024x1296",
              "value": {
                "width": 3024,
                "height": 1296
              }
            },
            {
              "label": "1088x544",
              "value": {
                "width": 1088,
                "height": 544
              }
            },
            {
              "label": "1456x720",
              "value": {
                "width": 1456,
                "height": 720
              }
            },
            {
              "label": "2176x1088",
              "value": {
                "width": 2176,
                "height": 1088
              }
            },
            {
              "label": "2800x1408",
              "value": {
                "width": 2800,
                "height": 1408
              }
            },
            {
              "label": "1024x576",
              "value": {
                "width": 1024,
                "height": 576
              }
            },
            {
              "label": "1360x768",
              "value": {
                "width": 1360,
                "height": 768
              }
            },
            {
              "label": "2048x1152",
              "value": {
                "width": 2048,
                "height": 1152
              }
            },
            {
              "label": "2640x1488",
              "value": {
                "width": 2640,
                "height": 1488
              }
            },
            {
              "label": "944x624",
              "value": {
                "width": 944,
                "height": 624
              }
            },
            {
              "label": "1248x832",
              "value": {
                "width": 1248,
                "height": 832
              }
            },
            {
              "label": "1888x1248",
              "value": {
                "width": 1888,
                "height": 1248
              }
            },
            {
              "label": "2432x1616",
              "value": {
                "width": 2432,
                "height": 1616
              }
            },
            {
              "label": "912x656",
              "value": {
                "width": 912,
                "height": 656
              }
            },
            {
              "label": "1216x864",
              "value": {
                "width": 1216,
                "height": 864
              }
            },
            {
              "label": "1824x1296",
              "value": {
                "width": 1824,
                "height": 1296
              }
            },
            {
              "label": "2352x1680",
              "value": {
                "width": 2352,
                "height": 1680
              }
            },
            {
              "label": "880x672",
              "value": {
                "width": 880,
                "height": 672
              }
            },
            {
              "label": "1184x880",
              "value": {
                "width": 1184,
                "height": 880
              }
            },
            {
              "label": "1776x1328",
              "value": {
                "width": 1776,
                "height": 1328
              }
            },
            {
              "label": "2288x1712",
              "value": {
                "width": 2288,
                "height": 1712
              }
            },
            {
              "label": "864x688",
              "value": {
                "width": 864,
                "height": 688
              }
            },
            {
              "label": "1152x912",
              "value": {
                "width": 1152,
                "height": 912
              }
            },
            {
              "label": "1712x1376",
              "value": {
                "width": 1712,
                "height": 1376
              }
            },
            {
              "label": "2224x1776",
              "value": {
                "width": 2224,
                "height": 1776
              }
            },
            {
              "label": "688x864",
              "value": {
                "width": 688,
                "height": 864
              }
            },
            {
              "label": "912x1152",
              "value": {
                "width": 912,
                "height": 1152
              }
            },
            {
              "label": "1376x1712",
              "value": {
                "width": 1376,
                "height": 1712
              }
            },
            {
              "label": "1776x2224",
              "value": {
                "width": 1776,
                "height": 2224
              }
            },
            {
              "label": "672x880",
              "value": {
                "width": 672,
                "height": 880
              }
            },
            {
              "label": "880x1184",
              "value": {
                "width": 880,
                "height": 1184
              }
            },
            {
              "label": "1328x1776",
              "value": {
                "width": 1328,
                "height": 1776
              }
            },
            {
              "label": "1712x2288",
              "value": {
                "width": 1712,
                "height": 2288
              }
            },
            {
              "label": "656x912",
              "value": {
                "width": 656,
                "height": 912
              }
            },
            {
              "label": "864x1216",
              "value": {
                "width": 864,
                "height": 1216
              }
            },
            {
              "label": "1296x1824",
              "value": {
                "width": 1296,
                "height": 1824
              }
            },
            {
              "label": "1680x2352",
              "value": {
                "width": 1680,
                "height": 2352
              }
            },
            {
              "label": "624x944",
              "value": {
                "width": 624,
                "height": 944
              }
            },
            {
              "label": "832x1248",
              "value": {
                "width": 832,
                "height": 1248
              }
            },
            {
              "label": "1248x1888",
              "value": {
                "width": 1248,
                "height": 1888
              }
            },
            {
              "label": "1616x2432",
              "value": {
                "width": 1616,
                "height": 2432
              }
            },
            {
              "label": "576x1024",
              "value": {
                "width": 576,
                "height": 1024
              }
            },
            {
              "label": "768x1360",
              "value": {
                "width": 768,
                "height": 1360
              }
            },
            {
              "label": "1152x2048",
              "value": {
                "width": 1152,
                "height": 2048
              }
            },
            {
              "label": "1488x2640",
              "value": {
                "width": 1488,
                "height": 2640
              }
            },
            {
              "label": "544x1088",
              "value": {
                "width": 544,
                "height": 1088
              }
            },
            {
              "label": "720x1456",
              "value": {
                "width": 720,
                "height": 1456
              }
            },
            {
              "label": "1088x2176",
              "value": {
                "width": 1088,
                "height": 2176
              }
            },
            {
              "label": "1408x2800",
              "value": {
                "width": 1408,
                "height": 2800
              }
            },
            {
              "label": "496x1168",
              "value": {
                "width": 496,
                "height": 1168
              }
            },
            {
              "label": "672x1568",
              "value": {
                "width": 672,
                "height": 1568
              }
            },
            {
              "label": "1008x2352",
              "value": {
                "width": 1008,
                "height": 2352
              }
            },
            {
              "label": "1296x3024",
              "value": {
                "width": 1296,
                "height": 3024
              }
            }
          ],
          "default": {
            "width": 1024,
            "height": 1024
          }
        },
        {
          "key": "disable_pup",
          "label": "Keep prompt exactly as written",
          "type": "bool",
          "default": true
        },
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "width",
          "label": "Width",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "height",
          "label": "Height",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 7 the most permissive; the default is 2. BFL approves the highest level each account may use and refuses a level above it.",
          "type": "int_slider",
          "min": 0,
          "max": 7,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-2-max",
        "body": {
          "input_image": "{{images[0]}}",
          "input_image_2": "{{images[1]}}",
          "input_image_3": "{{images[2]}}",
          "input_image_4": "{{images[3]}}",
          "input_image_5": "{{images[4]}}",
          "input_image_6": "{{images[5]}}",
          "input_image_7": "{{images[6]}}",
          "input_image_8": "{{images[7]}}",
          "prompt": "{{prompt}}",
          "disable_pup": "{{fields.disable_pup}}",
          "seed": "{{fields.seed}}",
          "width": "{{fields.canvas.width}}",
          "height": "{{fields.canvas.height}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "per_request": 0.04,
        "per_output_megapixel_block": 0.03,
        "output_megapixel_block_size": 1,
        "per_input_megapixel_block": 0.03,
        "input_megapixel_block_size": 1,
        "note": "Published rates per started MP; Match input is priced once the size is known. Actual submission credits override estimates."
      },
      "output_limits": {
        "max_megapixels": 4
      },
      "variants": {
        "label": "Size mode",
        "default": "presets",
        "options": [
          {
            "id": "presets",
            "label": "Ratio & size",
            "description": "Choose a shape and a preset pixel size, or match the input where supported.",
            "fields": [
              "canvas",
              "disable_pup",
              "seed",
              "safety_tolerance",
              "output_format"
            ]
          },
          {
            "id": "custom",
            "label": "Custom (exact pixels)",
            "description": "Enter an exact width and height within the endpoint's canvas limits.",
            "fields": [
              "width",
              "height",
              "disable_pup",
              "seed",
              "safety_tolerance",
              "output_format"
            ],
            "request": {
              "method": "POST",
              "url": "https://api.bfl.ai/v1/flux-2-max",
              "body": {
                "input_image": "{{images[0]}}",
                "input_image_2": "{{images[1]}}",
                "input_image_3": "{{images[2]}}",
                "input_image_4": "{{images[3]}}",
                "input_image_5": "{{images[4]}}",
                "input_image_6": "{{images[5]}}",
                "input_image_7": "{{images[6]}}",
                "input_image_8": "{{images[7]}}",
                "prompt": "{{prompt}}",
                "disable_pup": "{{fields.disable_pup}}",
                "seed": "{{fields.seed}}",
                "width": "{{fields.width}}",
                "height": "{{fields.height}}",
                "safety_tolerance": "{{fields.safety_tolerance}}",
                "output_format": "{{fields.output_format}}"
              }
            }
          }
        ]
      }
    },
    {
      "id": "flux-2-pro",
      "label": "Pro",
      "group": "FLUX.2",
      "prompt": {
        "mode": "required"
      },
      "references": {
        "mode": "optional",
        "max": 8,
        "send_as": "base64"
      },
      "fields": [
        {
          "key": "canvas",
          "label": "Size",
          "type": "size",
          "options": [
            {
              "label": "Match input",
              "value": null
            },
            {
              "label": "768x768",
              "value": {
                "width": 768,
                "height": 768
              }
            },
            {
              "label": "1024x1024",
              "value": {
                "width": 1024,
                "height": 1024
              }
            },
            {
              "label": "1536x1536",
              "value": {
                "width": 1536,
                "height": 1536
              }
            },
            {
              "label": "1984x1984",
              "value": {
                "width": 1984,
                "height": 1984
              }
            },
            {
              "label": "1168x496",
              "value": {
                "width": 1168,
                "height": 496
              }
            },
            {
              "label": "1568x672",
              "value": {
                "width": 1568,
                "height": 672
              }
            },
            {
              "label": "2352x1008",
              "value": {
                "width": 2352,
                "height": 1008
              }
            },
            {
              "label": "3024x1296",
              "value": {
                "width": 3024,
                "height": 1296
              }
            },
            {
              "label": "1088x544",
              "value": {
                "width": 1088,
                "height": 544
              }
            },
            {
              "label": "1456x720",
              "value": {
                "width": 1456,
                "height": 720
              }
            },
            {
              "label": "2176x1088",
              "value": {
                "width": 2176,
                "height": 1088
              }
            },
            {
              "label": "2800x1408",
              "value": {
                "width": 2800,
                "height": 1408
              }
            },
            {
              "label": "1024x576",
              "value": {
                "width": 1024,
                "height": 576
              }
            },
            {
              "label": "1360x768",
              "value": {
                "width": 1360,
                "height": 768
              }
            },
            {
              "label": "2048x1152",
              "value": {
                "width": 2048,
                "height": 1152
              }
            },
            {
              "label": "2640x1488",
              "value": {
                "width": 2640,
                "height": 1488
              }
            },
            {
              "label": "944x624",
              "value": {
                "width": 944,
                "height": 624
              }
            },
            {
              "label": "1248x832",
              "value": {
                "width": 1248,
                "height": 832
              }
            },
            {
              "label": "1888x1248",
              "value": {
                "width": 1888,
                "height": 1248
              }
            },
            {
              "label": "2432x1616",
              "value": {
                "width": 2432,
                "height": 1616
              }
            },
            {
              "label": "912x656",
              "value": {
                "width": 912,
                "height": 656
              }
            },
            {
              "label": "1216x864",
              "value": {
                "width": 1216,
                "height": 864
              }
            },
            {
              "label": "1824x1296",
              "value": {
                "width": 1824,
                "height": 1296
              }
            },
            {
              "label": "2352x1680",
              "value": {
                "width": 2352,
                "height": 1680
              }
            },
            {
              "label": "880x672",
              "value": {
                "width": 880,
                "height": 672
              }
            },
            {
              "label": "1184x880",
              "value": {
                "width": 1184,
                "height": 880
              }
            },
            {
              "label": "1776x1328",
              "value": {
                "width": 1776,
                "height": 1328
              }
            },
            {
              "label": "2288x1712",
              "value": {
                "width": 2288,
                "height": 1712
              }
            },
            {
              "label": "864x688",
              "value": {
                "width": 864,
                "height": 688
              }
            },
            {
              "label": "1152x912",
              "value": {
                "width": 1152,
                "height": 912
              }
            },
            {
              "label": "1712x1376",
              "value": {
                "width": 1712,
                "height": 1376
              }
            },
            {
              "label": "2224x1776",
              "value": {
                "width": 2224,
                "height": 1776
              }
            },
            {
              "label": "688x864",
              "value": {
                "width": 688,
                "height": 864
              }
            },
            {
              "label": "912x1152",
              "value": {
                "width": 912,
                "height": 1152
              }
            },
            {
              "label": "1376x1712",
              "value": {
                "width": 1376,
                "height": 1712
              }
            },
            {
              "label": "1776x2224",
              "value": {
                "width": 1776,
                "height": 2224
              }
            },
            {
              "label": "672x880",
              "value": {
                "width": 672,
                "height": 880
              }
            },
            {
              "label": "880x1184",
              "value": {
                "width": 880,
                "height": 1184
              }
            },
            {
              "label": "1328x1776",
              "value": {
                "width": 1328,
                "height": 1776
              }
            },
            {
              "label": "1712x2288",
              "value": {
                "width": 1712,
                "height": 2288
              }
            },
            {
              "label": "656x912",
              "value": {
                "width": 656,
                "height": 912
              }
            },
            {
              "label": "864x1216",
              "value": {
                "width": 864,
                "height": 1216
              }
            },
            {
              "label": "1296x1824",
              "value": {
                "width": 1296,
                "height": 1824
              }
            },
            {
              "label": "1680x2352",
              "value": {
                "width": 1680,
                "height": 2352
              }
            },
            {
              "label": "624x944",
              "value": {
                "width": 624,
                "height": 944
              }
            },
            {
              "label": "832x1248",
              "value": {
                "width": 832,
                "height": 1248
              }
            },
            {
              "label": "1248x1888",
              "value": {
                "width": 1248,
                "height": 1888
              }
            },
            {
              "label": "1616x2432",
              "value": {
                "width": 1616,
                "height": 2432
              }
            },
            {
              "label": "576x1024",
              "value": {
                "width": 576,
                "height": 1024
              }
            },
            {
              "label": "768x1360",
              "value": {
                "width": 768,
                "height": 1360
              }
            },
            {
              "label": "1152x2048",
              "value": {
                "width": 1152,
                "height": 2048
              }
            },
            {
              "label": "1488x2640",
              "value": {
                "width": 1488,
                "height": 2640
              }
            },
            {
              "label": "544x1088",
              "value": {
                "width": 544,
                "height": 1088
              }
            },
            {
              "label": "720x1456",
              "value": {
                "width": 720,
                "height": 1456
              }
            },
            {
              "label": "1088x2176",
              "value": {
                "width": 1088,
                "height": 2176
              }
            },
            {
              "label": "1408x2800",
              "value": {
                "width": 1408,
                "height": 2800
              }
            },
            {
              "label": "496x1168",
              "value": {
                "width": 496,
                "height": 1168
              }
            },
            {
              "label": "672x1568",
              "value": {
                "width": 672,
                "height": 1568
              }
            },
            {
              "label": "1008x2352",
              "value": {
                "width": 1008,
                "height": 2352
              }
            },
            {
              "label": "1296x3024",
              "value": {
                "width": 1296,
                "height": 3024
              }
            }
          ],
          "default": {
            "width": 1024,
            "height": 1024
          }
        },
        {
          "key": "disable_pup",
          "label": "Keep prompt exactly as written",
          "type": "bool",
          "default": true
        },
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "width",
          "label": "Width",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "height",
          "label": "Height",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 7 the most permissive; the default is 2. BFL approves the highest level each account may use and refuses a level above it.",
          "type": "int_slider",
          "min": 0,
          "max": 7,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-2-pro",
        "body": {
          "input_image": "{{images[0]}}",
          "input_image_2": "{{images[1]}}",
          "input_image_3": "{{images[2]}}",
          "input_image_4": "{{images[3]}}",
          "input_image_5": "{{images[4]}}",
          "input_image_6": "{{images[5]}}",
          "input_image_7": "{{images[6]}}",
          "input_image_8": "{{images[7]}}",
          "prompt": "{{prompt}}",
          "disable_pup": "{{fields.disable_pup}}",
          "seed": "{{fields.seed}}",
          "width": "{{fields.canvas.width}}",
          "height": "{{fields.canvas.height}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "per_request": 0.015,
        "per_output_megapixel_block": 0.015,
        "output_megapixel_block_size": 1,
        "per_input_megapixel_block": 0.015,
        "input_megapixel_block_size": 1,
        "note": "Published rates per started MP; Match input is priced once the size is known. Actual submission credits override estimates."
      },
      "output_limits": {
        "max_megapixels": 4
      },
      "variants": {
        "label": "Size mode",
        "default": "presets",
        "options": [
          {
            "id": "presets",
            "label": "Ratio & size",
            "description": "Choose a shape and a preset pixel size, or match the input where supported.",
            "fields": [
              "canvas",
              "disable_pup",
              "seed",
              "safety_tolerance",
              "output_format"
            ]
          },
          {
            "id": "custom",
            "label": "Custom (exact pixels)",
            "description": "Enter an exact width and height within the endpoint's canvas limits.",
            "fields": [
              "width",
              "height",
              "disable_pup",
              "seed",
              "safety_tolerance",
              "output_format"
            ],
            "request": {
              "method": "POST",
              "url": "https://api.bfl.ai/v1/flux-2-pro",
              "body": {
                "input_image": "{{images[0]}}",
                "input_image_2": "{{images[1]}}",
                "input_image_3": "{{images[2]}}",
                "input_image_4": "{{images[3]}}",
                "input_image_5": "{{images[4]}}",
                "input_image_6": "{{images[5]}}",
                "input_image_7": "{{images[6]}}",
                "input_image_8": "{{images[7]}}",
                "prompt": "{{prompt}}",
                "disable_pup": "{{fields.disable_pup}}",
                "seed": "{{fields.seed}}",
                "width": "{{fields.width}}",
                "height": "{{fields.height}}",
                "safety_tolerance": "{{fields.safety_tolerance}}",
                "output_format": "{{fields.output_format}}"
              }
            }
          }
        ]
      }
    },
    {
      "id": "flux-2-pro-preview",
      "label": "Pro Preview",
      "group": "FLUX.2",
      "prompt": {
        "mode": "required"
      },
      "references": {
        "mode": "optional",
        "max": 8,
        "send_as": "base64"
      },
      "fields": [
        {
          "key": "canvas",
          "label": "Size",
          "type": "size",
          "options": [
            {
              "label": "Match input",
              "value": null
            },
            {
              "label": "768x768",
              "value": {
                "width": 768,
                "height": 768
              }
            },
            {
              "label": "1024x1024",
              "value": {
                "width": 1024,
                "height": 1024
              }
            },
            {
              "label": "1536x1536",
              "value": {
                "width": 1536,
                "height": 1536
              }
            },
            {
              "label": "1984x1984",
              "value": {
                "width": 1984,
                "height": 1984
              }
            },
            {
              "label": "1168x496",
              "value": {
                "width": 1168,
                "height": 496
              }
            },
            {
              "label": "1568x672",
              "value": {
                "width": 1568,
                "height": 672
              }
            },
            {
              "label": "2352x1008",
              "value": {
                "width": 2352,
                "height": 1008
              }
            },
            {
              "label": "3024x1296",
              "value": {
                "width": 3024,
                "height": 1296
              }
            },
            {
              "label": "1088x544",
              "value": {
                "width": 1088,
                "height": 544
              }
            },
            {
              "label": "1456x720",
              "value": {
                "width": 1456,
                "height": 720
              }
            },
            {
              "label": "2176x1088",
              "value": {
                "width": 2176,
                "height": 1088
              }
            },
            {
              "label": "2800x1408",
              "value": {
                "width": 2800,
                "height": 1408
              }
            },
            {
              "label": "1024x576",
              "value": {
                "width": 1024,
                "height": 576
              }
            },
            {
              "label": "1360x768",
              "value": {
                "width": 1360,
                "height": 768
              }
            },
            {
              "label": "2048x1152",
              "value": {
                "width": 2048,
                "height": 1152
              }
            },
            {
              "label": "2640x1488",
              "value": {
                "width": 2640,
                "height": 1488
              }
            },
            {
              "label": "944x624",
              "value": {
                "width": 944,
                "height": 624
              }
            },
            {
              "label": "1248x832",
              "value": {
                "width": 1248,
                "height": 832
              }
            },
            {
              "label": "1888x1248",
              "value": {
                "width": 1888,
                "height": 1248
              }
            },
            {
              "label": "2432x1616",
              "value": {
                "width": 2432,
                "height": 1616
              }
            },
            {
              "label": "912x656",
              "value": {
                "width": 912,
                "height": 656
              }
            },
            {
              "label": "1216x864",
              "value": {
                "width": 1216,
                "height": 864
              }
            },
            {
              "label": "1824x1296",
              "value": {
                "width": 1824,
                "height": 1296
              }
            },
            {
              "label": "2352x1680",
              "value": {
                "width": 2352,
                "height": 1680
              }
            },
            {
              "label": "880x672",
              "value": {
                "width": 880,
                "height": 672
              }
            },
            {
              "label": "1184x880",
              "value": {
                "width": 1184,
                "height": 880
              }
            },
            {
              "label": "1776x1328",
              "value": {
                "width": 1776,
                "height": 1328
              }
            },
            {
              "label": "2288x1712",
              "value": {
                "width": 2288,
                "height": 1712
              }
            },
            {
              "label": "864x688",
              "value": {
                "width": 864,
                "height": 688
              }
            },
            {
              "label": "1152x912",
              "value": {
                "width": 1152,
                "height": 912
              }
            },
            {
              "label": "1712x1376",
              "value": {
                "width": 1712,
                "height": 1376
              }
            },
            {
              "label": "2224x1776",
              "value": {
                "width": 2224,
                "height": 1776
              }
            },
            {
              "label": "688x864",
              "value": {
                "width": 688,
                "height": 864
              }
            },
            {
              "label": "912x1152",
              "value": {
                "width": 912,
                "height": 1152
              }
            },
            {
              "label": "1376x1712",
              "value": {
                "width": 1376,
                "height": 1712
              }
            },
            {
              "label": "1776x2224",
              "value": {
                "width": 1776,
                "height": 2224
              }
            },
            {
              "label": "672x880",
              "value": {
                "width": 672,
                "height": 880
              }
            },
            {
              "label": "880x1184",
              "value": {
                "width": 880,
                "height": 1184
              }
            },
            {
              "label": "1328x1776",
              "value": {
                "width": 1328,
                "height": 1776
              }
            },
            {
              "label": "1712x2288",
              "value": {
                "width": 1712,
                "height": 2288
              }
            },
            {
              "label": "656x912",
              "value": {
                "width": 656,
                "height": 912
              }
            },
            {
              "label": "864x1216",
              "value": {
                "width": 864,
                "height": 1216
              }
            },
            {
              "label": "1296x1824",
              "value": {
                "width": 1296,
                "height": 1824
              }
            },
            {
              "label": "1680x2352",
              "value": {
                "width": 1680,
                "height": 2352
              }
            },
            {
              "label": "624x944",
              "value": {
                "width": 624,
                "height": 944
              }
            },
            {
              "label": "832x1248",
              "value": {
                "width": 832,
                "height": 1248
              }
            },
            {
              "label": "1248x1888",
              "value": {
                "width": 1248,
                "height": 1888
              }
            },
            {
              "label": "1616x2432",
              "value": {
                "width": 1616,
                "height": 2432
              }
            },
            {
              "label": "576x1024",
              "value": {
                "width": 576,
                "height": 1024
              }
            },
            {
              "label": "768x1360",
              "value": {
                "width": 768,
                "height": 1360
              }
            },
            {
              "label": "1152x2048",
              "value": {
                "width": 1152,
                "height": 2048
              }
            },
            {
              "label": "1488x2640",
              "value": {
                "width": 1488,
                "height": 2640
              }
            },
            {
              "label": "544x1088",
              "value": {
                "width": 544,
                "height": 1088
              }
            },
            {
              "label": "720x1456",
              "value": {
                "width": 720,
                "height": 1456
              }
            },
            {
              "label": "1088x2176",
              "value": {
                "width": 1088,
                "height": 2176
              }
            },
            {
              "label": "1408x2800",
              "value": {
                "width": 1408,
                "height": 2800
              }
            },
            {
              "label": "496x1168",
              "value": {
                "width": 496,
                "height": 1168
              }
            },
            {
              "label": "672x1568",
              "value": {
                "width": 672,
                "height": 1568
              }
            },
            {
              "label": "1008x2352",
              "value": {
                "width": 1008,
                "height": 2352
              }
            },
            {
              "label": "1296x3024",
              "value": {
                "width": 1296,
                "height": 3024
              }
            }
          ],
          "default": {
            "width": 1024,
            "height": 1024
          }
        },
        {
          "key": "disable_pup",
          "label": "Keep prompt exactly as written",
          "type": "bool",
          "default": true
        },
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "width",
          "label": "Width",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "height",
          "label": "Height",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 7 the most permissive; the default is 2. BFL approves the highest level each account may use and refuses a level above it.",
          "type": "int_slider",
          "min": 0,
          "max": 7,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-2-pro-preview",
        "body": {
          "input_image": "{{images[0]}}",
          "input_image_2": "{{images[1]}}",
          "input_image_3": "{{images[2]}}",
          "input_image_4": "{{images[3]}}",
          "input_image_5": "{{images[4]}}",
          "input_image_6": "{{images[5]}}",
          "input_image_7": "{{images[6]}}",
          "input_image_8": "{{images[7]}}",
          "prompt": "{{prompt}}",
          "disable_pup": "{{fields.disable_pup}}",
          "seed": "{{fields.seed}}",
          "width": "{{fields.canvas.width}}",
          "height": "{{fields.canvas.height}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "note": "BFL reports credits on submission; one credit is $0.01. When no published estimate applies, the cost is unknown until submission."
      },
      "output_limits": {
        "max_megapixels": 4
      },
      "variants": {
        "label": "Size mode",
        "default": "presets",
        "options": [
          {
            "id": "presets",
            "label": "Ratio & size",
            "description": "Choose a shape and a preset pixel size, or match the input where supported.",
            "fields": [
              "canvas",
              "disable_pup",
              "seed",
              "safety_tolerance",
              "output_format"
            ]
          },
          {
            "id": "custom",
            "label": "Custom (exact pixels)",
            "description": "Enter an exact width and height within the endpoint's canvas limits.",
            "fields": [
              "width",
              "height",
              "disable_pup",
              "seed",
              "safety_tolerance",
              "output_format"
            ],
            "request": {
              "method": "POST",
              "url": "https://api.bfl.ai/v1/flux-2-pro-preview",
              "body": {
                "input_image": "{{images[0]}}",
                "input_image_2": "{{images[1]}}",
                "input_image_3": "{{images[2]}}",
                "input_image_4": "{{images[3]}}",
                "input_image_5": "{{images[4]}}",
                "input_image_6": "{{images[5]}}",
                "input_image_7": "{{images[6]}}",
                "input_image_8": "{{images[7]}}",
                "prompt": "{{prompt}}",
                "disable_pup": "{{fields.disable_pup}}",
                "seed": "{{fields.seed}}",
                "width": "{{fields.width}}",
                "height": "{{fields.height}}",
                "safety_tolerance": "{{fields.safety_tolerance}}",
                "output_format": "{{fields.output_format}}"
              }
            }
          }
        ]
      }
    },
    {
      "id": "flux-2-flex",
      "label": "Flex",
      "group": "FLUX.2",
      "prompt": {
        "mode": "required"
      },
      "references": {
        "mode": "optional",
        "max": 8,
        "send_as": "base64"
      },
      "fields": [
        {
          "key": "canvas",
          "label": "Size",
          "type": "size",
          "options": [
            {
              "label": "Match input",
              "value": null
            },
            {
              "label": "768x768",
              "value": {
                "width": 768,
                "height": 768
              }
            },
            {
              "label": "1024x1024",
              "value": {
                "width": 1024,
                "height": 1024
              }
            },
            {
              "label": "1536x1536",
              "value": {
                "width": 1536,
                "height": 1536
              }
            },
            {
              "label": "1984x1984",
              "value": {
                "width": 1984,
                "height": 1984
              }
            },
            {
              "label": "1168x496",
              "value": {
                "width": 1168,
                "height": 496
              }
            },
            {
              "label": "1568x672",
              "value": {
                "width": 1568,
                "height": 672
              }
            },
            {
              "label": "2352x1008",
              "value": {
                "width": 2352,
                "height": 1008
              }
            },
            {
              "label": "3024x1296",
              "value": {
                "width": 3024,
                "height": 1296
              }
            },
            {
              "label": "1088x544",
              "value": {
                "width": 1088,
                "height": 544
              }
            },
            {
              "label": "1456x720",
              "value": {
                "width": 1456,
                "height": 720
              }
            },
            {
              "label": "2176x1088",
              "value": {
                "width": 2176,
                "height": 1088
              }
            },
            {
              "label": "2800x1408",
              "value": {
                "width": 2800,
                "height": 1408
              }
            },
            {
              "label": "1024x576",
              "value": {
                "width": 1024,
                "height": 576
              }
            },
            {
              "label": "1360x768",
              "value": {
                "width": 1360,
                "height": 768
              }
            },
            {
              "label": "2048x1152",
              "value": {
                "width": 2048,
                "height": 1152
              }
            },
            {
              "label": "2640x1488",
              "value": {
                "width": 2640,
                "height": 1488
              }
            },
            {
              "label": "944x624",
              "value": {
                "width": 944,
                "height": 624
              }
            },
            {
              "label": "1248x832",
              "value": {
                "width": 1248,
                "height": 832
              }
            },
            {
              "label": "1888x1248",
              "value": {
                "width": 1888,
                "height": 1248
              }
            },
            {
              "label": "2432x1616",
              "value": {
                "width": 2432,
                "height": 1616
              }
            },
            {
              "label": "912x656",
              "value": {
                "width": 912,
                "height": 656
              }
            },
            {
              "label": "1216x864",
              "value": {
                "width": 1216,
                "height": 864
              }
            },
            {
              "label": "1824x1296",
              "value": {
                "width": 1824,
                "height": 1296
              }
            },
            {
              "label": "2352x1680",
              "value": {
                "width": 2352,
                "height": 1680
              }
            },
            {
              "label": "880x672",
              "value": {
                "width": 880,
                "height": 672
              }
            },
            {
              "label": "1184x880",
              "value": {
                "width": 1184,
                "height": 880
              }
            },
            {
              "label": "1776x1328",
              "value": {
                "width": 1776,
                "height": 1328
              }
            },
            {
              "label": "2288x1712",
              "value": {
                "width": 2288,
                "height": 1712
              }
            },
            {
              "label": "864x688",
              "value": {
                "width": 864,
                "height": 688
              }
            },
            {
              "label": "1152x912",
              "value": {
                "width": 1152,
                "height": 912
              }
            },
            {
              "label": "1712x1376",
              "value": {
                "width": 1712,
                "height": 1376
              }
            },
            {
              "label": "2224x1776",
              "value": {
                "width": 2224,
                "height": 1776
              }
            },
            {
              "label": "688x864",
              "value": {
                "width": 688,
                "height": 864
              }
            },
            {
              "label": "912x1152",
              "value": {
                "width": 912,
                "height": 1152
              }
            },
            {
              "label": "1376x1712",
              "value": {
                "width": 1376,
                "height": 1712
              }
            },
            {
              "label": "1776x2224",
              "value": {
                "width": 1776,
                "height": 2224
              }
            },
            {
              "label": "672x880",
              "value": {
                "width": 672,
                "height": 880
              }
            },
            {
              "label": "880x1184",
              "value": {
                "width": 880,
                "height": 1184
              }
            },
            {
              "label": "1328x1776",
              "value": {
                "width": 1328,
                "height": 1776
              }
            },
            {
              "label": "1712x2288",
              "value": {
                "width": 1712,
                "height": 2288
              }
            },
            {
              "label": "656x912",
              "value": {
                "width": 656,
                "height": 912
              }
            },
            {
              "label": "864x1216",
              "value": {
                "width": 864,
                "height": 1216
              }
            },
            {
              "label": "1296x1824",
              "value": {
                "width": 1296,
                "height": 1824
              }
            },
            {
              "label": "1680x2352",
              "value": {
                "width": 1680,
                "height": 2352
              }
            },
            {
              "label": "624x944",
              "value": {
                "width": 624,
                "height": 944
              }
            },
            {
              "label": "832x1248",
              "value": {
                "width": 832,
                "height": 1248
              }
            },
            {
              "label": "1248x1888",
              "value": {
                "width": 1248,
                "height": 1888
              }
            },
            {
              "label": "1616x2432",
              "value": {
                "width": 1616,
                "height": 2432
              }
            },
            {
              "label": "576x1024",
              "value": {
                "width": 576,
                "height": 1024
              }
            },
            {
              "label": "768x1360",
              "value": {
                "width": 768,
                "height": 1360
              }
            },
            {
              "label": "1152x2048",
              "value": {
                "width": 1152,
                "height": 2048
              }
            },
            {
              "label": "1488x2640",
              "value": {
                "width": 1488,
                "height": 2640
              }
            },
            {
              "label": "544x1088",
              "value": {
                "width": 544,
                "height": 1088
              }
            },
            {
              "label": "720x1456",
              "value": {
                "width": 720,
                "height": 1456
              }
            },
            {
              "label": "1088x2176",
              "value": {
                "width": 1088,
                "height": 2176
              }
            },
            {
              "label": "1408x2800",
              "value": {
                "width": 1408,
                "height": 2800
              }
            },
            {
              "label": "496x1168",
              "value": {
                "width": 496,
                "height": 1168
              }
            },
            {
              "label": "672x1568",
              "value": {
                "width": 672,
                "height": 1568
              }
            },
            {
              "label": "1008x2352",
              "value": {
                "width": 1008,
                "height": 2352
              }
            },
            {
              "label": "1296x3024",
              "value": {
                "width": 1296,
                "height": 3024
              }
            }
          ],
          "default": {
            "width": 1024,
            "height": 1024
          }
        },
        {
          "key": "prompt_upsampling",
          "label": "Prompt rewriting",
          "help": "Let BFL expand the prompt before generating; starts Off to preserve your wording.",
          "type": "bool",
          "default": false
        },
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "width",
          "label": "Width",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "height",
          "label": "Height",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "guidance",
          "label": "Guidance",
          "help": "Higher values follow the prompt more closely, at the cost of reduced realism.",
          "type": "float",
          "min": 1.5,
          "max": 10.0,
          "default": 5.0,
          "decimals": 2
        },
        {
          "key": "steps",
          "label": "Steps",
          "help": "More sampling passes can improve detail, but take longer to generate.",
          "type": "int",
          "min": 1,
          "max": 50,
          "default": 50
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 7 the most permissive; the default is 2. BFL approves the highest level each account may use and refuses a level above it.",
          "type": "int_slider",
          "min": 0,
          "max": 7,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-2-flex",
        "body": {
          "input_image": "{{images[0]}}",
          "input_image_2": "{{images[1]}}",
          "input_image_3": "{{images[2]}}",
          "input_image_4": "{{images[3]}}",
          "input_image_5": "{{images[4]}}",
          "input_image_6": "{{images[5]}}",
          "input_image_7": "{{images[6]}}",
          "input_image_8": "{{images[7]}}",
          "prompt": "{{prompt}}",
          "prompt_upsampling": "{{fields.prompt_upsampling}}",
          "seed": "{{fields.seed}}",
          "width": "{{fields.canvas.width}}",
          "height": "{{fields.canvas.height}}",
          "guidance": "{{fields.guidance}}",
          "steps": "{{fields.steps}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "per_output_megapixel_block": 0.05,
        "output_megapixel_block_size": 1,
        "per_input_megapixel_block": 0.05,
        "input_megapixel_block_size": 1,
        "note": "Published rates per started MP; Match input is priced once the size is known. Actual submission credits override estimates."
      },
      "output_limits": {
        "max_megapixels": 4
      },
      "variants": {
        "label": "Size mode",
        "default": "presets",
        "options": [
          {
            "id": "presets",
            "label": "Ratio & size",
            "description": "Choose a shape and a preset pixel size, or match the input where supported.",
            "fields": [
              "canvas",
              "prompt_upsampling",
              "seed",
              "guidance",
              "steps",
              "safety_tolerance",
              "output_format"
            ]
          },
          {
            "id": "custom",
            "label": "Custom (exact pixels)",
            "description": "Enter an exact width and height within the endpoint's canvas limits.",
            "fields": [
              "width",
              "height",
              "prompt_upsampling",
              "seed",
              "guidance",
              "steps",
              "safety_tolerance",
              "output_format"
            ],
            "request": {
              "method": "POST",
              "url": "https://api.bfl.ai/v1/flux-2-flex",
              "body": {
                "input_image": "{{images[0]}}",
                "input_image_2": "{{images[1]}}",
                "input_image_3": "{{images[2]}}",
                "input_image_4": "{{images[3]}}",
                "input_image_5": "{{images[4]}}",
                "input_image_6": "{{images[5]}}",
                "input_image_7": "{{images[6]}}",
                "input_image_8": "{{images[7]}}",
                "prompt": "{{prompt}}",
                "prompt_upsampling": "{{fields.prompt_upsampling}}",
                "seed": "{{fields.seed}}",
                "width": "{{fields.width}}",
                "height": "{{fields.height}}",
                "guidance": "{{fields.guidance}}",
                "steps": "{{fields.steps}}",
                "safety_tolerance": "{{fields.safety_tolerance}}",
                "output_format": "{{fields.output_format}}"
              }
            }
          }
        ]
      }
    },
    {
      "id": "flux-2-klein-9b",
      "label": "Klein 9B",
      "group": "FLUX.2",
      "prompt": {
        "mode": "required"
      },
      "references": {
        "mode": "optional",
        "max": 4,
        "send_as": "base64"
      },
      "fields": [
        {
          "key": "canvas",
          "label": "Size",
          "type": "size",
          "options": [
            {
              "label": "Match input",
              "value": null
            },
            {
              "label": "768x768",
              "value": {
                "width": 768,
                "height": 768
              }
            },
            {
              "label": "1024x1024",
              "value": {
                "width": 1024,
                "height": 1024
              }
            },
            {
              "label": "1536x1536",
              "value": {
                "width": 1536,
                "height": 1536
              }
            },
            {
              "label": "1984x1984",
              "value": {
                "width": 1984,
                "height": 1984
              }
            },
            {
              "label": "1168x496",
              "value": {
                "width": 1168,
                "height": 496
              }
            },
            {
              "label": "1568x672",
              "value": {
                "width": 1568,
                "height": 672
              }
            },
            {
              "label": "2352x1008",
              "value": {
                "width": 2352,
                "height": 1008
              }
            },
            {
              "label": "3024x1296",
              "value": {
                "width": 3024,
                "height": 1296
              }
            },
            {
              "label": "1088x544",
              "value": {
                "width": 1088,
                "height": 544
              }
            },
            {
              "label": "1456x720",
              "value": {
                "width": 1456,
                "height": 720
              }
            },
            {
              "label": "2176x1088",
              "value": {
                "width": 2176,
                "height": 1088
              }
            },
            {
              "label": "2800x1408",
              "value": {
                "width": 2800,
                "height": 1408
              }
            },
            {
              "label": "1024x576",
              "value": {
                "width": 1024,
                "height": 576
              }
            },
            {
              "label": "1360x768",
              "value": {
                "width": 1360,
                "height": 768
              }
            },
            {
              "label": "2048x1152",
              "value": {
                "width": 2048,
                "height": 1152
              }
            },
            {
              "label": "2640x1488",
              "value": {
                "width": 2640,
                "height": 1488
              }
            },
            {
              "label": "944x624",
              "value": {
                "width": 944,
                "height": 624
              }
            },
            {
              "label": "1248x832",
              "value": {
                "width": 1248,
                "height": 832
              }
            },
            {
              "label": "1888x1248",
              "value": {
                "width": 1888,
                "height": 1248
              }
            },
            {
              "label": "2432x1616",
              "value": {
                "width": 2432,
                "height": 1616
              }
            },
            {
              "label": "912x656",
              "value": {
                "width": 912,
                "height": 656
              }
            },
            {
              "label": "1216x864",
              "value": {
                "width": 1216,
                "height": 864
              }
            },
            {
              "label": "1824x1296",
              "value": {
                "width": 1824,
                "height": 1296
              }
            },
            {
              "label": "2352x1680",
              "value": {
                "width": 2352,
                "height": 1680
              }
            },
            {
              "label": "880x672",
              "value": {
                "width": 880,
                "height": 672
              }
            },
            {
              "label": "1184x880",
              "value": {
                "width": 1184,
                "height": 880
              }
            },
            {
              "label": "1776x1328",
              "value": {
                "width": 1776,
                "height": 1328
              }
            },
            {
              "label": "2288x1712",
              "value": {
                "width": 2288,
                "height": 1712
              }
            },
            {
              "label": "864x688",
              "value": {
                "width": 864,
                "height": 688
              }
            },
            {
              "label": "1152x912",
              "value": {
                "width": 1152,
                "height": 912
              }
            },
            {
              "label": "1712x1376",
              "value": {
                "width": 1712,
                "height": 1376
              }
            },
            {
              "label": "2224x1776",
              "value": {
                "width": 2224,
                "height": 1776
              }
            },
            {
              "label": "688x864",
              "value": {
                "width": 688,
                "height": 864
              }
            },
            {
              "label": "912x1152",
              "value": {
                "width": 912,
                "height": 1152
              }
            },
            {
              "label": "1376x1712",
              "value": {
                "width": 1376,
                "height": 1712
              }
            },
            {
              "label": "1776x2224",
              "value": {
                "width": 1776,
                "height": 2224
              }
            },
            {
              "label": "672x880",
              "value": {
                "width": 672,
                "height": 880
              }
            },
            {
              "label": "880x1184",
              "value": {
                "width": 880,
                "height": 1184
              }
            },
            {
              "label": "1328x1776",
              "value": {
                "width": 1328,
                "height": 1776
              }
            },
            {
              "label": "1712x2288",
              "value": {
                "width": 1712,
                "height": 2288
              }
            },
            {
              "label": "656x912",
              "value": {
                "width": 656,
                "height": 912
              }
            },
            {
              "label": "864x1216",
              "value": {
                "width": 864,
                "height": 1216
              }
            },
            {
              "label": "1296x1824",
              "value": {
                "width": 1296,
                "height": 1824
              }
            },
            {
              "label": "1680x2352",
              "value": {
                "width": 1680,
                "height": 2352
              }
            },
            {
              "label": "624x944",
              "value": {
                "width": 624,
                "height": 944
              }
            },
            {
              "label": "832x1248",
              "value": {
                "width": 832,
                "height": 1248
              }
            },
            {
              "label": "1248x1888",
              "value": {
                "width": 1248,
                "height": 1888
              }
            },
            {
              "label": "1616x2432",
              "value": {
                "width": 1616,
                "height": 2432
              }
            },
            {
              "label": "576x1024",
              "value": {
                "width": 576,
                "height": 1024
              }
            },
            {
              "label": "768x1360",
              "value": {
                "width": 768,
                "height": 1360
              }
            },
            {
              "label": "1152x2048",
              "value": {
                "width": 1152,
                "height": 2048
              }
            },
            {
              "label": "1488x2640",
              "value": {
                "width": 1488,
                "height": 2640
              }
            },
            {
              "label": "544x1088",
              "value": {
                "width": 544,
                "height": 1088
              }
            },
            {
              "label": "720x1456",
              "value": {
                "width": 720,
                "height": 1456
              }
            },
            {
              "label": "1088x2176",
              "value": {
                "width": 1088,
                "height": 2176
              }
            },
            {
              "label": "1408x2800",
              "value": {
                "width": 1408,
                "height": 2800
              }
            },
            {
              "label": "496x1168",
              "value": {
                "width": 496,
                "height": 1168
              }
            },
            {
              "label": "672x1568",
              "value": {
                "width": 672,
                "height": 1568
              }
            },
            {
              "label": "1008x2352",
              "value": {
                "width": 1008,
                "height": 2352
              }
            },
            {
              "label": "1296x3024",
              "value": {
                "width": 1296,
                "height": 3024
              }
            }
          ],
          "default": {
            "width": 1024,
            "height": 1024
          }
        },
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "width",
          "label": "Width",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "height",
          "label": "Height",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 7 the most permissive; the default is 2. BFL approves the highest level each account may use and refuses a level above it.",
          "type": "int_slider",
          "min": 0,
          "max": 7,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-2-klein-9b",
        "body": {
          "input_image": "{{images[0]}}",
          "input_image_2": "{{images[1]}}",
          "input_image_3": "{{images[2]}}",
          "input_image_4": "{{images[3]}}",
          "prompt": "{{prompt}}",
          "seed": "{{fields.seed}}",
          "width": "{{fields.canvas.width}}",
          "height": "{{fields.canvas.height}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "per_request": 0.013,
        "per_output_megapixel_block": 0.002,
        "output_megapixel_block_size": 1,
        "per_input_megapixel_block": 0.002,
        "input_megapixel_block_size": 1,
        "note": "Published rates per started MP; Match input is priced once the size is known. Actual submission credits override estimates."
      },
      "output_limits": {
        "max_megapixels": 4
      },
      "variants": {
        "label": "Size mode",
        "default": "presets",
        "options": [
          {
            "id": "presets",
            "label": "Ratio & size",
            "description": "Choose a shape and a preset pixel size, or match the input where supported.",
            "fields": [
              "canvas",
              "seed",
              "safety_tolerance",
              "output_format"
            ]
          },
          {
            "id": "custom",
            "label": "Custom (exact pixels)",
            "description": "Enter an exact width and height within the endpoint's canvas limits.",
            "fields": [
              "width",
              "height",
              "seed",
              "safety_tolerance",
              "output_format"
            ],
            "request": {
              "method": "POST",
              "url": "https://api.bfl.ai/v1/flux-2-klein-9b",
              "body": {
                "input_image": "{{images[0]}}",
                "input_image_2": "{{images[1]}}",
                "input_image_3": "{{images[2]}}",
                "input_image_4": "{{images[3]}}",
                "prompt": "{{prompt}}",
                "seed": "{{fields.seed}}",
                "width": "{{fields.width}}",
                "height": "{{fields.height}}",
                "safety_tolerance": "{{fields.safety_tolerance}}",
                "output_format": "{{fields.output_format}}"
              }
            }
          }
        ]
      }
    },
    {
      "id": "flux-2-klein-9b-preview",
      "label": "Klein 9B Preview",
      "group": "FLUX.2",
      "prompt": {
        "mode": "required"
      },
      "references": {
        "mode": "optional",
        "max": 4,
        "send_as": "base64"
      },
      "fields": [
        {
          "key": "canvas",
          "label": "Size",
          "type": "size",
          "options": [
            {
              "label": "Match input",
              "value": null
            },
            {
              "label": "768x768",
              "value": {
                "width": 768,
                "height": 768
              }
            },
            {
              "label": "1024x1024",
              "value": {
                "width": 1024,
                "height": 1024
              }
            },
            {
              "label": "1536x1536",
              "value": {
                "width": 1536,
                "height": 1536
              }
            },
            {
              "label": "1984x1984",
              "value": {
                "width": 1984,
                "height": 1984
              }
            },
            {
              "label": "1168x496",
              "value": {
                "width": 1168,
                "height": 496
              }
            },
            {
              "label": "1568x672",
              "value": {
                "width": 1568,
                "height": 672
              }
            },
            {
              "label": "2352x1008",
              "value": {
                "width": 2352,
                "height": 1008
              }
            },
            {
              "label": "3024x1296",
              "value": {
                "width": 3024,
                "height": 1296
              }
            },
            {
              "label": "1088x544",
              "value": {
                "width": 1088,
                "height": 544
              }
            },
            {
              "label": "1456x720",
              "value": {
                "width": 1456,
                "height": 720
              }
            },
            {
              "label": "2176x1088",
              "value": {
                "width": 2176,
                "height": 1088
              }
            },
            {
              "label": "2800x1408",
              "value": {
                "width": 2800,
                "height": 1408
              }
            },
            {
              "label": "1024x576",
              "value": {
                "width": 1024,
                "height": 576
              }
            },
            {
              "label": "1360x768",
              "value": {
                "width": 1360,
                "height": 768
              }
            },
            {
              "label": "2048x1152",
              "value": {
                "width": 2048,
                "height": 1152
              }
            },
            {
              "label": "2640x1488",
              "value": {
                "width": 2640,
                "height": 1488
              }
            },
            {
              "label": "944x624",
              "value": {
                "width": 944,
                "height": 624
              }
            },
            {
              "label": "1248x832",
              "value": {
                "width": 1248,
                "height": 832
              }
            },
            {
              "label": "1888x1248",
              "value": {
                "width": 1888,
                "height": 1248
              }
            },
            {
              "label": "2432x1616",
              "value": {
                "width": 2432,
                "height": 1616
              }
            },
            {
              "label": "912x656",
              "value": {
                "width": 912,
                "height": 656
              }
            },
            {
              "label": "1216x864",
              "value": {
                "width": 1216,
                "height": 864
              }
            },
            {
              "label": "1824x1296",
              "value": {
                "width": 1824,
                "height": 1296
              }
            },
            {
              "label": "2352x1680",
              "value": {
                "width": 2352,
                "height": 1680
              }
            },
            {
              "label": "880x672",
              "value": {
                "width": 880,
                "height": 672
              }
            },
            {
              "label": "1184x880",
              "value": {
                "width": 1184,
                "height": 880
              }
            },
            {
              "label": "1776x1328",
              "value": {
                "width": 1776,
                "height": 1328
              }
            },
            {
              "label": "2288x1712",
              "value": {
                "width": 2288,
                "height": 1712
              }
            },
            {
              "label": "864x688",
              "value": {
                "width": 864,
                "height": 688
              }
            },
            {
              "label": "1152x912",
              "value": {
                "width": 1152,
                "height": 912
              }
            },
            {
              "label": "1712x1376",
              "value": {
                "width": 1712,
                "height": 1376
              }
            },
            {
              "label": "2224x1776",
              "value": {
                "width": 2224,
                "height": 1776
              }
            },
            {
              "label": "688x864",
              "value": {
                "width": 688,
                "height": 864
              }
            },
            {
              "label": "912x1152",
              "value": {
                "width": 912,
                "height": 1152
              }
            },
            {
              "label": "1376x1712",
              "value": {
                "width": 1376,
                "height": 1712
              }
            },
            {
              "label": "1776x2224",
              "value": {
                "width": 1776,
                "height": 2224
              }
            },
            {
              "label": "672x880",
              "value": {
                "width": 672,
                "height": 880
              }
            },
            {
              "label": "880x1184",
              "value": {
                "width": 880,
                "height": 1184
              }
            },
            {
              "label": "1328x1776",
              "value": {
                "width": 1328,
                "height": 1776
              }
            },
            {
              "label": "1712x2288",
              "value": {
                "width": 1712,
                "height": 2288
              }
            },
            {
              "label": "656x912",
              "value": {
                "width": 656,
                "height": 912
              }
            },
            {
              "label": "864x1216",
              "value": {
                "width": 864,
                "height": 1216
              }
            },
            {
              "label": "1296x1824",
              "value": {
                "width": 1296,
                "height": 1824
              }
            },
            {
              "label": "1680x2352",
              "value": {
                "width": 1680,
                "height": 2352
              }
            },
            {
              "label": "624x944",
              "value": {
                "width": 624,
                "height": 944
              }
            },
            {
              "label": "832x1248",
              "value": {
                "width": 832,
                "height": 1248
              }
            },
            {
              "label": "1248x1888",
              "value": {
                "width": 1248,
                "height": 1888
              }
            },
            {
              "label": "1616x2432",
              "value": {
                "width": 1616,
                "height": 2432
              }
            },
            {
              "label": "576x1024",
              "value": {
                "width": 576,
                "height": 1024
              }
            },
            {
              "label": "768x1360",
              "value": {
                "width": 768,
                "height": 1360
              }
            },
            {
              "label": "1152x2048",
              "value": {
                "width": 1152,
                "height": 2048
              }
            },
            {
              "label": "1488x2640",
              "value": {
                "width": 1488,
                "height": 2640
              }
            },
            {
              "label": "544x1088",
              "value": {
                "width": 544,
                "height": 1088
              }
            },
            {
              "label": "720x1456",
              "value": {
                "width": 720,
                "height": 1456
              }
            },
            {
              "label": "1088x2176",
              "value": {
                "width": 1088,
                "height": 2176
              }
            },
            {
              "label": "1408x2800",
              "value": {
                "width": 1408,
                "height": 2800
              }
            },
            {
              "label": "496x1168",
              "value": {
                "width": 496,
                "height": 1168
              }
            },
            {
              "label": "672x1568",
              "value": {
                "width": 672,
                "height": 1568
              }
            },
            {
              "label": "1008x2352",
              "value": {
                "width": 1008,
                "height": 2352
              }
            },
            {
              "label": "1296x3024",
              "value": {
                "width": 1296,
                "height": 3024
              }
            }
          ],
          "default": {
            "width": 1024,
            "height": 1024
          }
        },
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "width",
          "label": "Width",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "height",
          "label": "Height",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 7 the most permissive; the default is 2. BFL approves the highest level each account may use and refuses a level above it.",
          "type": "int_slider",
          "min": 0,
          "max": 7,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-2-klein-9b-preview",
        "body": {
          "input_image": "{{images[0]}}",
          "input_image_2": "{{images[1]}}",
          "input_image_3": "{{images[2]}}",
          "input_image_4": "{{images[3]}}",
          "prompt": "{{prompt}}",
          "seed": "{{fields.seed}}",
          "width": "{{fields.canvas.width}}",
          "height": "{{fields.canvas.height}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "note": "BFL reports credits on submission; one credit is $0.01. When no published estimate applies, the cost is unknown until submission."
      },
      "output_limits": {
        "max_megapixels": 4
      },
      "variants": {
        "label": "Size mode",
        "default": "presets",
        "options": [
          {
            "id": "presets",
            "label": "Ratio & size",
            "description": "Choose a shape and a preset pixel size, or match the input where supported.",
            "fields": [
              "canvas",
              "seed",
              "safety_tolerance",
              "output_format"
            ]
          },
          {
            "id": "custom",
            "label": "Custom (exact pixels)",
            "description": "Enter an exact width and height within the endpoint's canvas limits.",
            "fields": [
              "width",
              "height",
              "seed",
              "safety_tolerance",
              "output_format"
            ],
            "request": {
              "method": "POST",
              "url": "https://api.bfl.ai/v1/flux-2-klein-9b-preview",
              "body": {
                "input_image": "{{images[0]}}",
                "input_image_2": "{{images[1]}}",
                "input_image_3": "{{images[2]}}",
                "input_image_4": "{{images[3]}}",
                "prompt": "{{prompt}}",
                "seed": "{{fields.seed}}",
                "width": "{{fields.width}}",
                "height": "{{fields.height}}",
                "safety_tolerance": "{{fields.safety_tolerance}}",
                "output_format": "{{fields.output_format}}"
              }
            }
          }
        ]
      }
    },
    {
      "id": "flux-2-klein-4b",
      "label": "Klein 4B",
      "group": "FLUX.2",
      "prompt": {
        "mode": "required"
      },
      "references": {
        "mode": "optional",
        "max": 4,
        "send_as": "base64"
      },
      "fields": [
        {
          "key": "canvas",
          "label": "Size",
          "type": "size",
          "options": [
            {
              "label": "Match input",
              "value": null
            },
            {
              "label": "768x768",
              "value": {
                "width": 768,
                "height": 768
              }
            },
            {
              "label": "1024x1024",
              "value": {
                "width": 1024,
                "height": 1024
              }
            },
            {
              "label": "1536x1536",
              "value": {
                "width": 1536,
                "height": 1536
              }
            },
            {
              "label": "1984x1984",
              "value": {
                "width": 1984,
                "height": 1984
              }
            },
            {
              "label": "1168x496",
              "value": {
                "width": 1168,
                "height": 496
              }
            },
            {
              "label": "1568x672",
              "value": {
                "width": 1568,
                "height": 672
              }
            },
            {
              "label": "2352x1008",
              "value": {
                "width": 2352,
                "height": 1008
              }
            },
            {
              "label": "3024x1296",
              "value": {
                "width": 3024,
                "height": 1296
              }
            },
            {
              "label": "1088x544",
              "value": {
                "width": 1088,
                "height": 544
              }
            },
            {
              "label": "1456x720",
              "value": {
                "width": 1456,
                "height": 720
              }
            },
            {
              "label": "2176x1088",
              "value": {
                "width": 2176,
                "height": 1088
              }
            },
            {
              "label": "2800x1408",
              "value": {
                "width": 2800,
                "height": 1408
              }
            },
            {
              "label": "1024x576",
              "value": {
                "width": 1024,
                "height": 576
              }
            },
            {
              "label": "1360x768",
              "value": {
                "width": 1360,
                "height": 768
              }
            },
            {
              "label": "2048x1152",
              "value": {
                "width": 2048,
                "height": 1152
              }
            },
            {
              "label": "2640x1488",
              "value": {
                "width": 2640,
                "height": 1488
              }
            },
            {
              "label": "944x624",
              "value": {
                "width": 944,
                "height": 624
              }
            },
            {
              "label": "1248x832",
              "value": {
                "width": 1248,
                "height": 832
              }
            },
            {
              "label": "1888x1248",
              "value": {
                "width": 1888,
                "height": 1248
              }
            },
            {
              "label": "2432x1616",
              "value": {
                "width": 2432,
                "height": 1616
              }
            },
            {
              "label": "912x656",
              "value": {
                "width": 912,
                "height": 656
              }
            },
            {
              "label": "1216x864",
              "value": {
                "width": 1216,
                "height": 864
              }
            },
            {
              "label": "1824x1296",
              "value": {
                "width": 1824,
                "height": 1296
              }
            },
            {
              "label": "2352x1680",
              "value": {
                "width": 2352,
                "height": 1680
              }
            },
            {
              "label": "880x672",
              "value": {
                "width": 880,
                "height": 672
              }
            },
            {
              "label": "1184x880",
              "value": {
                "width": 1184,
                "height": 880
              }
            },
            {
              "label": "1776x1328",
              "value": {
                "width": 1776,
                "height": 1328
              }
            },
            {
              "label": "2288x1712",
              "value": {
                "width": 2288,
                "height": 1712
              }
            },
            {
              "label": "864x688",
              "value": {
                "width": 864,
                "height": 688
              }
            },
            {
              "label": "1152x912",
              "value": {
                "width": 1152,
                "height": 912
              }
            },
            {
              "label": "1712x1376",
              "value": {
                "width": 1712,
                "height": 1376
              }
            },
            {
              "label": "2224x1776",
              "value": {
                "width": 2224,
                "height": 1776
              }
            },
            {
              "label": "688x864",
              "value": {
                "width": 688,
                "height": 864
              }
            },
            {
              "label": "912x1152",
              "value": {
                "width": 912,
                "height": 1152
              }
            },
            {
              "label": "1376x1712",
              "value": {
                "width": 1376,
                "height": 1712
              }
            },
            {
              "label": "1776x2224",
              "value": {
                "width": 1776,
                "height": 2224
              }
            },
            {
              "label": "672x880",
              "value": {
                "width": 672,
                "height": 880
              }
            },
            {
              "label": "880x1184",
              "value": {
                "width": 880,
                "height": 1184
              }
            },
            {
              "label": "1328x1776",
              "value": {
                "width": 1328,
                "height": 1776
              }
            },
            {
              "label": "1712x2288",
              "value": {
                "width": 1712,
                "height": 2288
              }
            },
            {
              "label": "656x912",
              "value": {
                "width": 656,
                "height": 912
              }
            },
            {
              "label": "864x1216",
              "value": {
                "width": 864,
                "height": 1216
              }
            },
            {
              "label": "1296x1824",
              "value": {
                "width": 1296,
                "height": 1824
              }
            },
            {
              "label": "1680x2352",
              "value": {
                "width": 1680,
                "height": 2352
              }
            },
            {
              "label": "624x944",
              "value": {
                "width": 624,
                "height": 944
              }
            },
            {
              "label": "832x1248",
              "value": {
                "width": 832,
                "height": 1248
              }
            },
            {
              "label": "1248x1888",
              "value": {
                "width": 1248,
                "height": 1888
              }
            },
            {
              "label": "1616x2432",
              "value": {
                "width": 1616,
                "height": 2432
              }
            },
            {
              "label": "576x1024",
              "value": {
                "width": 576,
                "height": 1024
              }
            },
            {
              "label": "768x1360",
              "value": {
                "width": 768,
                "height": 1360
              }
            },
            {
              "label": "1152x2048",
              "value": {
                "width": 1152,
                "height": 2048
              }
            },
            {
              "label": "1488x2640",
              "value": {
                "width": 1488,
                "height": 2640
              }
            },
            {
              "label": "544x1088",
              "value": {
                "width": 544,
                "height": 1088
              }
            },
            {
              "label": "720x1456",
              "value": {
                "width": 720,
                "height": 1456
              }
            },
            {
              "label": "1088x2176",
              "value": {
                "width": 1088,
                "height": 2176
              }
            },
            {
              "label": "1408x2800",
              "value": {
                "width": 1408,
                "height": 2800
              }
            },
            {
              "label": "496x1168",
              "value": {
                "width": 496,
                "height": 1168
              }
            },
            {
              "label": "672x1568",
              "value": {
                "width": 672,
                "height": 1568
              }
            },
            {
              "label": "1008x2352",
              "value": {
                "width": 1008,
                "height": 2352
              }
            },
            {
              "label": "1296x3024",
              "value": {
                "width": 1296,
                "height": 3024
              }
            }
          ],
          "default": {
            "width": 1024,
            "height": 1024
          }
        },
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "width",
          "label": "Width",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "height",
          "label": "Height",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 7 the most permissive; the default is 2. BFL approves the highest level each account may use and refuses a level above it.",
          "type": "int_slider",
          "min": 0,
          "max": 7,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-2-klein-4b",
        "body": {
          "input_image": "{{images[0]}}",
          "input_image_2": "{{images[1]}}",
          "input_image_3": "{{images[2]}}",
          "input_image_4": "{{images[3]}}",
          "prompt": "{{prompt}}",
          "seed": "{{fields.seed}}",
          "width": "{{fields.canvas.width}}",
          "height": "{{fields.canvas.height}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "per_request": 0.013,
        "per_output_megapixel_block": 0.001,
        "output_megapixel_block_size": 1,
        "per_input_megapixel_block": 0.001,
        "input_megapixel_block_size": 1,
        "note": "Published rates per started MP; Match input is priced once the size is known. Actual submission credits override estimates."
      },
      "output_limits": {
        "max_megapixels": 4
      },
      "variants": {
        "label": "Size mode",
        "default": "presets",
        "options": [
          {
            "id": "presets",
            "label": "Ratio & size",
            "description": "Choose a shape and a preset pixel size, or match the input where supported.",
            "fields": [
              "canvas",
              "seed",
              "safety_tolerance",
              "output_format"
            ]
          },
          {
            "id": "custom",
            "label": "Custom (exact pixels)",
            "description": "Enter an exact width and height within the endpoint's canvas limits.",
            "fields": [
              "width",
              "height",
              "seed",
              "safety_tolerance",
              "output_format"
            ],
            "request": {
              "method": "POST",
              "url": "https://api.bfl.ai/v1/flux-2-klein-4b",
              "body": {
                "input_image": "{{images[0]}}",
                "input_image_2": "{{images[1]}}",
                "input_image_3": "{{images[2]}}",
                "input_image_4": "{{images[3]}}",
                "prompt": "{{prompt}}",
                "seed": "{{fields.seed}}",
                "width": "{{fields.width}}",
                "height": "{{fields.height}}",
                "safety_tolerance": "{{fields.safety_tolerance}}",
                "output_format": "{{fields.output_format}}"
              }
            }
          }
        ]
      }
    },
    {
      "id": "outpainting-v1",
      "label": "Outpainting",
      "group": "Image Tools",
      "prompt": {
        "mode": "optional"
      },
      "references": {
        "mode": "required",
        "max": 1,
        "send_as": "base64"
      },
      "fields": [
        {
          "key": "canvas",
          "label": "Size",
          "type": "size",
          "options": [
            {
              "label": "768x768",
              "value": {
                "width": 768,
                "height": 768
              }
            },
            {
              "label": "1024x1024",
              "value": {
                "width": 1024,
                "height": 1024
              }
            },
            {
              "label": "1536x1536",
              "value": {
                "width": 1536,
                "height": 1536
              }
            },
            {
              "label": "1984x1984",
              "value": {
                "width": 1984,
                "height": 1984
              }
            },
            {
              "label": "1168x496",
              "value": {
                "width": 1168,
                "height": 496
              }
            },
            {
              "label": "1568x672",
              "value": {
                "width": 1568,
                "height": 672
              }
            },
            {
              "label": "2352x1008",
              "value": {
                "width": 2352,
                "height": 1008
              }
            },
            {
              "label": "3024x1296",
              "value": {
                "width": 3024,
                "height": 1296
              }
            },
            {
              "label": "1088x544",
              "value": {
                "width": 1088,
                "height": 544
              }
            },
            {
              "label": "1456x720",
              "value": {
                "width": 1456,
                "height": 720
              }
            },
            {
              "label": "2176x1088",
              "value": {
                "width": 2176,
                "height": 1088
              }
            },
            {
              "label": "2800x1408",
              "value": {
                "width": 2800,
                "height": 1408
              }
            },
            {
              "label": "1024x576",
              "value": {
                "width": 1024,
                "height": 576
              }
            },
            {
              "label": "1360x768",
              "value": {
                "width": 1360,
                "height": 768
              }
            },
            {
              "label": "2048x1152",
              "value": {
                "width": 2048,
                "height": 1152
              }
            },
            {
              "label": "2640x1488",
              "value": {
                "width": 2640,
                "height": 1488
              }
            },
            {
              "label": "944x624",
              "value": {
                "width": 944,
                "height": 624
              }
            },
            {
              "label": "1248x832",
              "value": {
                "width": 1248,
                "height": 832
              }
            },
            {
              "label": "1888x1248",
              "value": {
                "width": 1888,
                "height": 1248
              }
            },
            {
              "label": "2432x1616",
              "value": {
                "width": 2432,
                "height": 1616
              }
            },
            {
              "label": "912x656",
              "value": {
                "width": 912,
                "height": 656
              }
            },
            {
              "label": "1216x864",
              "value": {
                "width": 1216,
                "height": 864
              }
            },
            {
              "label": "1824x1296",
              "value": {
                "width": 1824,
                "height": 1296
              }
            },
            {
              "label": "2352x1680",
              "value": {
                "width": 2352,
                "height": 1680
              }
            },
            {
              "label": "880x672",
              "value": {
                "width": 880,
                "height": 672
              }
            },
            {
              "label": "1184x880",
              "value": {
                "width": 1184,
                "height": 880
              }
            },
            {
              "label": "1776x1328",
              "value": {
                "width": 1776,
                "height": 1328
              }
            },
            {
              "label": "2288x1712",
              "value": {
                "width": 2288,
                "height": 1712
              }
            },
            {
              "label": "864x688",
              "value": {
                "width": 864,
                "height": 688
              }
            },
            {
              "label": "1152x912",
              "value": {
                "width": 1152,
                "height": 912
              }
            },
            {
              "label": "1712x1376",
              "value": {
                "width": 1712,
                "height": 1376
              }
            },
            {
              "label": "2224x1776",
              "value": {
                "width": 2224,
                "height": 1776
              }
            },
            {
              "label": "688x864",
              "value": {
                "width": 688,
                "height": 864
              }
            },
            {
              "label": "912x1152",
              "value": {
                "width": 912,
                "height": 1152
              }
            },
            {
              "label": "1376x1712",
              "value": {
                "width": 1376,
                "height": 1712
              }
            },
            {
              "label": "1776x2224",
              "value": {
                "width": 1776,
                "height": 2224
              }
            },
            {
              "label": "672x880",
              "value": {
                "width": 672,
                "height": 880
              }
            },
            {
              "label": "880x1184",
              "value": {
                "width": 880,
                "height": 1184
              }
            },
            {
              "label": "1328x1776",
              "value": {
                "width": 1328,
                "height": 1776
              }
            },
            {
              "label": "1712x2288",
              "value": {
                "width": 1712,
                "height": 2288
              }
            },
            {
              "label": "656x912",
              "value": {
                "width": 656,
                "height": 912
              }
            },
            {
              "label": "864x1216",
              "value": {
                "width": 864,
                "height": 1216
              }
            },
            {
              "label": "1296x1824",
              "value": {
                "width": 1296,
                "height": 1824
              }
            },
            {
              "label": "1680x2352",
              "value": {
                "width": 1680,
                "height": 2352
              }
            },
            {
              "label": "624x944",
              "value": {
                "width": 624,
                "height": 944
              }
            },
            {
              "label": "832x1248",
              "value": {
                "width": 832,
                "height": 1248
              }
            },
            {
              "label": "1248x1888",
              "value": {
                "width": 1248,
                "height": 1888
              }
            },
            {
              "label": "1616x2432",
              "value": {
                "width": 1616,
                "height": 2432
              }
            },
            {
              "label": "576x1024",
              "value": {
                "width": 576,
                "height": 1024
              }
            },
            {
              "label": "768x1360",
              "value": {
                "width": 768,
                "height": 1360
              }
            },
            {
              "label": "1152x2048",
              "value": {
                "width": 1152,
                "height": 2048
              }
            },
            {
              "label": "1488x2640",
              "value": {
                "width": 1488,
                "height": 2640
              }
            },
            {
              "label": "544x1088",
              "value": {
                "width": 544,
                "height": 1088
              }
            },
            {
              "label": "720x1456",
              "value": {
                "width": 720,
                "height": 1456
              }
            },
            {
              "label": "1088x2176",
              "value": {
                "width": 1088,
                "height": 2176
              }
            },
            {
              "label": "1408x2800",
              "value": {
                "width": 1408,
                "height": 2800
              }
            },
            {
              "label": "496x1168",
              "value": {
                "width": 496,
                "height": 1168
              }
            },
            {
              "label": "672x1568",
              "value": {
                "width": 672,
                "height": 1568
              }
            },
            {
              "label": "1008x2352",
              "value": {
                "width": 1008,
                "height": 2352
              }
            },
            {
              "label": "1296x3024",
              "value": {
                "width": 1296,
                "height": 3024
              }
            }
          ],
          "default": {
            "width": 1024,
            "height": 1024
          }
        },
        {
          "key": "width",
          "label": "Width",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "height",
          "label": "Height",
          "type": "int",
          "min": 64,
          "max": 65535,
          "default": 1024
        },
        {
          "key": "auto_crop",
          "label": "Crop source outside canvas",
          "type": "bool",
          "default": false
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 7 the most permissive; the default is 2. BFL approves the highest level each account may use and refuses a level above it.",
          "type": "int_slider",
          "min": 0,
          "max": 7,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        },
        {
          "key": "reference_offset_x",
          "label": "Horizontal offset (px)",
          "type": "optional_int",
          "min": -2147483646,
          "max": 2147483647,
          "help": "Auto centers this axis; zero aligns the leading edge. Enable cropping for negative offsets that put the source outside the canvas."
        },
        {
          "key": "reference_offset_y",
          "label": "Vertical offset (px)",
          "type": "optional_int",
          "min": -2147483646,
          "max": 2147483647,
          "help": "Auto centers this axis; zero aligns the leading edge. Enable cropping for negative offsets that put the source outside the canvas."
        },
        {
          "key": "mode",
          "label": "Quality",
          "type": "combo",
          "options": [
            {
              "label": "High",
              "value": "high"
            },
            {
              "label": "Fast",
              "value": "fast"
            }
          ],
          "default": "high"
        },
        {
          "key": "disable_pup",
          "label": "Keep prompt exactly as written",
          "type": "bool",
          "default": true
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-tools/outpainting-v1",
        "body": {
          "input_image": "{{image}}",
          "prompt": "{{prompt}}",
          "width": "{{fields.canvas.width}}",
          "height": "{{fields.canvas.height}}",
          "auto_crop": "{{fields.auto_crop}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}",
          "reference_offset_x": "{{fields.reference_offset_x}}",
          "reference_offset_y": "{{fields.reference_offset_y}}",
          "mode": "{{fields.mode}}",
          "disable_pup": "{{fields.disable_pup}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "per_output_megapixel_block": 0.1,
        "output_megapixel_block_size": 1,
        "note": "Published High rate per started MP; Fast costs less. Actual submission credits override estimates."
      },
      "output_limits": {
        "max_megapixels": 4
      },
      "variants": {
        "label": "Size mode",
        "default": "presets",
        "options": [
          {
            "id": "presets",
            "label": "Ratio & size",
            "description": "Choose a shape and a preset pixel size, or match the input where supported.",
            "fields": [
              "canvas",
              "auto_crop",
              "safety_tolerance",
              "output_format",
              "reference_offset_x",
              "reference_offset_y",
              "mode",
              "disable_pup"
            ]
          },
          {
            "id": "custom",
            "label": "Custom (exact pixels)",
            "description": "Enter an exact width and height within the endpoint's canvas limits.",
            "fields": [
              "width",
              "height",
              "auto_crop",
              "safety_tolerance",
              "output_format",
              "reference_offset_x",
              "reference_offset_y",
              "mode",
              "disable_pup"
            ],
            "request": {
              "method": "POST",
              "url": "https://api.bfl.ai/v1/flux-tools/outpainting-v1",
              "body": {
                "input_image": "{{image}}",
                "prompt": "{{prompt}}",
                "width": "{{fields.width}}",
                "height": "{{fields.height}}",
                "auto_crop": "{{fields.auto_crop}}",
                "safety_tolerance": "{{fields.safety_tolerance}}",
                "output_format": "{{fields.output_format}}",
                "reference_offset_x": "{{fields.reference_offset_x}}",
                "reference_offset_y": "{{fields.reference_offset_y}}",
                "mode": "{{fields.mode}}",
                "disable_pup": "{{fields.disable_pup}}"
              }
            }
          }
        ]
      },
      "description": "Extend a source onto a canvas up to 4 MP. Auto offsets center it; enable cropping for placements outside the canvas. Fast mode needs a source at least 64 px per side, at most 8:1, and room for internal alignment padding."
    },
    {
      "id": "erase-v1",
      "label": "Erase",
      "group": "Image Tools",
      "prompt": {
        "mode": "none"
      },
      "references": {
        "mode": "required",
        "max": 1,
        "send_as": "base64"
      },
      "fields": [
        {
          "key": "dilate_pixels",
          "label": "Mask expansion (px)",
          "type": "int",
          "min": 0,
          "max": 25,
          "default": 10
        },
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 7 the most permissive; the default is 2. BFL approves the highest level each account may use and refuses a level above it.",
          "type": "int_slider",
          "min": 0,
          "max": 7,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-tools/erase-v1",
        "body": {
          "image": "{{image}}",
          "mask": "{{mask}}",
          "dilate_pixels": "{{fields.dilate_pixels}}",
          "seed": "{{fields.seed}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "per_request": 0.026,
        "per_input_megapixel_block": 0.008,
        "input_megapixel_block_size": 1,
        "note": "Published rates per started MP, with the result taken to be no larger than the images sent. Actual submission credits override estimates."
      },
      "mask": {
        "mode": "required",
        "paint": "white",
        "send_as": "base64"
      }
    },
    {
      "id": "deblur-v1",
      "label": "Deblur",
      "group": "Image Tools",
      "prompt": {
        "mode": "none"
      },
      "references": {
        "mode": "required",
        "max": 1,
        "send_as": "base64"
      },
      "fields": [
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 7 the most permissive; the default is 2. BFL approves the highest level each account may use and refuses a level above it.",
          "type": "int_slider",
          "min": 0,
          "max": 7,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-tools/deblur-v1",
        "body": {
          "image": "{{image}}",
          "seed": "{{fields.seed}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "per_request": 0.026,
        "per_input_megapixel_block": 0.008,
        "input_megapixel_block_size": 1,
        "note": "Published rates per started MP, with the result taken to be no larger than the images sent. Actual submission credits override estimates."
      }
    },
    {
      "id": "vto-v2",
      "label": "Virtual Try-On",
      "group": "Image Tools",
      "prompt": {
        "mode": "required"
      },
      "references": {
        "mode": "required",
        "max": 1,
        "send_as": "base64",
        "max_megapixels": 4
      },
      "fields": [
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 7 the most permissive; the default is 2. BFL approves the highest level each account may use and refuses a level above it.",
          "type": "int_slider",
          "min": 0,
          "max": 7,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-tools/vto-v2",
        "body": {
          "person": "{{image}}",
          "garment": "{{inputs.garment[0]}}",
          "prompt": "{{prompt}}",
          "seed": "{{fields.seed}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "note": "BFL reports credits on submission; one credit is $0.01. When no published estimate applies, the cost is unknown until submission."
      },
      "image_inputs": [
        {
          "key": "garment",
          "label": "Garment",
          "mode": "required",
          "max": 1,
          "send_as": "base64",
          "help": "An image containing the garment or garments to try on."
        }
      ],
      "variants": {
        "label": "Version",
        "default": "v2",
        "options": [
          {
            "id": "v2",
            "label": "V2",
            "description": "Current model; person and garment uploads fit within 4 MP."
          },
          {
            "id": "v1",
            "label": "V1",
            "description": "Earlier model; person and garment uploads fit within 2 MP.",
            "request": {
              "method": "POST",
              "url": "https://api.bfl.ai/v1/flux-tools/vto-v1",
              "body": {
                "person": "{{image}}",
                "garment": "{{inputs.garment[0]}}",
                "prompt": "{{prompt}}",
                "seed": "{{fields.seed}}",
                "safety_tolerance": "{{fields.safety_tolerance}}",
                "output_format": "{{fields.output_format}}"
              }
            },
            "references": {
              "mode": "required",
              "max": 1,
              "send_as": "base64",
              "max_megapixels": 2
            },
            "pricing": {
              "amount": "submit.cost",
              "amount_multiplier": 0.01,
              "per_request": 0.0325,
              "per_input_megapixel_block": 0.01,
              "input_megapixel_block_size": 1,
              "note": "Published rates per started MP, with the result taken to be no larger than the images sent. Actual submission credits override estimates."
            }
          }
        ]
      }
    },
    {
      "id": "flux-kontext-max",
      "label": "Kontext Max",
      "group": "FLUX.1",
      "prompt": {
        "mode": "required"
      },
      "references": {
        "mode": "optional",
        "max": 4,
        "send_as": "base64"
      },
      "fields": [
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "aspect_ratio",
          "label": "Aspect ratio",
          "type": "aspect_combo",
          "options": [
            {
              "label": "Match input",
              "value": null
            },
            "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",
            "9:21"
          ],
          "default": null
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        },
        {
          "key": "prompt_upsampling",
          "label": "Prompt rewriting",
          "help": "Let BFL expand the prompt before generating; starts Off to preserve your wording.",
          "type": "bool",
          "default": false
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 6 the most permissive; the default is 2.",
          "type": "int_slider",
          "min": 0,
          "max": 6,
          "default": 2
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-kontext-max",
        "body": {
          "input_image": "{{images[0]}}",
          "input_image_2": "{{images[1]}}",
          "input_image_3": "{{images[2]}}",
          "input_image_4": "{{images[3]}}",
          "prompt": "{{prompt}}",
          "seed": "{{fields.seed}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "output_format": "{{fields.output_format}}",
          "prompt_upsampling": "{{fields.prompt_upsampling}}",
          "safety_tolerance": "{{fields.safety_tolerance}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "note": "BFL reports credits on submission; one credit is $0.01. When no published estimate applies, the cost is unknown until submission.",
        "per_image": 0.08
      }
    },
    {
      "id": "flux-kontext-pro",
      "label": "Kontext Pro",
      "group": "FLUX.1",
      "prompt": {
        "mode": "required"
      },
      "references": {
        "mode": "optional",
        "max": 4,
        "send_as": "base64"
      },
      "fields": [
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "aspect_ratio",
          "label": "Aspect ratio",
          "type": "aspect_combo",
          "options": [
            {
              "label": "Match input",
              "value": null
            },
            "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",
            "9:21"
          ],
          "default": null
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        },
        {
          "key": "prompt_upsampling",
          "label": "Prompt rewriting",
          "help": "Let BFL expand the prompt before generating; starts Off to preserve your wording.",
          "type": "bool",
          "default": false
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 6 the most permissive; the default is 2.",
          "type": "int_slider",
          "min": 0,
          "max": 6,
          "default": 2
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-kontext-pro",
        "body": {
          "input_image": "{{images[0]}}",
          "input_image_2": "{{images[1]}}",
          "input_image_3": "{{images[2]}}",
          "input_image_4": "{{images[3]}}",
          "prompt": "{{prompt}}",
          "seed": "{{fields.seed}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "output_format": "{{fields.output_format}}",
          "prompt_upsampling": "{{fields.prompt_upsampling}}",
          "safety_tolerance": "{{fields.safety_tolerance}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "note": "BFL reports credits on submission; one credit is $0.01. When no published estimate applies, the cost is unknown until submission.",
        "per_image": 0.04
      }
    },
    {
      "id": "flux-pro-1-1-ultra",
      "label": "1.1 Pro Ultra / Raw",
      "group": "FLUX.1",
      "prompt": {
        "mode": "optional"
      },
      "references": {
        "mode": "optional",
        "max": 1,
        "send_as": "base64",
        "role": "guide"
      },
      "fields": [
        {
          "key": "prompt_upsampling",
          "label": "Prompt rewriting",
          "help": "Let BFL expand the prompt before generating; starts Off to preserve your wording.",
          "type": "bool",
          "default": false
        },
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "aspect_ratio",
          "label": "Aspect ratio",
          "type": "aspect_combo",
          "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",
            "9:21"
          ],
          "default": "16:9"
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 6 the most permissive; the default is 2.",
          "type": "int_slider",
          "min": 0,
          "max": 6,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        },
        {
          "key": "raw",
          "label": "Raw photography",
          "type": "bool",
          "default": false
        },
        {
          "key": "image_prompt_strength",
          "label": "Reference strength",
          "help": "Higher values make the reference guide the result more strongly.",
          "type": "float",
          "min": 0.0,
          "max": 1.0,
          "default": 0.1,
          "decimals": 2
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-pro-1.1-ultra",
        "body": {
          "image_prompt": "{{image}}",
          "prompt": "{{prompt}}",
          "prompt_upsampling": "{{fields.prompt_upsampling}}",
          "seed": "{{fields.seed}}",
          "aspect_ratio": "{{fields.aspect_ratio}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}",
          "raw": "{{fields.raw}}",
          "image_prompt_strength": "{{fields.image_prompt_strength}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "note": "BFL reports credits on submission; one credit is $0.01. When no published estimate applies, the cost is unknown until submission.",
        "per_image": 0.06
      },
      "description": "Toggle Raw for candid photography. References guide a new image."
    },
    {
      "id": "flux-pro-1-1",
      "label": "1.1 Pro",
      "group": "FLUX.1",
      "prompt": {
        "mode": "optional"
      },
      "references": {
        "mode": "optional",
        "max": 1,
        "send_as": "base64",
        "role": "guide"
      },
      "fields": [
        {
          "key": "canvas",
          "label": "Size",
          "type": "size",
          "options": [
            {
              "label": "768x768",
              "value": {
                "width": 768,
                "height": 768
              }
            },
            {
              "label": "1024x1024",
              "value": {
                "width": 1024,
                "height": 1024
              }
            },
            {
              "label": "1184x512",
              "value": {
                "width": 1184,
                "height": 512
              }
            },
            {
              "label": "1088x544",
              "value": {
                "width": 1088,
                "height": 544
              }
            },
            {
              "label": "1440x736",
              "value": {
                "width": 1440,
                "height": 736
              }
            },
            {
              "label": "1024x576",
              "value": {
                "width": 1024,
                "height": 576
              }
            },
            {
              "label": "1376x768",
              "value": {
                "width": 1376,
                "height": 768
              }
            },
            {
              "label": "928x640",
              "value": {
                "width": 928,
                "height": 640
              }
            },
            {
              "label": "1248x832",
              "value": {
                "width": 1248,
                "height": 832
              }
            },
            {
              "label": "896x640",
              "value": {
                "width": 896,
                "height": 640
              }
            },
            {
              "label": "1216x864",
              "value": {
                "width": 1216,
                "height": 864
              }
            },
            {
              "label": "896x672",
              "value": {
                "width": 896,
                "height": 672
              }
            },
            {
              "label": "1184x896",
              "value": {
                "width": 1184,
                "height": 896
              }
            },
            {
              "label": "864x672",
              "value": {
                "width": 864,
                "height": 672
              }
            },
            {
              "label": "1152x928",
              "value": {
                "width": 1152,
                "height": 928
              }
            },
            {
              "label": "672x864",
              "value": {
                "width": 672,
                "height": 864
              }
            },
            {
              "label": "928x1152",
              "value": {
                "width": 928,
                "height": 1152
              }
            },
            {
              "label": "672x896",
              "value": {
                "width": 672,
                "height": 896
              }
            },
            {
              "label": "896x1184",
              "value": {
                "width": 896,
                "height": 1184
              }
            },
            {
              "label": "640x896",
              "value": {
                "width": 640,
                "height": 896
              }
            },
            {
              "label": "864x1216",
              "value": {
                "width": 864,
                "height": 1216
              }
            },
            {
              "label": "640x928",
              "value": {
                "width": 640,
                "height": 928
              }
            },
            {
              "label": "832x1248",
              "value": {
                "width": 832,
                "height": 1248
              }
            },
            {
              "label": "576x1024",
              "value": {
                "width": 576,
                "height": 1024
              }
            },
            {
              "label": "768x1376",
              "value": {
                "width": 768,
                "height": 1376
              }
            },
            {
              "label": "544x1088",
              "value": {
                "width": 544,
                "height": 1088
              }
            },
            {
              "label": "736x1440",
              "value": {
                "width": 736,
                "height": 1440
              }
            },
            {
              "label": "512x1184",
              "value": {
                "width": 512,
                "height": 1184
              }
            }
          ],
          "default": {
            "width": 1024,
            "height": 1024
          }
        },
        {
          "key": "width",
          "label": "Width",
          "type": "int",
          "min": 256,
          "max": 1440,
          "default": 1024,
          "step": 32.0
        },
        {
          "key": "height",
          "label": "Height",
          "type": "int",
          "min": 256,
          "max": 1440,
          "default": 1024,
          "step": 32.0
        },
        {
          "key": "prompt_upsampling",
          "label": "Prompt rewriting",
          "help": "Let BFL expand the prompt before generating; starts Off to preserve your wording.",
          "type": "bool",
          "default": false
        },
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 6 the most permissive; the default is 2.",
          "type": "int_slider",
          "min": 0,
          "max": 6,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-pro-1.1",
        "body": {
          "image_prompt": "{{image}}",
          "prompt": "{{prompt}}",
          "width": "{{fields.canvas.width}}",
          "height": "{{fields.canvas.height}}",
          "prompt_upsampling": "{{fields.prompt_upsampling}}",
          "seed": "{{fields.seed}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "note": "BFL reports credits on submission; one credit is $0.01. When no published estimate applies, the cost is unknown until submission.",
        "per_image": 0.04
      },
      "output_limits": {
        "multiple_of": 32.0
      },
      "variants": {
        "label": "Size mode",
        "default": "presets",
        "options": [
          {
            "id": "presets",
            "label": "Ratio & size",
            "description": "Choose a shape and a preset pixel size, or match the input where supported.",
            "fields": [
              "canvas",
              "prompt_upsampling",
              "seed",
              "safety_tolerance",
              "output_format"
            ]
          },
          {
            "id": "custom",
            "label": "Custom (exact pixels)",
            "description": "Enter an exact width and height within the endpoint's canvas limits.",
            "fields": [
              "width",
              "height",
              "prompt_upsampling",
              "seed",
              "safety_tolerance",
              "output_format"
            ],
            "request": {
              "method": "POST",
              "url": "https://api.bfl.ai/v1/flux-pro-1.1",
              "body": {
                "image_prompt": "{{image}}",
                "prompt": "{{prompt}}",
                "width": "{{fields.width}}",
                "height": "{{fields.height}}",
                "prompt_upsampling": "{{fields.prompt_upsampling}}",
                "seed": "{{fields.seed}}",
                "safety_tolerance": "{{fields.safety_tolerance}}",
                "output_format": "{{fields.output_format}}"
              }
            }
          }
        ]
      }
    },
    {
      "id": "flux-pro-1-0-fill",
      "label": "Fill Pro",
      "group": "FLUX.1",
      "prompt": {
        "mode": "optional"
      },
      "references": {
        "mode": "required",
        "max": 1,
        "send_as": "base64"
      },
      "fields": [
        {
          "key": "steps",
          "label": "Steps",
          "help": "More sampling passes can improve detail, but take longer to generate.",
          "type": "int",
          "min": 15,
          "max": 50,
          "default": 50
        },
        {
          "key": "prompt_upsampling",
          "label": "Prompt rewriting",
          "help": "Let BFL expand the prompt before generating; starts Off to preserve your wording.",
          "type": "bool",
          "default": false
        },
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "guidance",
          "label": "Guidance",
          "help": "Higher values follow the prompt more closely, at the cost of reduced realism.",
          "type": "float",
          "min": 1.5,
          "max": 100.0,
          "default": 60,
          "decimals": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 6 the most permissive; the default is 2.",
          "type": "int_slider",
          "min": 0,
          "max": 6,
          "default": 2
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-pro-1.0-fill",
        "body": {
          "image": "{{image}}",
          "prompt": "{{prompt}}",
          "mask": "{{mask}}",
          "steps": "{{fields.steps}}",
          "prompt_upsampling": "{{fields.prompt_upsampling}}",
          "seed": "{{fields.seed}}",
          "guidance": "{{fields.guidance}}",
          "output_format": "{{fields.output_format}}",
          "safety_tolerance": "{{fields.safety_tolerance}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "note": "BFL reports credits on submission; one credit is $0.01. When no published estimate applies, the cost is unknown until submission.",
        "per_image": 0.05
      },
      "mask": {
        "mode": "required",
        "paint": "white",
        "send_as": "base64"
      }
    },
    {
      "id": "flux-pro-1-0-expand",
      "label": "Expand Pro",
      "group": "FLUX.1",
      "prompt": {
        "mode": "optional"
      },
      "references": {
        "mode": "required",
        "max": 1,
        "send_as": "base64"
      },
      "fields": [
        {
          "key": "top",
          "label": "Top",
          "type": "int",
          "min": 0,
          "max": 2048,
          "default": 0
        },
        {
          "key": "bottom",
          "label": "Bottom",
          "type": "int",
          "min": 0,
          "max": 2048,
          "default": 0
        },
        {
          "key": "left",
          "label": "Left",
          "type": "int",
          "min": 0,
          "max": 2048,
          "default": 0
        },
        {
          "key": "right",
          "label": "Right",
          "type": "int",
          "min": 0,
          "max": 2048,
          "default": 0
        },
        {
          "key": "steps",
          "label": "Steps",
          "help": "More sampling passes can improve detail, but take longer to generate.",
          "type": "int",
          "min": 15,
          "max": 50,
          "default": 50
        },
        {
          "key": "prompt_upsampling",
          "label": "Prompt rewriting",
          "help": "Let BFL expand the prompt before generating; starts Off to preserve your wording.",
          "type": "bool",
          "default": false
        },
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "guidance",
          "label": "Guidance",
          "help": "Higher values follow the prompt more closely, at the cost of reduced realism.",
          "type": "float",
          "min": 1.5,
          "max": 100.0,
          "default": 60,
          "decimals": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 6 the most permissive; the default is 2.",
          "type": "int_slider",
          "min": 0,
          "max": 6,
          "default": 2
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-pro-1.0-expand",
        "body": {
          "image": "{{image}}",
          "prompt": "{{prompt}}",
          "top": "{{fields.top}}",
          "bottom": "{{fields.bottom}}",
          "left": "{{fields.left}}",
          "right": "{{fields.right}}",
          "steps": "{{fields.steps}}",
          "prompt_upsampling": "{{fields.prompt_upsampling}}",
          "seed": "{{fields.seed}}",
          "guidance": "{{fields.guidance}}",
          "output_format": "{{fields.output_format}}",
          "safety_tolerance": "{{fields.safety_tolerance}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "note": "BFL reports credits on submission; one credit is $0.01. When no published estimate applies, the cost is unknown until submission."
      }
    },
    {
      "id": "flux-dev",
      "label": "Dev (Hosted API)",
      "group": "FLUX.1",
      "prompt": {
        "mode": "optional"
      },
      "references": {
        "mode": "optional",
        "max": 1,
        "send_as": "base64",
        "role": "guide"
      },
      "fields": [
        {
          "key": "canvas",
          "label": "Size",
          "type": "size",
          "options": [
            {
              "label": "768x768",
              "value": {
                "width": 768,
                "height": 768
              }
            },
            {
              "label": "1024x1024",
              "value": {
                "width": 1024,
                "height": 1024
              }
            },
            {
              "label": "1184x512",
              "value": {
                "width": 1184,
                "height": 512
              }
            },
            {
              "label": "1088x544",
              "value": {
                "width": 1088,
                "height": 544
              }
            },
            {
              "label": "1440x736",
              "value": {
                "width": 1440,
                "height": 736
              }
            },
            {
              "label": "1024x576",
              "value": {
                "width": 1024,
                "height": 576
              }
            },
            {
              "label": "1376x768",
              "value": {
                "width": 1376,
                "height": 768
              }
            },
            {
              "label": "928x640",
              "value": {
                "width": 928,
                "height": 640
              }
            },
            {
              "label": "1248x832",
              "value": {
                "width": 1248,
                "height": 832
              }
            },
            {
              "label": "896x640",
              "value": {
                "width": 896,
                "height": 640
              }
            },
            {
              "label": "1216x864",
              "value": {
                "width": 1216,
                "height": 864
              }
            },
            {
              "label": "896x672",
              "value": {
                "width": 896,
                "height": 672
              }
            },
            {
              "label": "1184x896",
              "value": {
                "width": 1184,
                "height": 896
              }
            },
            {
              "label": "864x672",
              "value": {
                "width": 864,
                "height": 672
              }
            },
            {
              "label": "1152x928",
              "value": {
                "width": 1152,
                "height": 928
              }
            },
            {
              "label": "672x864",
              "value": {
                "width": 672,
                "height": 864
              }
            },
            {
              "label": "928x1152",
              "value": {
                "width": 928,
                "height": 1152
              }
            },
            {
              "label": "672x896",
              "value": {
                "width": 672,
                "height": 896
              }
            },
            {
              "label": "896x1184",
              "value": {
                "width": 896,
                "height": 1184
              }
            },
            {
              "label": "640x896",
              "value": {
                "width": 640,
                "height": 896
              }
            },
            {
              "label": "864x1216",
              "value": {
                "width": 864,
                "height": 1216
              }
            },
            {
              "label": "640x928",
              "value": {
                "width": 640,
                "height": 928
              }
            },
            {
              "label": "832x1248",
              "value": {
                "width": 832,
                "height": 1248
              }
            },
            {
              "label": "576x1024",
              "value": {
                "width": 576,
                "height": 1024
              }
            },
            {
              "label": "768x1376",
              "value": {
                "width": 768,
                "height": 1376
              }
            },
            {
              "label": "544x1088",
              "value": {
                "width": 544,
                "height": 1088
              }
            },
            {
              "label": "736x1440",
              "value": {
                "width": 736,
                "height": 1440
              }
            },
            {
              "label": "512x1184",
              "value": {
                "width": 512,
                "height": 1184
              }
            }
          ],
          "default": {
            "width": 1024,
            "height": 1024
          }
        },
        {
          "key": "width",
          "label": "Width",
          "type": "int",
          "min": 256,
          "max": 1440,
          "default": 1024,
          "step": 32.0
        },
        {
          "key": "height",
          "label": "Height",
          "type": "int",
          "min": 256,
          "max": 1440,
          "default": 1024,
          "step": 32.0
        },
        {
          "key": "steps",
          "label": "Steps",
          "help": "More sampling passes can improve detail, but take longer to generate.",
          "type": "int",
          "min": 1,
          "max": 50,
          "default": 28
        },
        {
          "key": "prompt_upsampling",
          "label": "Prompt rewriting",
          "help": "Let BFL expand the prompt before generating; starts Off to preserve your wording.",
          "type": "bool",
          "default": false
        },
        {
          "key": "seed",
          "label": "Seed",
          "type": "seed",
          "default": 0,
          "min": 0,
          "max": 2147483647
        },
        {
          "key": "guidance",
          "label": "Guidance",
          "help": "Higher values follow the prompt more closely, at the cost of reduced realism.",
          "type": "float",
          "min": 1.5,
          "max": 5.0,
          "default": 3.0,
          "decimals": 2
        },
        {
          "key": "safety_tolerance",
          "label": "Safety tolerance",
          "help": "0 is the strictest moderation and 6 the most permissive; the default is 2.",
          "type": "int_slider",
          "min": 0,
          "max": 6,
          "default": 2
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "options": [
            {
              "label": "JPEG",
              "value": "jpeg"
            },
            {
              "label": "PNG",
              "value": "png"
            },
            {
              "label": "WebP",
              "value": "webp"
            }
          ],
          "default": "png"
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.bfl.ai/v1/flux-dev",
        "body": {
          "image_prompt": "{{image}}",
          "prompt": "{{prompt}}",
          "width": "{{fields.canvas.width}}",
          "height": "{{fields.canvas.height}}",
          "steps": "{{fields.steps}}",
          "prompt_upsampling": "{{fields.prompt_upsampling}}",
          "seed": "{{fields.seed}}",
          "guidance": "{{fields.guidance}}",
          "safety_tolerance": "{{fields.safety_tolerance}}",
          "output_format": "{{fields.output_format}}"
        }
      },
      "poll": {
        "url": "{{submit.polling_url}}",
        "status": "status",
        "done": [
          "Ready"
        ],
        "failed": [
          "Error",
          "Request Moderated",
          "Content Moderated",
          "Task not found",
          "Failed"
        ],
        "interval_seconds": 1,
        "timeout_seconds": 600
      },
      "result": {
        "images": "result.sample",
        "encoding": "url",
        "download_with_key": false
      },
      "pricing": {
        "amount": "submit.cost",
        "amount_multiplier": 0.01,
        "note": "BFL reports credits on submission; one credit is $0.01. When no published estimate applies, the cost is unknown until submission.",
        "per_image": 0.025
      },
      "output_limits": {
        "multiple_of": 32.0
      },
      "variants": {
        "label": "Size mode",
        "default": "presets",
        "options": [
          {
            "id": "presets",
            "label": "Ratio & size",
            "description": "Choose a shape and a preset pixel size, or match the input where supported.",
            "fields": [
              "canvas",
              "steps",
              "prompt_upsampling",
              "seed",
              "guidance",
              "safety_tolerance",
              "output_format"
            ]
          },
          {
            "id": "custom",
            "label": "Custom (exact pixels)",
            "description": "Enter an exact width and height within the endpoint's canvas limits.",
            "fields": [
              "width",
              "height",
              "steps",
              "prompt_upsampling",
              "seed",
              "guidance",
              "safety_tolerance",
              "output_format"
            ],
            "request": {
              "method": "POST",
              "url": "https://api.bfl.ai/v1/flux-dev",
              "body": {
                "image_prompt": "{{image}}",
                "prompt": "{{prompt}}",
                "width": "{{fields.width}}",
                "height": "{{fields.height}}",
                "steps": "{{fields.steps}}",
                "prompt_upsampling": "{{fields.prompt_upsampling}}",
                "seed": "{{fields.seed}}",
                "guidance": "{{fields.guidance}}",
                "safety_tolerance": "{{fields.safety_tolerance}}",
                "output_format": "{{fields.output_format}}"
              }
            }
          }
        ]
      },
      "description": "Hosted BFL API, covered by the API's commercial-output terms. This is not the non-commercial self-hosted weights license."
    }
  ]
}
