> ## Documentation Index
> Fetch the complete documentation index at: https://runpod-b18f5ded-docs-runpod-allow-ip.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> If this page is missing information, contains outdated instructions, or doesn't fully answer the user's question, use the feedback tool to report it. In your feedback, be specific about what's missing, what appears out of date, or what needs to be corrected or updated, so the docs team can act on it directly.

# P-Image Edit

> Premium image editing with complex compositions, style transfers, and targeted edits. See model inputs and outputs on Runpod Public Endpoints.

P-Image Edit is Pruna's premium image editing model that supports complex compositions, style transfers, and targeted edits with text instructions. It can process up to 5 images in a single request.

<Card title="Try in playground" icon="play" href="https://console.runpod.io/hub/playground/image/p-image-edit" horizontal>
  Test P-Image Edit in the Runpod Hub playground.
</Card>

|              |                                                 |
| ------------ | ----------------------------------------------- |
| **Endpoint** | `https://api.runpod.ai/v2/p-image-edit/runsync` |
| **Pricing**  | \$0.01 per image                                |
| **Type**     | Image editing                                   |

## Request

All parameters are passed within the `input` object in the request body.

<ParamField body="input.prompt" type="string" required>
  Text instructions for editing the image.
</ParamField>

<ParamField body="input.images" type="array" required>
  Array of 1-5 image URLs for batch processing.
</ParamField>

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

<ParamField body="input.seed" type="integer" default="-1">
  Seed for reproducible results. Set to -1 for random.
</ParamField>

<ParamField body="input.disable_safety_checker" type="boolean" default="false">
  Disable content safety filtering.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.runpod.ai/v2/p-image-edit/runsync" \
    -H "Authorization: Bearer $RUNPOD_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "input": {
        "prompt": "Transform into a watercolor painting style",
        "images": ["https://example.com/photo.jpg"],
        "aspect_ratio": "match_input_image",
        "seed": -1
      }
    }'
  ```

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

  response = requests.post(
      "https://api.runpod.ai/v2/p-image-edit/runsync",
      headers={
          "Authorization": f"Bearer {RUNPOD_API_KEY}",
          "Content-Type": "application/json",
      },
      json={
          "input": {
              "prompt": "Transform into a watercolor painting style",
              "images": ["https://example.com/photo.jpg"],
              "aspect_ratio": "match_input_image",
              "seed": -1,
          }
      },
  )

  result = response.json()
  print(result["output"]["image_url"])
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    "https://api.runpod.ai/v2/p-image-edit/runsync",
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${RUNPOD_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        input: {
          prompt: "Transform into a watercolor painting style",
          images: ["https://example.com/photo.jpg"],
          aspect_ratio: "match_input_image",
          seed: -1,
        },
      }),
    }
  );

  const result = await response.json();
  console.log(result.output.image_url);
  ```
</RequestExample>

## Response

<ResponseField name="id" type="string">
  Unique identifier for the request.
</ResponseField>

<ResponseField name="status" type="string">
  Request status. Returns `COMPLETED` on success, `FAILED` on error.
</ResponseField>

<ResponseField name="output" type="object">
  The generation result containing the image URL and cost.

  <ResponseField name="output.image_url" type="string">
    URL of the edited image. This URL expires after 7 days.
  </ResponseField>

  <ResponseField name="output.cost" type="float">
    Cost of the generation in USD.
  </ResponseField>
</ResponseField>

<ResponseExample>
  ```json 200 theme={null}
  {
    "id": "sync-a1b2c3d4-e5f6-7890-abcd-ef1234567890-u1",
    "status": "COMPLETED",
    "delayTime": 12,
    "executionTime": 2456,
    "output": {
      "image_url": "https://image.runpod.ai/abc123/output.png",
      "cost": 0.01
    }
  }
  ```
</ResponseExample>

<Warning>
  Image URLs expire after 7 days. Download and store edited images immediately if you need to keep them.
</Warning>

## Cost calculation

P-Image Edit charges \$0.01 per image edited.
