Seedream 5.0 Pro अब लाइव है | Image Generator में आज़माएं →

Photon Modify

luma /

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.

image-to-image
इनपुट

ड्रैग और ड्रॉप करें या अपलोड करने के लिए क्लिक करें

preview

निष्क्रिय

Change the background to large performance stage

$0.015प्रति रन·~66 / $1

आगे:

उदाहरणसभी देखें

Change the background to large performance stage

Change the background to large performance stage

Change the car color to pink

Change the car color to pink

Turn this photo into color

Turn this photo into color

Turned into anime style

Turned into anime style

Put a sunglasses on this guy.

Put a sunglasses on this guy.

Replace “y2ek” with “y2k” on the shirt.

Replace “y2ek” with “y2k” on the shirt.

Put this man in a pilot's uniform.

Put this man in a pilot's uniform.

Remove the moon behind the girl

Remove the moon behind the girl

संबंधित मॉडल

README

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

ParameterRequiredDescription
promptYesText instruction describing the edit or modification you want.
imageNoSource image to modify (upload or public URL).

How to Use

  1. Write your edit instruction — describe what you want to change.
  2. Use Prompt Enhancer (optional) — click to refine your instruction.
  3. Upload your image — drag and drop or paste a public URL.
  4. Run — click the button to apply the edit.
  5. Download — preview and save your modified image.

Pricing

Flat rate per image.

OutputCost
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.
नोट:यह वेबसाइट तृतीय पक्षों द्वारा प्रदान किए गए AI मॉडलों का उपयोग करती है।

Photon Modify API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/luma/photon-modify with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Photon Modify below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "prompt": "A cinematic shot of a city at sunset, soft golden light"
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/luma/photon-modify" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
  RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
    -H "Authorization: Bearer $WAVESPEED_API_KEY")
  RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  case "$STATUS" in
    completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
  esac
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/luma/photon-modify";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "prompt": "A cinematic shot of a city at sunset, soft golden light"
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
  `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
  if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "prompt": "A cinematic shot of a city at sunset, soft golden light"
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/luma/photon-modify", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout"}:
        raise RuntimeError(result)
    if status not in {"created", "processing"}:
        raise RuntimeError(f"Unexpected status: {status}")
    time.sleep(2)

Photon Modify API — Frequently asked questions

What is the Photon Modify API?

Photon Modify is a Luma model for image editing, exposed as a REST API 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. You can call it programmatically or try it from the playground above.

How do I call the Photon Modify API?

POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/luma/luma-photon-modify.

How much does Photon Modify cost per run?

Photon Modify starts at $0.015 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.

What inputs does Photon Modify accept?

Key inputs: `prompt`, `image`, `enable_base64_output`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/luma/luma-photon-modify.

How long does Photon Modify take to generate?

Average end-to-end generation time on WaveSpeedAI is around 16 seconds per request — measured across recent runs. Queue time scales with global demand; live status is visible in the prediction record.

Can I use Photon Modify outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (Luma). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.

Photon Modify | Fast Image Editing API | WaveSpeedAI