# flux-2-dev-edit > Flux 2 Dev Edit takes an existing image and applies transformations, replacements, or style changes based on a text instruction. It preserves composition, lighting, and the overall scene while modifying only what the edit prompt specifies. Ideal for creative replacements, stylistic adjustments, object swaps, and environment changes while keeping the original artistic integrity. ## Overview - **Endpoint**: `POST https://api.muapi.ai/api/v1/flux-2-dev-edit` - **Model ID**: `flux-2-dev-edit` - **Category**: image to image - **Variant**: Edit Image [Dev] - **Family**: flux-2 - **Cost**: 0.031 credits per call (some models compute cost dynamically based on params) ## API Usage MuApi uses a **submit-then-poll** pattern: submit a job, get a `request_id`, then poll the predictions endpoint until `status` is `completed`. Optionally pass `?webhook=YOUR_URL` on the submit call to receive a POST callback when the job finishes (skip polling). **Authentication**: send your MuApi key in the `x-api-key` header. Get one at https://muapi.ai/access-keys. ### 1. Submit a job ```http POST https://api.muapi.ai/api/v1/flux-2-dev-edit Content-Type: application/json x-api-key: YOUR_API_KEY ``` **Minimum (required only):** ```json { "prompt": "", "images_list": "https://d3adwkbyhxyrtq.cloudfront.net/webassets/videomodels/flux-2-dev-edit-in.jpg" } ``` **Full example (all params):** ```json { "prompt": "", "images_list": "https://d3adwkbyhxyrtq.cloudfront.net/webassets/videomodels/flux-2-dev-edit-in.jpg", "width": 1024, "height": 1024 } ``` **Response:** ```json { "request_id": "abc123", "status": "processing" } ``` ### 2. Poll for the result ```http GET https://api.muapi.ai/api/v1/predictions/{request_id}/result x-api-key: YOUR_API_KEY ``` Possible `status` values: `queued`, `pending`, `processing`, `completed`, `failed`, `cancelled`. Poll every 2-5 seconds until terminal. When `completed`, the result URLs are in the `outputs` array. **Example response when `completed`:** ```json { "id": "abc123", "status": "completed", "outputs": [ "https://cdn.muapi.ai/.../output.png" ], "urls": { "get": "https://api.muapi.ai/api/v1/predictions/abc123/result" }, "created_at": "2026-05-08T12:34:56Z", "has_nsfw_contents": [] } ``` ### cURL ```bash # 1. Submit REQUEST_ID=$(curl -s -X POST https://api.muapi.ai/api/v1/flux-2-dev-edit \ -H "x-api-key: $MUAPI_API_KEY" \ -H "Content-Type: application/json" \ -d '{"prompt":"","images_list":"https://d3adwkbyhxyrtq.cloudfront.net/webassets/videomodels/flux-2-dev-edit-in.jpg"}' | jq -r .request_id) # 2. Poll until completed while :; do RESP=$(curl -s https://api.muapi.ai/api/v1/predictions/$REQUEST_ID/result -H "x-api-key: $MUAPI_API_KEY") STATUS=$(echo "$RESP" | jq -r .status) [ "$STATUS" = "completed" ] && echo "$RESP" | jq .outputs && break [ "$STATUS" = "failed" ] && echo "$RESP" && exit 1 sleep 3 done ``` ### Python ```python import os, time, requests API = "https://api.muapi.ai/api/v1" headers = {"x-api-key": os.environ["MUAPI_API_KEY"]} r = requests.post(f"{API}/flux-2-dev-edit", headers=headers, json={"prompt":"","images_list":"https://d3adwkbyhxyrtq.cloudfront.net/webassets/videomodels/flux-2-dev-edit-in.jpg"}) request_id = r.json()["request_id"] while True: res = requests.get(f"{API}/predictions/{request_id}/result", headers=headers).json() if res["status"] == "completed": print(res["outputs"]); break if res["status"] == "failed": raise RuntimeError(res.get("error")); time.sleep(3) ``` ## Input Schema The API accepts the following input parameters: - **`prompt`** (`string`, _required_): Text prompt describing the image, what you want the final edited image to look like. - **`images_list`** (`array`, _required_): List of URLs of input images for editing. - **`width`** (`int`, _optional_): Width of the output image. - Default: `1024` - **`height`** (`int`, _optional_): Height of the output image. - Default: `1024` ## Output Schema The polling endpoint returns the following fields: - **`id`** (`string`): The request ID. - **`status`** (`string`): One of `queued`, `pending`, `processing`, `completed`, `failed`, `cancelled`. - **`outputs`** (`array`): URLs to generated images/videos/audio. Empty until `status` is `completed`. - **`urls.get`** (`string`): Self-link to re-fetch this prediction. - **`error`** (`string` | `null`): Error message if `status` is `failed`. - **`created_at`** (`string`): ISO-8601 timestamp of when the request was created. - **`has_nsfw_contents`** (`array of boolean`): Per-output NSFW detection flags. ## Webhooks (optional) Append `?webhook=https://your-server/path` to the submit URL. When the job reaches a terminal state, MuApi will POST the same shape as the polling response to your URL — no polling needed. ## Agent Integration MuApi ships an MCP server and CLI so agents (Claude Code, Cursor, custom) can call this endpoint without writing HTTP code: ```bash # Install the CLI npm install -g muapi-cli # Authenticate once muapi auth login # Expose all MuApi models as MCP tools to your agent muapi mcp serve ``` The MCP server exposes tools that wrap submit + poll for every model, including `flux-2-dev-edit`. See `muapi --help` for category-specific shortcuts (`muapi image generate`, `muapi video from-image`, etc.). ## Related Models - [Edit Image [Dev]](https://muapi.ai/playground/flux-2-dev-edit) - [Text to Image with LoRA [Klein 4B]](https://muapi.ai/playground/flux-2-klein-4b-text-to-image-lora) - [Text to Image [Klein 9B]](https://muapi.ai/playground/flux-2-klein-9b) - [Text to Image [Klein 4B Turbo]](https://muapi.ai/playground/flux-2-klein-4b-turbo) - [Text to Image [Flex]](https://muapi.ai/playground/flux-2-flex) - [Edit Image [Pro]](https://muapi.ai/playground/flux-2-pro-edit) - [Edit Image [Klein 4B Turbo]](https://muapi.ai/playground/flux-2-klein-4b-turbo-edit) - [Text to Image [Klein 9B Turbo]](https://muapi.ai/playground/flux-2-klein-9b-turbo) - [Text to Image [Dev]](https://muapi.ai/playground/flux-2-dev) - [Edit Image [Flex]](https://muapi.ai/playground/flux-2-flex-edit) - [Text to Image [Pro]](https://muapi.ai/playground/flux-2-pro) - [Text to Image [Klein 4B]](https://muapi.ai/playground/flux-2-klein-4b) - [Edit Image [Klein 4B]](https://muapi.ai/playground/flux-2-klein-4b-edit) - [Edit Image [Klein 9B]](https://muapi.ai/playground/flux-2-klein-9b-edit) - [Edit Image [Klein 9B Turbo]](https://muapi.ai/playground/flux-2-klein-9b-turbo-edit) - [Text to Image with LoRA [Klein 9B]](https://muapi.ai/playground/flux-2-klein-9b-text-to-image-lora) - [Edit Image with LoRA [Klein 4B]](https://muapi.ai/playground/flux-2-klein-4b-edit-lora) - [Edit Image with LoRA [Klein 9B]](https://muapi.ai/playground/flux-2-klein-9b-edit-lora) ## Resources - [Playground Page](https://muapi.ai/playground/flux-2-dev-edit) - [API Reference](https://muapi.ai/playground/flux-2-dev-edit?tab=2) - [Global llms.txt](https://muapi.ai/llms.txt)