Z Ai Glm Image Edit
Playground
Try it on WavespeedAI!GLM-Image Edit is a powerful image-to-image editing model that transforms images based on text prompts. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Features
Z.AI GLM-Image Image-Edit
GLM-Image Image-Edit is Z.AI’s powerful image transformation model that modifies images based on text prompts. Upload up to 4 reference images and describe the changes you want — the model reimagines your images while preserving key elements and applying your requested modifications.
Why Choose This?
-
Multi-image reference Upload up to 4 reference images to guide the transformation with richer context.
-
Text-guided transformation Describe changes in natural language — lighting, style, time of day, environment, and more.
-
Flexible output sizing Custom width and height from 256 to 1536 pixels for any aspect ratio.
-
Prompt Enhancer Built-in tool to automatically improve your prompts for better results.
-
LLM-powered prompt expansion Optional feature to automatically enhance short prompts with more detail.
Parameters
| Parameter | Required | Description |
|---|---|---|
| prompt | Yes | Text description of the desired transformation |
| images | Yes | Reference images to transform (1-4 images) |
| width | No | Output width in pixels (256-1536, default: 1024) |
| height | No | Output height in pixels (256-1536, default: 1024) |
| seed | No | Random seed for reproducibility (-1 for random) |
| output_format | No | Output format: jpeg (default) or png |
| enable_prompt_expansion | No | Enhance prompt using LLM for better results |
| enable_sync_mode | No | API only: wait for result before returning response |
Output Format Options
- jpeg — Smaller file size, good for photos and web use (default)
- png — Lossless quality, supports transparency, best for graphics
How to Use
- Write your prompt — describe the transformation you want (e.g., “change to daytime”, “add snow”, “make it cyberpunk style”).
- Upload reference images — add 1-4 images using ”+ Add Item” button.
- Set size — adjust width and height (256-1536 pixels).
- Set seed — use -1 for random results, or specify a number for reproducibility.
- Choose output format — jpeg for smaller files, png for lossless quality.
- Enable prompt expansion (optional) — check this to let LLM enhance your prompt.
- Run — click Run, preview the result, and iterate if needed.
Pricing
| Item | Cost |
|---|---|
| Per image | $0.12 |
Simple flat-rate pricing regardless of image size or number of reference images.
Best Use Cases
- Lighting Changes — Transform day to night, add golden hour, change weather conditions.
- Style Transfer — Apply artistic styles while preserving composition.
- Scene Modification — Add or remove elements, change seasons, modify environments.
- Creative Reimagining — Generate variations based on multiple reference images.
- Content Adaptation — Adjust images for different moods or contexts.
Pro Tips
- Be specific in your transformation prompt — describe exactly what should change.
- Use multiple reference images when you want to blend styles or elements from different sources.
- Enable prompt expansion for short prompts; disable it for precise control.
- Start with default 1024x1024 size, then adjust for specific aspect ratios.
- Use the same seed to compare different prompts on the same reference images.
Notes
- Maximum 4 reference images per generation.
- Size range: 256-1536 pixels for both width and height.
- enable_sync_mode is only available through the API.
- Please ensure your prompts comply with content guidelines.
Related Models
- Z.AI GLM-Image Text-to-Image — Generate images from text prompts only.
- Z.AI CogView-4 — Z.AI’s high-quality text-to-image model with flexible quality modes.
- Qwen Image Edit 2511 — Precise image editing with text instructions.
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/z-ai/glm-image/edit" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"seed": -1,
"output_format": "jpeg",
"enable_prompt_expansion": false,
"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 | - | The positive prompt for the generation. | |
| images | array | Yes | [] | 1 ~ 4 items | URL(s) of condition image(s) for image-to-image generation. Supports up to 4 URLs. |
| size | string | No | - | 256 ~ 1536 per dimension | The size of the generated media in pixels (width*height). |
| seed | integer | No | -1 | -1 ~ 2147483647 | The random seed to use for the generation. -1 means a random seed will be used. |
| output_format | string | No | jpeg | jpeg, png, webp | The format of the output image. |
| enable_prompt_expansion | boolean | No | false | - | Enhance prompt using LLM for better results. |
| 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. 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.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
| 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 content. |
| 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 |