Hidream O1 Image Dev Text To Image

Hidream O1 Image Dev Text To Image

Playground

Try it on WaveSpeedAI!

HiDream-O1-Image Dev is a distilled, faster variant of the unified HiDream-O1-Image model — same native text-to-image / edit / personalization architecture at up to 2K, optimized for low-step inference and lower cost. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

HiDream-O1-Image Dev is the distilled variant of HiDream-O1-Image. It keeps the unified, single-native-model architecture (text-to-image, image editing, and subject-driven personalization) and the same up to 2K (≈2048×2048) resolution ceiling, but is tuned for fast, low-step inference — making it the best pick when you need speed and lower cost without giving up the HiDream-O1 look.


Why Choose This?

  • Distilled for speed — Fewer denoising steps than the full model, which means lower latency per image.
  • Lower cost — Half the price of the full HiDream-O1-Image model, ideal for high-volume generation, drafts, and rapid iteration.
  • Same unified architecture — One native model handles text-to-image, edit, and personalization. No external adapters or pipelines.
  • High-resolution output — Generate detailed images up to ~2048×2048 with strong composition and lighting.
  • Strong prompt adherence — Faithfully follows complex, multi-clause descriptions including style, mood, and on-image text.
  • Flexible aspect ratios — Supply any custom width/height up to the supported maximum (the model snaps to the closest supported resolution).
  • Multiple output formats — JPEG, PNG, or WEBP.
  • Reproducibility — Use a fixed seed to recreate exact results.

Parameters

ParameterRequiredDescription
promptYesText description of the image you want to generate.
sizeNoOutput image size as WIDTH*HEIGHT (default: 2048*2048). The model snaps to the closest supported resolution.
output_formatNoOutput format: jpeg, png, or webp (default: jpeg).
seedNoRandom seed for reproducible generation.
enable_sync_modeNoAPI only — wait for the result and return it inline.
enable_base64_outputNoAPI only — return the image as a base64 string instead of a URL.

How to Use

  1. Write your prompt — describe subject, style, lighting, mood, and any on-image text.
  2. Choose size — pick an aspect ratio that fits your use case (e.g., 2048*2048 for square, 1536*2048 for portrait, 2048*1152 for landscape).
  3. Set output_format — JPEG for compact files, PNG for lossless, WEBP for balance.
  4. Set seed (optional) — pin a number to reproduce exact results.
  5. Run — submit the request and download the generated image.

Pricing

Flat rate per generated image — half the price of the full HiDream-O1-Image model.

OutputCost
Per image$0.02

Best Use Cases

  • High-volume generation — Bulk content creation where per-image cost and latency matter.
  • Drafts & rapid iteration — Quickly explore prompt variations before committing to the full model.
  • Concept Art & Illustration — Translate text descriptions into detailed visual concepts.
  • Marketing & Social Media — Produce eye-catching visuals for posts, ads, and campaigns.
  • Storyboarding — Quickly visualize scenes and characters for creative projects.
  • Product Visualization — Mock up product concepts and lifestyle imagery.

Dev vs. Full — Which to Pick?

HiDream-O1-Image DevHiDream-O1-Image (Full)
SpeedFaster (distilled, fewer steps)Standard
Cost / image$0.02$0.04
Quality ceilingHighHighest
Best forDrafts, batches, low-cost generationFinal, hero images

Use Dev when you’re iterating, batching, or cost-sensitive. Switch to the full model for the very best fidelity on hero shots.


Pro Tips

  • Be specific about subject, style, lighting, and composition — HiDream-O1 follows detailed prompts well.
  • For posters or banners, describe layout and any on-image text explicitly.
  • Pin a seed while iterating so you can A/B test prompt tweaks against a fixed baseline.
  • Match size to your final use case (square for thumbnails, 16:9 for banners, 9:16 for mobile).
  • Use png when you need lossless quality; use jpeg or webp to keep file sizes small.

Notes

  • Only prompt is required — every other field is optional.
  • Higher resolutions may slightly increase processing time.
  • Ensure prompts comply with content guidelines.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result

set -euo pipefail

export WAVESPEED_API_KEY="your-api-key"

REQUEST_BODY=$(cat <<'JSON'
{
  "prompt": "A cinematic ocean wave at sunrise, highly detailed",
  "size": "2048*2048",
  "output_format": "jpeg"
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/hidream-o1-image-dev/text-to-image" \
  -H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}")

TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; 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 type == "object" and has("data") then .data else . end')
  STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')

  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

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
promptstringYes-Text prompt for image generation.
sizestringNo2048*2048256 ~ 4096Specify the width and height pixel values of the generated image.Total pixel value range: [2560*1440, 4096*4096]
output_formatstringNojpegpng, jpeg, webpOutput image format.
enable_sync_modebooleanNofalse-If set to `true`, the request attempts to wait for the generated result and return outputs in the same response. If the result is not ready within the sync wait window, the API can return a timeout body while the task continues processing. This option is only available via the API and is supported only by some models.
enable_base64_outputbooleanNofalse-If set to `true`, the prediction's `output` strings are returned as **naked base64** (no `data:<mime>;base64,` prefix). When `false` (default), outputs are returned as URLs pointing to our CDN.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to retrieve the prediction result
data.statusstringStatus of the task: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<string | object>Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model.
data.urlsobjectObject containing related API endpoints
data.urls.getstringURL to poll for the prediction result
data.statusstringStatus: created, processing, completed, or failed
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.