

Qwen Image 3.0 API: цены и интеграция
Узнайте о ценах, аутентификации, параметрах генерации и редактирования, асинхронном опросе, повторах и интеграции API Qwen Image 3.0 в продакшене.
Qwen Image 3.0 объединяет генерацию изображений по тексту и редактирование по референсам в одном асинхронном API. Через APIMart вы отправляете задачу, опрашиваете её состояние и получаете одно или несколько изображений после завершения.
В этом руководстве разобрано всё необходимое перед интеграцией: актуальные цены Standard и Pro, аутентификация, параметры запросов, обработка ответов, опрос, повторы и хранение результатов. Возможности и бенчмарки описаны в обзоре релиза Qwen Image 3.0.
Цены и доступ к Qwen Image 3.0
APIMart предлагает два идентификатора модели:
qwen-image-3.0для Standardqwen-image-3.0-proдля Pro
Оплата рассчитывается за созданное изображение, а не за входные Token. В таблице указаны значения со страницы цен APIMart на 27 августа 2026 года; в дальнейшем они могут измениться.
Сравнение цен Standard и Pro
| Модель | Разрешение | Примерная цена за изображение | Примерная цена за 1 000 изображений |
|---|---|---|---|
| Qwen Image 3.0 Standard | 1K | $0.0205712 | $20.57 |
| Qwen Image 3.0 Standard | 2K | $0.0205712 | $20.57 |
| Qwen Image 3.0 Pro | 1K | $0.0285712 | $28.57 |
| Qwen Image 3.0 Pro | 2K | $0.0571432 | $57.14 |
Для Standard сейчас указана одинаковая цена в 1K и 2K. Pro 2K стоит вдвое дороже Pro 1K. Согласно документации Qwen Image 3.0, плата за неудачную генерацию возвращается, а референсы не создают отдельной платы за генерацию.
Оценка реальной нагрузки
Базовая формула:
месячная стоимость = число завершённых изображений × цена одного изображения
Параметр n задаёт количество результатов, поэтому запрос с n: 4 может тарифицироваться как четыре изображения. Учитывайте в бюджете эксперименты с промптами, варианты и повторные генерации.
Standard подходит для большинства черновиков и обычных материалов. Выбирайте Pro, когда улучшение текста, композиции или деталей оправдывает доплату. При работе с Pro используйте 1K для итераций, а 2K — для утверждённых финальных изображений высокого разрешения.
Доступ и аутентификация
Создайте аккаунт APIMart, пополните баланс и выпустите API-ключ в консоли. Храните ключ в серверном Secret или переменной окружения; никогда не передавайте его в браузерный код и переменные NEXT_PUBLIC_*.
Base URL и Bearer Token
Во всех примерах используется эта Base URL:
https://api.apimart.ai/v1
Передавайте ключ как Bearer Token:
Authorization: Bearer <your_api_key>
Content-Type: application/json
Отсутствующий или неверный ключ обычно вызывает 401, недостаточный баланс — 402, а ограничение частоты — 429. Записывайте ответ и контекст запроса на сервере, но скрывайте API-ключ перед сохранением логов.
Генерация, редактирование и асинхронный процесс
Генерация и редактирование используют POST /v1/images/generations. API сначала возвращает ID задачи, не ожидая готовности изображения.
Основные параметры
| Поле | Обязательно | Описание |
|---|---|---|
model | Да | qwen-image-3.0 или qwen-image-3.0-pro |
prompt | Да | Инструкция для генерации или редактирования, до примерно 4 500 Token |
image_urls | Для редактирования | От одного до трёх HTTPS-адресов или поддерживаемых Base64 Data URL |
resolution | Нет | 1K или 2K |
size | Нет | Поддерживаемое соотношение сторон или собственные размеры |
n | Нет | Число результатов, от 1 до 6 |
prompt_extend | Нет | Следует ли APIMart расширить промпт |
Для собственных размеров каждая сторона должна находиться в диапазоне 512–2 048 пикселей, а соотношение сторон — от 1:8 до 8:1. Референсы поддерживают JPEG, PNG, BMP, TIFF, WebP и GIF; документированный лимит составляет 10 МБ на файл. Перед релизом проверьте актуальную справку по генерации, поскольку ограничения могут меняться.
В официальном анонсе Qwen Image 3.0 заявлена нативная отрисовка текста на 12 языках. Заключайте точный текст в кавычки и проверяйте орфографию, шрифт и компоновку в целевом разрешении.
Пример генерации по тексту
{
"model": "qwen-image-3.0",
"prompt": "Чистый баннер товара с точным текстом \"Летняя распродажа\", жирный геометрический шрифт, тёплый оранжевый фон",
"resolution": "1K",
"size": "16:9",
"n": 1,
"prompt_extend": true
}
Пример редактирования по референсу
Добавьте image_urls, чтобы изменить существующее изображение:
{
"model": "qwen-image-3.0-pro",
"prompt": "Не менять форму товара и заменить фон на студию с мягким освещением",
"image_urls": [
"https://example.com/reference-product.png"
],
"resolution": "2K",
"n": 1
}
Адрес референса должен быть доступен API. Для закрытых файлов используйте подписанный URL с достаточным сроком действия либо поддерживаемый Data URL, когда это уместно.
Асинхронный процесс
Процесс состоит из трёх шагов:
- Отправить задачу через
POST /v1/images/generations. - Прочитать
data[0].task_idиз ответа. - Опросить
GET /v1/tasks/{task_id}до завершения или ошибки.
Ответ на отправку
Успешный ответ имеет следующую форму:
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_example"
}
]
}
Не ищите task_id на верхнем уровне: он находится в первом элементе data.
Опрос и готовый результат
Опрашивайте состояние каждые три–пять секунд, а не непрерывно. Готовые файлы находятся в data.result.images:
{
"code": 200,
"data": {
"status": "completed",
"result": {
"images": [
{
"url": [
"https://example-cdn.com/generated-image.png"
]
}
]
}
}
}
В текущей документации APIMart сказано, что готовые изображения зеркалируются в CDN платформы и доступны длительное время. Тем не менее копируйте утверждённые материалы в собственное хранилище, если вам нужно управлять сроком хранения, удалением, доступом или скоростью доставки.
Примеры интеграции
Интеграция на Python
Этот серверный пример отправляет задачу, опрашивает её каждые три секунды и прекращает ожидание через три минуты:
import os
import time
import requests
API_KEY = os.environ["QWEN_API_KEY"]
BASE_URL = "https://api.apimart.ai/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
def generate_image(prompt: str) -> str:
response = requests.post(
f"{BASE_URL}/images/generations",
headers=HEADERS,
json={"model": "qwen-image-3.0", "prompt": prompt, "resolution": "1K", "n": 1, "prompt_extend": True},
timeout=30,
)
response.raise_for_status()
task_id = response.json()["data"][0]["task_id"]
deadline = time.monotonic() + 180
while time.monotonic() < deadline:
poll = requests.get(f"{BASE_URL}/tasks/{task_id}", headers=HEADERS, timeout=30)
poll.raise_for_status()
task = poll.json()["data"]
if task["status"] == "completed":
return task["result"]["images"][0]["url"][0]
if task["status"] == "failed":
raise RuntimeError(task.get("fail_reason", "Generation failed"))
time.sleep(3)
raise TimeoutError(f"Task {task_id} did not finish within 180 seconds")
В реальном приложении сохраняйте ID задачи до начала опроса. После перезапуска Worker другой Worker сможет продолжить сохранённую задачу без повторной отправки и оплаты дубликата.
Интеграция на JavaScript
Выполняйте этот код только в доверенной серверной среде:
const apiKey = process.env.QWEN_API_KEY;
const baseUrl = "https://api.apimart.ai/v1";
const headers = { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" };
async function requestJson(url, options = {}) {
const response = await fetch(url, { ...options, headers });
const payload = await response.json();
if (!response.ok) throw new Error(`APIMart ${response.status}: ${JSON.stringify(payload)}`);
return payload;
}
async function generateImage(prompt) {
const submission = await requestJson(`${baseUrl}/images/generations`, {
method: "POST",
body: JSON.stringify({
model: "qwen-image-3.0", prompt, resolution: "1K", n: 1, prompt_extend: true,
}),
});
const taskId = submission.data[0].task_id;
const deadline = Date.now() + 180_000;
while (Date.now() < deadline) {
await new Promise((resolve) => setTimeout(resolve, 3000));
const { data: task } = await requestJson(`${baseUrl}/tasks/${taskId}`);
if (task.status === "completed") return task.result.images[0].url[0];
if (task.status === "failed") throw new Error(task.fail_reason ?? "Generation failed");
}
throw new Error(`Task ${taskId} did not finish within 180 seconds`);
}
Тот же процесс можно проверить с помощью cURL:
curl -X POST https://api.apimart.ai/v1/images/generations \
-H "Authorization: Bearer <your_api_key>" \
-H "Content-Type: application/json" \
-d '{"model":"qwen-image-3.0","prompt":"Минималистичная фотография товара","resolution":"1K","n":1}'
curl https://api.apimart.ai/v1/tasks/<task_id> \
-H "Authorization: Bearer <your_api_key>"
Чек-лист для продакшена
Один успешный вызов — только начало. Надёжному конвейеру нужны ограниченные повторы, постоянное состояние задач, наблюдаемость и управляемое хранилище.
Ошибки и стратегия повторов
| Ответ | Значение | Рекомендуемое действие |
|---|---|---|
400 | Неверные параметры | Исправить запрос; не повторять без изменений |
401 | Ключ отсутствует или неверен | Исправить серверные учётные данные |
402 | Недостаточный баланс | Пополнить баланс перед повтором |
429 | Достигнут лимит частоты | Экспоненциальная задержка с jitter |
5xx | Временная ошибка сервиса | Ограниченное число повторов с задержкой |
Не отправляйте генерацию повторно сразу после неоднозначного сетевого таймаута. Если сервер принял первый запрос, второй создаст дублирующую задачу и дополнительную плату. Сохраняйте каждый ID и разделяйте повторы отправки и опроса.
Перед запуском
- Храните API-ключ только в серверном Secret.
- Проверяйте
prompt,resolution,size,nи референсы перед отправкой. - Сохраняйте ID и состояние задачи.
- Опрашивайте раз в три–пять секунд с таймаутом приложения.
- Применяйте экспоненциальную задержку с jitter для
429и повторяемых5xx. - Ограничивайте параллельность по реальным лимитам и задержкам.
- Раздельно учитывайте завершённые, неудачные, просроченные и дублирующие задачи.
- Копируйте утверждённые результаты в своё хранилище, если нужно управлять сроком хранения.
- Перед продакшеном ещё раз проверьте страницу модели Qwen Image 3.0, цены и документацию.
Создавайте изображения с Qwen Image 3.0
Протестируйте Standard и Pro через единый API APIMart, сравните результаты 1K и 2K и перенесите процесс генерации от прототипа к продакшену.
Попробовать Qwen Image 3.0Часто задаваемые вопросы
Как долго опрашивать задачу до таймаута?
APIMart рекомендует интервал три–пять секунд и примерно три минуты клиентского таймаута. Используйте это как отправную точку, измерьте реальную задержку и сохраняйте ID, чтобы позже сверять просроченные задачи.
Истекают ли URL результата через 24 часа?
Текущая документация сообщает, что результаты зеркалируются в CDN платформы и доступны длительное время. Поэтому прежнее утверждение о 24 часах к этой интеграции не относится. Храните критичные материалы в своей инфраструктуре, не полагаясь исключительно на внешнее хранение без гарантированного срока.
Можно ли отправить референс в Base64?
Да. Текущая документация разрешает передать в image_urls от одного до трёх публичных HTTP/HTTPS-адресов или поддерживаемых Base64 Data URL. Каждый файл должен соответствовать форматам и лимиту 10 МБ.
Когда выбирать 1K или 2K?
Используйте 1K для быстрых итераций и материалов без максимальной детализации. Выбирайте 2K для финальных изображений с большим объёмом текста, тонкими краями или крупным отображением. Для Standard обе версии сейчас стоят одинаково, а Pro 2K дороже Pro 1K, поэтому оценивайте задержку, качество и цену вместе.
Выберите нужную модель в маркетплейсе моделей
Попробуйте чат, изображения и видео в маркетплейсе APIMart и быстро оцените возможности моделей через единый API.