> ## Documentation Index
> Fetch the complete documentation index at: https://developer.pixelbyte.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Gen 4 Image — Edit Image

> Edit and transform images using Runway's Gen 4 Image model

Edit and transform existing images using Runway's Gen 4 Image model. Provide reference images along with a text prompt to guide the editing process.

| Property            | Value                               |
| ------------------- | ----------------------------------- |
| **Provider**        | Runway                              |
| **Model**           | Gen 4 Image                         |
| **Capability**      | Edit Image                          |
| **Category**        | Image to Image                      |
| **Base Cost**       | 50,000 micro-cents/request (\$0.05) |
| **Processing Time** | \~30 seconds                        |

## Request Body

<ParamField body="model" type="string" required placeholder="runway/gen-4-image/edit-image">
  Model slug. Use `runway/gen-4-image/edit-image` for image editing.
</ParamField>

<ParamField body="input" type="object" required>
  Input parameters for image editing.

  <Expandable title="properties" defaultOpen>
    <ParamField body="prompt" type="string" required>
      Text description for editing the image.
    </ParamField>

    <ParamField body="image_urls" type="array">
      Reference image URLs for editing. Provide up to 3 image URLs. Max items: 3.
    </ParamField>

    <ParamField body="aspect_ratio" type="string">
      Output aspect ratio. Default: `16:9`. Options: `16:9`, `9:16`, `1:1`, `2:3`, `3:2`, `4:3`, `3:4`, `4:5`, `5:4`, `21:9`.
    </ParamField>

    <ParamField body="resolution" type="string">
      Output resolution. Default: `720p`. Options: `720p`, `1080p`.
    </ParamField>

    <ParamField body="style" type="string">
      Style preset for the edited image. Options: `vivid`, `vivid-warm`, `vivid-cool`, `high-contrast`, `high-contrast-warm`, `high-contrast-cool`, `bw`, `bw-contrast`, `muted-pastel`, `dreamscape`, `nordic-minimal`, `light-anime`, `dark-anime`, `painted-anime`, `3d-cartoon`, `sketch`, `low-angle`, `in-motion`, `terracotta`.
    </ParamField>

    <ParamField body="diversity" type="integer">
      Controls output diversity. Range: 1–5. Higher values produce more varied results.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="webhookUrl" type="string">
  HTTPS URL to receive a webhook notification when the job completes or fails.
</ParamField>

## Pricing

**Base cost:** 50,000 micro-cents per request (\$0.05)

```
finalCost = baseCost × resolution
```

| Factor         | Option  | Multiplier |
| -------------- | ------- | ---------- |
| **Resolution** | `720p`  | 1x         |
|                | `1080p` | 1.6x       |

<Tip>
  **Default cost:** 720p resolution = 50,000 × 1 = **50,000 micro-cents (\$0.05)**

  **1080p cost:** 50,000 × 1.6 = **80,000 micro-cents (\$0.08)**
</Tip>

## Response

<ResponseField name="jobId" type="string">
  Unique identifier for the submitted job.
</ResponseField>

<ResponseField name="status" type="string">
  Initial job status. Always `"pending"` on successful submission.
</ResponseField>

<ResponseField name="estimatedCompletionTime" type="string">
  ISO 8601 timestamp of the estimated completion time.
</ResponseField>

<ResponseField name="costMicroCents" type="number">
  The cost of the job in micro-cents.
</ResponseField>

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.muvi.video/v1/jobs/submit \
    -H "Authorization: Bearer $PIXELBYTE_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "runway/gen-4-image/edit-image",
      "input": {
        "prompt": "Edit an image by replacing the background",
        "image_urls": ["https://example.com/your-image.jpg"],
        "aspect_ratio": "16:9",
        "resolution": "720p",
        "style": "vivid"
      }
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.muvi.video/v1/jobs/submit",
      headers={
          "Authorization": "Bearer YOUR_API_KEY",
          "Content-Type": "application/json"
      },
      json={
          "model": "runway/gen-4-image/edit-image",
          "input": {
              "prompt": "Edit an image by replacing the background",
              "image_urls": ["https://example.com/your-image.jpg"],
              "aspect_ratio": "16:9",
              "resolution": "720p",
              "style": "vivid"
          }
      }
  )

  data = response.json()
  print(data)
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.muvi.video/v1/jobs/submit", {
    method: "POST",
    headers: {
      "Authorization": "Bearer YOUR_API_KEY",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      model: "runway/gen-4-image/edit-image",
      input: {
        prompt: "Edit an image by replacing the background",
        image_urls: ["https://example.com/your-image.jpg"],
        aspect_ratio: "16:9",
        resolution: "720p",
        style: "vivid"
      }
    })
  });

  const data = await response.json();
  console.log(data);
  ```
</CodeGroup>
