Phota Edit
Playground
Try it on WavespeedAI!Phota Edit transforms existing images using natural language instructions. Supports up to 10 reference images, 1K and 4K resolutions, and batch output up to 4 images. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Phota Edit
Phota Edit is an AI-powered image editing model that transforms photos using natural language instructions. Describe the change you want — swap clothing, alter backgrounds, adjust styles, add or remove objects — and the model applies precise, context-aware edits while preserving the rest of the image. Supports multiple input images, batch output, and flexible aspect ratio control.
Why Choose This?
-
Natural-language editing Describe your edit in plain text — no masks, no manual selections, no technical knowledge required.
-
Multi-image input Upload multiple reference images to provide richer visual context for complex edits.
-
4K output support Generate high-resolution edited results for print, production, or archival use.
-
Flexible aspect ratio control Output in auto, 1:1, 16:9, 4:3, 3:4, or 9:16 to match your target platform.
-
Multiple output formats Export in JPEG, PNG, or WebP for any downstream workflow.
-
Batch output Generate multiple edited variations in a single run using the num_images parameter.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text description of the desired edit. |
| images | No | One or more source images to edit (URL or file upload). Click Add Item for more. |
| resolution | No | Output resolution: 1K (default) or 4K. |
| num_images | No | Number of edited output variations to generate per run. Default: 1. |
| aspect_ratio | No | Output aspect ratio: auto (default), 1:1, 16:9, 4:3, 3:4, 9:16. |
| output_format | No | Output file format: jpeg (default), png, or webp. |
How to Use
- Write your prompt — describe exactly what should change in the image (e.g., “Change the man’s clothes to beach casual wear and put on sunglasses.”).
- Upload your image(s) — provide one or more source images via URL or drag-and-drop. Click Add Item to add more.
- Select resolution — 1K for standard output, 4K for high-resolution results.
- Set num_images (optional) — generate multiple variations in one run.
- Choose aspect ratio — use auto to preserve the source ratio, or select a specific format.
- Choose output format — jpeg, png, or webp based on your delivery needs.
- Submit — generate and download your edited image.
Pricing
| Resolution | Cost per Image |
|---|---|
| 1K | $0.09 |
| 4K | $0.18 |
Billing Rules
- 1K: $0.09 per image
- 4K: $0.18 per image (2× base price)
- Total cost = cost per image × num_images
Best Use Cases
- Fashion & Apparel — Swap clothing, accessories, or outfit styles on model photos without reshooting.
- E-commerce — Edit product images to showcase different colors, settings, or variants from a single source.
- Marketing & Advertising — Update visual assets quickly — change backgrounds, props, or styling to match campaign needs.
- Portrait Retouching — Make targeted appearance changes while preserving the overall look and feel.
- Creative Concepting — Rapidly iterate on visual ideas and styling directions for client review.
Pro Tips
- Be specific and descriptive in your prompt — the more detail you provide, the more accurate the edit.
- Upload multiple images when you want the model to reference additional context, such as a target style or specific elements.
- Use 4K output for final production assets and 1K for rapid iteration and testing.
- Use PNG output for lossless results when editing images with text, graphics, or sharp edges.
- Enable sync mode in API workflows where you need the result returned directly without polling.
Notes
- Only prompt is required; all other parameters are optional.
- Ensure image URLs are publicly accessible if using links rather than direct uploads.
- Please ensure your content complies with WaveSpeed AI’s usage policies.
Related Models
- Phota Enhance — Restore and upscale images without editing using AI-powered detail reconstruction.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/phota/edit" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"resolution": "1K",
"num_images": 1,
"aspect_ratio": "auto",
"output_format": "jpeg",
"enable_sync_mode": false,
"enable_base64_output": false
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| prompt | string | Yes | - | Text description of the desired image. | |
| images | array | No | [] | 1 ~ 10 items | List of URLs of input images for editing. The maximum number of images is 10. |
| resolution | string | No | 1K | 1K, 4K | Resolution of the generated image. |
| num_images | integer | No | 1 | 1 ~ 4 | Number of images to generate. |
| aspect_ratio | string | No | auto | auto, 1:1, 16:9, 4:3, 3:4, 9:16 | Aspect ratio of the generated image. |
| output_format | string | No | jpeg | jpeg, png, webp | The format of the generated image. |
| enable_sync_mode | boolean | No | false | - | If set to true, the function will wait for the result to be generated and uploaded before returning the response. It allows you to get the result directly in the response. This property is only available through the API. |
| enable_base64_output | boolean | No | false | - | If enabled, the output will be encoded into a BASE64 string instead of a URL. This property is only available through the API. |
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data.id | string | Unique identifier for the prediction, Task Id |
| data.model | string | Model ID used for the prediction |
| data.outputs | array | Array of URLs to the generated content (empty when status is not completed) |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
Result Request Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| id | string | Yes | - | Task ID |
Result Response Parameters
| Parameter | Type | Description |
|---|---|---|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., “success”) |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction, the ID of the prediction to get |
| data.model | string | Model ID used for the prediction |
| data.outputs | string | Array of URLs to the generated content (empty when status is not completed). |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to retrieve the prediction result |
| data.status | string | Status of the task: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |