# QWEN Image Max API Documentation > LLM-optimized documentation for QWEN Image Max. Copy into your AI assistant for integration help. ## Overview **Model ID:** `qwen-image-max` **Type:** Image Generation **Credit Cost:** 2 credits per image Highest quality output ## Endpoint ``` POST https://pixeldojo.ai/api/v1/models/qwen-image-max/run ``` ## Authentication All requests require an API key in the Authorization header: ``` Authorization: Bearer YOUR_API_KEY ``` Get your API key: https://pixeldojo.ai/api-platform/api-keys ## Input Parameters | Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `prompt` | string | Yes | - | Text description of the image to generate. | | `generation_model` | enum | No | qwen-image-plus | DashScope model variant. Rolling: qwen-image-plus, qwen-image-max. Dated snapshots for pinning: qwen-image-plus-2026-01-09, qwen-image-max-2025-12-30. Legacy: qwen-image. Ignored when lora_weights is set (LoRA path uses Replicate). (Options: qwen-image-plus, qwen-image-plus-2026-01-09, qwen-image-max, qwen-image-max-2025-12-30, qwen-image) | | `aspect_ratio` | enum | No | 1:1 | Image aspect ratio. The qwen-image-plus / qwen-image-max series ship five recommended aspect ratios; 21:9 is only available on the LoRA Replicate path. (Options: 1:1, 16:9, 9:16, 4:3, 3:4...) | | `negative_prompt` | string | No | - | What to avoid in the output (max 500 characters). | | `prompt_extend` | boolean | No | true | Enable smart prompt rewriting on the DashScope path. The model expands your prompt for richer detail. Default true. | | `watermark` | boolean | No | false | Adds a "Qwen-Image" watermark to the bottom-right corner. | | `num_inference_steps` | integer | No | 35 | LoRA path only — number of inference steps (28-50). (min: 28, max: 50) | | `guidance` | number | No | 3 | LoRA path only — guidance scale (2-4). (min: 2, max: 4) | | `go_fast` | boolean | No | false | LoRA path only — enable faster generation. | | `numberOfImages` | integer | No | 1 | Number of images to generate. The DashScope path (qwen-image-plus / qwen-image-max) is fixed at 1 per upstream contract; the LoRA Replicate path supports 1-4. (min: 1, max: 4) | | `seed` | integer | No | - | Random seed for reproducibility (0–2147483647). (min: 0, max: 2147483647) | | `lora_weights` | string | No | - | URL or HuggingFace path to a Qwen Image LoRA. Supplying this routes the request through the Replicate LoRA remix variant and unlocks numberOfImages > 1 + LoRA-specific params. | | `lora_scale` | number | No | 1 | Strength of the LoRA effect (typical 0–2). (min: 0, max: 2) | ## Supported Aspect Ratios - `1:1` - `16:9` - `9:16` - `4:3` - `3:4` - `21:9` ## Capabilities - Text to Image - LoRA Support - NSFW Content ## Quick Start ### 1. Submit a Job ```bash curl -X POST "https://pixeldojo.ai/api/v1/models/qwen-image-max/run" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "prompt": "A beautiful mountain landscape at golden hour, photorealistic", "aspect_ratio": "1:1" }' ``` **Response:** ```json { "jobId": "job_abc123...", "status": "pending", "statusUrl": "https://pixeldojo.ai/api/v1/jobs/job_abc123", "creditCost": 2, "creditsRemaining": 95 } ``` ### 2. Poll for Results ```bash curl "https://pixeldojo.ai/api/v1/jobs/job_abc123" \ -H "Authorization: Bearer YOUR_API_KEY" ``` **Completed Response:** ```json { "jobId": "job_abc123...", "status": "completed", "output": { "images": ["https://temp.pixeldojo.ai/..."] }, "creditCost": 2 } ``` ## Python Example ```python import requests import time API_KEY = "YOUR_API_KEY" # Submit job response = requests.post( "https://pixeldojo.ai/api/v1/models/qwen-image-max/run", headers={ "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" }, json={ "prompt": "A beautiful mountain landscape at golden hour, photorealistic", "aspect_ratio": "1:1" } ) job = response.json() job_id = job["jobId"] # Poll for completion while True: status_response = requests.get( f"https://pixeldojo.ai/api/v1/jobs/{'{job_id}'}", headers={"Authorization": f"Bearer {API_KEY}"} ) status = status_response.json() if status["status"] == "completed": print("Output:", status["output"]) break elif status["status"] == "failed": print("Error:", status.get("error")) break time.sleep(2) ``` ## JavaScript Example ```javascript const API_KEY = 'YOUR_API_KEY'; // Submit job const submitResponse = await fetch('https://pixeldojo.ai/api/v1/models/qwen-image-max/run', { method: 'POST', headers: { 'Authorization': `Bearer ${API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ prompt: 'A beautiful mountain landscape at golden hour, photorealistic', aspect_ratio: '1:1' }) }); const job = await submitResponse.json(); // Poll for completion const pollForResult = async (jobId) => { while (true) { const statusResponse = await fetch(`https://pixeldojo.ai/api/v1/jobs/${jobId}`, { headers: { 'Authorization': `Bearer ${API_KEY}` } }); const status = await statusResponse.json(); if (status.status === 'completed') return status.output; if (status.status === 'failed') throw new Error(status.error); await new Promise(r => setTimeout(r, 2000)); } }; const output = await pollForResult(job.jobId); console.log('Output:', output); ``` ## Error Codes | Code | Status | Description | |------|--------|-------------| | `unauthorized` | 401 | Invalid or missing API key | | `insufficient_credits` | 402 | Not enough credits | | `invalid_request` | 400 | Invalid parameters | | `model_not_found` | 404 | Model ID not found | | `rate_limited` | 429 | Too many requests | | `internal_error` | 500 | Server error | ## Links - **Full Documentation:** https://pixeldojo.ai/api-platform/qwen-image-max - **API Keys:** https://pixeldojo.ai/api-platform/api-keys - **Buy Credits:** https://pixeldojo.ai/api-platform/buy-credits - **All Models:** https://pixeldojo.ai/api/v1/models - **OpenAPI Spec:** https://pixeldojo.ai/api/openapi