madeAPI
Log in
Explore/Qwen Image
Image3 credits / image

Qwen Image

Qwen Image is a text-to-image model with a particular strength in structured compositions and prominent typography, plus optional source-image guidance in the current provider contract.

View docsModel guide
// Node.js. Running this creates one paid generation.
import { randomUUID } from 'node:crypto';
const base = "https://www.made.app/api";
const headers = {
  Authorization: `Bearer ${process.env.MADE_API_KEY}`,
  'Content-Type': 'application/json',
};
const input = {
  "model": "qwen_image",
  "prompt": "Neon-lit alley in the rain, reflections on wet pavement, a lone cyclist with an umbrella passing through. 35mm film still, soft natural light, muted earth tones with one cyan accent, shallow depth of field, subtle film grain, candid and unposed, no text, logos, or watermark.",
  "aspect_ratio": "1:1"
};

async function api(path, body) {
  const response = await fetch(base + path, {
    method: body ? 'POST' : 'GET', headers,
    ...(body && { body: JSON.stringify(body) }),
  });
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

const { cost } = await api('/v1/cost', input);
console.log('Quoted cents:', cost.customerCostCents);
// Preserve this request ID when retrying a submission.
const requestId = randomUUID();
let job = await api('/v1/generations', {
  ...input, request_id: requestId,
  max_cost_cents: cost.customerCostCents,
});
console.log('Request:', job.id);
while (!['succeeded', 'failed', 'canceled'].includes(job.status)) {
  await new Promise(resolve => setTimeout(resolve, 3000));
  job = await api('/v1/generations/' + job.id);
}
if (job.status !== 'succeeded') throw new Error(JSON.stringify(job.error || job.status));
console.log(job.result.assets);

Input

Advanced settings
Sign in to generate

Uses your credits. See the exact price before generating.

Result

Example
neon-lit alley in the rain with a cyclist generated with Qwen Image in Made
Qwen Image: Rainy alley

Price

3 credits / image. Check the exact cost for your settings before generating. Failed generations are refunded. Full price sheet.