Hidream O1 Image Dev Edit
Playground
Try it on WavespeedAI!HiDream-O1-Image Dev (Edit) is the distilled, fast-inference variant of HiDream-O1-Image in edit mode — accepts a source image plus an instruction (and optional extra references for subject-driven personalization) at up to 2K resolution, at half the price of the full model. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
HiDream-O1-Image Dev (Edit)
HiDream-O1-Image Dev is the distilled variant of HiDream-O1-Image. The same single native model handles text-to-image, prompt-driven editing, and subject-driven personalization at up to 2K (≈2048×2048) — but tuned for fast, low-step inference so you pay less and wait less per edit. Provide one or more reference images plus an instruction; the model edits while keeping identity, composition, and lighting stable.
Why Choose This?
- Distilled for speed — Fewer denoising steps than the full HiDream-O1-Image, lower latency per edit.
- Lower cost — Half the price of the full model, ideal for batch editing, e-commerce variations, and rapid iteration.
- Identity-preserving edits — Keeps the subject, pose, and overall composition stable while applying the requested change.
- Multi-reference support — Accepts one image for plain editing, or multiple reference images for subject-driven personalization (consistent characters, products, IPs).
- High-resolution output — Up to ~2048×2048 with sharp detail and natural lighting.
- Strong instruction following — Faithfully interprets edit instructions (wardrobe, scene tweaks, object swaps, style changes, on-image text).
- Multiple output formats — JPEG, PNG, or WEBP.
- Reproducibility — Use a fixed
seedto recreate exact results.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text instruction describing the edit you want to make. |
| images | Yes | Reference images for editing or subject-driven personalization. Each entry is a public URL or base64 data URI (PNG, JPEG, JPG, or WebP, up to 50MB, aspect ratio between 1:4 and 4:1). Pass one image for editing, multiple for subject-driven personalization. |
| size | No | Output image size as WIDTH*HEIGHT (default: 2048*2048). The model snaps to the closest supported resolution. |
| output_format | No | Output format: jpeg, png, or webp (default: jpeg). |
| seed | No | Random seed for reproducible generation. |
| enable_sync_mode | No | API only — wait for the result and return it inline. |
| enable_base64_output | No | API only — return the image as a base64 string instead of a URL. |
How to Use
- Upload your reference image(s) — drag and drop or paste publicly accessible URLs. One image for editing, multiple for subject-driven personalization.
- Write your edit instruction — describe both the change and what to keep (e.g., “Change the jacket to black leather. Keep the person, pose, and background unchanged.”).
- Choose
size(optional) — keep the source aspect ratio or pick a new one. - Set
output_format— JPEG for compact files, PNG for lossless, WEBP for balance. - Set
seed(optional) — pin a number to reproduce the same edit. - Run — submit the request and download the edited image.
Pricing
Flat rate per edit — half the price of the full HiDream-O1-Image (Edit).
| Output | Cost |
|---|---|
| Per image edit | $0.02 |
Best Use Cases
- Batch e-commerce variations — Multiple colorways or styling options from a hero shot, at scale.
- Subject-driven personalization — Pass several reference images to keep a character / product / IP consistent across new scenes.
- Wardrobe & accessory edits — Swap clothing color/style, add/remove glasses, hats, jewelry.
- Background & scene tweaks — Replace backgrounds or swap props while keeping the subject pixel-stable.
- Object add / remove / replace — Cleanly modify specific elements without disturbing the rest of the scene.
- Style transfer — Apply a new look while preserving the subject’s identity.
- Marketing iteration — Quickly produce many creative variants per source image at low cost.
Dev vs. Full — Which to Pick?
| HiDream-O1-Image Dev (Edit) | HiDream-O1-Image (Edit, Full) | |
|---|---|---|
| Speed | Faster (distilled, fewer steps) | Standard |
| Cost / edit | $0.02 | $0.04 |
| Quality ceiling | High | Highest |
| Best for | Batches, drafts, low-cost edits | Final hero edits |
Prompting Guide
For clean results, specify both the change and what to preserve:
Template:
Keep the same person, pose, and background. Change [target edit]. Keep lighting natural and consistent.
Examples:
- “Keep the same person and pose. Change the outfit to a light gray sweater and add gold thin-rimmed glasses. Keep the background and lighting unchanged.”
- “Keep identity and composition. Replace the jacket with a black leather jacket; keep realistic fabric texture and natural shadows.”
- “Keep the subject unchanged. Remove the object on the table and keep the scene lighting consistent.”
- “Keep the person and pose. Change the background to a sunlit beach at golden hour.”
For subject-driven personalization, pass several reference images of the same subject (different angles / outfits / lighting) and describe the new scene; the model uses them jointly to keep identity consistent.
Pro Tips
- Always state what should stay the same — it dramatically improves identity preservation.
- For multi-reference personalization, give 3–5 varied shots of the subject for best identity locking.
- Reference elements explicitly: “the text on the shirt”, “the background”, “the person on the left”.
- Pin a
seedwhile iterating so you can compare prompt variants against a fixed baseline. - For multi-step edits, prefer sequential single-purpose prompts over one long compound instruction.
- Use
pngfor lossless edits when output will be re-edited downstream.
Notes
- If using URLs for the source images, ensure they are publicly accessible.
- The
enable_base64_outputandenable_sync_modeoptions are only available through the API. - Higher resolutions may slightly increase processing time.
- Ensure prompts comply with content guidelines.
Related Models
- HiDream-O1-Image Dev · Text-to-Image — Same distilled model, in text-to-image mode.
- HiDream-O1-Image · Edit — The full (non-distilled) edit model for highest fidelity.
- HiDream-O1-Image · Text-to-Image — Full model in text-to-image mode.
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/hidream-o1-image-dev/edit" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"size": "2048*2048",
"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 prompt for image generation. | |
| images | array | Yes | [] | - | Reference images for image editing or subject-driven personalization. |
| size | string | No | 2048*2048 | 256 ~ 4096 per dimension | Specify the width and height pixel values of the generated image.Total pixel value range: [2560*1440, 4096*4096] |
| output_format | string | No | jpeg | png, jpeg, webp | Output image format. |
| seed | integer | No | - | -1 ~ 2147483647 | |
| 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.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 images. |
| 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 |