Seedream 5.0 Pro è LIVE | Prova nel Generatore di immagini →

Step1x Edit

wavespeed-ai /

Step1X-Edit converts photos into professional-quality edits using simple instructions, rivaling top proprietary tools. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

text-to-image
Input

Inattivo

Change Hair color to red

$0.03per esecuzione·~33 / $1

Successivo:

EsempiVedi tutto

Change Hair color to red

Change Hair color to red

Become pixel style

Become pixel style

Change clothes

Change clothes

Remove the astronaut, keep the rest unchanged

Remove the astronaut, keep the rest unchanged

In front of the puppy, add a toy ball

In front of the puppy, add a toy ball

Add sunglasses for men

Add sunglasses for men

Become cartoon style

Become cartoon style

Add earrings to the woman's ears

Add earrings to the woman's ears

Remove the bird flying next to the woman

Remove the bird flying next to the woman

Transform into cartoon style

Transform into cartoon style

Transform into Hayao Miyazaki style

Transform into Hayao Miyazaki style

Remove the bubbles from the image

Remove the bubbles from the image

Modelli correlati

README

Step1X Edit

Step1X Edit is a powerful AI-powered image editing model that modifies images based on simple text instructions. Describe what you want to change — hair color, clothing, background, objects — and the model applies precise, targeted edits while preserving the rest of the image.

Why It Stands Out

  • Instruction-based editing: Edit images using natural language commands.
  • Precise modifications: Changes only what you specify, preserving everything else.
  • Prompt Enhancer: Built-in AI-powered prompt optimization for better results.
  • Negative prompt support: Exclude unwanted elements for cleaner outputs.
  • Fine-tuned control: Adjust guidance scale and inference steps for precise results.
  • Affordable pricing: High-quality edits at just $0.03 per image.
  • Reproducibility: Use the seed parameter to recreate exact results.

Parameters

ParameterRequiredDescription
promptYesText instruction describing the edit you want to make.
imageYesSource image to edit (upload or public URL).
negative_promptNoElements to avoid in the output.
seedNoSet for reproducibility; leave empty for random.
guidance_scaleNoPrompt adherence strength (default: 4).
num_inference_stepsNoQuality/speed trade-off (default: 30).

How to Use

  1. Upload your image — drag and drop a file or paste a public URL.
  2. Write an editing instruction describing what you want to change. Use the Prompt Enhancer for AI-assisted optimization.
  3. Add a negative prompt (optional) — specify elements to exclude.
  4. Adjust parameters (optional) — fine-tune guidance scale and inference steps.
  5. Click Run and download your edited image.

Example Instructions

  • "Change hair color to red"
  • "Add sunglasses"
  • "Change the background to a beach"
  • "Make the dress blue"
  • "Remove the hat"
  • "Add a smile"
  • "Change season to winter"

Best Use Cases

  • Portrait Retouching — Change hair color, add accessories, modify expressions.
  • Fashion & E-commerce — Swap clothing colors, add or remove items.
  • Background Editing — Change environments and settings.
  • Creative Projects — Experiment with visual variations quickly.
  • Content Creation — Generate multiple versions of images for A/B testing.

Pricing

OutputPrice
Per image$0.03

Pro Tips for Best Quality

  • Use clear, specific instructions — "Change hair color to red" works better than "Make it different."
  • Keep instructions focused on one or two changes at a time.
  • Use negative prompts to prevent unwanted side effects.
  • Lower guidance scale (2–4) for subtle changes, higher (5–7) for more dramatic edits.
  • Fix the seed when iterating to compare different instructions on the same base.

Notes

  • Ensure uploaded image URLs are publicly accessible.
  • Processing time varies based on current queue load.
  • Please ensure your content complies with usage guidelines.
Nota:Questo sito web utilizza modelli di intelligenza artificiale forniti da terze parti.

Step1x Edit API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/wavespeed-ai/step1x-edit 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 Step1x Edit 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",
    "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "guidance_scale": 4,
    "num_inference_steps": 30
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/step1x-edit" \
  -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/wavespeed-ai/step1x-edit";
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",
        "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
        "guidance_scale": 4,
        "num_inference_steps": 30
}),
});
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",
    "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "guidance_scale": 4,
    "num_inference_steps": 30
}

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/wavespeed-ai/step1x-edit", 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)

Step1x Edit API — Frequently asked questions

What is the Step1x Edit API?

Step1x Edit is a WaveSpeedAI model for image generation, exposed as a REST API on WaveSpeedAI. Step1X-Edit converts photos into professional-quality edits using simple instructions, rivaling top proprietary tools. 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 Step1x Edit 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/wavespeed-ai/step1x-edit.

How much does Step1x Edit cost per run?

Step1x Edit starts at $0.030 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 Step1x Edit accept?

Key inputs: `prompt`, `image`, `seed`, `guidance_scale`, `num_inference_steps`, `negative_prompt`. 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/wavespeed-ai/step1x-edit.

How long does Step1x Edit take to generate?

Median end-to-end generation time on WaveSpeedAI is around 12 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.

Can I use Step1x Edit outputs commercially?

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

Step1x Edit | High-Quality Text-to-Image API | WaveSpeedAI