Nucleus Image Text To Image
Playground
Try it on WaveSpeedAI!Nucleus Image generates high-quality images from text prompts with flexible aspect ratios, adjustable inference steps, and classifier-free guidance. Supports negative prompts, reproducible seeds, and multiple output formats. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Nucleus Image Text-to-Image generates high-quality images from text prompts with precise control over inference steps, guidance scale, and aspect ratio. An affordable, flexible text-to-image model built for creative and production workflows.
Why Choose This?
-
Fine-grained generation control Adjust inference steps (1–100) and guidance scale (0–20) to tune the balance between creativity and prompt adherence.
-
Negative prompt support Specify what to exclude from the output for more precise control over the result.
-
Multiple aspect ratio presets Choose from 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, or 2:3 to match any platform or format.
-
Batch generation Generate up to 2 images per run for quick side-by-side comparison.
-
Reproducible results Use the seed parameter to lock in a specific output for consistent iteration.
-
Output format choice Export in PNG or JPEG based on your delivery requirements.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text description of the image subject, style, and mood. |
| negative_prompt | No | Elements to exclude from the generated image. |
| aspect_ratio | No | Output aspect ratio. Options: 1:1 (default), 16:9, 9:16, 4:3, 3:4, 3:2, 2:3. |
| num_images | No | Number of images to generate per run: 1 (default) or 2. |
| num_inference_steps | No | Number of inference steps. Range: 1–100. Default: 50. |
| guidance_scale | No | Classifier-free guidance scale. Range: 0–20. Default: 8. |
| output_format | No | Output file format: png (default) or jpeg. |
| seed | No | Random seed for reproducible results. |
How to Use
- Write your prompt — describe the subject, scene, style, lighting, and mood.
- Add negative prompt (optional) — specify elements you want to exclude.
- Select aspect ratio — choose the format that fits your target platform.
- Set num_images (optional) — generate 1 or 2 images per run.
- Adjust inference steps and guidance scale (optional) — higher steps for more detail, higher guidance for stricter prompt adherence.
- Choose output format — png for lossless, jpeg for smaller file size.
- Set seed (optional) — fix the seed to reproduce a specific result.
- Submit — generate and download your image.
Pricing
Just $0.01 per image.
Best Use Cases
- Rapid prototyping — Generate visual concepts quickly at very low cost for iteration and ideation.
- Social media content — Create platform-optimized images across multiple aspect ratios.
- High-volume workflows — Affordable per-image pricing makes it ideal for large-scale generation pipelines.
- Creative exploration — Tune inference steps and guidance scale to explore different visual styles from the same prompt.
- Developer integrations — Embed flexible, low-cost image generation into any app or workflow.
Pro Tips
- Higher num_inference_steps (50–100) produces more detailed and refined results; lower values (10–20) are faster for quick drafts.
- Increase guidance_scale for stricter prompt adherence; lower values allow more creative variation.
- Use negative_prompt to avoid common artifacts like blurry faces, extra limbs, or unwanted styles.
- Generate 2 images per run to quickly compare variations before committing to a final render.
- Fix the seed while adjusting other parameters to isolate the effect of each change.
Notes
- Only prompt is required; all other parameters are optional.
- Maximum 2 images per generation run.
- Please ensure your content complies with WaveSpeed AI’s usage policies.
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",
"aspect_ratio": "1:1",
"num_images": 1,
"num_inference_steps": 50,
"guidance_scale": 8,
"output_format": "png"
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/nucleus-image/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
doneParameters
Task Submission Parameters
Request Parameters
| Parameter | Type | Required | Default | Range | Description |
|---|---|---|---|---|---|
| prompt | string | Yes | - | The prompt to use for generating the image. | |
| negative_prompt | string | No | - | The negative prompt to use for generation. | |
| aspect_ratio | string | No | 1:1 | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3 | The output aspect ratio. Nucleus-Image supports a fixed set of aspect-ratio presets. |
| num_images | integer | No | 1 | 1 ~ 2 | The number of images to generate. |
| num_inference_steps | integer | No | 50 | 1 ~ 100 | The number of inference steps to perform. |
| guidance_scale | number | No | 8 | 0 ~ 20 | The classifier-free guidance scale. |
| output_format | string | No | png | jpeg, png | The format of the generated image. |
| seed | integer | No | - | - | Seed for reproducible generation. |
| enable_base64_output | boolean | No | false | - | 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
| 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 | Output values, usually URL strings; some models return text strings or structured result objects (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 |
| data.model | string | Model ID used for the prediction |
| data.outputs | array<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.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to poll for the prediction result |
| data.status | string | Status: created, processing, completed, or failed |
| data.created_at | string | ISO timestamp of when the request was created |
| 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 |