---
title: "FLUX Kontext Pro Playground & API | Made"
description: "Try FLUX Kontext Pro in Made's playground or integrate it with one API key. 4 credits / image, priced before you run it."
url: https://www.made.app/playground/flux-kontext-pro
---

Image 4 credits / image

# FLUX Kontext Pro

Flux Kontext Pro is the lower-cost Kontext workflow for targeted product, portrait, and interior edits where quick iteration matters more than choosing the premium Max tier.

[View docs](https://www.made.app/developers) [Model guide](https://www.made.app/models/flux-kontext-pro)

```
// Node.js. Running this creates one paid generation.
import { randomUUID } from 'node:crypto';
const base = "https://www.made.app/api";
const headers = {
  Authorization: `Bearer ${process.env.MADE_API_KEY}`,
  'Content-Type': 'application/json',
};
const input = {
  "model": "flux_kontext_pro",
  "prompt": "Change only the background to a seaside boardwalk at golden hour. Keep the woman, her coat and pose unchanged.",
  "aspect_ratio": "1:1"
};

async function api(path, body) {
  const response = await fetch(base + path, {
    method: body ? 'POST' : 'GET', headers,
    ...(body && { body: JSON.stringify(body) }),
  });
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

const { cost } = await api('/v1/cost', input);
console.log('Quoted cents:', cost.customerCostCents);
// Preserve this request ID when retrying a submission.
const requestId = randomUUID();
let job = await api('/v1/generations', {
  ...input, request_id: requestId,
  max_cost_cents: cost.customerCostCents,
});
console.log('Request:', job.id);
while (!['succeeded', 'failed', 'canceled'].includes(job.status)) {
  await new Promise(resolve => setTimeout(resolve, 3000));
  job = await api('/v1/generations/' + job.id);
}
if (job.status !== 'succeeded') throw new Error(JSON.stringify(job.error || job.status));
console.log(job.result.assets);
```

## Input

Prompt

Aspect ratio

**Advanced settings**

seed guidance scale output format

[Sign in to generate](https://www.made.app/login?returnUrl=%2Fplayground%2Fflux-kontext-pro%23playground)

Uses your credits. See the exact price before generating.

## Result

Example

![street portrait moved to a seaside boardwalk with Flux Kontext Pro in Made](https://www.made.app/images/models/flux-kontext-pro/coat-boardwalk.jpg)

Flux Kontext Pro: Location change

## Price

4 credits / image. Check the exact cost for your settings before generating. Failed generations are refunded. [Full price sheet](https://www.made.app/price-sheet).

## More models by Black Forest Labs

Compare available models and their prices. The exact price depends on your settings.

| Model name | Price | Resolution | Duration |
| --- | --- | --- | --- |
| [FLUX 1.1 Pro](https://www.made.app/playground/flux-1.1-pro) | 4 credits / image | — | — |
| [FLUX.2 Klein](https://www.made.app/playground/flux-2-klein) | 1 credit / image | — | — |
| [FLUX 2 Pro](https://www.made.app/playground/flux-2-pro) | 3 credits / image | — | — |
| [FLUX.2 [pro] Outpaint](https://www.made.app/playground/flux-2-pro-outpaint) | Priced by input | — | — |
| [FLUX 3](https://www.made.app/playground/flux-3) | 17 credits / second | — | 5–20s |
| [FLUX Kontext Pro](https://www.made.app/playground/flux-kontext) | 4 credits / image | — | — |
| [FLUX Kontext Max](https://www.made.app/playground/flux-kontext-max) | 8 credits / image | — | — |
| [FLUX Kontext Object Removal](https://www.made.app/playground/flux-kontext-object-removal) | 4 credits / image | — | — |
| [FLUX Kontext Text Removal](https://www.made.app/playground/flux-kontext-text-removal) | 4 credits / image | — | — |

---

Markdown version of https://www.made.app/playground/flux-kontext-pro. Every public Made page has one at its URL plus .md (https://www.made.app/playground/flux-kontext-pro.md). Site summary for AI assistants: https://www.made.app/llms.txt
