{
  "wando_provider": 1,
  "id": "replicate",
  "name": "Replicate",
  "version": "2.7.2",
  "author": "Wando",
  "updated": "2026-10-20",
  "docs_url": "https://replicate.com/docs",
  "update_url": "https://wandostudios.com/files/bblog/replicate.wandoprovider",
  "notes": "A proof of concept, checked against Replicate's model schemas and pages on 2026-10-20 and not maintained; if you change it, delete update_url. Prices are Replicate's list prices at the top tier your settings reach. Seedream 4.5 uses Wando's Seedream sizes in Advanced Edit and Social Media. Images are uploaded to Replicate's file storage first, which deletes them after a day.",
  "hosts": ["api.replicate.com"],
  "auth": {"label": "Replicate API token", "header": "Authorization", "prefix": "Bearer "},
  "upload": {
    "request": {
      "url": "https://api.replicate.com/v1/files",
      "form": {"content": "{{file}}", "filename": "{{file.name}}", "type": "{{file.mime}}"}
    },
    "file_url": "urls.get"
  },
  "models": [
    {
      "id": "nano-banana-pro",
      "label": "Nano Banana Pro",
      "group": "Google",
      "description": "Google Nano Banana Pro: advanced image generation and editing, with up to 14 references and 4K output.",
      "references": {"mode": "optional", "max": 14, "send_as": "upload"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "2:3",
            "3:2",
            "3:4",
            "4:3",
            "4:5",
            "5:4",
            "9:16",
            "16:9",
            "21:9"
          ]
        },
        {"key": "resolution", "label": "Resolution", "type": "combo", "default": "2K", "options": ["1K", "2K", "4K"]},
        {"key": "output_format", "label": "Format", "type": "combo", "default": "png", "options": ["jpg", "png"]},
        {
          "key": "safety_filter_level",
          "label": "Safety Filter",
          "type": "combo",
          "default": "block_only_high",
          "options": [
            {"label": "Block low and above", "value": "block_low_and_above"},
            {"label": "Block medium and above", "value": "block_medium_and_above"},
            {"label": "Block only high", "value": "block_only_high"}
          ],
          "help": "Block only high lets the most through, but Google still blocks some prompts."
        },
        {
          "key": "allow_fallback_model",
          "label": "Allow fallback",
          "type": "bool",
          "default": false,
          "help": "If Nano Banana Pro is at capacity, Replicate may run Seedream 5 instead and charge its price."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/google/nano-banana-pro/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image_input": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "resolution": "{{fields.resolution}}",
            "output_format": "{{fields.output_format}}",
            "safety_filter_level": "{{fields.safety_filter_level}}",
            "allow_fallback_model": "{{fields.allow_fallback_model}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 600
      },
      "result": {"images": "output"},
      "pricing": {
        "by_field": {"resolution": {"1K": 0.15, "2K": 0.15, "4K": 0.3}},
        "note": "Estimate assumes Nano Banana Pro runs: $0.15 per image at 1K or 2K, and $0.30 at 4K. Enabling fallback can change the final charge if Replicate routes to Seedream 5; check the model page and prediction."
      },
      "sizes": [
        {
          "aspect": "1:1",
          "tier": "1K",
          "width": 1024,
          "height": 1024,
          "values": {"aspect_ratio": "1:1", "resolution": "1K"}
        },
        {
          "aspect": "1:1",
          "tier": "2K",
          "width": 2048,
          "height": 2048,
          "values": {"aspect_ratio": "1:1", "resolution": "2K"}
        },
        {
          "aspect": "1:1",
          "tier": "4K",
          "width": 4096,
          "height": 4096,
          "values": {"aspect_ratio": "1:1", "resolution": "4K"}
        },
        {
          "aspect": "2:3",
          "tier": "1K",
          "width": 848,
          "height": 1264,
          "values": {"aspect_ratio": "2:3", "resolution": "1K"}
        },
        {
          "aspect": "2:3",
          "tier": "2K",
          "width": 1696,
          "height": 2528,
          "values": {"aspect_ratio": "2:3", "resolution": "2K"}
        },
        {
          "aspect": "2:3",
          "tier": "4K",
          "width": 3392,
          "height": 5056,
          "values": {"aspect_ratio": "2:3", "resolution": "4K"}
        },
        {
          "aspect": "3:2",
          "tier": "1K",
          "width": 1264,
          "height": 848,
          "values": {"aspect_ratio": "3:2", "resolution": "1K"}
        },
        {
          "aspect": "3:2",
          "tier": "2K",
          "width": 2528,
          "height": 1696,
          "values": {"aspect_ratio": "3:2", "resolution": "2K"}
        },
        {
          "aspect": "3:2",
          "tier": "4K",
          "width": 5056,
          "height": 3392,
          "values": {"aspect_ratio": "3:2", "resolution": "4K"}
        },
        {
          "aspect": "3:4",
          "tier": "1K",
          "width": 896,
          "height": 1200,
          "values": {"aspect_ratio": "3:4", "resolution": "1K"}
        },
        {
          "aspect": "3:4",
          "tier": "2K",
          "width": 1792,
          "height": 2400,
          "values": {"aspect_ratio": "3:4", "resolution": "2K"}
        },
        {
          "aspect": "3:4",
          "tier": "4K",
          "width": 3584,
          "height": 4800,
          "values": {"aspect_ratio": "3:4", "resolution": "4K"}
        },
        {
          "aspect": "4:3",
          "tier": "1K",
          "width": 1200,
          "height": 896,
          "values": {"aspect_ratio": "4:3", "resolution": "1K"}
        },
        {
          "aspect": "4:3",
          "tier": "2K",
          "width": 2400,
          "height": 1792,
          "values": {"aspect_ratio": "4:3", "resolution": "2K"}
        },
        {
          "aspect": "4:3",
          "tier": "4K",
          "width": 4800,
          "height": 3584,
          "values": {"aspect_ratio": "4:3", "resolution": "4K"}
        },
        {
          "aspect": "4:5",
          "tier": "1K",
          "width": 928,
          "height": 1152,
          "values": {"aspect_ratio": "4:5", "resolution": "1K"}
        },
        {
          "aspect": "4:5",
          "tier": "2K",
          "width": 1856,
          "height": 2304,
          "values": {"aspect_ratio": "4:5", "resolution": "2K"}
        },
        {
          "aspect": "4:5",
          "tier": "4K",
          "width": 3712,
          "height": 4608,
          "values": {"aspect_ratio": "4:5", "resolution": "4K"}
        },
        {
          "aspect": "5:4",
          "tier": "1K",
          "width": 1152,
          "height": 928,
          "values": {"aspect_ratio": "5:4", "resolution": "1K"}
        },
        {
          "aspect": "5:4",
          "tier": "2K",
          "width": 2304,
          "height": 1856,
          "values": {"aspect_ratio": "5:4", "resolution": "2K"}
        },
        {
          "aspect": "5:4",
          "tier": "4K",
          "width": 4608,
          "height": 3712,
          "values": {"aspect_ratio": "5:4", "resolution": "4K"}
        },
        {
          "aspect": "9:16",
          "tier": "1K",
          "width": 768,
          "height": 1376,
          "values": {"aspect_ratio": "9:16", "resolution": "1K"}
        },
        {
          "aspect": "9:16",
          "tier": "2K",
          "width": 1536,
          "height": 2752,
          "values": {"aspect_ratio": "9:16", "resolution": "2K"}
        },
        {
          "aspect": "9:16",
          "tier": "4K",
          "width": 3072,
          "height": 5504,
          "values": {"aspect_ratio": "9:16", "resolution": "4K"}
        },
        {
          "aspect": "16:9",
          "tier": "1K",
          "width": 1376,
          "height": 768,
          "values": {"aspect_ratio": "16:9", "resolution": "1K"}
        },
        {
          "aspect": "16:9",
          "tier": "2K",
          "width": 2752,
          "height": 1536,
          "values": {"aspect_ratio": "16:9", "resolution": "2K"}
        },
        {
          "aspect": "16:9",
          "tier": "4K",
          "width": 5504,
          "height": 3072,
          "values": {"aspect_ratio": "16:9", "resolution": "4K"}
        },
        {
          "aspect": "21:9",
          "tier": "1K",
          "width": 1584,
          "height": 672,
          "values": {"aspect_ratio": "21:9", "resolution": "1K"}
        },
        {
          "aspect": "21:9",
          "tier": "2K",
          "width": 3168,
          "height": 1344,
          "values": {"aspect_ratio": "21:9", "resolution": "2K"}
        },
        {
          "aspect": "21:9",
          "tier": "4K",
          "width": 6336,
          "height": 2688,
          "values": {"aspect_ratio": "21:9", "resolution": "4K"}
        }
      ]
    },
    {
      "id": "imagen-4",
      "label": "Imagen 4",
      "group": "Google",
      "description": "Google Imagen 4 in Fast, Standard and Ultra versions. Choose speed or output quality.",
      "prompt": {"mode": "required", "placeholder": "Describe the image..."},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "16:9", "9:16", "4:3", "3:4"]
        },
        {"key": "image_size", "label": "Resolution", "type": "combo", "default": "1K", "options": ["1K", "2K"]},
        {"key": "output_format", "label": "Format", "type": "combo", "default": "png", "options": ["jpg", "png"]},
        {
          "key": "safety_filter_level",
          "label": "Safety Filter",
          "type": "combo",
          "default": "block_only_high",
          "options": [
            {"label": "Block low and above", "value": "block_low_and_above"},
            {"label": "Block medium and above", "value": "block_medium_and_above"},
            {"label": "Block only high", "value": "block_only_high"}
          ],
          "help": "Block only high lets the most through, but Google still blocks some prompts."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/google/imagen-4-fast/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "safety_filter_level": "{{fields.safety_filter_level}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error"
      },
      "result": {"images": "output"},
      "pricing": {"per_image": 0.02, "note": "Replicate lists $0.02 per image for Fast."},
      "variants": {
        "label": "Version",
        "default": "standard",
        "options": [
          {
            "id": "fast",
            "label": "Fast",
            "fields": ["aspect_ratio", "output_format", "safety_filter_level"],
            "description": "Fast generation at a lower price.",
            "pricing": {"per_image": 0.02, "note": "Replicate lists $0.02 per image."}
          },
          {
            "id": "standard",
            "label": "Standard",
            "fields": ["aspect_ratio", "image_size", "output_format", "safety_filter_level"],
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/google/imagen-4/predictions",
              "headers": {"Prefer": "wait"},
              "body": {
                "input": {
                  "prompt": "{{prompt}}",
                  "aspect_ratio": "{{fields.aspect_ratio}}",
                  "output_format": "{{fields.output_format}}",
                  "safety_filter_level": "{{fields.safety_filter_level}}",
                  "image_size": "{{fields.image_size}}"
                }
              }
            },
            "description": "Standard Imagen 4; choose 1K or 2K.",
            "pricing": {"per_image": 0.04, "note": "Replicate lists $0.04 per image."},
            "sizes": [
              {
                "aspect": "1:1",
                "tier": "1K",
                "width": 1024,
                "height": 1024,
                "values": {"aspect_ratio": "1:1", "image_size": "1K"}
              },
              {
                "aspect": "1:1",
                "tier": "2K",
                "width": 2048,
                "height": 2048,
                "values": {"aspect_ratio": "1:1", "image_size": "2K"}
              },
              {
                "aspect": "11:6",
                "tier": "1K",
                "width": 1408,
                "height": 768,
                "values": {"aspect_ratio": "16:9", "image_size": "1K"}
              },
              {
                "aspect": "11:6",
                "tier": "2K",
                "width": 2816,
                "height": 1536,
                "values": {"aspect_ratio": "16:9", "image_size": "2K"}
              },
              {
                "aspect": "6:11",
                "tier": "1K",
                "width": 768,
                "height": 1408,
                "values": {"aspect_ratio": "9:16", "image_size": "1K"}
              },
              {
                "aspect": "6:11",
                "tier": "2K",
                "width": 1536,
                "height": 2816,
                "values": {"aspect_ratio": "9:16", "image_size": "2K"}
              },
              {
                "aspect": "10:7",
                "tier": "1K",
                "width": 1280,
                "height": 896,
                "values": {"aspect_ratio": "4:3", "image_size": "1K"}
              },
              {
                "aspect": "10:7",
                "tier": "2K",
                "width": 2560,
                "height": 1792,
                "values": {"aspect_ratio": "4:3", "image_size": "2K"}
              },
              {
                "aspect": "7:10",
                "tier": "1K",
                "width": 896,
                "height": 1280,
                "values": {"aspect_ratio": "3:4", "image_size": "1K"}
              },
              {
                "aspect": "7:10",
                "tier": "2K",
                "width": 1792,
                "height": 2560,
                "values": {"aspect_ratio": "3:4", "image_size": "2K"}
              }
            ]
          },
          {
            "id": "ultra",
            "label": "Ultra",
            "fields": ["aspect_ratio", "image_size", "output_format", "safety_filter_level"],
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/google/imagen-4-ultra/predictions",
              "headers": {"Prefer": "wait"},
              "body": {
                "input": {
                  "prompt": "{{prompt}}",
                  "aspect_ratio": "{{fields.aspect_ratio}}",
                  "output_format": "{{fields.output_format}}",
                  "safety_filter_level": "{{fields.safety_filter_level}}",
                  "image_size": "{{fields.image_size}}"
                }
              }
            },
            "description": "Higher quality; choose 1K or 2K.",
            "pricing": {"per_image": 0.06, "note": "Replicate lists $0.06 per image."},
            "sizes": [
              {
                "aspect": "1:1",
                "tier": "1K",
                "width": 1024,
                "height": 1024,
                "values": {"aspect_ratio": "1:1", "image_size": "1K"}
              },
              {
                "aspect": "1:1",
                "tier": "2K",
                "width": 2048,
                "height": 2048,
                "values": {"aspect_ratio": "1:1", "image_size": "2K"}
              },
              {
                "aspect": "11:6",
                "tier": "1K",
                "width": 1408,
                "height": 768,
                "values": {"aspect_ratio": "16:9", "image_size": "1K"}
              },
              {
                "aspect": "11:6",
                "tier": "2K",
                "width": 2816,
                "height": 1536,
                "values": {"aspect_ratio": "16:9", "image_size": "2K"}
              },
              {
                "aspect": "6:11",
                "tier": "1K",
                "width": 768,
                "height": 1408,
                "values": {"aspect_ratio": "9:16", "image_size": "1K"}
              },
              {
                "aspect": "6:11",
                "tier": "2K",
                "width": 1536,
                "height": 2816,
                "values": {"aspect_ratio": "9:16", "image_size": "2K"}
              },
              {
                "aspect": "10:7",
                "tier": "1K",
                "width": 1280,
                "height": 896,
                "values": {"aspect_ratio": "4:3", "image_size": "1K"}
              },
              {
                "aspect": "10:7",
                "tier": "2K",
                "width": 2560,
                "height": 1792,
                "values": {"aspect_ratio": "4:3", "image_size": "2K"}
              },
              {
                "aspect": "7:10",
                "tier": "1K",
                "width": 896,
                "height": 1280,
                "values": {"aspect_ratio": "3:4", "image_size": "1K"}
              },
              {
                "aspect": "7:10",
                "tier": "2K",
                "width": 1792,
                "height": 2560,
                "values": {"aspect_ratio": "3:4", "image_size": "2K"}
              }
            ]
          }
        ]
      }
    },
    {
      "id": "nano-banana",
      "label": "Nano Banana",
      "group": "Google",
      "description": "Google Nano Banana for conversational image generation and editing.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/google/nano-banana/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image_input": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "2:3",
            "3:2",
            "3:4",
            "4:3",
            "4:5",
            "5:4",
            "9:16",
            "16:9",
            "21:9"
          ]
        },
        {"key": "output_format", "label": "Format", "type": "combo", "default": "png", "options": ["jpg", "png"]},
        {"type": "seed"}
      ],
      "references": {"mode": "optional", "max": 3, "send_as": "upload"},
      "pricing": {"per_image": 0.039, "note": "Replicate lists $0.039 per output image."},
      "size_table": "nano-banana"
    },
    {
      "id": "nano-banana-2",
      "label": "Nano Banana 2",
      "group": "Google",
      "description": "Google Nano Banana 2: generation and editing with up to 14 references, expanded aspect ratios and optional search grounding.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/google/nano-banana-2/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image_input": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "resolution": "{{fields.resolution}}",
            "image_search": "{{fields.image_search}}",
            "google_search": "{{fields.google_search}}",
            "output_format": "{{fields.output_format}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "1:4",
            "1:8",
            "2:3",
            "3:2",
            "3:4",
            "4:1",
            "4:3",
            "4:5",
            "5:4",
            "8:1",
            "9:16",
            "16:9",
            "21:9"
          ]
        },
        {"key": "resolution", "label": "Resolution", "type": "combo", "default": "1K", "options": ["1K", "2K", "4K"]},
        {"key": "image_search", "label": "Image Search Grounding", "type": "bool", "default": false},
        {"key": "google_search", "label": "Web Search Grounding", "type": "bool", "default": false},
        {"key": "output_format", "label": "Format", "type": "combo", "default": "png", "options": ["jpg", "png"]},
        {"type": "seed"}
      ],
      "references": {"mode": "optional", "max": 14, "send_as": "upload"},
      "pricing": {
        "by_field": {"resolution": {"1K": 0.067, "2K": 0.101, "4K": 0.151}},
        "note": "Tier estimates: about $0.067 at 1K, $0.101 at 2K and $0.151 at 4K. Verify Replicate’s current charge before high-volume use."
      },
      "size_table": "nano-banana-v2"
    },
    {
      "id": "nano-banana-2-1",
      "label": "Nano Banana 2.1",
      "group": "Google",
      "description": "Google Nano Banana 2.1: an update to Nano Banana 2 with sharper text and steadier characters, up to 14 references and optional search grounding.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/google/nano-banana-2.1/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image_input": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "resolution": "{{fields.resolution}}",
            "image_search": "{{fields.image_search}}",
            "google_search": "{{fields.google_search}}",
            "output_format": "{{fields.output_format}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "1:4",
            "1:8",
            "2:3",
            "3:2",
            "3:4",
            "4:1",
            "4:3",
            "4:5",
            "5:4",
            "8:1",
            "9:16",
            "16:9",
            "21:9"
          ]
        },
        {"key": "resolution", "label": "Resolution", "type": "combo", "default": "1K", "options": ["1K", "2K", "4K"]},
        {"key": "image_search", "label": "Image Search Grounding", "type": "bool", "default": false},
        {"key": "google_search", "label": "Web Search Grounding", "type": "bool", "default": false},
        {"key": "output_format", "label": "Format", "type": "combo", "default": "png", "options": ["jpg", "png"]},
        {"type": "seed"}
      ],
      "references": {"mode": "optional", "max": 14, "send_as": "upload"},
      "pricing": {
        "by_field": {"resolution": {"1K": 0.0336, "2K": 0.0504, "4K": 0.1134}},
        "note": "Replicate's price: $0.0336 at 1K, $0.0504 at 2K and $0.1134 at 4K per image. Verify Replicate’s current charge before high-volume use."
      },
      "size_table": "nano-banana-v2-1"
    },
    {
      "id": "nano-banana-2-lite",
      "label": "Nano Banana 2 Lite",
      "group": "Google",
      "description": "Lower-cost Nano Banana 2 variant with fixed 1K output.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/google/nano-banana-2-lite/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image_input": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "1:4",
            "1:8",
            "2:3",
            "3:2",
            "3:4",
            "4:1",
            "4:3",
            "4:5",
            "5:4",
            "8:1",
            "9:16",
            "16:9",
            "21:9"
          ]
        },
        {"key": "output_format", "label": "Format", "type": "combo", "default": "png", "options": ["jpg", "png"]}
      ],
      "references": {"mode": "optional", "max": 14, "send_as": "upload"},
      "pricing": {"per_image": 0.034, "note": "Replicate lists $0.034 per output image."},
      "size_table": "nano-banana-v2-lite"
    },
    {
      "id": "gemini-2-5-flash-image",
      "label": "Gemini 2.5 Flash Image",
      "group": "Google",
      "description": "Google Gemini 2.5 Flash Image generates images, or edits up to three of yours.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/google/gemini-2.5-flash-image/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image_input": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {
              "label": "Match input",
              "value": "match_input_image"
            },
            "1:1",
            "2:3",
            "3:2",
            "3:4",
            "4:3",
            "4:5",
            "5:4",
            "9:16",
            "16:9",
            "21:9"
          ]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": [
            "jpg",
            "png"
          ]
        }
      ],
      "references": {"mode": "optional", "max": 3, "send_as": "upload"},
      "pricing": {
        "per_image": 0.039,
        "note": "Replicate lists $0.039 per output image."
      }
    },
    {
      "id": "flux-3",
      "label": "FLUX 3",
      "group": "FLUX",
      "description": "Black Forest Labs' FLUX 3. Describe an image, or add up to 10 images to edit or combine them. Web research is on by default.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-3-image/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "images": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "resolution": "{{fields.resolution}}",
            "grounding": "{{fields.grounding}}",
            "safety_tolerance": "{{fields.safety_tolerance}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            {"label": "Auto", "value": "auto"},
            "21:9",
            "2:1",
            "16:9",
            "3:2",
            "7:5",
            "4:3",
            "5:4",
            "1:1",
            "4:5",
            "3:4",
            "5:7",
            "2:3",
            "9:16",
            "1:2",
            "9:21"
          ]
        },
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "default": "1k",
          "options": [
            {"label": "768", "value": "768sq"},
            {"label": "1K", "value": "1k"},
            {"label": "1.5K", "value": "1.5k"},
            {"label": "2K", "value": "2k"},
            {"label": "4K", "value": "4k"}
          ]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": [
            {"label": "WebP", "value": "webp"},
            {"label": "JPG", "value": "jpg"},
            {"label": "PNG", "value": "png"}
          ]
        },
        {
          "key": "output_quality",
          "label": "Quality",
          "type": "int_slider",
          "default": 80,
          "min": 0,
          "max": 100,
          "help": "For JPG and WebP. PNG ignores this setting."
        },
        {
          "key": "grounding",
          "label": "Web Research",
          "type": "bool",
          "default": true,
          "help": "Searches the web and images for your prompt before generating. Turn it off for faster runs."
        },
        {
          "key": "safety_tolerance",
          "label": "Safety Tolerance",
          "type": "int_slider",
          "default": 2,
          "min": 0,
          "max": 4,
          "help": "0 is the strictest and 4 is the most permissive."
        }
      ],
      "references": {"mode": "optional", "max": 10, "send_as": "upload", "max_megapixels": 16, "min_side": 256},
      "pricing": {
        "per_image": 0.3035,
        "by_field": {"resolution": {"768sq": 0.0205, "1k": 0.024, "1.5k": 0.035, "2k": 0.05, "4k": 0.3035}},
        "note": "Replicate lists $0.0205 at 768, $0.024 at 1K, $0.035 at 1.5K, $0.05 at 2K and $0.3035 at 4K per image."
      }
    },
    {
      "id": "flux-2-pro",
      "label": "FLUX.2 [pro]",
      "group": "FLUX",
      "description": "FLUX.2 Pro generates and edits with up to eight references (9 MP combined input limit). Resolution pricing includes input and output megapixels.",
      "references": {"mode": "optional", "max": 8, "send_as": "upload"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "16:9",
            "3:2",
            "2:3",
            "4:5",
            "5:4",
            "9:16",
            "3:4",
            "4:3"
          ]
        },
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "default": "1 MP",
          "options": ["0.5 MP", "1 MP", "2 MP", "4 MP"]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {
          "key": "output_quality",
          "label": "Quality",
          "type": "int_slider",
          "min": 0,
          "max": 100,
          "default": 80,
          "help": "For JPG and WEBP. PNG ignores it."
        },
        {
          "key": "safety_tolerance",
          "label": "Safety Tolerance",
          "type": "int_slider",
          "default": 2,
          "min": 1,
          "max": 5,
          "help": "1 is the strictest and 5 is the most permissive."
        },
        {"type": "seed"}
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-2-pro/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "input_images": "{{images}}",
            "resolution": "{{fields.resolution}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "safety_tolerance": "{{fields.safety_tolerance}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error"
      },
      "result": {"images": "output"},
      "pricing": {
        "per_request": 0.015,
        "per_megapixel": 0.015,
        "output_megapixels_field": "resolution",
        "per_input_megapixel": 0.015,
        "note": "Estimate: $0.015 per request plus $0.015 per output MP and $0.015 per input MP."
      }
    },
    {
      "id": "flux-kontext-pro",
      "label": "FLUX.1 Kontext [pro]",
      "group": "FLUX",
      "description": "Black Forest Labs FLUX.1 Kontext [pro]. Add one image and describe the change, or leave it out to make a new image.",
      "prompt": {"mode": "required", "placeholder": "Describe the change or the new image..."},
      "references": {"mode": "optional", "max": 1, "send_as": "upload"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "16:9",
            "9:16",
            "4:3",
            "3:4",
            "3:2",
            "2:3",
            "4:5",
            "5:4",
            "21:9",
            "9:21",
            "2:1",
            "1:2"
          ]
        },
        {"key": "output_format", "label": "Format", "type": "combo", "default": "png", "options": ["jpg", "png"]},
        {
          "key": "safety_tolerance",
          "label": "Safety Tolerance",
          "type": "int_slider",
          "min": 0,
          "max": 6,
          "default": 2,
          "help": "0 is the strictest, 6 the most permissive. With an image, 2 is the most allowed."
        },
        {
          "key": "prompt_upsampling",
          "label": "Improve prompt",
          "type": "bool",
          "default": false,
          "help": "The model adds detail to your prompt first. Results can drift from what you wrote."
        },
        {"type": "seed"}
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-kontext-pro/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "input_image": "{{image}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "safety_tolerance": "{{fields.safety_tolerance}}",
            "prompt_upsampling": "{{fields.prompt_upsampling}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error"
      },
      "result": {"images": "output"},
      "pricing": {"per_image": 0.04, "note": "Replicate's price: $0.04 per image."},
      "sizes": [
        {"aspect": "1:1", "width": 1024, "height": 1024, "values": {"aspect_ratio": "1:1"}},
        {"aspect": "13:7", "width": 1392, "height": 752, "values": {"aspect_ratio": "16:9"}},
        {"aspect": "7:13", "width": 752, "height": 1392, "values": {"aspect_ratio": "9:16"}},
        {"aspect": "4:3", "width": 1184, "height": 880, "values": {"aspect_ratio": "4:3"}},
        {"aspect": "3:4", "width": 880, "height": 1184, "values": {"aspect_ratio": "3:4"}},
        {"aspect": "3:2", "width": 1248, "height": 832, "values": {"aspect_ratio": "3:2"}},
        {"aspect": "2:3", "width": 832, "height": 1248, "values": {"aspect_ratio": "2:3"}},
        {"aspect": "6:7", "width": 944, "height": 1104, "values": {"aspect_ratio": "4:5"}},
        {"aspect": "7:6", "width": 1104, "height": 944, "values": {"aspect_ratio": "5:4"}},
        {"aspect": "21:9", "width": 1568, "height": 672, "values": {"aspect_ratio": "21:9"}},
        {"aspect": "9:21", "width": 672, "height": 1568, "values": {"aspect_ratio": "9:21"}},
        {"aspect": "2:1", "width": 1456, "height": 720, "values": {"aspect_ratio": "2:1"}},
        {"aspect": "1:2", "width": 720, "height": 1456, "values": {"aspect_ratio": "1:2"}}
      ]
    },
    {
      "id": "flux-pro-1-1",
      "label": "FLUX1.1 [pro]",
      "group": "FLUX",
      "description": "Black Forest Labs FLUX1.1 [pro], text to image. An image you add guides the layout of the result; it isn't edited.",
      "prompt": {"mode": "required", "placeholder": "Describe the image..."},
      "references": {"mode": "optional", "max": 1, "send_as": "upload", "role": "guide"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "16:9", "3:2", "2:3", "4:5", "5:4", "9:16", "3:4", "4:3"]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {
          "key": "output_quality",
          "label": "Quality",
          "type": "int_slider",
          "min": 0,
          "max": 100,
          "default": 80,
          "help": "For JPG and WEBP. PNG ignores it."
        },
        {
          "key": "safety_tolerance",
          "label": "Safety Tolerance",
          "type": "int_slider",
          "min": 1,
          "max": 6,
          "default": 2,
          "help": "1 is the strictest, 6 the most permissive."
        },
        {
          "key": "prompt_upsampling",
          "label": "Improve prompt",
          "type": "bool",
          "default": false,
          "help": "The model rewrites your prompt first. Results can drift from what you wrote."
        },
        {"type": "seed"}
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-1.1-pro/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image_prompt": "{{image}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "safety_tolerance": "{{fields.safety_tolerance}}",
            "prompt_upsampling": "{{fields.prompt_upsampling}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error"
      },
      "result": {"images": "output"},
      "pricing": {"per_image": 0.04, "note": "Replicate's price: $0.04 per image."}
    },
    {
      "id": "flux-2-dev",
      "label": "FLUX.2 [dev]",
      "group": "FLUX",
      "description": "FLUX.2 Dev generation and editing. Choose the faster optimized path or full precision.",
      "prompt": {"mode": "required", "placeholder": "Describe the image..."},
      "references": {"mode": "optional", "max": 4, "send_as": "upload"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "16:9",
            "3:2",
            "2:3",
            "4:5",
            "5:4",
            "9:16",
            "3:4",
            "4:3"
          ]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {"key": "output_quality", "label": "Quality", "type": "int_slider", "default": 80, "min": 0, "max": 100},
        {"type": "seed"}
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-2-dev/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "input_images": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "seed": "{{fields.seed}}",
            "go_fast": true
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error"
      },
      "result": {"images": "output"},
      "pricing": {
        "per_image": 0.013,
        "per_input_megapixel": 0.012,
        "note": "Replicate's price: $0.012 per megapixel of output and of references. The size isn't set here, so the estimate allows for a 1024 x 1024 result."
      },
      "variants": {
        "label": "Speed",
        "default": "fast",
        "options": [
          {
            "id": "fast",
            "label": "Fast",
            "fields": ["aspect_ratio", "output_format", "output_quality", "seed"],
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-2-dev/predictions",
              "headers": {"Prefer": "wait"},
              "body": {
                "input": {
                  "prompt": "{{prompt}}",
                  "input_images": "{{images}}",
                  "aspect_ratio": "{{fields.aspect_ratio}}",
                  "output_format": "{{fields.output_format}}",
                  "output_quality": "{{fields.output_quality}}",
                  "seed": "{{fields.seed}}",
                  "go_fast": true
                }
              }
            },
            "description": "Optimized go_fast path.",
            "pricing": {
              "per_image": 0.013,
              "per_input_megapixel": 0.012,
              "note": "Replicate's price: $0.012 per megapixel of output and of references. The size isn't set here, so the estimate allows for a 1024 x 1024 result."
            }
          },
          {
            "id": "standard",
            "label": "Standard",
            "fields": ["aspect_ratio", "output_format", "output_quality", "seed"],
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-2-dev/predictions",
              "headers": {"Prefer": "wait"},
              "body": {
                "input": {
                  "prompt": "{{prompt}}",
                  "input_images": "{{images}}",
                  "aspect_ratio": "{{fields.aspect_ratio}}",
                  "output_format": "{{fields.output_format}}",
                  "output_quality": "{{fields.output_quality}}",
                  "seed": "{{fields.seed}}",
                  "go_fast": false
                }
              }
            },
            "description": "Full precision, with a higher per-megapixel rate.",
            "pricing": {
              "per_image": 0.015,
              "per_input_megapixel": 0.014,
              "note": "Replicate's price: $0.014 per megapixel of output and of references. The size isn't set here, so the estimate allows for a 1024 x 1024 result."
            }
          }
        ]
      }
    },
    {
      "id": "flux-2-max",
      "label": "FLUX.2 [max]",
      "group": "FLUX",
      "description": "Highest-fidelity FLUX.2 model with up to eight references and megapixel-based pricing.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-2-max/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "input_images": "{{images}}",
            "resolution": "{{fields.resolution}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "seed": "{{fields.seed}}",
            "safety_tolerance": "{{fields.safety_tolerance}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "16:9",
            "3:2",
            "2:3",
            "4:5",
            "5:4",
            "9:16",
            "3:4",
            "4:3"
          ]
        },
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "default": "1 MP",
          "options": ["0.5 MP", "1 MP", "2 MP", "4 MP"]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {"key": "output_quality", "label": "Quality", "type": "int_slider", "default": 80, "min": 0, "max": 100},
        {
          "key": "safety_tolerance",
          "label": "Safety Tolerance",
          "type": "int_slider",
          "default": 2,
          "min": 1,
          "max": 5,
          "help": "1 is the strictest and 5 is the most permissive."
        },
        {"type": "seed"}
      ],
      "references": {"mode": "optional", "max": 8, "send_as": "upload"},
      "pricing": {
        "per_request": 0.04,
        "per_megapixel": 0.03,
        "per_input_megapixel": 0.03,
        "output_megapixels_field": "resolution",
        "note": "Replicate estimate: $0.04 per request plus $0.03 per output MP and per input MP. Match-input output size cannot be predicted."
      }
    },
    {
      "id": "flux-2-flex",
      "label": "FLUX.2 [flex]",
      "group": "FLUX",
      "description": "FLUX.2 Flex adds adjustable steps, guidance and prompt upsampling; supports up to ten references.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-2-flex/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "input_images": "{{images}}",
            "resolution": "{{fields.resolution}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "seed": "{{fields.seed}}",
            "steps": "{{fields.steps}}",
            "guidance": "{{fields.guidance}}",
            "safety_tolerance": "{{fields.safety_tolerance}}",
            "prompt_upsampling": "{{fields.prompt_upsampling}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "16:9",
            "3:2",
            "2:3",
            "4:5",
            "5:4",
            "9:16",
            "3:4",
            "4:3"
          ]
        },
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "default": "1 MP",
          "options": ["0.5 MP", "1 MP", "2 MP", "4 MP"]
        },
        {
          "key": "steps",
          "label": "Steps",
          "type": "int_slider",
          "default": 30,
          "min": 1,
          "max": 50,
          "help": "The number of inference steps. More steps take longer."
        },
        {
          "key": "guidance",
          "label": "Guidance",
          "type": "float_slider",
          "default": 4.5,
          "min": 1.5,
          "max": 10,
          "step": 0.1,
          "decimals": 1,
          "help": "Higher values make the output follow the prompt more closely."
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {"key": "output_quality", "label": "Quality", "type": "int_slider", "default": 80, "min": 0, "max": 100},
        {"type": "seed"},
        {
          "key": "safety_tolerance",
          "label": "Safety Tolerance",
          "type": "int_slider",
          "default": 2,
          "min": 1,
          "max": 5,
          "help": "1 is the strictest and 5 is the most permissive."
        },
        {
          "key": "prompt_upsampling",
          "label": "Improve prompt",
          "type": "bool",
          "default": true,
          "help": "Automatically modifies your prompt for more creative generation."
        }
      ],
      "references": {"mode": "optional", "max": 10, "send_as": "upload"},
      "pricing": {
        "per_megapixel": 0.06,
        "per_input_megapixel": 0.06,
        "output_megapixels_field": "resolution",
        "note": "Replicate lists $0.06 per input MP and $0.06 per output MP. Match-input output size cannot be predicted."
      }
    },
    {
      "id": "flux-2-klein-4b",
      "label": "FLUX.2 Klein 4B",
      "group": "FLUX",
      "description": "Compact FLUX.2 Klein 4B image generation and editing with up to five references.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-2-klein-4b/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "images": "{{images}}",
            "output_megapixels": "{{fields.output_megapixels}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "go_fast": "{{fields.go_fast}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "16:9",
            "9:16",
            "3:2",
            "2:3",
            "4:3",
            "3:4",
            "5:4",
            "4:5",
            "21:9",
            "9:21"
          ]
        },
        {
          "key": "output_megapixels",
          "label": "Resolution",
          "type": "combo",
          "default": "1",
          "options": ["0.25", "0.5", "1", "2", "4"]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {"key": "output_quality", "label": "Quality", "type": "int_slider", "default": 95, "min": 0, "max": 100},
        {"key": "go_fast", "label": "Faster path", "type": "bool", "default": false},
        {"type": "seed"}
      ],
      "references": {"mode": "optional", "max": 5, "send_as": "upload"},
      "pricing": {
        "per_megapixel": 0.001,
        "per_input_megapixel": 0.001,
        "output_megapixels_field": "output_megapixels",
        "note": "Replicate lists $0.001 per input MP and $0.001 per output MP."
      }
    },
    {
      "id": "flux-2-klein-9b",
      "label": "FLUX.2 Klein 9B",
      "group": "FLUX",
      "description": "Higher-capacity FLUX.2 Klein 9B model with up to five references.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-2-klein-9b/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "images": "{{images}}",
            "megapixels": "{{fields.megapixels}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "go_fast": "{{fields.go_fast}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "16:9",
            "9:16",
            "3:2",
            "2:3",
            "4:3",
            "3:4",
            "5:4",
            "4:5",
            "21:9",
            "9:21"
          ]
        },
        {
          "key": "megapixels",
          "label": "Resolution",
          "type": "combo",
          "default": "1",
          "options": ["0.25", "0.5", "1", "2", "4"]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {"key": "output_quality", "label": "Quality", "type": "int_slider", "default": 95, "min": 0, "max": 100},
        {"key": "go_fast", "label": "Faster path", "type": "bool", "default": true},
        {"type": "seed"}
      ],
      "references": {"mode": "optional", "max": 5, "send_as": "upload"},
      "pricing": {
        "per_megapixel": 0.015,
        "per_input_megapixel": 0.002,
        "output_megapixels_field": "megapixels",
        "note": "Replicate lists $0.002 per input MP and $0.015 per output MP."
      }
    },
    {
      "id": "flux-kontext-max",
      "label": "FLUX.1 Kontext [max]",
      "group": "FLUX",
      "description": "High-quality Kontext image editing. The optional reference lets the model edit or make a new image.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-kontext-max/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "input_image": "{{image}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "safety_tolerance": "{{fields.safety_tolerance}}",
            "prompt_upsampling": "{{fields.prompt_upsampling}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "16:9",
            "9:16",
            "4:3",
            "3:4",
            "3:2",
            "2:3",
            "4:5",
            "5:4",
            "21:9",
            "9:21"
          ]
        },
        {"key": "output_format", "label": "Format", "type": "combo", "default": "png", "options": ["png", "jpg"]},
        {"key": "safety_tolerance", "label": "Safety Tolerance", "type": "int_slider", "default": 2, "min": 0, "max": 6, "help": "0 is the strictest and 6 the most permissive. With an image, 2 is the most allowed."},
        {"key": "prompt_upsampling", "label": "Improve prompt", "type": "bool", "default": false, "help": "Automatically improves your prompt before image generation."},
        {"type": "seed"}
      ],
      "references": {"mode": "optional", "max": 1, "send_as": "upload"},
      "pricing": {"per_image": 0.08, "note": "Replicate lists $0.08 per image."},
      "size_table": "flux-kontext-max"
    },
    {
      "id": "flux-kontext-dev",
      "label": "FLUX.1 Kontext [dev]",
      "group": "FLUX",
      "description": "FLUX.1 Kontext Dev edits one image with adjustable inference steps.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-kontext-dev/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "input_image": "{{image}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "num_inference_steps": "{{fields.num_inference_steps}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [{"label": "Match input", "value": "match_input_image"}, "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {"key": "output_quality", "label": "Quality", "type": "int_slider", "default": 80, "min": 0, "max": 100},
        {"key": "num_inference_steps", "label": "Steps", "type": "int_slider", "default": 30, "min": 4, "max": 50, "help": "The number of inference steps used to create the image."},
        {"type": "seed"}
      ],
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "pricing": {"per_image": 0.025, "note": "Replicate lists $0.025 per image."}
    },
    {
      "id": "flux-fill-pro",
      "label": "FLUX Fill Pro",
      "group": "FLUX",
      "description": "Inpaint or outpaint one image. White mask pixels mark the area to change; outpaint modes ignore the mask.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-fill-pro/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image": "{{image}}",
            "mask": "{{mask}}",
            "outpaint": "{{fields.outpaint}}",
            "steps": "{{fields.steps}}",
            "guidance": "{{fields.guidance}}",
            "output_format": "{{fields.output_format}}",
            "safety_tolerance": "{{fields.safety_tolerance}}",
            "prompt_upsampling": "{{fields.prompt_upsampling}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "outpaint",
          "label": "Outpaint",
          "type": "combo",
          "default": "None",
          "options": [
            "None",
            "Zoom out 1.5x",
            "Zoom out 2x",
            "Make square",
            "Left outpaint",
            "Right outpaint",
            "Top outpaint",
            "Bottom outpaint"
          ]
        },
        {"key": "steps", "label": "Steps", "type": "int_slider", "default": 50, "min": 15, "max": 50, "help": "More diffusion steps can add fine detail but take longer."},
        {
          "key": "guidance",
          "label": "Guidance",
          "type": "float_slider",
          "default": 60,
          "min": 2,
          "max": 100,
          "step": 1,
          "decimals": 0,
          "help": "Higher values follow the prompt more closely. Lower values allow more creative freedom."
        },
        {"key": "output_format", "label": "Format", "type": "combo", "default": "png", "options": ["jpg", "png"]},
        {"key": "safety_tolerance", "label": "Safety Tolerance", "type": "int_slider", "default": 2, "min": 1, "max": 6, "help": "1 is the strictest and 6 is the most permissive."},
        {"key": "prompt_upsampling", "label": "Improve prompt", "type": "bool", "default": false, "help": "Automatically modifies your prompt for more creative generation."},
        {"type": "seed"}
      ],
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "pricing": {"per_image": 0.05, "note": "Replicate lists $0.05 per image."},
      "mask": {"mode": "optional", "paint": "white"}
    },
    {
      "id": "flux-1-schnell",
      "label": "FLUX.1 [schnell]",
      "group": "FLUX",
      "description": "Black Forest Labs FLUX.1 [schnell] is a fast, low-cost text-to-image model.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-schnell/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "num_outputs": "{{fields.num_outputs}}",
            "num_inference_steps": "{{fields.num_inference_steps}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "megapixels": "{{fields.megapixels}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            "1:1",
            "16:9",
            "21:9",
            "3:2",
            "2:3",
            "4:5",
            "5:4",
            "3:4",
            "4:3",
            "9:16",
            "9:21"
          ]
        },
        {
          "key": "megapixels",
          "label": "Resolution",
          "type": "combo",
          "default": "1",
          "options": [
            "0.25",
            "1"
          ]
        },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "default": 4,
          "min": 1,
          "max": 4,
          "help": "4 is recommended. Fewer steps run faster with lower image quality."
        },
        {
          "key": "num_outputs",
          "label": "Images",
          "type": "int_slider",
          "default": 1,
          "min": 1,
          "max": 4
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": [
            "webp",
            "jpg",
            "png"
          ]
        },
        {
          "key": "output_quality",
          "label": "Quality",
          "type": "int_slider",
          "default": 95,
          "min": 0,
          "max": 100
        },
        {
          "type": "seed"
        }
      ],
      "pricing": {
        "per_image": 0.003,
        "count_field": "num_outputs",
        "note": "Replicate lists $0.003 per output image."
      }
    },
    {
      "id": "flux-dev",
      "label": "FLUX.1 [dev]",
      "group": "FLUX",
      "description": "Black Forest Labs FLUX.1 [dev]. Add an image to rework it; the result keeps that image's shape.",
      "prompt": {"mode": "required", "placeholder": "Describe the image..."},
      "references": {"mode": "optional", "max": 1, "send_as": "upload"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "16:9", "21:9", "3:2", "2:3", "4:5", "5:4", "3:4", "4:3", "9:16", "9:21"]
        },
        {
          "key": "megapixels",
          "label": "Size",
          "type": "combo",
          "default": "1 MP",
          "options": [{"label": "1 MP", "value": "1"}, {"label": "0.25 MP", "value": "0.25"}]
        },
        {
          "key": "prompt_strength",
          "label": "Prompt Strength",
          "type": "float_slider",
          "min": 0,
          "max": 1,
          "default": 0.8,
          "decimals": 2,
          "help": "Only with an image. 1 replaces it completely; lower keeps more of it."
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {
          "key": "output_quality",
          "label": "Quality",
          "type": "int_slider",
          "min": 0,
          "max": 100,
          "default": 80,
          "help": "For JPG and WEBP. PNG ignores it."
        },
        {"key": "num_outputs", "label": "Images", "type": "int_slider", "min": 1, "max": 4, "default": 1},
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 1,
          "max": 50,
          "default": 28,
          "help": "How many passes refine the image. 28 to 50 looks best; fewer is faster."
        },
        {
          "key": "guidance",
          "label": "Guidance",
          "type": "float_slider",
          "min": 0,
          "max": 10,
          "default": 3.5,
          "decimals": 1,
          "help": "How closely the image follows your prompt. Lower can look more natural; try 2 to 3.5."
        },
        {
          "key": "go_fast",
          "label": "Go fast",
          "type": "bool",
          "default": true,
          "help": "Runs a faster, optimized version of the model. Not used with an image."
        },
        {"key": "disable_safety_checker", "label": "Disable safety checker", "type": "bool", "default": false},
        {"type": "seed"}
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-dev/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image": "{{image}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "megapixels": "{{fields.megapixels}}",
            "prompt_strength": "{{fields.prompt_strength}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "num_outputs": "{{fields.num_outputs}}",
            "num_inference_steps": "{{fields.num_inference_steps}}",
            "guidance": "{{fields.guidance}}",
            "go_fast": "{{fields.go_fast}}",
            "disable_safety_checker": "{{fields.disable_safety_checker}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "pricing": {"per_image": 0.025, "count_field": "num_outputs", "note": "Replicate's price: $0.025 per image."}
    },
    {
      "id": "flux-fill-dev",
      "label": "FLUX.1 Fill [dev]",
      "group": "FLUX",
      "description": "Inpaint an image with FLUX.1 Fill [dev]. White mask pixels mark the area to change; black pixels are preserved.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-fill-dev/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image": "{{image}}",
            "mask": "{{mask}}",
            "num_outputs": "{{fields.num_outputs}}",
            "num_inference_steps": "{{fields.num_inference_steps}}",
            "guidance": "{{fields.guidance}}",
            "megapixels": "{{fields.megapixels}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "megapixels",
          "label": "Resolution",
          "type": "combo",
          "default": "1",
          "options": ["0.25", "1", {"label": "Match input", "value": "match_input"}]
        },
        {
          "key": "guidance",
          "label": "Guidance",
          "type": "float_slider",
          "default": 30,
          "min": 0,
          "max": 100,
          "step": 1,
          "decimals": 0,
          "help": "Higher values make the generated image follow the prompt more closely."
        },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "default": 28,
          "min": 1,
          "max": 50,
          "help": "28 to 50 steps are recommended. Fewer steps run faster with lower image quality."
        },
        {"key": "num_outputs", "label": "Images", "type": "int_slider", "default": 1, "min": 1, "max": 4},
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {"key": "output_quality", "label": "Quality", "type": "int_slider", "default": 95, "min": 0, "max": 100},
        {"type": "seed"}
      ],
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "pricing": {"per_image": 0.04, "count_field": "num_outputs", "note": "Replicate lists $0.04 per output image."},
      "mask": {"mode": "optional", "paint": "white"}
    },
    {
      "id": "flux-1-1-pro-ultra",
      "label": "FLUX1.1 [pro] Ultra",
      "group": "FLUX",
      "description": "FLUX1.1 [pro] Ultra supports up to 4 MP output and a raw mode tuned for photographic realism.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-1.1-pro-ultra/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image_prompt": "{{image}}",
            "image_prompt_strength": "{{fields.image_prompt_strength}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "raw": "{{fields.raw}}",
            "output_format": "{{fields.output_format}}",
            "safety_tolerance": "{{fields.safety_tolerance}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            "21:9",
            "16:9",
            "3:2",
            "4:3",
            "5:4",
            "1:1",
            "4:5",
            "3:4",
            "2:3",
            "9:16",
            "9:21"
          ]
        },
        {
          "key": "raw",
          "label": "Raw realism mode",
          "type": "bool",
          "default": false
        },
        {
          "key": "image_prompt_strength",
          "label": "Reference Strength",
          "type": "float_slider",
          "default": 0.1,
          "min": 0,
          "max": 1,
          "step": 0.05,
          "decimals": 2,
          "help": "Sets the blend between your text prompt and the image prompt."
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": [
            "jpg",
            "png"
          ]
        },
        {
          "key": "safety_tolerance",
          "label": "Safety Tolerance",
          "type": "int_slider",
          "default": 2,
          "min": 1,
          "max": 6,
          "help": "1 is the strictest and 6 is the most permissive."
        },
        {
          "type": "seed"
        }
      ],
      "references": {"mode": "optional", "max": 1, "send_as": "upload", "role": "guide"},
      "pricing": {
        "per_image": 0.06,
        "note": "Replicate lists $0.06 per output image."
      }
    },
    {
      "id": "flux-krea-dev",
      "label": "FLUX.1 Krea [dev]",
      "group": "FLUX",
      "description": "FLUX.1 Krea [dev] is tuned for photorealistic results with a more natural, less oversaturated look.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/black-forest-labs/flux-krea-dev/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image": "{{image}}",
            "go_fast": "{{fields.go_fast}}",
            "guidance": "{{fields.guidance}}",
            "megapixels": "{{fields.megapixels}}",
            "num_outputs": "{{fields.num_outputs}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "prompt_strength": "{{fields.prompt_strength}}",
            "num_inference_steps": "{{fields.num_inference_steps}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            "1:1",
            "16:9",
            "21:9",
            "3:2",
            "2:3",
            "4:5",
            "5:4",
            "3:4",
            "4:3",
            "9:16",
            "9:21"
          ]
        },
        {
          "key": "megapixels",
          "label": "Resolution",
          "type": "combo",
          "default": "1",
          "options": [
            "1",
            "0.25"
          ]
        },
        {
          "key": "go_fast",
          "label": "Fast mode",
          "type": "bool",
          "default": true
        },
        {
          "key": "guidance",
          "label": "Guidance",
          "type": "float_slider",
          "default": 3,
          "min": 0,
          "max": 10,
          "step": 0.1,
          "decimals": 1,
          "help": "Higher values make the generated image follow the prompt more closely."
        },
        {
          "key": "prompt_strength",
          "label": "Image Strength",
          "type": "float_slider",
          "default": 0.8,
          "min": 0,
          "max": 1,
          "step": 0.05,
          "decimals": 2,
          "help": "At 1.0, the input image information is fully replaced."
        },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "default": 28,
          "min": 1,
          "max": 50,
          "help": "28 to 50 steps are recommended. Fewer steps run faster with lower image quality."
        },
        {
          "key": "num_outputs",
          "label": "Images",
          "type": "int_slider",
          "default": 1,
          "min": 1,
          "max": 4
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": [
            "webp",
            "jpg",
            "png"
          ]
        },
        {
          "key": "output_quality",
          "label": "Quality",
          "type": "int_slider",
          "default": 95,
          "min": 0,
          "max": 100
        },
        {
          "type": "seed"
        }
      ],
      "references": {"mode": "optional", "max": 1, "send_as": "upload"},
      "pricing": {
        "per_image": 0.025,
        "count_field": "num_outputs",
        "note": "Replicate lists $0.025 per output image."
      }
    },
    {
      "id": "ideogram-v3-turbo",
      "label": "Ideogram 3.0 Turbo",
      "group": "Ideogram",
      "description": "Ideogram 3.0 in Turbo, Balanced and Quality, good at text in images. Up to 3 reference images set the style; they aren't edited.",
      "prompt": {"mode": "required", "placeholder": "Describe the image, with any text in quotes..."},
      "references": {"mode": "optional", "max": 3, "send_as": "upload", "role": "guide"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            "1:1",
            "16:9",
            "9:16",
            "4:3",
            "3:4",
            "3:2",
            "2:3",
            "16:10",
            "10:16",
            "4:5",
            "5:4",
            "2:1",
            "1:2",
            "3:1",
            "1:3"
          ]
        },
        {
          "key": "style_type",
          "label": "Style",
          "type": "combo",
          "default": "None",
          "options": ["None", "Auto", "General", "Realistic", "Design"],
          "help": "None uses Ideogram's default and Auto lets Ideogram choose. Realistic suits photos, Design graphics and lettering, General anything."
        },
        {
          "key": "style_preset",
          "label": "Style Preset",
          "type": "combo",
          "default": "None",
          "options": [
            "None",
            "80s Illustration",
            "90s Nostalgia",
            "Abstract Organic",
            "Analog Nostalgia",
            "Art Brut",
            "Art Deco",
            "Art Poster",
            "Aura",
            "Avant Garde",
            "Bauhaus",
            "Blueprint",
            "Blurry Motion",
            "Bright Art",
            "C4D Cartoon",
            "Children's Book",
            "Collage",
            "Coloring Book I",
            "Coloring Book II",
            "Cubism",
            "Dark Aura",
            "Doodle",
            "Double Exposure",
            "Dramatic Cinema",
            "Editorial",
            "Emotional Minimal",
            "Ethereal Party",
            "Expired Film",
            "Flat Art",
            "Flat Vector",
            "Forest Reverie",
            "Geo Minimalist",
            "Glass Prism",
            "Golden Hour",
            "Graffiti I",
            "Graffiti II",
            "Halftone Print",
            "High Contrast",
            "Hippie Era",
            "Iconic",
            "Japandi Fusion",
            "Jazzy",
            "Long Exposure",
            "Magazine Editorial",
            "Minimal Illustration",
            "Mixed Media",
            "Monochrome",
            "Nightlife",
            "Oil Painting",
            "Old Cartoons",
            "Paint Gesture",
            "Pop Art",
            "Retro Etching",
            "Riviera Pop",
            "Spotlight 80s",
            "Stylized Red",
            "Surreal Collage",
            "Travel Poster",
            "Vintage Geo",
            "Vintage Poster",
            "Watercolor",
            "Weird",
            "Woodblock Print"
          ]
        },
        {
          "key": "magic_prompt_option",
          "label": "Rewrite Prompt",
          "type": "combo",
          "default": "Auto",
          "options": ["Auto", "On", "Off"]
        },
        {"type": "seed", "max": 2147483647}
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/ideogram-ai/ideogram-v3-turbo/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "style_type": "{{fields.style_type}}",
            "style_preset": "{{fields.style_preset}}",
            "magic_prompt_option": "{{fields.magic_prompt_option}}",
            "style_reference_images": "{{images}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error"
      },
      "result": {"images": "output"},
      "pricing": {"per_image": 0.03, "note": "Replicate lists $0.03 per image for Turbo."},
      "variants": {
        "label": "Quality",
        "default": "turbo",
        "options": [
          {
            "id": "turbo",
            "label": "Turbo",
            "fields": ["aspect_ratio", "style_type", "style_preset", "magic_prompt_option", "seed"],
            "pricing": {"per_image": 0.03, "note": "Replicate lists $0.03 per image."},
            "description": "Fastest Ideogram 3.0 option for lower latency."
          },
          {
            "id": "balanced",
            "label": "Balanced",
            "fields": ["aspect_ratio", "style_type", "style_preset", "magic_prompt_option", "seed"],
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/ideogram-ai/ideogram-v3-balanced/predictions",
              "headers": {"Prefer": "wait"},
              "body": {
                "input": {
                  "prompt": "{{prompt}}",
                  "aspect_ratio": "{{fields.aspect_ratio}}",
                  "style_type": "{{fields.style_type}}",
                  "style_preset": "{{fields.style_preset}}",
                  "magic_prompt_option": "{{fields.magic_prompt_option}}",
                  "style_reference_images": "{{images}}",
                  "seed": "{{fields.seed}}"
                }
              }
            },
            "pricing": {"per_image": 0.06, "note": "Replicate lists $0.06 per image."},
            "description": "Balances generation speed and image quality."
          },
          {
            "id": "quality",
            "label": "Quality",
            "fields": ["aspect_ratio", "style_type", "style_preset", "magic_prompt_option", "seed"],
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/ideogram-ai/ideogram-v3-quality/predictions",
              "headers": {"Prefer": "wait"},
              "body": {
                "input": {
                  "prompt": "{{prompt}}",
                  "aspect_ratio": "{{fields.aspect_ratio}}",
                  "style_type": "{{fields.style_type}}",
                  "style_preset": "{{fields.style_preset}}",
                  "magic_prompt_option": "{{fields.magic_prompt_option}}",
                  "style_reference_images": "{{images}}",
                  "seed": "{{fields.seed}}"
                }
              }
            },
            "pricing": {"per_image": 0.09, "note": "Replicate lists $0.09 per image."},
            "description": "Highest quality option for more detailed results."
          }
        ]
      }
    },
    {
      "id": "ideogram-v3-inpaint",
      "label": "Ideogram 3 Inpaint",
      "group": "Ideogram",
      "description": "Use Ideogram 3 to generate normally or repaint a masked area of one image.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/ideogram-ai/ideogram-v3-turbo/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image": "{{image}}",
            "mask": "{{mask}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "style_type": "{{fields.style_type}}",
            "magic_prompt_option": "{{fields.magic_prompt_option}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            "1:1",
            "16:9",
            "9:16",
            "4:3",
            "3:4",
            "3:2",
            "2:3",
            "4:5",
            "5:4"
          ]
        },
        {
          "key": "style_type",
          "label": "Style",
          "type": "combo",
          "default": "None",
          "options": [
            "None",
            "Auto",
            "General",
            "Realistic",
            "Design"
          ]
        },
        {
          "key": "magic_prompt_option",
          "label": "Magic Prompt",
          "type": "combo",
          "default": "Auto",
          "options": [
            "Auto",
            "On",
            "Off"
          ]
        },
        {
          "type": "seed"
        }
      ],
      "references": {"mode": "required", "max": 1, "send_as": "upload", "max_mb": 9.5},
      "pricing": {
        "per_image": 0.03,
        "note": "Replicate lists $0.03 per image for the Turbo endpoint."
      },
      "mask": {
        "mode": "required",
        "paint": "black"
      }
    },
    {
      "id": "ideogram-v4",
      "label": "Ideogram V4",
      "group": "Ideogram",
      "description": "Ideogram 4.0: design focused 2K images with strong typography. Text to image; Ideogram's Magic Prompt is always on.",
      "prompt": {"mode": "required", "placeholder": "Describe the image, with any text in quotes..."},
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/ideogram-ai/ideogram-v4-balanced/predictions",
        "headers": {"Prefer": "wait"},
        "body": {"input": {"prompt": "{{prompt}}", "resolution": "{{fields.resolution}}"}}
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "resolution",
          "label": "Size",
          "type": "combo",
          "default": "None",
          "options": [
            {"label": "Auto", "value": "None"},
            {"label": "1:1 (2048 x 2048)", "value": "2048x2048"},
            {"label": "1:2 (1440 x 2880)", "value": "1440x2880"},
            {"label": "2:1 (2880 x 1440)", "value": "2880x1440"},
            {"label": "2:3 (1664 x 2496)", "value": "1664x2496"},
            {"label": "3:2 (2496 x 1664)", "value": "2496x1664"},
            {"label": "4:5 (1792 x 2240)", "value": "1792x2240"},
            {"label": "5:4 (2240 x 1792)", "value": "2240x1792"},
            {"label": "9:16 (1440 x 2560)", "value": "1440x2560"},
            {"label": "16:9 (2560 x 1440)", "value": "2560x1440"},
            {"label": "10:16 (1600 x 2560)", "value": "1600x2560"},
            {"label": "16:10 (2560 x 1600)", "value": "2560x1600"},
            {"label": "3:4 (1728 x 2304)", "value": "1728x2304"},
            {"label": "4:3 (2304 x 1728)", "value": "2304x1728"},
            {"label": "9:22 (1296 x 3168)", "value": "1296x3168"},
            {"label": "22:9 (3168 x 1296)", "value": "3168x1296"},
            {"label": "9:23 (1152 x 2944)", "value": "1152x2944"},
            {"label": "23:9 (2944 x 1152)", "value": "2944x1152"},
            {"label": "3:8 (1248 x 3328)", "value": "1248x3328"},
            {"label": "8:3 (3328 x 1248)", "value": "3328x1248"},
            {"label": "5:12 (1280 x 3072)", "value": "1280x3072"},
            {"label": "12:5 (3072 x 1280)", "value": "3072x1280"}
          ]
        }
      ],
      "pricing": {"per_image": 0.06, "note": "Replicate lists $0.06 per image for Balanced."},
      "variants": {
        "label": "Version",
        "default": "balanced",
        "options": [
          {
            "id": "turbo",
            "label": "Turbo",
            "description": "The fastest and cheapest.",
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/ideogram-ai/ideogram-v4-turbo/predictions",
              "headers": {"Prefer": "wait"},
              "body": {"input": {"prompt": "{{prompt}}", "resolution": "{{fields.resolution}}"}}
            },
            "pricing": {"per_image": 0.03, "note": "Replicate lists $0.03 per image."}
          },
          {
            "id": "balanced",
            "label": "Balanced",
            "description": "Speed and quality in balance.",
            "pricing": {"per_image": 0.06, "note": "Replicate lists $0.06 per image."}
          },
          {
            "id": "quality",
            "label": "Quality",
            "description": "The most detail.",
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/ideogram-ai/ideogram-v4-quality/predictions",
              "headers": {"Prefer": "wait"},
              "body": {"input": {"prompt": "{{prompt}}", "resolution": "{{fields.resolution}}"}}
            },
            "pricing": {"per_image": 0.1, "note": "Replicate lists $0.10 per image."}
          }
        ]
      }
    },
    {
      "id": "ideogram-v4-5",
      "label": "Ideogram V4.5",
      "group": "Ideogram",
      "description": "Ideogram 4.5 for design and typography. Add up to five images to edit them, and paint a mask to change one area of the first.",
      "prompt": {"mode": "required", "placeholder": "Describe the image, with any text in quotes..."},
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/ideogram-ai/ideogram-4-5/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "images": "{{images}}",
            "mask": "{{mask}}",
            "size": "{{fields.size}}",
            "quality": "{{fields.quality}}",
            "num_images": "{{fields.num_images}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "1024x1024",
          "options": [
            {"label": "1:1 (1024 x 1024)", "value": "1024x1024"},
            {"label": "7:5 (1280 x 896)", "value": "1280x896"},
            {"label": "5:7 (896 x 1280)", "value": "896x1280"},
            {"label": "16:9 (1344 x 768)", "value": "1344x768"},
            {"label": "9:16 (768 x 1344)", "value": "768x1344"},
            {"label": "21:9 (1536 x 640)", "value": "1536x640"},
            {"label": "9:21 (640 x 1536)", "value": "640x1536"}
          ]
        },
        {
          "key": "size_edit",
          "label": "Size",
          "type": "aspect_combo",
          "default": "source",
          "options": [
            {"label": "Match input", "value": "source"},
            {"label": "1:1 (1024 x 1024)", "value": "1024x1024"},
            {"label": "7:5 (1280 x 896)", "value": "1280x896"},
            {"label": "5:7 (896 x 1280)", "value": "896x1280"},
            {"label": "16:9 (1344 x 768)", "value": "1344x768"},
            {"label": "9:16 (768 x 1344)", "value": "768x1344"},
            {"label": "21:9 (1536 x 640)", "value": "1536x640"},
            {"label": "9:21 (640 x 1536)", "value": "640x1536"}
          ]
        },
        {
          "key": "quality",
          "label": "Quality",
          "type": "combo",
          "default": "medium",
          "options": [
            {"label": "Low", "value": "low"},
            {"label": "Medium", "value": "medium"},
            {"label": "High", "value": "high"}
          ]
        },
        {
          "key": "quality_edit",
          "label": "Quality",
          "type": "combo",
          "default": "medium",
          "options": [
            {"label": "Very Low", "value": "very_low"},
            {"label": "Low", "value": "low"},
            {"label": "Medium", "value": "medium"},
            {"label": "High", "value": "high"}
          ]
        },
        {"key": "num_images", "label": "Images", "type": "int_slider", "default": 1, "min": 1, "max": 8},
        {"type": "seed", "max": 2147483647}
      ],
      "references": {"mode": "optional", "max": 5, "send_as": "upload"},
      "without_references": {
        "fields": ["size", "quality", "num_images", "seed"],
        "sizes": [
          {"aspect": "1:1", "width": 1024, "height": 1024, "values": {"size": "1024x1024"}},
          {"aspect": "7:5", "width": 1280, "height": 896, "values": {"size": "1280x896"}},
          {"aspect": "5:7", "width": 896, "height": 1280, "values": {"size": "896x1280"}},
          {"aspect": "16:9", "width": 1344, "height": 768, "values": {"size": "1344x768"}},
          {"aspect": "9:16", "width": 768, "height": 1344, "values": {"size": "768x1344"}},
          {"aspect": "21:9", "width": 1536, "height": 640, "values": {"size": "1536x640"}},
          {"aspect": "9:21", "width": 640, "height": 1536, "values": {"size": "640x1536"}}
        ]
      },
      "with_references": {
        "request": {
          "method": "POST",
          "url": "https://api.replicate.com/v1/models/ideogram-ai/ideogram-4-5/predictions",
          "headers": {"Prefer": "wait"},
          "body": {
            "input": {
              "prompt": "{{prompt}}",
              "images": "{{images}}",
              "mask": "{{mask}}",
              "size": "{{fields.size_edit}}",
              "quality": "{{fields.quality_edit}}",
              "num_images": "{{fields.num_images}}",
              "seed": "{{fields.seed}}"
            }
          }
        },
        "fields": ["size_edit", "quality_edit", "num_images", "seed"],
        "mask": {"mode": "optional", "paint": "black"},
        "pricing": {
          "per_image": 0.22,
          "by_field": {"quality_edit": {"very_low": 0.008, "low": 0.03, "medium": 0.06, "high": 0.22}},
          "count_field": "num_images",
          "note": "Replicate lists edits at $0.008 per image at Very Low, $0.03 at Low, $0.06 at Medium and $0.22 at High."
        }
      },
      "pricing": {
        "per_image": 0.1,
        "by_field": {"quality": {"low": 0.03, "medium": 0.06, "high": 0.1}},
        "count_field": "num_images",
        "note": "Replicate lists $0.03 per image at Low, $0.06 at Medium and $0.10 at High."
      }
    },
    {
      "id": "ideogram-v4-5-precise-edit",
      "label": "Ideogram V4.5 Precise Edit",
      "group": "Ideogram",
      "description": "Edits one image and keeps the framing and everything around the change as it was. Paint a mask to limit the edit to one area.",
      "prompt": {"mode": "required", "placeholder": "Describe the edit..."},
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/ideogram-ai/ideogram-4-5-precise-edit/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image": "{{image}}",
            "mask": "{{mask}}",
            "reference_images": "{{inputs.reference_images}}",
            "quality": "{{fields.quality}}",
            "num_images": "{{fields.num_images}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "quality",
          "label": "Quality",
          "type": "combo",
          "default": "medium",
          "options": [
            {"label": "Very Low", "value": "very_low"},
            {"label": "Low", "value": "low"},
            {"label": "Medium", "value": "medium"},
            {"label": "High", "value": "high"}
          ]
        },
        {"key": "num_images", "label": "Images", "type": "int_slider", "default": 1, "min": 1, "max": 8},
        {"type": "seed", "max": 2147483647}
      ],
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "mask": {"mode": "optional", "paint": "black"},
      "image_inputs": [
        {"key": "reference_images", "label": "Reference Images", "max": 3, "help": "Images that guide the edit."}
      ],
      "pricing": {
        "per_image": 0.22,
        "by_field": {"quality": {"very_low": 0.008, "low": 0.03, "medium": 0.06, "high": 0.22}},
        "count_field": "num_images",
        "note": "Replicate lists $0.008 per image at Very Low, $0.03 at Low, $0.06 at Medium and $0.22 at High."
      }
    },
    {
      "id": "seedream-4-5",
      "label": "Seedream 4.5",
      "group": "Seedream",
      "description": "Seedream 4.5 generation and editing with up to 14 references and optional sequential results.",
      "prompt": {"mode": "required", "placeholder": "Describe the image (up to 4000 characters)..."},
      "references": {"mode": "optional", "max": 14, "send_as": "upload", "max_megapixels": 36},
      "fields": [
        {"key": "size", "label": "Resolution", "type": "combo", "default": "2K", "options": ["2K", "4K"]},
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "4:3",
            "3:4",
            "4:5",
            "5:4",
            "16:9",
            "9:16",
            "3:2",
            "2:3",
            "21:9",
            "9:21"
          ]
        },
        {
          "key": "sequential_image_generation",
          "label": "Sequential Images",
          "type": "combo",
          "default": "disabled",
          "options": [{"label": "Off", "value": "disabled"}, {"label": "Auto", "value": "auto"}],
          "help": "Auto lets the model return a related series of images, up to Max Images."
        },
        {
          "key": "max_images",
          "label": "Max Images",
          "type": "int_slider",
          "min": 1,
          "max": 15,
          "default": 1,
          "help": "The most images Auto may return. Your reference images count toward the limit of 15."
        },
        {
          "key": "disable_safety_checker",
          "label": "Disable safety checker",
          "type": "bool",
          "default": false,
          "help": "Relaxes ByteDance's filter so it blocks only illegal content."
        }
      ],
      "size_table": "seedream-text",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/bytedance/seedream-4.5/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image_input": "{{images}}",
            "size": "{{fields.size}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "sequential_image_generation": "{{fields.sequential_image_generation}}",
            "max_images": "{{fields.max_images}}",
            "disable_safety_checker": "{{fields.disable_safety_checker}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error"
      },
      "result": {"images": "output"},
      "pricing": {
        "per_image": 0.04,
        "count_field": "max_images",
        "note": "Replicate's price: $0.04 per image. With Sequential Images on Auto, each image it returns is billed, up to Max Images."
      }
    },
    {
      "id": "seedream-4",
      "label": "Seedream 4",
      "group": "Seedream",
      "description": "ByteDance Seedream 4 supports up to 4K, custom dimensions, references and sequential output.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/bytedance/seedream-4/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image_input": "{{images}}",
            "size": "{{fields.size}}",
            "width": "{{fields.width}}",
            "height": "{{fields.height}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "enhance_prompt": "{{fields.enhance_prompt}}",
            "sequential_image_generation": "{{fields.sequential_image_generation}}",
            "max_images": "{{fields.max_images}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "size",
          "label": "Resolution",
          "type": "combo",
          "default": "2K",
          "options": ["1K", "2K", "4K", "custom"]
        },
        {
          "key": "width",
          "label": "Custom Width",
          "type": "int_slider",
          "default": 2048,
          "min": 1024,
          "max": 4096,
          "step": 16,
          "help": "Only used when Resolution is Custom."
        },
        {
          "key": "height",
          "label": "Custom Height",
          "type": "int_slider",
          "default": 2048,
          "min": 1024,
          "max": 4096,
          "step": 16,
          "help": "Only used when Resolution is Custom."
        },
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "4:3",
            "3:4",
            "16:9",
            "9:16",
            "3:2",
            "2:3",
            "21:9"
          ]
        },
        {"key": "enhance_prompt", "label": "Improve prompt", "type": "bool", "default": true},
        {
          "key": "sequential_image_generation",
          "label": "Sequential Images",
          "type": "combo",
          "default": "disabled",
          "options": [{"label": "Off", "value": "disabled"}, {"label": "Auto", "value": "auto"}]
        },
        {
          "key": "max_images",
          "label": "Maximum Images",
          "type": "int_slider",
          "default": 1,
          "min": 1,
          "max": 15,
          "help": "Used when Sequential Images is Auto; returned count can be lower."
        }
      ],
      "references": {"mode": "optional", "max": 10, "send_as": "upload", "max_megapixels": 36},
      "pricing": {
        "per_image": 0.03,
        "count_field": "max_images",
        "note": "Replicate's price: $0.03 per image. With Sequential Images on Auto, each image it returns is billed, up to Max Images."
      },
      "size_table": "seedream-v4"
    },
    {
      "id": "seedream-5-lite",
      "label": "Seedream 5 Lite",
      "group": "Seedream",
      "description": "Seedream 5 Lite generates at 2K or 3K and edits up to 14 references.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/bytedance/seedream-5-lite/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image_input": "{{images}}",
            "size": "{{fields.size}}",
            "max_images": "{{fields.max_images}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "sequential_image_generation": "{{fields.sequential_image_generation}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {"key": "size", "label": "Resolution", "type": "combo", "default": "2K", "options": ["2K", "3K"]},
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "4:3",
            "3:4",
            "16:9",
            "9:16",
            "3:2",
            "2:3",
            "21:9"
          ]
        },
        {"key": "output_format", "label": "Format", "type": "combo", "default": "png", "options": ["png", "jpeg"]},
        {
          "key": "sequential_image_generation",
          "label": "Sequential Images",
          "type": "combo",
          "default": "disabled",
          "options": [{"label": "Off", "value": "disabled"}, {"label": "Auto", "value": "auto"}]
        },
        {
          "key": "max_images",
          "label": "Maximum Images",
          "type": "int_slider",
          "default": 1,
          "min": 1,
          "max": 15,
          "help": "Used when Sequential Images is Auto; returned count can be lower."
        }
      ],
      "references": {"mode": "optional", "max": 14, "send_as": "upload", "max_megapixels": 36},
      "pricing": {
        "per_image": 0.035,
        "count_field": "max_images",
        "note": "Replicate's price: $0.035 per image. With Sequential Images on Auto, each image it returns is billed, up to Max Images."
      },
      "size_table": "seedream-5lite"
    },
    {
      "id": "seedream-5-pro",
      "label": "Seedream 5 Pro",
      "group": "Seedream",
      "description": "ByteDance Seedream 5.0 Pro, strong on layout and text in images. Add up to 10 images to edit or combine them.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/bytedance/seedream-5-pro/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image_input": "{{images}}",
            "size": "{{fields.size}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {"key": "size", "label": "Resolution", "type": "combo", "default": "2K", "options": ["1K", "2K"]},
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "4:3",
            "3:4",
            "16:9",
            "9:16",
            "3:2",
            "2:3",
            "21:9"
          ]
        },
        {"key": "output_format", "label": "Format", "type": "combo", "default": "png", "options": ["png", "jpeg"]}
      ],
      "references": {"mode": "optional", "max": 10, "send_as": "upload", "max_megapixels": 36},
      "pricing": {
        "per_image": 0.09,
        "by_field": {"size": {"1K": 0.045, "2K": 0.09}},
        "note": "Replicate lists $0.045 per image at 1K and $0.09 at 2K."
      }
    },
    {
      "id": "gpt-image-2",
      "label": "GPT Image 2",
      "group": "OpenAI",
      "description": "OpenAI GPT Image 2 generation and editing, transparent backgrounds and up to ten outputs per run.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/openai/gpt-image-2/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "input_images": "{{images}}",
            "quality": "{{fields.quality}}",
            "background": "{{fields.background}}",
            "moderation": "{{fields.moderation}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "number_of_images": "{{fields.number_of_images}}",
            "output_compression": "{{fields.output_compression}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "3:2", "2:3", "4:3", "3:4", "16:9", "9:16", "auto"]
        },
        {
          "key": "quality",
          "label": "Quality",
          "type": "combo",
          "default": "medium",
          "options": ["low", "medium", "high", "auto"]
        },
        {
          "key": "background",
          "label": "Background",
          "type": "combo",
          "default": "auto",
          "options": ["auto", "transparent", "opaque"]
        },
        {"key": "moderation", "label": "Moderation", "type": "combo", "default": "auto", "options": ["auto", "low"]},
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["png", "jpeg", "webp"]
        },
        {"key": "number_of_images", "label": "Images", "type": "int_slider", "default": 1, "min": 1, "max": 10},
        {
          "key": "output_compression",
          "label": "Compression",
          "type": "int_slider",
          "default": 90,
          "min": 0,
          "max": 100,
          "help": "For JPEG and WEBP. PNG ignores this setting."
        }
      ],
      "references": {"mode": "optional", "max": 16, "send_as": "upload"},
      "pricing": {
        "per_image": 0.128,
        "by_field": {"quality": {"low": 0.012, "medium": 0.047, "high": 0.128, "auto": 0.128}},
        "count_field": "number_of_images",
        "note": "Replicate lists about $0.012 low, $0.047 medium and $0.128 high or auto per output image."
      },
      "size_table": "openai-gpt-image-2"
    },
    {
      "id": "gpt-image-2-5-flare",
      "label": "GPT Image 2.5 Flare",
      "group": "OpenAI",
      "description": "OpenAI GPT Image 2.5 Flare is tuned for fast everyday generation and precise image editing.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/openai/gpt-image-2.5-flare/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "input_images": "{{images}}",
            "quality": "{{fields.quality}}",
            "background": "{{fields.background}}",
            "moderation": "{{fields.moderation}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "number_of_images": "{{fields.number_of_images}}",
            "output_compression": "{{fields.output_compression}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            "1:1",
            "3:2",
            "2:3",
            "4:3",
            "3:4",
            "16:9",
            "9:16",
            "auto"
          ]
        },
        {
          "key": "quality",
          "label": "Quality",
          "type": "combo",
          "default": "medium",
          "options": [
            "low",
            "medium",
            "high",
            "xhigh",
            "max",
            "auto"
          ]
        },
        {
          "key": "background",
          "label": "Background",
          "type": "combo",
          "default": "auto",
          "options": [
            "auto",
            "transparent",
            "opaque"
          ]
        },
        {
          "key": "moderation",
          "label": "Moderation",
          "type": "combo",
          "default": "auto",
          "options": [
            "auto",
            "low"
          ]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": [
            "png",
            "jpeg",
            "webp"
          ]
        },
        {
          "key": "number_of_images",
          "label": "Images",
          "type": "int_slider",
          "default": 1,
          "min": 1,
          "max": 10
        },
        {
          "key": "output_compression",
          "label": "Compression",
          "type": "int_slider",
          "default": 90,
          "min": 0,
          "max": 100,
          "help": "For JPEG and WEBP. PNG ignores this setting."
        }
      ],
      "references": {"mode": "optional", "max": 16, "send_as": "upload"},
      "pricing": {
        "per_image": 0.25,
        "by_field": {
          "quality": {
            "low": 0.012,
            "medium": 0.047,
            "high": 0.128,
            "xhigh": 0.25,
            "max": 0.5,
            "auto": 0.25
          }
        },
        "count_field": "number_of_images",
        "note": "Replicate lists $0.012 low, $0.047 medium, $0.128 high, $0.25 xhigh or auto, and $0.50 max per output image."
      }
    },
    {
      "id": "gpt-image-2-5-sunburst",
      "label": "GPT Image 2.5 Sunburst",
      "group": "OpenAI",
      "description": "OpenAI GPT Image 2.5 Sunburst is tuned for detailed generation and precise, high-fidelity edits.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/openai/gpt-image-2.5-sunburst/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "input_images": "{{images}}",
            "quality": "{{fields.quality}}",
            "background": "{{fields.background}}",
            "moderation": "{{fields.moderation}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "number_of_images": "{{fields.number_of_images}}",
            "output_compression": "{{fields.output_compression}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            "1:1",
            "3:2",
            "2:3",
            "4:3",
            "3:4",
            "16:9",
            "9:16",
            "auto"
          ]
        },
        {
          "key": "quality",
          "label": "Quality",
          "type": "combo",
          "default": "medium",
          "options": [
            "low",
            "medium",
            "high",
            "xhigh",
            "max",
            "auto"
          ]
        },
        {
          "key": "background",
          "label": "Background",
          "type": "combo",
          "default": "auto",
          "options": [
            "auto",
            "transparent",
            "opaque"
          ]
        },
        {
          "key": "moderation",
          "label": "Moderation",
          "type": "combo",
          "default": "auto",
          "options": [
            "auto",
            "low"
          ]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": [
            "png",
            "jpeg",
            "webp"
          ]
        },
        {
          "key": "number_of_images",
          "label": "Images",
          "type": "int_slider",
          "default": 1,
          "min": 1,
          "max": 10
        },
        {
          "key": "output_compression",
          "label": "Compression",
          "type": "int_slider",
          "default": 90,
          "min": 0,
          "max": 100,
          "help": "For JPEG and WEBP. PNG ignores this setting."
        }
      ],
      "references": {"mode": "optional", "max": 16, "send_as": "upload"},
      "pricing": {
        "per_image": 0.25,
        "by_field": {
          "quality": {
            "low": 0.012,
            "medium": 0.047,
            "high": 0.128,
            "xhigh": 0.25,
            "max": 0.5,
            "auto": 0.25
          }
        },
        "count_field": "number_of_images",
        "note": "Replicate lists $0.012 low, $0.047 medium, $0.128 high, $0.25 xhigh or auto, and $0.50 max per output image."
      }
    },
    {
      "id": "gpt-image-1-5",
      "label": "GPT Image 1.5",
      "group": "OpenAI",
      "description": "OpenAI GPT Image 1.5 generates and edits images with strong prompt adherence and reference consistency.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/openai/gpt-image-1.5/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "input_images": "{{images}}",
            "quality": "{{fields.quality}}",
            "background": "{{fields.background}}",
            "moderation": "{{fields.moderation}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "input_fidelity": "{{fields.input_fidelity}}",
            "output_format": "{{fields.output_format}}",
            "number_of_images": "{{fields.number_of_images}}",
            "output_compression": "{{fields.output_compression}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            "1:1",
            "3:2",
            "2:3"
          ]
        },
        {
          "key": "quality",
          "label": "Quality",
          "type": "combo",
          "default": "medium",
          "options": [
            "low",
            "medium",
            "high",
            "auto"
          ]
        },
        {
          "key": "input_fidelity",
          "label": "Reference Fidelity",
          "type": "combo",
          "default": "low",
          "options": [
            "low",
            "high"
          ],
          "help": "High spends more effort matching reference images."
        },
        {
          "key": "background",
          "label": "Background",
          "type": "combo",
          "default": "auto",
          "options": [
            "auto",
            "transparent",
            "opaque"
          ]
        },
        {
          "key": "moderation",
          "label": "Moderation",
          "type": "combo",
          "default": "auto",
          "options": [
            "auto",
            "low"
          ]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": [
            "png",
            "jpeg",
            "webp"
          ]
        },
        {
          "key": "number_of_images",
          "label": "Images",
          "type": "int_slider",
          "default": 1,
          "min": 1,
          "max": 10
        },
        {
          "key": "output_compression",
          "label": "Compression",
          "type": "int_slider",
          "default": 90,
          "min": 0,
          "max": 100
        }
      ],
      "references": {"mode": "optional", "max": 16, "send_as": "upload"},
      "pricing": {
        "per_image": 0.136,
        "by_field": {
          "quality": {
            "low": 0.013,
            "medium": 0.05,
            "high": 0.136,
            "auto": 0.136
          }
        },
        "count_field": "number_of_images",
        "note": "Replicate lists $0.013 low, $0.05 medium, and $0.136 high or auto per output image."
      }
    },
    {
      "id": "qwen-image-2",
      "label": "Qwen Image 2",
      "group": "Qwen",
      "description": "Qwen Image 2 generates images or edits one reference image with prompt expansion and negative prompting.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/qwen/qwen-image-2/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image": "{{image}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "negative_prompt": "{{fields.negative_prompt}}",
            "match_input_image": "{{fields.match_input_image}}",
            "enable_prompt_expansion": "{{fields.enable_prompt_expansion}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "2:1", "1:2"]
        },
        {"key": "negative_prompt", "label": "Avoid", "type": "textarea", "default": ""},
        {"key": "match_input_image", "label": "Match input size", "type": "bool", "default": false},
        {"key": "enable_prompt_expansion", "label": "Improve prompt", "type": "bool", "default": true},
        {"type": "seed"}
      ],
      "references": {"mode": "optional", "max": 1, "send_as": "upload"},
      "pricing": {"per_image": 0.035, "note": "Replicate lists $0.035 per output image."},
      "size_table": "qwen-v2"
    },
    {
      "id": "qwen-image-3",
      "label": "Qwen Image 3",
      "group": "Qwen",
      "description": "Alibaba Qwen Image 3.0, strong at text and layout. Add one image to edit it. Pro is the more detailed version.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/alibaba/qwen-image-3/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image": "{{image}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "negative_prompt": "{{fields.negative_prompt}}",
            "match_input_image": "{{fields.match_input_image}}",
            "enable_prompt_expansion": "{{fields.enable_prompt_expansion}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "2:1", "1:2"]
        },
        {"key": "negative_prompt", "label": "Avoid", "type": "textarea", "default": ""},
        {"key": "match_input_image", "label": "Match input size", "type": "bool", "default": false},
        {"key": "enable_prompt_expansion", "label": "Improve prompt", "type": "bool", "default": true},
        {"type": "seed"}
      ],
      "references": {"mode": "optional", "max": 1, "send_as": "upload"},
      "without_references": {"fields": ["aspect_ratio", "negative_prompt", "enable_prompt_expansion", "seed"]},
      "pricing": {"per_image": 0.03, "note": "Replicate lists $0.03 per output image."},
      "variants": {
        "label": "Version",
        "default": "standard",
        "options": [
          {"id": "standard", "label": "Standard", "description": "The standard model."},
          {
            "id": "pro",
            "label": "Pro",
            "description": "More detail.",
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/alibaba/qwen-image-3-pro/predictions",
              "headers": {"Prefer": "wait"},
              "body": {
                "input": {
                  "prompt": "{{prompt}}",
                  "image": "{{image}}",
                  "aspect_ratio": "{{fields.aspect_ratio}}",
                  "negative_prompt": "{{fields.negative_prompt}}",
                  "match_input_image": "{{fields.match_input_image}}",
                  "enable_prompt_expansion": "{{fields.enable_prompt_expansion}}",
                  "seed": "{{fields.seed}}"
                }
              }
            },
            "pricing": {"per_image": 0.04, "note": "Replicate lists $0.04 per output image."}
          }
        ]
      }
    },
    {
      "id": "qwen-image-edit-plus",
      "label": "Qwen Image Edit Plus",
      "group": "Qwen",
      "description": "Instruction-based Qwen editing with multiple references.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/qwen/qwen-image-edit-plus/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image": "{{images}}",
            "go_fast": "{{fields.go_fast}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "disable_safety_checker": "{{fields.disable_safety_checker}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [{"label": "Match input", "value": "match_input_image"}, "1:1", "16:9", "9:16", "4:3", "3:4"]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {"key": "output_quality", "label": "Quality", "type": "int_slider", "default": 95, "min": 0, "max": 100},
        {"key": "go_fast", "label": "Faster path", "type": "bool", "default": true},
        {"key": "disable_safety_checker", "label": "Disable safety checker", "type": "bool", "default": false},
        {"type": "seed"}
      ],
      "references": {"mode": "required", "max": 3, "send_as": "upload"},
      "pricing": {"per_image": 0.03, "note": "Replicate lists $0.03 per output image."}
    },
    {
      "id": "qwen-image-edit-2511",
      "label": "Qwen Image Edit 2511",
      "group": "Qwen",
      "description": "Qwen Image Edit 2511 follows image instructions for focused edits and subject consistency.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/qwen/qwen-image-edit-2511/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image": "{{images}}",
            "go_fast": "{{fields.go_fast}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {
              "label": "Match input",
              "value": "match_input_image"
            },
            "1:1",
            "16:9",
            "9:16",
            "4:3",
            "3:4"
          ]
        },
        {
          "key": "go_fast",
          "label": "Fast mode",
          "type": "bool",
          "default": true
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": [
            "webp",
            "jpg",
            "png"
          ]
        },
        {
          "key": "output_quality",
          "label": "Quality",
          "type": "int_slider",
          "default": 95,
          "min": 0,
          "max": 100
        },
        {
          "type": "seed"
        }
      ],
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "pricing": {
        "per_image": 0.03,
        "note": "Replicate lists $0.03 per output image."
      }
    },
    {
      "id": "qwen-image-2512",
      "label": "Qwen Image 2512",
      "group": "Qwen",
      "description": "Qwen Image 2512 improves text rendering, textures and realistic people, with optional image-to-image guidance.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/qwen/qwen-image-2512/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image": "{{image}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "negative_prompt": "{{fields.negative_prompt}}",
            "strength": "{{fields.strength}}",
            "go_fast": "{{fields.go_fast}}",
            "guidance": "{{fields.guidance}}",
            "num_inference_steps": "{{fields.num_inference_steps}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "16:9",
          "options": [
            "1:1",
            "16:9",
            "9:16",
            "4:3",
            "3:4",
            "3:2",
            "2:3"
          ]
        },
        {
          "key": "strength",
          "label": "Image Strength",
          "type": "float_slider",
          "default": 0.8,
          "min": 0,
          "max": 1,
          "step": 0.05,
          "decimals": 2,
          "help": "At 1.0, the input image information is fully replaced."
        },
        {
          "key": "negative_prompt",
          "label": "Avoid",
          "type": "textarea",
          "default": ""
        },
        {
          "key": "go_fast",
          "label": "Fast mode",
          "type": "bool",
          "default": true
        },
        {
          "key": "guidance",
          "label": "Guidance",
          "type": "float_slider",
          "default": 4,
          "min": 0,
          "max": 10,
          "step": 0.5,
          "decimals": 1,
          "help": "Higher values make the result follow the prompt more closely."
        },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "default": 40,
          "min": 20,
          "max": 50,
          "help": "Fewer steps run faster."
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": [
            "webp",
            "jpg",
            "png"
          ]
        },
        {
          "key": "output_quality",
          "label": "Quality",
          "type": "int_slider",
          "default": 95,
          "min": 0,
          "max": 100
        },
        {
          "type": "seed"
        }
      ],
      "references": {"mode": "optional", "max": 1, "send_as": "upload"},
      "pricing": {
        "per_image": 0.02,
        "note": "Replicate lists $0.02 per output image."
      }
    },
    {
      "id": "qwen-image",
      "label": "Qwen Image",
      "group": "Qwen",
      "description": "Qwen Image is a text renderer with optional image-to-image guidance and prompt enhancement.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/qwen/qwen-image/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image": "{{image}}",
            "go_fast": "{{fields.go_fast}}",
            "guidance": "{{fields.guidance}}",
            "strength": "{{fields.strength}}",
            "image_size": "{{fields.image_size}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "enhance_prompt": "{{fields.enhance_prompt}}",
            "output_quality": "{{fields.output_quality}}",
            "negative_prompt": "{{fields.negative_prompt}}",
            "num_inference_steps": "{{fields.num_inference_steps}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "16:9",
          "options": ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"]
        },
        {
          "key": "image_size",
          "label": "Image Size",
          "type": "combo",
          "default": "optimize_for_quality",
          "options": [
            {"label": "Optimize for quality", "value": "optimize_for_quality"},
            {"label": "Optimize for speed", "value": "optimize_for_speed"}
          ]
        },
        {"key": "go_fast", "label": "Fast mode", "type": "bool", "default": true},
        {
          "key": "guidance",
          "label": "Guidance",
          "type": "float_slider",
          "default": 3,
          "min": 0,
          "max": 10,
          "step": 0.5,
          "decimals": 1,
          "help": "Lower values can give more realistic images. Try 2, 2.5, 3 or 3.5."
        },
        {
          "key": "strength",
          "label": "Image Strength",
          "type": "float_slider",
          "default": 0.9,
          "min": 0,
          "max": 1,
          "step": 0.05,
          "decimals": 2,
          "help": "Controls how strongly the image to image process changes the input."
        },
        {"key": "enhance_prompt", "label": "Improve prompt", "type": "bool", "default": false},
        {"key": "negative_prompt", "label": "Avoid", "type": "textarea", "default": ""},
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "default": 30,
          "min": 1,
          "max": 50,
          "help": "28 to 50 steps are recommended. Fewer steps run faster with lower image quality."
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {"key": "output_quality", "label": "Quality", "type": "int_slider", "default": 95, "min": 0, "max": 100},
        {"type": "seed"}
      ],
      "references": {"mode": "optional", "max": 1, "send_as": "upload"},
      "pricing": {"per_image": 0.025, "note": "Replicate lists $0.025 per output image."}
    },
    {
      "id": "recraft-v3",
      "label": "Recraft V3",
      "group": "Recraft",
      "description": "Recraft V3 combines raster generation with design styles, exact sizes and aspect ratios.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/recraft-ai/recraft-v3/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "size": "{{fields.size}}",
            "style": "{{fields.style}}",
            "aspect_ratio": "{{fields.aspect_ratio}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "combo",
          "default": "Not set",
          "options": [
            "Not set",
            "1:1",
            "4:3",
            "3:4",
            "3:2",
            "2:3",
            "16:9",
            "9:16",
            "1:2",
            "2:1",
            "7:5",
            "5:7",
            "4:5",
            "5:4",
            "3:5",
            "5:3"
          ]
        },
        {
          "key": "size",
          "label": "Size",
          "type": "combo",
          "default": "1024x1024",
          "options": [
            "1024x1024",
            "1365x1024",
            "1024x1365",
            "1536x1024",
            "1024x1536",
            "1820x1024",
            "1024x1820",
            "1024x2048",
            "2048x1024",
            "1434x1024",
            "1024x1434",
            "1024x1280",
            "1280x1024",
            "1024x1707",
            "1707x1024"
          ]
        },
        {
          "key": "style",
          "label": "Style",
          "type": "combo",
          "default": "any",
          "options": [
            {"label": "Any", "value": "any"},
            {"label": "Realistic", "value": "realistic_image"},
            {"label": "Digital illustration", "value": "digital_illustration"},
            {"label": "Digital illustration: pixel art", "value": "digital_illustration/pixel_art"},
            {"label": "Digital illustration: hand drawn", "value": "digital_illustration/hand_drawn"},
            {"label": "Digital illustration: grain", "value": "digital_illustration/grain"},
            {"label": "Digital illustration: infantile sketch", "value": "digital_illustration/infantile_sketch"},
            {"label": "Digital illustration: 2D art poster", "value": "digital_illustration/2d_art_poster"},
            {"label": "Digital illustration: handmade 3D", "value": "digital_illustration/handmade_3d"},
            {"label": "Digital illustration: hand drawn outline", "value": "digital_illustration/hand_drawn_outline"},
            {"label": "Digital illustration: engraving color", "value": "digital_illustration/engraving_color"},
            {"label": "Digital illustration: 2D art poster 2", "value": "digital_illustration/2d_art_poster_2"},
            {"label": "Realistic: black and white", "value": "realistic_image/b_and_w"},
            {"label": "Realistic: hard flash", "value": "realistic_image/hard_flash"},
            {"label": "Realistic: HDR", "value": "realistic_image/hdr"},
            {"label": "Realistic: natural light", "value": "realistic_image/natural_light"},
            {"label": "Realistic: studio portrait", "value": "realistic_image/studio_portrait"},
            {"label": "Realistic: enterprise", "value": "realistic_image/enterprise"},
            {"label": "Realistic: motion blur", "value": "realistic_image/motion_blur"}
          ]
        }
      ],
      "pricing": {"per_image": 0.04, "note": "Replicate lists $0.04 per output image."}
    },
    {
      "id": "recraft-v4",
      "label": "Recraft V4",
      "group": "Recraft",
      "description": "Fast, design-focused image generation with accurate prompt following and integrated text rendering. When you choose an aspect ratio, it takes priority and Size is ignored.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/recraft-ai/recraft-v4/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "size": "{{fields.size}}",
            "aspect_ratio": "{{fields.aspect_ratio}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "combo",
          "default": "Not set",
          "options": [
            "Not set",
            "1:1",
            "4:3",
            "3:4",
            "3:2",
            "2:3",
            "16:9",
            "9:16",
            "1:2",
            "2:1",
            "14:10",
            "10:14",
            "4:5",
            "5:4",
            "6:10"
          ]
        },
        {
          "key": "size",
          "label": "Size",
          "type": "combo",
          "default": "1024x1024",
          "options": [
            "1024x1024",
            "1536x768",
            "768x1536",
            "1280x832",
            "832x1280",
            "1216x896",
            "896x1216",
            "1152x896",
            "896x1152",
            "832x1344",
            "1280x896",
            "896x1280",
            "1344x768",
            "768x1344"
          ]
        }
      ],
      "pricing": {
        "per_image": 0.04,
        "note": "Replicate lists $0.04 per output image."
      }
    },
    {
      "id": "recraft-v4-pro",
      "label": "Recraft V4 Pro",
      "group": "Recraft",
      "description": "High-resolution Recraft V4 for print and production work; up to roughly 3072 pixels on the long side.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/recraft-ai/recraft-v4-pro/predictions",
        "headers": {"Prefer": "wait"},
        "body": {"input": {"prompt": "{{prompt}}", "size": "{{fields.size}}", "aspect_ratio": "{{fields.aspect_ratio}}"}}
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "combo",
          "default": "Not set",
          "options": [
            "Not set",
            "1:1",
            "4:3",
            "3:4",
            "3:2",
            "2:3",
            "16:9",
            "9:16",
            "1:2",
            "2:1",
            "4:5",
            "5:4",
            "6:10",
            "14:10",
            "10:14"
          ]
        },
        {
          "key": "size",
          "label": "Size",
          "type": "combo",
          "default": "2048x2048",
          "options": [
            "2048x2048",
            "3072x1536",
            "1536x3072",
            "2560x1664",
            "1664x2560",
            "2432x1792",
            "1792x2432",
            "2304x1792",
            "1792x2304",
            "1664x2688",
            "2560x1792",
            "1792x2560",
            "2688x1536",
            "1536x2688"
          ]
        }
      ],
      "pricing": {"per_image": 0.25, "note": "Replicate lists $0.25 per output image."}
    },
    {
      "id": "recraft-v4-svg",
      "label": "Recraft V4 SVG",
      "group": "Recraft",
      "description": "Create editable SVG vector artwork from a prompt.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/recraft-ai/recraft-v4-svg/predictions",
        "headers": {"Prefer": "wait"},
        "body": {"input": {"prompt": "{{prompt}}", "size": "{{fields.size}}", "aspect_ratio": "{{fields.aspect_ratio}}"}}
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "combo",
          "default": "Not set",
          "options": [
            "Not set",
            "1:1",
            "4:3",
            "3:4",
            "3:2",
            "2:3",
            "16:9",
            "9:16",
            "1:2",
            "2:1",
            "14:10",
            "10:14",
            "4:5",
            "5:4",
            "6:10"
          ]
        },
        {
          "key": "size",
          "label": "Size",
          "type": "combo",
          "default": "1024x1024",
          "options": [
            "1024x1024",
            "1536x768",
            "768x1536",
            "1280x832",
            "832x1280",
            "1216x896",
            "896x1216",
            "1152x896",
            "896x1152",
            "832x1344",
            "1280x896",
            "896x1280",
            "1344x768",
            "768x1344"
          ]
        }
      ],
      "pricing": {"per_image": 0.08, "note": "Replicate lists $0.08 per output image."}
    },
    {
      "id": "recraft-v4-1",
      "label": "Recraft V4.1",
      "group": "Recraft",
      "description": "Recraft V4.1: sharper design images for everyday work, with text rendering. Pro makes 2K images.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/recraft-ai/recraft-v4.1/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {"prompt": "{{prompt}}", "size": "{{fields.size}}", "aspect_ratio": "{{fields.aspect_ratio}}"}
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "combo",
          "default": "Not set",
          "options": [
            "Not set",
            "1:1",
            "4:3",
            "3:4",
            "3:2",
            "2:3",
            "16:9",
            "9:16",
            "1:2",
            "2:1",
            "14:10",
            "10:14",
            "4:5",
            "5:4",
            "6:10"
          ],
          "help": "When set, it takes priority and Size is ignored."
        },
        {
          "key": "size",
          "label": "Size",
          "type": "combo",
          "default": "1024x1024",
          "options": [
            "1024x1024",
            "1536x768",
            "768x1536",
            "1280x832",
            "832x1280",
            "1216x896",
            "896x1216",
            "1152x896",
            "896x1152",
            "832x1344",
            "1280x896",
            "896x1280",
            "1344x768",
            "768x1344"
          ]
        },
        {
          "key": "size_pro",
          "label": "Size",
          "type": "combo",
          "default": "2048x2048",
          "options": [
            "2048x2048",
            "3072x1536",
            "1536x3072",
            "2560x1664",
            "1664x2560",
            "2432x1792",
            "1792x2432",
            "2304x1792",
            "1792x2304",
            "1664x2688",
            "2560x1792",
            "1792x2560",
            "2688x1536",
            "1536x2688"
          ]
        }
      ],
      "pricing": {"per_image": 0.04, "note": "Replicate lists $0.04 per image."},
      "variants": {
        "label": "Version",
        "default": "standard",
        "options": [
          {"id": "standard", "label": "Standard", "description": "1K sizes.", "fields": ["aspect_ratio", "size"]},
          {
            "id": "pro",
            "label": "Pro",
            "description": "2K sizes with more detail.",
            "fields": ["aspect_ratio", "size_pro"],
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/recraft-ai/recraft-v4.1-pro/predictions",
              "headers": {"Prefer": "wait"},
              "body": {
                "input": {
                  "prompt": "{{prompt}}",
                  "size": "{{fields.size_pro}}",
                  "aspect_ratio": "{{fields.aspect_ratio}}"
                }
              }
            },
            "pricing": {"per_image": 0.25, "note": "Replicate lists $0.25 per image."}
          }
        ]
      }
    },
    {
      "id": "recraft-v4-1-svg",
      "label": "Recraft V4.1 SVG",
      "group": "Recraft",
      "description": "Recraft V4.1 SVG: editable vector artwork from a prompt. Pro makes larger, more detailed ones.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/recraft-ai/recraft-v4.1-svg/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {"prompt": "{{prompt}}", "size": "{{fields.size}}", "aspect_ratio": "{{fields.aspect_ratio}}"}
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "combo",
          "default": "Not set",
          "options": [
            "Not set",
            "1:1",
            "4:3",
            "3:4",
            "3:2",
            "2:3",
            "16:9",
            "9:16",
            "1:2",
            "2:1",
            "14:10",
            "10:14",
            "4:5",
            "5:4",
            "6:10"
          ],
          "help": "When set, it takes priority and Size is ignored."
        },
        {
          "key": "size",
          "label": "Size",
          "type": "combo",
          "default": "1024x1024",
          "options": [
            "1024x1024",
            "1536x768",
            "768x1536",
            "1280x832",
            "832x1280",
            "1216x896",
            "896x1216",
            "1152x896",
            "896x1152",
            "832x1344",
            "1280x896",
            "896x1280",
            "1344x768",
            "768x1344"
          ]
        },
        {
          "key": "size_pro",
          "label": "Size",
          "type": "combo",
          "default": "2048x2048",
          "options": [
            "2048x2048",
            "3072x1536",
            "1536x3072",
            "2560x1664",
            "1664x2560",
            "2432x1792",
            "1792x2432",
            "2304x1792",
            "1792x2304",
            "1664x2688",
            "2560x1792",
            "1792x2560",
            "2688x1536",
            "1536x2688"
          ]
        }
      ],
      "pricing": {"per_image": 0.04, "note": "Replicate lists $0.04 per SVG."},
      "variants": {
        "label": "Version",
        "default": "standard",
        "options": [
          {"id": "standard", "label": "Standard", "description": "1K sizes.", "fields": ["aspect_ratio", "size"]},
          {
            "id": "pro",
            "label": "Pro",
            "description": "2K sizes with more detail.",
            "fields": ["aspect_ratio", "size_pro"],
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/recraft-ai/recraft-v4.1-pro-svg/predictions",
              "headers": {"Prefer": "wait"},
              "body": {
                "input": {
                  "prompt": "{{prompt}}",
                  "size": "{{fields.size_pro}}",
                  "aspect_ratio": "{{fields.aspect_ratio}}"
                }
              }
            },
            "pricing": {"per_image": 0.25, "note": "Replicate lists $0.25 per SVG."}
          }
        ]
      }
    },
    {
      "id": "recraft-v4-1-utility",
      "label": "Recraft V4.1 Utility",
      "group": "Recraft",
      "description": "A faster, lighter Recraft V4.1 for high-volume work, with the same design taste. Pro makes 2K images.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/recraft-ai/recraft-v4.1-utility/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {"prompt": "{{prompt}}", "size": "{{fields.size}}", "aspect_ratio": "{{fields.aspect_ratio}}"}
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "combo",
          "default": "Not set",
          "options": [
            "Not set",
            "1:1",
            "4:3",
            "3:4",
            "3:2",
            "2:3",
            "16:9",
            "9:16",
            "1:2",
            "2:1",
            "14:10",
            "10:14",
            "4:5",
            "5:4",
            "6:10"
          ],
          "help": "When set, it takes priority and Size is ignored."
        },
        {
          "key": "size",
          "label": "Size",
          "type": "combo",
          "default": "1024x1024",
          "options": [
            "1024x1024",
            "1536x768",
            "768x1536",
            "1280x832",
            "832x1280",
            "1216x896",
            "896x1216",
            "1152x896",
            "896x1152",
            "832x1344",
            "1280x896",
            "896x1280",
            "1344x768",
            "768x1344"
          ]
        },
        {
          "key": "size_pro",
          "label": "Size",
          "type": "combo",
          "default": "2048x2048",
          "options": [
            "2048x2048",
            "3072x1536",
            "1536x3072",
            "2560x1664",
            "1664x2560",
            "2432x1792",
            "1792x2432",
            "2304x1792",
            "1792x2304",
            "1664x2688",
            "2560x1792",
            "1792x2560",
            "2688x1536",
            "1536x2688"
          ]
        }
      ],
      "pricing": {"per_image": 0.04, "note": "Replicate lists $0.04 per image."},
      "variants": {
        "label": "Version",
        "default": "standard",
        "options": [
          {"id": "standard", "label": "Standard", "description": "1K sizes.", "fields": ["aspect_ratio", "size"]},
          {
            "id": "pro",
            "label": "Pro",
            "description": "2K sizes with more detail.",
            "fields": ["aspect_ratio", "size_pro"],
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/recraft-ai/recraft-v4.1-utility-pro/predictions",
              "headers": {"Prefer": "wait"},
              "body": {
                "input": {
                  "prompt": "{{prompt}}",
                  "size": "{{fields.size_pro}}",
                  "aspect_ratio": "{{fields.aspect_ratio}}"
                }
              }
            },
            "pricing": {"per_image": 0.25, "note": "Replicate lists $0.25 per image."}
          }
        ]
      }
    },
    {
      "id": "arrow",
      "label": "Arrow",
      "group": "Vector",
      "description": "Quiver's Arrow makes SVG graphics (icons, logos, illustrations) from a prompt. Quality switches between Arrow 1.1 and Arrow 1.1 Max.",
      "prompt": {"mode": "required", "placeholder": "Describe the graphic..."},
      "references": {"mode": "optional", "max": 4, "send_as": "upload", "role": "guide"},
      "fields": [
        {
          "key": "instructions",
          "label": "Instructions",
          "type": "textarea",
          "help": "Style or formatting guidance, kept apart from the prompt."
        },
        {
          "key": "temperature",
          "label": "Temperature",
          "type": "float_slider",
          "min": 0,
          "max": 2,
          "default": 1,
          "decimals": 2,
          "help": "How much results vary. Lower is more predictable, higher more inventive."
        },
        {
          "key": "top_p",
          "label": "Top P",
          "type": "float_slider",
          "min": 0,
          "max": 1,
          "default": 1,
          "decimals": 2,
          "help": "Lower keeps the model to its most likely choices. Change this or Temperature, not both."
        },
        {
          "key": "presence_penalty",
          "label": "Presence Penalty",
          "type": "float_slider",
          "min": -2,
          "max": 2,
          "default": 0,
          "decimals": 2,
          "help": "Higher steers the model away from repeating itself. 0 leaves it alone."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/quiverai/arrow-1.1/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "instructions": "{{fields.instructions}}",
            "references": "{{images}}",
            "temperature": "{{fields.temperature}}",
            "top_p": "{{fields.top_p}}",
            "presence_penalty": "{{fields.presence_penalty}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error"
      },
      "result": {"images": "output"},
      "pricing": {"per_image": 0.2, "note": "Replicate's price: $0.20 per SVG."},
      "variants": {
        "label": "Quality",
        "default": "standard",
        "options": [
          {
            "id": "standard",
            "label": "Arrow 1.1",
            "description": "Arrow 1.1 makes SVG icons, logos and illustrations from a prompt. Takes up to 4 reference images."
          },
          {
            "id": "max",
            "label": "Arrow 1.1 Max",
            "description": "Arrow 1.1 Max makes denser illustrations, detailed logos and diagrams. Takes up to 16 reference images.",
            "request": {"url": "https://api.replicate.com/v1/models/quiverai/arrow-1.1-max/predictions"},
            "references": {"max": 16},
            "pricing": {"per_image": 0.25, "note": "Replicate's price: $0.25 per SVG."}
          }
        ]
      }
    },
    {
      "id": "arrow-vectorize",
      "label": "Arrow Vectorize",
      "group": "Vector",
      "description": "Turns a raster image into an SVG. Add one image. No prompt needed.",
      "prompt": {"mode": "none"},
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "fields": [
        {
          "key": "target_size",
          "label": "Resize",
          "type": "combo",
          "default": "Original",
          "options": [
            {"label": "Original", "value": 0},
            {"label": "512 px", "value": 512},
            {"label": "1024 px", "value": 1024},
            {"label": "2048 px", "value": 2048},
            {"label": "4096 px", "value": 4096}
          ],
          "help": "The image becomes a square of this size before it is traced."
        },
        {"key": "auto_crop", "label": "Crop to the subject", "type": "bool", "default": false},
        {
          "key": "temperature",
          "label": "Temperature",
          "type": "float_slider",
          "min": 0,
          "max": 2,
          "default": 1,
          "decimals": 2,
          "help": "How much results vary. Lower is more predictable, higher more inventive."
        },
        {
          "key": "top_p",
          "label": "Top P",
          "type": "float_slider",
          "min": 0,
          "max": 1,
          "default": 1,
          "decimals": 2,
          "help": "Lower keeps the model to its most likely choices. Change this or Temperature, not both."
        },
        {
          "key": "presence_penalty",
          "label": "Presence Penalty",
          "type": "float_slider",
          "min": -2,
          "max": 2,
          "default": 0,
          "decimals": 2,
          "help": "Higher steers the model away from repeating itself. 0 leaves it alone."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/quiverai/arrow-1.1-vectorize/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "image": "{{image}}",
            "target_size": "{{fields.target_size}}",
            "auto_crop": "{{fields.auto_crop}}",
            "temperature": "{{fields.temperature}}",
            "top_p": "{{fields.top_p}}",
            "presence_penalty": "{{fields.presence_penalty}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error"
      },
      "result": {"images": "output"},
      "pricing": {"per_image": 0.15, "note": "Replicate's price: $0.15 per SVG."},
      "variants": {
        "label": "Quality",
        "default": "standard",
        "options": [
          {
            "id": "standard",
            "label": "Arrow 1.1",
            "description": "Arrow 1.1 turns a raster image into an SVG. Add one image. No prompt needed."
          },
          {
            "id": "max",
            "label": "Arrow 1.1 Max",
            "description": "Arrow 1.1 Max keeps fine structure in detailed images. Add one image. No prompt needed.",
            "request": {"url": "https://api.replicate.com/v1/models/quiverai/arrow-1.1-max-vectorize/predictions"},
            "pricing": {"per_image": 0.2, "note": "Replicate's price: $0.20 per SVG."}
          }
        ]
      }
    },
    {
      "id": "recraft-vectorize",
      "label": "Recraft Vectorize",
      "group": "Vector",
      "description": "Turn one PNG, JPG or WEBP into a clean SVG. Replicate accepts inputs up to 5 MB and 16 MP.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/recraft-ai/recraft-vectorize/predictions",
        "headers": {"Prefer": "wait"},
        "body": {"input": {"image": "{{image}}"}}
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [],
      "references": {
        "mode": "required",
        "max": 1,
        "send_as": "upload",
        "max_mb": 4.7,
        "max_megapixels": 16,
        "max_side": 4096
      },
      "pricing": {"per_image": 0.01, "note": "Replicate lists $0.01 per output image."},
      "prompt": {"mode": "none"}
    },
    {
      "id": "topaz-upscale",
      "label": "Topaz Upscale",
      "group": "Upscale & Restore",
      "description": "Topaz Labs upscaling and enhancement. Add one image; no prompt needed.",
      "prompt": {"mode": "none"},
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "fields": [
        {
          "key": "upscale_factor",
          "label": "Upscale",
          "type": "combo",
          "default": "2x",
          "options": [{"label": "Enhance only", "value": "None"}, "2x", "4x", "6x"]
        },
        {
          "key": "enhance_model",
          "label": "Model",
          "type": "combo",
          "default": "Standard V2",
          "options": ["Standard V2", "Low Resolution V2", "CGI", "High Fidelity V2", "Text Refine"],
          "help": "Standard V2 suits most images. Pick Low Resolution V2 for small images, CGI for digital art, High Fidelity V2 to keep fine detail, or Text Refine for text."
        },
        {"key": "output_format", "label": "Format", "type": "combo", "default": "png", "options": ["jpg", "png"]},
        {
          "key": "subject_detection",
          "label": "Subject Detection",
          "type": "combo",
          "default": "None",
          "options": ["None", "All", "Foreground", "Background"],
          "help": "None skips subject detection and All enhances everything. Foreground enhances only the main subject and Background only what's behind it."
        },
        {
          "key": "face_enhancement",
          "label": "Enhance faces",
          "type": "bool",
          "default": false,
          "help": "Face Creativity and Face Strength work only when this is on."
        },
        {
          "key": "face_enhancement_creativity",
          "label": "Face Creativity",
          "type": "float_slider",
          "min": 0,
          "max": 1,
          "default": 0,
          "decimals": 2,
          "help": "How freely faces are redrawn. 0 keeps them closest to the original."
        },
        {
          "key": "face_enhancement_strength",
          "label": "Face Strength",
          "type": "float_slider",
          "min": 0,
          "max": 1,
          "default": 0.8,
          "decimals": 2,
          "help": "How sharp faces look next to the background. Higher is sharper."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/topazlabs/image-upscale/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "image": "{{image}}",
            "upscale_factor": "{{fields.upscale_factor}}",
            "enhance_model": "{{fields.enhance_model}}",
            "output_format": "{{fields.output_format}}",
            "subject_detection": "{{fields.subject_detection}}",
            "face_enhancement": "{{fields.face_enhancement}}",
            "face_enhancement_creativity": "{{fields.face_enhancement_creativity}}",
            "face_enhancement_strength": "{{fields.face_enhancement_strength}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error"
      },
      "result": {"images": "output"},
      "upscale": {"field": "upscale_factor", "factors": {"None": 1, "2x": 2, "4x": 4, "6x": 6}},
      "pricing": {
        "per_image": 0.08,
        "per_megapixel": 0.003334,
        "note": "Replicate lists $0.08 per unit, and Topaz charges 1 unit per 24 MP of output. The estimate may run up to $0.08 high, never low."
      }
    },
    {
      "id": "codeformer",
      "label": "CodeFormer",
      "group": "Upscale & Restore",
      "description": "Restores faces in old photos and AI images, and can upscale the whole picture. Add one image. No prompt needed. Images with a short side under 512 px are enlarged to 512 first. Replicate's page says this API can't be used commercially.",
      "prompt": {"mode": "none"},
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "fields": [
        {
          "key": "codeformer_fidelity",
          "label": "Fidelity",
          "type": "float_slider",
          "min": 0,
          "max": 1,
          "default": 0.5,
          "decimals": 2,
          "help": "Lower gives a cleaner face, higher stays closer to the original."
        },
        {
          "key": "upscale",
          "label": "Upscale",
          "type": "combo",
          "default": "2x",
          "options": [{"label": "1x", "value": 1}, {"label": "2x", "value": 2}, {"label": "4x", "value": 4}]
        },
        {"key": "background_enhance", "label": "Enhance background", "type": "bool", "default": true},
        {
          "key": "face_upsample",
          "label": "Upsample faces",
          "type": "bool",
          "default": true,
          "help": "Sharpens restored faces further. Best for large AI images."
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "version": "cc4956dd26fa5a7185d5660cc9100fab1b8070a1d1654a8bb5eb6d443b020bb2",
          "input": {
            "image": "{{image}}",
            "codeformer_fidelity": "{{fields.codeformer_fidelity}}",
            "upscale": "{{fields.upscale}}",
            "background_enhance": "{{fields.background_enhance}}",
            "face_upsample": "{{fields.face_upsample}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error"
      },
      "result": {"images": "output"},
      "upscale": {"field": "upscale", "factors": {"1x": 1, "2x": 2, "4x": 4}},
      "pricing": {
        "per_second": 0.000975,
        "seconds": "poll.metrics.predict_time",
        "note": "Replicate bills $0.000975 per second on an L40S."
      }
    },
    {
      "id": "gfpgan",
      "label": "GFPGAN",
      "group": "Upscale & Restore",
      "description": "Restores faces in old photos and AI images. Add one image. No prompt needed. Images under 300 px tall are doubled first, so 2x makes them four times larger.",
      "prompt": {"mode": "none"},
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "fields": [
        {
          "key": "version",
          "label": "Model Version",
          "type": "combo",
          "default": "v1.4",
          "options": ["v1.2", "v1.3", "v1.4", "RestoreFormer"],
          "help": "v1.3 looks cleaner. v1.4 keeps more detail and looks more like the person."
        },
        {
          "key": "scale",
          "label": "Upscale",
          "type": "combo",
          "default": "2x",
          "options": [{"label": "1x", "value": 1}, {"label": "2x", "value": 2}, {"label": "4x", "value": 4}]
        }
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "version": "0fbacf7afc6c144e5be9767cff80f25aff23e52b0708f17e20f9879b2f21516c",
          "input": {"img": "{{image}}", "version": "{{fields.version}}", "scale": "{{fields.scale}}"}
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error"
      },
      "result": {"images": "output"},
      "upscale": {"field": "scale", "factors": {"1x": 1, "2x": 2, "4x": 4}},
      "pricing": {
        "per_second": 0.000975,
        "seconds": "poll.metrics.predict_time",
        "note": "Replicate bills $0.000975 per second on an L40S."
      }
    },
    {
      "id": "recraft-crisp-upscale",
      "label": "Recraft Crisp Upscale",
      "group": "Upscale & Restore",
      "description": "Sharpen and clean up one image for web or print. Replicate does not publish a fixed output scale, so Wando can't show its exact output dimensions before the run.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/recraft-ai/recraft-crisp-upscale/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "image": "{{image}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [],
      "references": {
        "mode": "required",
        "max": 1,
        "send_as": "upload",
        "max_mb": 9.5,
        "max_megapixels": 16,
        "max_side": 4096
      },
      "pricing": {
        "per_image": 0.006,
        "note": "Replicate lists $6 per thousand output images."
      },
      "prompt": {
        "mode": "none"
      }
    },
    {
      "id": "google-upscaler",
      "label": "Google Upscaler",
      "group": "Upscale & Restore",
      "description": "Google image upscaling at 2x or 4x. Google caps the result at 17 MP, so 4x suits images up to about 1 MP.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/google/upscaler/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "image": "{{image}}",
            "upscale_factor": "{{fields.upscale_factor}}",
            "compression_quality": "{{fields.compression_quality}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "upscale_factor",
          "label": "Scale",
          "type": "combo",
          "default": "x2",
          "options": [
            "x2",
            "x4"
          ]
        },
        {
          "key": "compression_quality",
          "label": "Compression Quality",
          "type": "int_slider",
          "default": 80,
          "min": 1,
          "max": 100
        }
      ],
      "references": {"mode": "required", "max": 1, "send_as": "upload", "max_mb": 9.5},
      "pricing": {
        "per_image": 0.02,
        "note": "Replicate lists $0.02 per output image."
      },
      "upscale": {
        "field": "upscale_factor",
        "factors": {
          "x2": 2,
          "x4": 4
        }
      },
      "prompt": {
        "mode": "none"
      }
    },
    {
      "id": "real-esrgan",
      "label": "Real-ESRGAN",
      "group": "Upscale & Restore",
      "description": "Real-ESRGAN enlarges one image and can optionally enhance faces. No prompt needed.",
      "prompt": {
        "mode": "none"
      },
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/nightmareai/real-esrgan/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "image": "{{image}}",
            "scale": "{{fields.scale}}",
            "face_enhance": "{{fields.face_enhance}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "scale",
          "label": "Upscale",
          "type": "int_slider",
          "default": 4,
          "min": 1,
          "max": 10,
          "step": 1,
          "decimals": 0
        },
        {
          "key": "face_enhance",
          "label": "Face enhancement",
          "type": "bool",
          "default": false
        }
      ],
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "pricing": {
        "per_image": 0.002,
        "note": "Replicate lists $0.002 per output image."
      },
      "upscale": {
        "field": "scale"
      }
    },
    {
      "id": "clarity-upscaler",
      "label": "Clarity Upscaler",
      "group": "Upscale & Restore",
      "description": "Clarity is a creative 2x image upscaler with prompt, detail and resemblance controls. Typical cost varies with input.",
      "prompt": {"mode": "none"},
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/philz1337x/clarity-upscaler/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "image": "{{image}}",
            "prompt": "{{fields.prompt_text}}",
            "negative_prompt": "{{fields.negative_prompt}}",
            "scale_factor": 2,
            "creativity": "{{fields.creativity}}",
            "resemblance": "{{fields.resemblance}}",
            "dynamic": "{{fields.dynamic}}",
            "num_inference_steps": "{{fields.num_inference_steps}}",
            "output_format": "{{fields.output_format}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "prompt_text",
          "label": "Detail prompt",
          "type": "textarea",
          "default": "masterpiece, best quality, highres, <lora:more_details:0.5> <lora:SDXLrender_v2.0:1>"
        },
        {
          "key": "negative_prompt",
          "label": "Avoid",
          "type": "textarea",
          "default": "(worst quality, low quality, normal quality:2) JuggernautNegative-neg"
        },
        {
          "key": "creativity",
          "label": "Creativity",
          "type": "float_slider",
          "default": 0.35,
          "min": 0,
          "max": 1,
          "step": 0.05,
          "decimals": 2,
          "help": "Replicate recommends values from 0.3 to 0.9."
        },
        {
          "key": "resemblance",
          "label": "Resemblance",
          "type": "float_slider",
          "default": 0.6,
          "min": 0,
          "max": 3,
          "step": 0.1,
          "decimals": 1
        },
        {
          "key": "dynamic",
          "label": "HDR detail",
          "type": "float_slider",
          "default": 6,
          "min": 1,
          "max": 50,
          "step": 1,
          "decimals": 0
        },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "default": 18,
          "min": 1,
          "max": 100,
          "help": "The number of denoising steps used to upscale the image."
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {"type": "seed"}
      ],
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "pricing": {
        "per_second": 0.00115,
        "seconds": "poll.metrics.predict_time",
        "note": "Replicate bills $0.00115 per second on an A100 (40GB)."
      },
      "upscale": {"factor": 2}
    },
    {
      "id": "p-image-upscale",
      "label": "P-Image Upscale",
      "group": "Upscale & Restore",
      "description": "Pruna P-Image Upscale enlarges your image to the megapixels you pick, up to 128, and can enhance detail or realism. Pruna doesn't say exactly how it rounds, so Wando can't show the result's size before the run. No prompt needed.",
      "prompt": {
        "mode": "none"
      },
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/prunaai/p-image-upscale/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "image": "{{image}}",
            "upscale_mode": "target",
            "target": "{{fields.target}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "enhance_details": "{{fields.enhance_details}}",
            "enhance_realism": "{{fields.enhance_realism}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "target",
          "label": "Output Size",
          "type": "combo",
          "default": 4,
          "options": [
            {"label": "4 MP", "value": 4},
            {"label": "8 MP", "value": 8},
            {"label": "16 MP", "value": 16},
            {"label": "32 MP", "value": 32},
            {"label": "64 MP", "value": 64},
            {"label": "128 MP", "value": 128}
          ]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {"key": "output_quality", "label": "Quality", "type": "int_slider", "default": 95, "min": 0, "max": 100},
        {"key": "enhance_details", "label": "Enhance detail", "type": "bool", "default": false},
        {"key": "enhance_realism", "label": "Enhance realism", "type": "bool", "default": false}
      ],
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "pricing": {
        "per_image": 0.005,
        "by_field": {
          "target": {"4 MP": 0.005, "8 MP": 0.01, "16 MP": 0.02, "32 MP": 0.04, "64 MP": 0.06, "128 MP": 0.12}
        },
        "note": "Replicate charges by target resolution: $0.005-$0.12 per output image."
      }
    },
    {
      "id": "background-remover",
      "label": "Background Remover",
      "group": "Image Tools",
      "description": "Remove or keep the foreground/background, optionally with a blur or solid background.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/851-labs/background-remover/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "image": "{{image}}",
            "format": "{{fields.format}}",
            "reverse": "{{fields.reverse}}",
            "threshold": "{{fields.threshold}}",
            "background_type": "{{fields.background_type}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {"key": "format", "label": "Format", "type": "combo", "default": "png", "options": ["png", "jpg"]},
        {"key": "reverse", "label": "Keep background instead", "type": "bool", "default": false},
        {
          "key": "threshold",
          "label": "Hard edge threshold",
          "type": "float_slider",
          "default": 0,
          "min": 0,
          "max": 1,
          "step": 0.01,
          "decimals": 2,
          "help": "0 keeps soft alpha edges. Higher values make the cutout more binary."
        },
        {
          "key": "background_type",
          "label": "Background",
          "type": "combo",
          "default": "rgba",
          "options": [
            {"label": "Transparent", "value": "rgba"},
            {"label": "Mask", "value": "map"},
            {"label": "Green", "value": "green"},
            {"label": "White", "value": "white"},
            {"label": "Blur", "value": "blur"},
            {"label": "Overlay", "value": "overlay"}
          ]
        }
      ],
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "pricing": {
        "per_second": 0.000225,
        "seconds": "poll.metrics.predict_time",
        "note": "Replicate bills $0.000225 per second on a T4."
      },
      "prompt": {"mode": "none"}
    },
    {
      "id": "sticker-maker",
      "label": "Sticker Maker",
      "group": "Image Tools",
      "description": "Stickers with transparent backgrounds, which PNG and WEBP keep and JPG loses. Returns up to 10 images per run.",
      "prompt": {"mode": "required", "placeholder": "Describe the sticker..."},
      "fields": [
        {
          "key": "size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "1:1 (1152 x 1152)",
          "options": [
            {"label": "1:1 (1152 x 1152)", "value": {"width": 1152, "height": 1152}},
            {"label": "4:3 (1152 x 864)", "value": {"width": 1152, "height": 864}},
            {"label": "3:4 (864 x 1152)", "value": {"width": 864, "height": 1152}},
            {"label": "16:9 (1344 x 768)", "value": {"width": 1344, "height": 768}},
            {"label": "9:16 (768 x 1344)", "value": {"width": 768, "height": 1344}}
          ]
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["webp", "jpg", "png"]
        },
        {"key": "number_of_images", "label": "Images", "type": "int_slider", "min": 1, "max": 10, "default": 1},
        {
          "key": "steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 1,
          "max": 50,
          "default": 17,
          "help": "How many passes refine each sticker. More is slower and can add detail."
        },
        {
          "key": "output_quality",
          "label": "Quality",
          "type": "int_slider",
          "min": 0,
          "max": 100,
          "default": 90,
          "help": "For JPG and WEBP. PNG ignores it."
        },
        {"key": "negative_prompt", "label": "Negative prompt", "type": "textarea"},
        {"type": "seed"}
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "version": "4acb778eb059772225ec213948f0660867b2e03f277448f18cf1800b96a65a1a",
          "input": {
            "prompt": "{{prompt}}",
            "negative_prompt": "{{fields.negative_prompt}}",
            "width": "{{fields.size.width}}",
            "height": "{{fields.size.height}}",
            "steps": "{{fields.steps}}",
            "number_of_images": "{{fields.number_of_images}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error"
      },
      "result": {"images": "output"},
      "pricing": {
        "per_second": 0.000975,
        "seconds": "poll.metrics.predict_time",
        "note": "Billed by GPU time on an L40S. Replicate lists a typical run at about $0.0044. More images take longer.",
        "count_field": "number_of_images"
      }
    },
    {
      "id": "replicate-remove-bg",
      "label": "Remove Background",
      "group": "Image Tools",
      "description": "A fast alternative background remover that returns a transparent PNG. No prompt needed.",
      "prompt": {"mode": "none"},
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/lucataco/remove-bg/predictions",
        "headers": {"Prefer": "wait"},
        "body": {"input": {"image": "{{image}}"}}
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "pricing": {
        "per_second": 0.000225,
        "seconds": "poll.metrics.predict_time",
        "note": "Replicate bills $0.000225 per second on a T4."
      }
    },
    {
      "id": "birefnet",
      "label": "BiRefNet",
      "group": "Image Tools",
      "description": "BiRefNet segments the foreground and returns a transparent result. No prompt needed.",
      "prompt": {"mode": "none"},
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/men1scus/birefnet/predictions",
        "headers": {"Prefer": "wait"},
        "body": {"input": {"image": "{{image}}"}}
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "pricing": {
        "per_second": 0.0014,
        "seconds": "poll.metrics.predict_time",
        "note": "Replicate bills $0.0014 per second on an A100 (80GB)."
      }
    },
    {
      "id": "sana",
      "group": "More",
      "label": "Sana",
      "description": "NVIDIA Sana, a fast text-to-image model.",
      "prompt": {"mode": "required", "placeholder": "Describe the image..."},
      "fields": [
        {
          "key": "size",
          "label": "Size",
          "type": "aspect_combo",
          "default": "1:1 (1024 x 1024)",
          "options": [
            {"label": "1:1 (1024 x 1024)", "value": {"width": 1024, "height": 1024}},
            {"label": "4:3 (1152 x 864)", "value": {"width": 1152, "height": 864}},
            {"label": "3:4 (864 x 1152)", "value": {"width": 864, "height": 1152}},
            {"label": "3:2 (1248 x 832)", "value": {"width": 1248, "height": 832}},
            {"label": "2:3 (832 x 1248)", "value": {"width": 832, "height": 1248}},
            {"label": "16:9 (1536 x 864)", "value": {"width": 1536, "height": 864}},
            {"label": "9:16 (864 x 1536)", "value": {"width": 864, "height": 1536}}
          ]
        },
        {
          "key": "model_variant",
          "label": "Model",
          "type": "combo",
          "default": "1600M-1024px",
          "options": ["1600M-1024px", "1600M-1024px-multilang", "1600M-512px", "600M-1024px-multilang", "600M-512px-multilang"],
          "help": "1600M is slower but better than 600M. Use a 1024px model for these sizes; multilang ones also understand Chinese."
        },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "min": 1,
          "max": 50,
          "default": 18,
          "help": "How many passes refine the image. More is slower and can add detail."
        },
        {
          "key": "guidance_scale",
          "label": "Guidance",
          "type": "float_slider",
          "min": 1,
          "max": 20,
          "default": 5,
          "help": "How closely the image follows your prompt. Higher follows it more strictly but can look overdone."
        },
        {
          "key": "pag_guidance_scale",
          "label": "PAG Guidance",
          "type": "float_slider",
          "min": 1,
          "max": 20,
          "default": 2,
          "help": "Perturbed-attention guidance: firms up shapes and fine detail. Raise it a little for crisper results; too high looks overprocessed."
        },
        {"key": "negative_prompt", "label": "Negative prompt", "type": "textarea"},
        {"type": "seed"}
      ],
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "version": "c6b5d2b7459910fec94432e9e1203c3cdce92d6db20f714f1355747990b52fa6",
          "input": {
            "prompt": "{{prompt}}",
            "negative_prompt": "{{fields.negative_prompt}}",
            "width": "{{fields.size.width}}",
            "height": "{{fields.size.height}}",
            "model_variant": "{{fields.model_variant}}",
            "num_inference_steps": "{{fields.num_inference_steps}}",
            "guidance_scale": "{{fields.guidance_scale}}",
            "pag_guidance_scale": "{{fields.pag_guidance_scale}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error"
      },
      "result": {"images": "output"},
      "pricing": {
        "per_second": 0.001525,
        "seconds": "poll.metrics.predict_time",
        "note": "Billed by GPU time on an H100. Replicate lists a typical run at about $0.26."
      }
    },
    {
      "id": "grok-imagine",
      "group": "More",
      "label": "Grok Imagine",
      "description": "xAI image generation and editing. Switch between the fast, quality and 2.0 endpoints.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/xai/grok-imagine-image/predictions",
        "headers": {"Prefer": "wait"},
        "body": {"input": {"prompt": "{{prompt}}", "image": "{{image}}", "aspect_ratio": "{{fields.aspect_ratio}}"}}
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "2:1", "1:2", "19.5:9", "9:19.5", "20:9", "9:20", "auto"]
        },
        {"key": "resolution", "label": "Resolution", "type": "combo", "default": "2k", "options": ["1k", "2k"]},
        {"key": "quality", "label": "Quality", "type": "combo", "default": "medium", "options": ["low", "medium"]}
      ],
      "references": {"mode": "optional", "max": 1, "send_as": "upload"},
      "pricing": {"per_image": 0.02, "note": "Replicate lists $0.02 per image for the standard endpoint."},
      "variants": {
        "label": "Version",
        "default": "standard",
        "options": [
          {
            "id": "standard",
            "label": "Standard",
            "fields": ["aspect_ratio"],
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/xai/grok-imagine-image/predictions",
              "headers": {"Prefer": "wait"},
              "body": {
                "input": {"prompt": "{{prompt}}", "image": "{{image}}", "aspect_ratio": "{{fields.aspect_ratio}}"}
              }
            },
            "pricing": {"per_image": 0.02, "note": "Replicate lists $0.02 per output image."},
            "description": "Standard Grok Imagine image generation."
          },
          {
            "id": "quality",
            "label": "Quality",
            "fields": ["aspect_ratio", "resolution"],
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/xai/grok-imagine-image-quality/predictions",
              "headers": {"Prefer": "wait"},
              "body": {
                "input": {
                  "prompt": "{{prompt}}",
                  "image": "{{image}}",
                  "aspect_ratio": "{{fields.aspect_ratio}}",
                  "resolution": "{{fields.resolution}}"
                }
              }
            },
            "pricing": {
              "by_field": {"resolution": {"1k": 0.05, "2k": 0.07}},
              "per_input_image": 0.01,
              "per_input_megapixel": 0.01,
              "note": "Replicate's price: $0.05 at 1K or $0.07 at 2K. Its page charges references both per image and per megapixel, so the estimate adds $0.01 for each."
            },
            "description": "Higher resolution output. Choose 1K or 2K."
          },
          {
            "id": "v2",
            "label": "2.0",
            "fields": ["aspect_ratio", "resolution", "quality"],
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/xai/grok-imagine-image-2/predictions",
              "headers": {"Prefer": "wait"},
              "body": {
                "input": {
                  "prompt": "{{prompt}}",
                  "image": "{{image}}",
                  "aspect_ratio": "{{fields.aspect_ratio}}",
                  "resolution": "{{fields.resolution}}",
                  "quality": "{{fields.quality}}"
                }
              }
            },
            "pricing": {
              "per_image": 0.04,
              "per_input_image": 0.01,
              "note": "Replicate's price: $0.04 per image, plus $0.01 per reference image."
            },
            "description": "Uses the Grok Imagine 2.0 endpoint."
          }
        ]
      }
    },
    {
      "id": "z-image-turbo",
      "group": "More",
      "label": "Z-Image Turbo",
      "description": "Fast text-to-image generation. This Replicate endpoint supports one output per run; width and height determine its resolution.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/prunaai/z-image-turbo/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "width": "{{fields.width}}",
            "height": "{{fields.height}}",
            "num_inference_steps": "{{fields.num_inference_steps}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "guidance_scale": 0,
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {"key": "width", "label": "Width", "type": "int_slider", "default": 1024, "min": 64, "max": 2048, "step": 16},
        {"key": "height", "label": "Height", "type": "int_slider", "default": 1024, "min": 64, "max": 2048, "step": 16},
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "default": 8,
          "min": 1,
          "max": 50,
          "help": "The number of inference steps used to create the image."
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": ["png", "jpg", "webp"]
        },
        {"key": "output_quality", "label": "Quality", "type": "int_slider", "default": 80, "min": 0, "max": 100},
        {"type": "seed"}
      ],
      "pricing": {
        "per_megapixel": 0.02,
        "note": "Replicate's rate per megapixel rises with the size, from $0.0025 at 0.5 MP to $0.02 at 4 MP. The estimate uses $0.02."
      }
    },
    {
      "id": "sdxl-lightning",
      "group": "More",
      "label": "SDXL Lightning",
      "description": "ByteDance SDXL-Lightning generates images in a few denoising steps at user-selected dimensions.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/bytedance/sdxl-lightning-4step/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "width": "{{fields.width}}",
            "height": "{{fields.height}}",
            "num_outputs": "{{fields.num_outputs}}",
            "num_inference_steps": "{{fields.num_inference_steps}}",
            "guidance_scale": "{{fields.guidance_scale}}",
            "scheduler": "{{fields.scheduler}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {"key": "width", "label": "Width", "type": "int", "default": 1024, "min": 256, "max": 1280, "step": 64},
        {"key": "height", "label": "Height", "type": "int", "default": 1024, "min": 256, "max": 1280, "step": 64},
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "default": 4,
          "min": 1,
          "max": 10,
          "help": "4 steps are recommended for this model."
        },
        {
          "key": "guidance_scale",
          "label": "Guidance",
          "type": "float_slider",
          "default": 0,
          "min": 0,
          "max": 50,
          "step": 1,
          "decimals": 0,
          "help": "Classifier free guidance controls how closely the image follows the prompt."
        },
        {
          "key": "scheduler",
          "label": "Scheduler",
          "type": "combo",
          "default": "K_EULER",
          "options": [
            "DDIM",
            {"label": "DPM Solver Multistep", "value": "DPMSolverMultistep"},
            {"label": "Heun", "value": "HeunDiscrete"},
            {"label": "Karras DPM", "value": "KarrasDPM"},
            {"label": "Euler Ancestral", "value": "K_EULER_ANCESTRAL"},
            {"label": "Euler", "value": "K_EULER"},
            "PNDM",
            {"label": "DPM++ 2M SDE", "value": "DPM++2MSDE"}
          ]
        },
        {"key": "num_outputs", "label": "Images", "type": "int_slider", "default": 1, "min": 1, "max": 4},
        {"type": "seed"}
      ],
      "pricing": {
        "per_second": 0.0014,
        "seconds": "poll.metrics.predict_time",
        "note": "Replicate bills $0.0014 per second on an A100 (80GB).",
        "count_field": "num_outputs"
      }
    },
    {
      "id": "controlnet-scribble",
      "group": "More",
      "label": "ControlNet Scribble",
      "description": "Turns a sketch or scribble into a finished image. Add one control image and describe the result.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/jagilley/controlnet-scribble/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image": "{{image}}",
            "a_prompt": "{{fields.a_prompt}}",
            "n_prompt": "{{fields.n_prompt}}",
            "scale": "{{fields.scale}}",
            "ddim_steps": "{{fields.ddim_steps}}",
            "image_resolution": "{{fields.image_resolution}}",
            "num_samples": "{{fields.num_samples}}",
            "eta": 0,
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "a_prompt",
          "label": "Quality prompt",
          "type": "textarea",
          "default": "best quality, extremely detailed"
        },
        {
          "key": "n_prompt",
          "label": "Avoid",
          "type": "textarea",
          "default": "longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality"
        },
        {
          "key": "scale",
          "label": "Guidance",
          "type": "float_slider",
          "default": 9,
          "min": 0.1,
          "max": 30,
          "step": 0.1,
          "decimals": 1
        },
        {
          "key": "ddim_steps",
          "label": "Steps",
          "type": "int_slider",
          "default": 20,
          "min": 1,
          "max": 100,
          "help": "The number of steps in the DDIM sampling process."
        },
        {
          "key": "image_resolution",
          "label": "Resolution",
          "type": "combo",
          "default": "512",
          "options": ["256", "512", "768"]
        },
        {"key": "num_samples", "label": "Images", "type": "combo", "default": "1", "options": ["1", "4"]},
        {"type": "seed"}
      ],
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "pricing": {
        "per_second": 0.0014,
        "seconds": "poll.metrics.predict_time",
        "note": "Replicate bills $0.0014 per second on an A100 (80GB).",
        "count_field": "num_samples"
      }
    },
    {
      "id": "luma-photon",
      "group": "More",
      "label": "Luma Photon",
      "description": "Luma Photon creates images from text. Add an image, a style or a character to guide the result.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/luma/photon/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "image_reference_url": "{{image}}",
            "image_reference_weight": "{{fields.image_reference_weight}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "seed": "{{fields.seed}}",
            "style_reference_url": "{{inputs.style[0]}}",
            "style_reference_weight": "{{fields.style_reference_weight}}",
            "character_reference_url": "{{inputs.character[0]}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "16:9",
          "options": ["1:1", "3:4", "4:3", "9:16", "16:9", "9:21", "21:9"]
        },
        {
          "key": "image_reference_weight",
          "label": "Reference Strength",
          "type": "float_slider",
          "default": 0.85,
          "min": 0,
          "max": 1,
          "step": 0.05,
          "decimals": 2
        },
        {
          "key": "style_reference_weight",
          "label": "Style Strength",
          "type": "float_slider",
          "default": 0.85,
          "min": 0,
          "max": 1,
          "step": 0.05,
          "decimals": 2
        },
        {"type": "seed"}
      ],
      "references": {"mode": "optional", "max": 1, "send_as": "upload", "role": "guide"},
      "pricing": {
        "per_image": 0.03,
        "note": "Replicate lists $0.03 per output image."
      },
      "image_inputs": [
        {"key": "style", "label": "Style Reference", "max": 1, "help": "An image whose style the result follows."},
        {
          "key": "character",
          "label": "Character Reference",
          "max": 1,
          "help": "A person to keep recognizable in the result."
        }
      ]
    },
    {
      "id": "minimax-image-01",
      "group": "More",
      "label": "MiniMax Image-01",
      "description": "MiniMax Image-01 generates up to nine variations and can keep a subject reference consistent.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/minimax/image-01/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "subject_reference": "{{image}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "number_of_images": "{{fields.number_of_images}}",
            "prompt_optimizer": "{{fields.prompt_optimizer}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            "1:1",
            "16:9",
            "4:3",
            "3:2",
            "2:3",
            "3:4",
            "9:16",
            "21:9"
          ]
        },
        {
          "key": "number_of_images",
          "label": "Images",
          "type": "int_slider",
          "default": 1,
          "min": 1,
          "max": 9
        },
        {
          "key": "prompt_optimizer",
          "label": "Improve prompt",
          "type": "bool",
          "default": true
        }
      ],
      "references": {"mode": "optional", "max": 1, "send_as": "upload", "role": "guide"},
      "pricing": {
        "per_image": 0.01,
        "count_field": "number_of_images",
        "note": "Replicate lists $0.01 per output image."
      }
    },
    {
      "id": "krea-3",
      "label": "Krea 3",
      "group": "More",
      "description": "Krea 3 edits images from a plain instruction and also generates from text. Add up to eight images to edit or combine them.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/krea/krea-3/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "images": "{{images}}",
            "thinking_mode": "{{fields.thinking_mode}}",
            "resolution": "{{fields.resolution}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "regional_edit": "{{fields.regional_edit}}",
            "negative_prompt": "{{fields.negative_prompt}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            {"label": "Auto", "value": "auto"},
            "1:1",
            "4:5",
            "3:4",
            "2:3",
            "9:16",
            "5:4",
            "4:3",
            "3:2",
            "16:9",
            "21:9"
          ]
        },
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "default": "1k",
          "options": [{"label": "1K", "value": "1k"}, {"label": "2K", "value": "2k"}]
        },
        {
          "key": "thinking_mode",
          "label": "Thinking",
          "type": "combo",
          "default": "fast",
          "options": [{"label": "Fast", "value": "fast"}, {"label": "High", "value": "high"}],
          "help": "High plans complex edits more carefully, but is slower and costs more. Fast is the default."
        },
        {
          "key": "regional_edit",
          "label": "Regional Edit",
          "type": "bool",
          "default": false,
          "help": "Changes only what needs to change and keeps the rest. Experimental, slower and sometimes lower quality."
        },
        {"key": "negative_prompt", "label": "Avoid", "type": "textarea", "default": ""},
        {"type": "seed", "max": 2147483647}
      ],
      "references": {"mode": "optional", "max": 8, "send_as": "upload"},
      "without_references": {"fields": ["aspect_ratio", "resolution", "thinking_mode", "negative_prompt", "seed"]},
      "sizes": [
        {
          "aspect": "1:1",
          "tier": "1K",
          "width": 1024,
          "height": 1024,
          "values": {"aspect_ratio": "1:1", "resolution": "1k"}
        },
        {
          "aspect": "1:1",
          "tier": "2K",
          "width": 2048,
          "height": 2048,
          "values": {"aspect_ratio": "1:1", "resolution": "2k"}
        },
        {
          "aspect": "4:5",
          "tier": "1K",
          "width": 912,
          "height": 1152,
          "values": {"aspect_ratio": "4:5", "resolution": "1k"}
        },
        {
          "aspect": "4:5",
          "tier": "2K",
          "width": 1824,
          "height": 2288,
          "values": {"aspect_ratio": "4:5", "resolution": "2k"}
        },
        {
          "aspect": "3:4",
          "tier": "1K",
          "width": 880,
          "height": 1184,
          "values": {"aspect_ratio": "3:4", "resolution": "1k"}
        },
        {
          "aspect": "3:4",
          "tier": "2K",
          "width": 1776,
          "height": 2368,
          "values": {"aspect_ratio": "3:4", "resolution": "2k"}
        },
        {
          "aspect": "2:3",
          "tier": "1K",
          "width": 832,
          "height": 1248,
          "values": {"aspect_ratio": "2:3", "resolution": "1k"}
        },
        {
          "aspect": "2:3",
          "tier": "2K",
          "width": 1680,
          "height": 2512,
          "values": {"aspect_ratio": "2:3", "resolution": "2k"}
        },
        {
          "aspect": "9:16",
          "tier": "1K",
          "width": 768,
          "height": 1360,
          "values": {"aspect_ratio": "9:16", "resolution": "1k"}
        },
        {
          "aspect": "9:16",
          "tier": "2K",
          "width": 1536,
          "height": 2736,
          "values": {"aspect_ratio": "9:16", "resolution": "2k"}
        },
        {
          "aspect": "5:4",
          "tier": "1K",
          "width": 1152,
          "height": 912,
          "values": {"aspect_ratio": "5:4", "resolution": "1k"}
        },
        {
          "aspect": "5:4",
          "tier": "2K",
          "width": 2288,
          "height": 1824,
          "values": {"aspect_ratio": "5:4", "resolution": "2k"}
        },
        {
          "aspect": "4:3",
          "tier": "1K",
          "width": 1184,
          "height": 880,
          "values": {"aspect_ratio": "4:3", "resolution": "1k"}
        },
        {
          "aspect": "4:3",
          "tier": "2K",
          "width": 2368,
          "height": 1776,
          "values": {"aspect_ratio": "4:3", "resolution": "2k"}
        },
        {
          "aspect": "3:2",
          "tier": "1K",
          "width": 1248,
          "height": 832,
          "values": {"aspect_ratio": "3:2", "resolution": "1k"}
        },
        {
          "aspect": "3:2",
          "tier": "2K",
          "width": 2512,
          "height": 1680,
          "values": {"aspect_ratio": "3:2", "resolution": "2k"}
        },
        {
          "aspect": "16:9",
          "tier": "1K",
          "width": 1360,
          "height": 768,
          "values": {"aspect_ratio": "16:9", "resolution": "1k"}
        },
        {
          "aspect": "16:9",
          "tier": "2K",
          "width": 2736,
          "height": 1536,
          "values": {"aspect_ratio": "16:9", "resolution": "2k"}
        },
        {
          "aspect": "21:9",
          "tier": "1K",
          "width": 1568,
          "height": 672,
          "values": {"aspect_ratio": "21:9", "resolution": "1k"}
        },
        {
          "aspect": "21:9",
          "tier": "2K",
          "width": 3136,
          "height": 1344,
          "values": {"aspect_ratio": "21:9", "resolution": "2k"}
        }
      ],
      "pricing": {
        "per_image": 0.08,
        "by_field": {
          "resolution": {
            "1k": {"thinking_mode": {"fast": 0.03, "high": 0.05}},
            "2k": {"thinking_mode": {"fast": 0.06, "high": 0.08}}
          }
        },
        "per_input_megapixel": 0.02,
        "note": "Replicate lists $0.03 at 1K or $0.06 at 2K per image with Fast thinking, $0.05 or $0.08 with High, plus $0.02 per megapixel of input images."
      }
    },
    {
      "id": "riverflow-2-5",
      "label": "Riverflow 2.5",
      "group": "More",
      "description": "Sourceful's Riverflow 2.5 plans each image with a reasoning model and judges candidates before it answers. Add images to edit them.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/sourceful/riverflow-v2.5-pro/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "instruction": "{{prompt}}",
            "init_images": "{{images}}",
            "resolution": "{{fields.resolution}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "background": "{{fields.background}}",
            "background_color": "{{fields.background_color}}",
            "thinking_level": "{{fields.thinking_level}}",
            "enhance_prompt": "{{fields.enhance_prompt}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "auto",
          "options": [
            {"label": "Auto", "value": "auto"},
            "21:9",
            "16:9",
            "3:2",
            "4:3",
            "5:4",
            "1:1",
            "4:5",
            "3:4",
            "2:3",
            "9:16"
          ]
        },
        {"key": "resolution", "label": "Resolution", "type": "combo", "default": "1K", "options": ["1K", "2K", "4K"]},
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": [
            {"label": "WebP", "value": "webp"},
            {"label": "PNG", "value": "png"},
            {"label": "JPG", "value": "jpg"}
          ]
        },
        {
          "key": "thinking_level",
          "label": "Thinking",
          "type": "combo",
          "default": "medium",
          "options": [
            {"label": "Low", "value": "low"},
            {"label": "Medium", "value": "medium"},
            {"label": "High", "value": "high"},
            {"label": "Extra High", "value": "xhigh"}
          ],
          "help": "Higher levels make more editing passes with a stricter judge, and are slower. Medium is the default."
        },
        {
          "key": "thinking_level_fast",
          "label": "Thinking",
          "type": "combo",
          "default": "medium",
          "options": [
            {"label": "Low", "value": "low"},
            {"label": "Medium", "value": "medium"},
            {"label": "High", "value": "high"}
          ],
          "help": "Higher levels make more editing passes with a stricter judge, and are slower. Medium is the default."
        },
        {
          "key": "background",
          "label": "Background",
          "type": "combo",
          "default": "original",
          "options": [
            {"label": "Original", "value": "original"},
            {"label": "Transparent", "value": "transparent"},
            {"label": "Solid Color", "value": "solid"}
          ]
        },
        {
          "key": "background_color",
          "label": "Background Color",
          "type": "color",
          "default": "#FFFFFF",
          "item": "{{color.hex}}",
          "help": "Used when Background is Solid Color."
        },
        {"key": "enhance_prompt", "label": "Improve Prompt", "type": "bool", "default": false}
      ],
      "references": {"mode": "optional", "max": 10, "send_as": "upload"},
      "pricing": {
        "amount": "poll.metrics.token_output_count",
        "amount_multiplier": 1e-05,
        "per_image": 0.497,
        "by_field": {"thinking_level": {"low": 0.235, "medium": 0.236, "high": 0.245, "xhigh": 0.497}},
        "note": "Replicate bills $0.01 per 1,000 output tokens, and Wando records each run's real cost. The estimate uses Sourceful's 1K prices; 2K, 4K and reference images cost more."
      },
      "variants": {
        "label": "Version",
        "default": "pro",
        "options": [
          {
            "id": "pro",
            "label": "Pro",
            "description": "The most capable version, with up to 10 images and Extra High thinking.",
            "fields": [
              "resolution",
              "aspect_ratio",
              "output_format",
              "background",
              "background_color",
              "enhance_prompt",
              "thinking_level"
            ]
          },
          {
            "id": "fast",
            "label": "Fast",
            "description": "Faster and cheaper, with up to four images.",
            "fields": [
              "resolution",
              "aspect_ratio",
              "output_format",
              "background",
              "background_color",
              "enhance_prompt",
              "thinking_level_fast"
            ],
            "request": {
              "method": "POST",
              "url": "https://api.replicate.com/v1/models/sourceful/riverflow-v2.5-fast/predictions",
              "headers": {"Prefer": "wait"},
              "body": {
                "input": {
                  "instruction": "{{prompt}}",
                  "init_images": "{{images}}",
                  "resolution": "{{fields.resolution}}",
                  "aspect_ratio": "{{fields.aspect_ratio}}",
                  "output_format": "{{fields.output_format}}",
                  "background": "{{fields.background}}",
                  "background_color": "{{fields.background_color}}",
                  "thinking_level": "{{fields.thinking_level_fast}}",
                  "enhance_prompt": "{{fields.enhance_prompt}}"
                }
              }
            },
            "references": {"max": 4},
            "pricing": {
              "amount": "poll.metrics.token_output_count",
              "amount_multiplier": 1e-05,
              "per_image": 0.025,
              "by_field": {"thinking_level_fast": {"low": 0.021, "medium": 0.022, "high": 0.025}},
              "note": "Replicate bills $0.01 per 1,000 output tokens, and Wando records each run's real cost. The estimate uses Sourceful's 1K prices; 2K, 4K and reference images cost more."
            }
          }
        ]
      }
    },
    {
      "id": "p-image",
      "label": "P-Image",
      "group": "Pruna",
      "description": "Pruna P-Image makes fast, affordable text-to-image results with prompt upsampling.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/prunaai/p-image/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "prompt_upsampling": "{{fields.prompt_upsampling}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "16:9",
          "options": [
            "1:1",
            "16:9",
            "9:16",
            "4:3",
            "3:4",
            "3:2",
            "2:3"
          ]
        },
        {
          "key": "prompt_upsampling",
          "label": "Improve prompt",
          "type": "bool",
          "default": false,
          "help": "Uses an LLM to improve the prompt before generation."
        },
        {
          "type": "seed"
        }
      ],
      "pricing": {
        "per_image": 0.005,
        "note": "Replicate lists $0.005 per output image."
      }
    },
    {
      "id": "p-image-edit",
      "label": "P-Image Edit",
      "group": "Pruna",
      "description": "Pruna P-Image Edit generates or edits images quickly, with optional references and task-specific modes.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/prunaai/p-image-edit/predictions",
        "headers": {"Prefer": "wait"},
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "images": "{{images}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "replicate_weights": "{{fields.replicate_weights}}",
            "turbo": "{{fields.turbo}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": ["succeeded"],
        "failed": ["failed", "canceled", "aborted"],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {"images": "output"},
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {"label": "Match input", "value": "match_input_image"},
            "1:1",
            "16:9",
            "9:16",
            "4:3",
            "3:4",
            "3:2",
            "2:3"
          ]
        },
        {
          "key": "replicate_weights",
          "label": "Task",
          "type": "combo",
          "default": "default",
          "options": [
            {"label": "Default", "value": "default"},
            {"label": "Multiple angles", "value": "multiple_angles"},
            {"label": "Relight", "value": "relight"},
            {"label": "Light restoration", "value": "light_restoration"},
            {"label": "White to scene", "value": "white_to_scene"},
            {"label": "Fusion", "value": "fusion"},
            {"label": "Add characters", "value": "add_characters"},
            {"label": "Next scene", "value": "next_scene"},
            {"label": "Style consistency", "value": "style_consistency"},
            {"label": "Subject consistency", "value": "subject_consistency"},
            {"label": "Scene consistency", "value": "scene_consistency"},
            {"label": "To anime", "value": "to_anime"},
            {"label": "To 3D chibi", "value": "to_3dchibi"},
            {"label": "To caricature", "value": "to_caricature"},
            {"label": "Photous", "value": "photous"},
            {"label": "Extract texture", "value": "extract_texture"},
            {"label": "Apply texture", "value": "apply_texture"},
            {"label": "Upscale", "value": "upscale"},
            {"label": "Anything to real", "value": "anything_to_real"},
            {"label": "White film to rendering", "value": "white_film_to_rendering"}
          ]
        },
        {
          "key": "turbo",
          "label": "Turbo",
          "type": "bool",
          "default": true,
          "help": "Turn this off for complex edits that need more consistency."
        },
        {"type": "seed"}
      ],
      "references": {"mode": "optional", "max": 14, "send_as": "upload"},
      "pricing": {"per_image": 0.01, "note": "Replicate lists $0.01 per output image."}
    },
    {
      "id": "flux-kontext-fast",
      "label": "FLUX Kontext Fast",
      "group": "Pruna",
      "description": "Pruna FLUX Kontext Fast edits one reference image with speed and consistency presets.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/prunaai/flux-kontext-fast/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "img_cond_path": "{{image}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "speed_mode": "{{fields.speed_mode}}",
            "guidance": "{{fields.guidance}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "match_input_image",
          "options": [
            {
              "label": "Match input",
              "value": "match_input_image"
            },
            "1:1",
            "16:9",
            "21:9",
            "3:2",
            "2:3",
            "4:5",
            "5:4",
            "3:4",
            "4:3",
            "9:16",
            "9:21"
          ]
        },
        {
          "key": "speed_mode",
          "label": "Speed",
          "type": "combo",
          "default": "Extra Juiced 🔥 (more speed)",
          "options": [
            "Lightly Juiced 🍊 (more consistent)",
            "Juiced 🔥 (default)",
            "Extra Juiced 🔥 (more speed)",
            "Blink of an eye 👁️",
            "Real Time"
          ]
        },
        {
          "key": "guidance",
          "label": "Guidance",
          "type": "float_slider",
          "default": 3.5,
          "min": 0,
          "max": 10,
          "step": 0.1,
          "decimals": 1,
          "help": "Higher values make the image follow the prompt more closely."
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": [
            "png",
            "jpg",
            "webp"
          ]
        },
        {
          "key": "output_quality",
          "label": "Quality",
          "type": "int_slider",
          "default": 95,
          "min": 1,
          "max": 100
        },
        {
          "type": "seed"
        }
      ],
      "references": {"mode": "required", "max": 1, "send_as": "upload"},
      "pricing": {
        "per_image": 0.01,
        "note": "Replicate lists $0.01 per output image."
      }
    },
    {
      "id": "flux-fast",
      "label": "FLUX Fast",
      "group": "Pruna",
      "description": "Pruna FLUX Fast is a low-cost, highly optimized FLUX.1-dev image generator.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/prunaai/flux-fast/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "speed_mode": "{{fields.speed_mode}}",
            "aspect_ratio": "{{fields.aspect_ratio}}",
            "output_format": "{{fields.output_format}}",
            "seed": "{{fields.seed}}",
            "guidance": "{{fields.guidance}}",
            "image_size": "{{fields.image_size}}",
            "output_quality": "{{fields.output_quality}}",
            "num_inference_steps": "{{fields.num_inference_steps}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "speed_mode",
          "label": "Speed",
          "type": "combo",
          "default": "Extra Juiced 🔥 (more speed)",
          "options": [
            "Lightly Juiced 🍊 (more consistent)",
            "Juiced 🔥 (default)",
            "Extra Juiced 🔥 (more speed)",
            "Blink of an eye 👁️"
          ]
        },
        {
          "key": "aspect_ratio",
          "label": "Aspect Ratio",
          "type": "aspect_combo",
          "default": "1:1",
          "options": [
            "1:1",
            "16:9",
            "21:9",
            "3:2",
            "2:3",
            "4:5",
            "5:4",
            "3:4",
            "4:3",
            "9:16",
            "9:21"
          ]
        },
        {
          "key": "guidance",
          "label": "Guidance",
          "type": "float_slider",
          "default": 3.5,
          "min": 0,
          "max": 10,
          "step": 0.1,
          "decimals": 1,
          "help": "Higher values make the image follow the prompt more closely."
        },
        {
          "key": "image_size",
          "label": "Base Size",
          "type": "int",
          "default": 1024,
          "min": 256,
          "max": 2048,
          "step": 64
        },
        {
          "key": "num_inference_steps",
          "label": "Steps",
          "type": "int_slider",
          "default": 28,
          "min": 1,
          "max": 50,
          "help": "The number of inference steps used to create the image."
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": [
            "png",
            "jpg",
            "webp"
          ]
        },
        {
          "key": "output_quality",
          "label": "Quality",
          "type": "int_slider",
          "default": 95,
          "min": 1,
          "max": 100
        },
        {
          "type": "seed"
        }
      ],
      "pricing": {
        "per_image": 0.005,
        "note": "Replicate lists $0.005 per output image."
      }
    },
    {
      "id": "hidream-l1-fast",
      "label": "HiDream L1 Fast",
      "group": "Pruna",
      "description": "Pruna HiDream L1 Fast provides a fast image generator with preset output sizes and speed modes.",
      "request": {
        "method": "POST",
        "url": "https://api.replicate.com/v1/models/prunaai/hidream-l1-fast/predictions",
        "headers": {
          "Prefer": "wait"
        },
        "body": {
          "input": {
            "prompt": "{{prompt}}",
            "resolution": "{{fields.resolution}}",
            "speed_mode": "{{fields.speed_mode}}",
            "output_format": "{{fields.output_format}}",
            "output_quality": "{{fields.output_quality}}",
            "negative_prompt": "{{fields.negative_prompt}}",
            "seed": "{{fields.seed}}"
          }
        }
      },
      "poll": {
        "url": "{{submit.urls.get}}",
        "status": "status",
        "done": [
          "succeeded"
        ],
        "failed": [
          "failed",
          "canceled",
          "aborted"
        ],
        "error": "error",
        "interval_seconds": 2,
        "timeout_seconds": 900
      },
      "result": {
        "images": "output"
      },
      "fields": [
        {
          "key": "resolution",
          "label": "Resolution",
          "type": "combo",
          "default": "1024 × 1024 (Square)",
          "options": [
            "1024 × 1024 (Square)",
            "768 × 1360 (Portrait)",
            "1360 × 768 (Landscape)",
            "880 × 1168 (Portrait)",
            "1168 × 880 (Landscape)",
            "1248 × 832 (Landscape)",
            "832 × 1248 (Portrait)"
          ]
        },
        {
          "key": "speed_mode",
          "label": "Speed",
          "type": "combo",
          "default": "Extra Juiced 🚀 (even more speed)",
          "options": [
            "Unsqueezed 🍋 (highest quality)",
            "Lightly Juiced 🍊 (more consistent)",
            "Juiced 🔥 (more speed)",
            "Extra Juiced 🚀 (even more speed)"
          ]
        },
        {
          "key": "negative_prompt",
          "label": "Avoid",
          "type": "textarea",
          "default": ""
        },
        {
          "key": "output_format",
          "label": "Format",
          "type": "combo",
          "default": "png",
          "options": [
            "webp",
            "jpg",
            "png"
          ]
        },
        {
          "key": "output_quality",
          "label": "Quality",
          "type": "int_slider",
          "default": 95,
          "min": 1,
          "max": 100
        },
        {
          "type": "seed"
        }
      ],
      "pricing": {
        "per_image": 0.005,
        "note": "Replicate lists $0.005 per output image."
      }
    }]
}
