Luma Photon Modify
Playground
Try it on WavespeedAI!Luma Photon Modify is a text-to-image generation model that converts text prompts into images for creative and production workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Luma Photon Modify
Edit and transform images with natural language using Luma Photon Modify. Simply describe the changes you want — swap backgrounds, modify elements, or transform scenes — and watch your image transform instantly. Perfect for quick edits, background replacements, and creative modifications.
Why It Looks Great
- Natural language editing: Describe changes in plain English — no complex tools needed.
- Background replacement: Seamlessly swap backgrounds while preserving subjects.
- Scene transformation: Modify environments, lighting, and context effortlessly.
- Subject preservation: Maintains the integrity of your main subject during edits.
- Prompt Enhancer: Built-in tool to refine your editing instructions.
- Ultra-affordable: Professional image editing at just $0.015 per image.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text instruction describing the edit or modification you want. |
| image | No | Source image to modify (upload or public URL). |
How to Use
- Write your edit instruction — describe what you want to change.
- Use Prompt Enhancer (optional) — click to refine your instruction.
- Upload your image — drag and drop or paste a public URL.
- Run — click the button to apply the edit.
- Download — preview and save your modified image.
Pricing
Flat rate per image.
| Output | Cost |
|---|---|
| Per image | $0.015 |
Best Use Cases
- Background Replacement — Change backgrounds to any scene or setting.
- Scene Transformation — Move subjects to different environments or contexts.
- Creative Compositing — Place subjects in imaginative or fantastical settings.
- Product Photography — Swap product backgrounds for professional presentations.
- Social Media Content — Quick edits for engaging visual content.
Example Prompts
- “Change the background to large performance stage”
- “Replace the background with a tropical beach at sunset”
- “Put the subject in a futuristic cityscape”
- “Change the setting to a cozy coffee shop interior”
- “Transform the background to a snowy mountain landscape”
- “Place in a professional studio with white backdrop”
Pro Tips for Best Results
- Be specific about the new background or setting you want.
- Photon Modify excels at background replacements and scene changes.
- Include lighting and atmosphere details for more cohesive results.
- Works best when the subject is clearly defined in the original image.
- Use for quick iterations — at $0.015, you can experiment freely.
- Combine with descriptive atmosphere: “dramatic lighting”, “warm tones”, “soft focus”.
Notes
- If using a URL, ensure it is publicly accessible.
- Best results come from images with clear subject-background separation.
- Processing is fast and efficient for rapid workflow integration.
- Ideal for batch processing due to low cost per image.
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/luma/photon-modify" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"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 | - | The positive prompt for the generation. | |
| image | string | No | - | The image to generate an image from. | |
| 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 |