Seedream 5.0 Pro đã ra mắt | Thử trong Trình tạo ảnh →

Photon

luma /

Luma Photon is a text-to-image model that converts text prompts into images for prompt-based visual generation. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

text-to-image
Đầu vào

Chờ

Baker arranging bread on wooden shelves in a rustic bakery, flour dust in the air, morning glow from the window

$0.015cho mỗi lần chạy·~66 / $1

Tiếp theo:

Ví dụXem tất cả

Baker arranging bread on wooden shelves in a rustic bakery, flour dust in the air, morning glow from the window

Baker arranging bread on wooden shelves in a rustic bakery, flour dust in the air, morning glow from the window

Dog curled up on a living room rug, fire crackling in the fireplace, owner reading beside them, soft jazz playing in the background

Dog curled up on a living room rug, fire crackling in the fireplace, owner reading beside them, soft jazz playing in the background

Street vendor cooking noodles late at night, steam rising from the wok, city lights glowing behind, hungry customers in line

Street vendor cooking noodles late at night, steam rising from the wok, city lights glowing behind, hungry customers in line

Young man sketching in a notebook under a streetlight at night, quiet alley, distant voices and city hum

Young man sketching in a notebook under a streetlight at night, quiet alley, distant voices and city hum

A cozy living room on a rainy afternoon, warm lighting, books on the coffee table, a cat curled up on the sofa, real-life atmosphere

A cozy living room on a rainy afternoon, warm lighting, books on the coffee table, a cat curled up on the sofa, real-life atmosphere

Morning sunlight streaming into a small kitchen, steam rising from a coffee mug, unwashed dishes in the sink, a realistic family home

Morning sunlight streaming into a small kitchen, steam rising from a coffee mug, unwashed dishes in the sink, a realistic family home

A father helping his child with homework at the dinner table, soft lighting, papers and crayons scattered, homey and emotional vibe

A father helping his child with homework at the dinner table, soft lighting, papers and crayons scattered, homey and emotional vibe

People waiting at a bus stop on a cloudy morning, wet pavement, umbrellas, cars passing by, urban realism

People waiting at a bus stop on a cloudy morning, wet pavement, umbrellas, cars passing by, urban realism

Young woman walking down a quiet city street at sunset, shops closing, soft golden hour light, light breeze moving her coat

Young woman walking down a quiet city street at sunset, shops closing, soft golden hour light, light breeze moving her coat

A noodle shop kitchen in the middle of dinner rush, steam rising, cooks working fast, bowls stacked high, oil-stained walls

A noodle shop kitchen in the middle of dinner rush, steam rising, cooks working fast, bowls stacked high, oil-stained walls

Mô hình liên quan

README

Luma Photon

Generate beautiful, atmospheric images with Luma Photon — Luma's flagship text-to-image model. Known for stunning lighting, natural compositions, and emotionally resonant scenes, Photon delivers professional-quality results at an affordable price.

Looking for faster generation? Try Luma Photon Flash for speed-optimized output at the lowest cost.

Why It Looks Great

  • Stunning lighting: Exceptional at natural light, golden hour, and atmospheric glows.
  • Emotional resonance: Creates scenes with mood, warmth, and authentic feeling.
  • Natural compositions: Produces balanced, visually pleasing layouts.
  • Environmental detail: Rich textures like flour dust, steam, and ambient particles.
  • Prompt Enhancer: Built-in tool to refine your descriptions automatically.
  • Affordable quality: Professional results at just $0.015 per image.

Parameters

ParameterRequiredDescription
promptYesText description of the image you want to generate.

How to Use

  1. Write your prompt — describe the scene, lighting, mood, and atmosphere.
  2. Use Prompt Enhancer (optional) — click to automatically enrich your description.
  3. Run — click the button to generate.
  4. Download — preview and save your image.

Pricing

Flat rate per image.

OutputCost
Per image$0.015

Best Use Cases

  • Lifestyle Photography — Generate authentic, warm scenes of everyday moments.
  • Food & Bakery — Create appetizing culinary and artisan imagery.
  • Interior Scenes — Produce cozy, inviting indoor environments.
  • Portrait & Character — Generate natural-looking people in context.
  • Marketing Content — Create professional visuals for brands and campaigns.

Example Prompts

  • "Baker arranging bread on wooden shelves in a rustic bakery, flour dust in the air, morning glow from the window"
  • "Barista pouring latte art, steam rising, warm cafe lighting, artisan coffee shop"
  • "Grandmother reading to grandchild on a cozy couch, soft lamp light, warm evening"
  • "Florist arranging bouquet in sunlit shop, petals scattered on counter, peaceful morning"
  • "Chef plating dish in restaurant kitchen, focused expression, professional environment"

Model Comparison

ModelCostSpeedBest For
Photon$0.015StandardQuality output, professional work
Photon Flash$0.005FastestHigh-volume, prototyping, budget work

Pro Tips for Best Results

  • Photon excels at natural lighting — describe light sources and quality.
  • Include atmospheric particles: "flour dust", "steam rising", "dust motes".
  • Specify time of day: "morning glow", "golden hour", "soft evening light".
  • Describe textures and materials: "wooden shelves", "rustic", "artisan".
  • Add emotional context: "cozy", "peaceful", "focused", "warm".
  • Luma models are known for photorealistic, emotionally authentic scenes.

Notes

  • Photon delivers Luma's best quality for text-to-image generation.
  • Processing is fast with professional-grade output.
  • Ideal for final deliverables and client-facing work.
  • For rapid iteration at lowest cost, use Photon Flash.
Lưu ý:Trang web này sử dụng các mô hình AI do bên thứ ba cung cấp.

Photon API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/luma/photon 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 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" \
  -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";
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", 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 API — Frequently asked questions

What is the Photon API?

Photon is a Luma model for image generation, exposed as a REST API on WaveSpeedAI. Luma Photon is a text-to-image model that converts text prompts into images for prompt-based visual generation. 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 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.

How much does Photon cost per run?

Photon 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 accept?

Key inputs: `prompt`, `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.

How long does Photon take to generate?

Average end-to-end generation time on WaveSpeedAI is around 7 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 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 | High-Quality Text-to-Image API | WaveSpeedAI