Быстрый старт с API Qwen Image 2512: Генерируйте изображения за минуты (2026)
Привет, я Дора. Раньше я тратила много времени на создание изображений для продуктов: поиск активов, изменение размера, переименование файлов, организация папок… каждый шаг повторялся бесконечно. Ничего из этого не было сложным, но это было утомительно. Позже я попробовала Qwen Image 2512 API и обнаружила, что могу автоматизировать все это всего несколькими строками кода.
Это не реклама. Я просто делюсь тем, что на самом деле произошло, когда я это попробовала — что прошло гладко, где я споткнулась и как я сделала это надежно полезным.
Ярлык WaveSpeed (если вам просто нужны результаты)
Если вы просто хотите быстро генерировать изображения, не собирая всё самостоятельно:
- WaveSpeed уже предоставляет готовый к использованию Qwen Image 2512 REST API (без холодных запусков).
- Используйте конечную точку WaveSpeed + API ключ → всё готово.
- Если вы хотите разобраться с официальным потоком DashScope (и типичными ошибками), продолжайте читать.
Что этот API может на самом деле делать?
Проще говоря: вы вводите описание текстом, и он выдает вам изображение.
Например, если вы напишете:
“Аккуратный стол с блокнотом и растением при мягком свете”
через несколько секунд вы получите изображение, которое соответствует вашему описанию — и вы можете автоматически сохранить его на свой компьютер.
Для чего это хорошо:
- Создание досок настроения
- Быстрое создание миниатюр
- Добавление изображений-заполнителей в документы
- Создание визуализаций прототипов для продуктов
Что я заметила:
В первый раз, когда я его использовала, это не казалось намного быстрее, чем вручную искать изображения. Но после двух-трёх запусков я понял, что мне больше не нужно ломать голову над вопросами вроде “какой размер должно быть это?” или “как мне назвать файл?”. То, что это мне сэкономило, было не просто время, а умственные усилия.
Формат изображения и хранилище
- Формат: PNG, автоматически генерируется по умолчанию
- Где хранится изображение:
- API возвращает ссылку (URL) на изображение
- Ссылка указывает на сервер Alibaba Cloud
- Важно: ссылка действительна только 24 часа; после этого она истекает
- Поэтому вам нужно загрузить её на свой компьютер побыстрее
Примечание: API не выдает файл изображения непосредственно. Если вы хотите сохранить его локально, вам нужно добавить этап загрузки в ваш код (объяснено позже).
Перед началом: что вам нужно
Шаг 1: Получите учётную запись и API ключ
- Зарегистрируйте учётную запись Alibaba Cloud

- Перейдите в Model Studio Console
- Создайте API ключ (как ключ, который доказывает, что это вы)
- Сохраните ключ как переменную окружения с именем
DASHSCOPE_API_KEY
Переменная окружения:
Думайте об этом как о специальном месте на вашем компьютере, где живёт ваш ключ, поэтому ваш код может автоматически его найти без копирования каждый раз.
Советы:
- Для тестирования вы можете сохранить его в файл
.env - Для реального использования инструмент управления ключами безопаснее
- В регионах Пекина и Сингапура разные ключи — не путайте их
Шаг 2: Выберите инструмент
Есть три основных способа, начиная с самого простого:

-
cURL (самый простой)
- Хорош для быстрых тестов, чтобы проверить, работает ли API
- Программирование не требуется, просто вставьте команду
- Рекомендуется для первой попытки
-
Python (самый распространённый)
- Хорош для создания небольшого инструмента для повторного использования
- Я использую официальный DashScope SDK для автоматической обработки многих деталей
- Некоторые базовые знания Python помогают
-
Node.js (удобно для фронтенд-разработчиков)
- Если вы фронтенд-разработчик, это тоже работает
- Принципы те же, хотя я не буду его здесь рассматривать
Сначала попробуйте Playground:
Если вы просто хотите быстро протестировать результаты, Wavespeed Playground позволяет генерировать изображения в браузере. Идеально для нечастого использования. Для массовой генерации или автоматизации продолжайте читать, чтобы узнать, как использовать API.
Быстрый старт: тестирование с cURL
Откройте ваш терминал (Mac) или командную строку (Windows) и вставьте это:
curl --location 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--data '{
"model": "qwen-image-max",
"input": {
"messages": [
{
"role": "user",
"content": [
{"text": "A tidy desk with a notebook and a plant under soft light"}
]
}
]
},
"parameters": {
"size": "1024*1024"
}
}'
Нажмите Enter, подождите несколько секунд, и вы увидите JSON ответ со ссылкой на ваше изображение.
Ошибки, в которые я наткнулась
- Имя модели должно быть
qwen-image-max, а неqwen-image-2512или что-то другое. - Формат размера использует звёздочку
1024*1024, а не1024x1024. - Для региона Сингапура измените URL на:
https://dashscope-intl.aliyuncs.com/api/v1/...
Если вы создаёте что-то похожее на production, официальный поток DashScope полностью рабочий — но он имеет операционные детали (регионы, время жизни URL, повторы). Именно поэтому я люблю использовать WaveSpeed для повседневной работы: он дает мне Qwen Image 2512 за готовым к использованию REST API, поэтому я могу сосредоточиться на подсказках и управлении выходом вместо сантехники.

Параметры объяснены
Требуемые
-
model
"qwen-image-max"— официальное имя для Qwen-Image-2512- Есть также
"qwen-image-plus", похожий но дешевле
-
input.messages
- Массив с одним элементом
text— это ваше описание- Максимум 800 символов (около 400 китайских символов)
Необязательные (используются значения по умолчанию, если опущены)
-
parameters.size
1664*928(16:9 ландшафт)1472*1104(4:3)1328*1328(1:1 квадрат, по умолчанию)1104*1472(3:4 портрет)928*1664(9:16 портрет)
-
parameters.negative_prompt
- Вещи, которые вы не хотите: например,
"low-res, blurry, distorted, oversaturated" - До 500 символов
- Вещи, которые вы не хотите: например,
-
parameters.prompt_extend
- По умолчанию
true - Автоматически обогащает ваше описание
- Отключите, если вы хотите строгий контроль
- По умолчанию
-
parameters.watermark
- По умолчанию
false - Добавляет водяной знак “Qwen-Image” если
true
- По умолчанию
-
parameters.seed
- Диапазон
0–2147483647 - Один и тот же seed + одно и то же описание = одно и то же изображение
- Полезно для тестирования и сравнения результатов
- Диапазон
Пример ответа API
{
"output": {
"choices": [
{
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": [
{
"image": "https://dashscope-result-sz.oss-cn-shenzhen.aliyuncs.com/xxx.png?Expires=xxxx"
}
]
}
}
]
},
"usage": {
"width": 1328,
"image_count": 1,
"height": 1328
},
"request_id": "xxx"
}
Ключевые моменты
- URL изображения:
output.choices[0].message.content[0].image - Проверьте, что
finish_reason— это"stop"чтобы подтвердить успех - Ссылки действуют 24 часа — загружайте побыстрее
Автоматизация с Python
Если вам нужна массовая генерация или небольшой инструмент:
import os
import time
import requests
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
API_KEY = os.getenv("DASHSCOPE_API_KEY")
ENDPOINT = "https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation"
HEADERS = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}",
}
def generate_image(prompt: str, size="1328*1328"):
payload = {
"model": "qwen-image-max",
"input": {
"messages": [{"role": "user", "content": [{"text": prompt}]}]
},
"parameters": {"size": size, "prompt_extend": True, "watermark": False}
}
r = requests.post(ENDPOINT, headers=HEADERS, json=payload, timeout=120)
r.raise_for_status()
data = r.json()
choices = data.get("output", {}).get("choices", [])
if not choices:
raise ValueError(f"No image generated:\n{data}")
content = choices[0].get("message", {}).get("content", [])
if not content:
raise ValueError(f"Empty content:\n{data}")
image_url = content[0].get("image")
if not image_url:
raise ValueError(f"No image URL:\n{data}")
img_response = requests.get(image_url)
img_response.raise_for_status()
file_name = PurePosixPath(unquote(urlparse(image_url).path)).parts[-1]
ts = int(time.time())
path = f"qwen_image_{ts}_{file_name}"
with open(path, "wb") as f:
f.write(img_response.content)
return path
if __name__ == "__main__":
output_path = generate_image("A tidy desk with a notebook and a plant under soft light")
print("Image saved at:", output_path)
Что я узнала во время тестирования
- Неправильное имя модели ломает его (
qwen-image-plus→qwen-image-max) - Неправильный формат размера (
1328x1328вместо1328*1328) - Структура ответа немного отличается от документации; проверьте URL изображения
- Забывчивость при загрузке изображения приводит к истечению ссылки через 24 часа
Использование официального SDK
import os
import json
from dashscope import MultiModalConversation
api_key = os.getenv("DASHSCOPE_API_KEY")
messages = [{"role": "user", "content": [{"text": "A tidy desk with a notebook and a plant under soft light"}]}]
response = MultiModalConversation.call(
api_key=api_key,
model="qwen-image-max",
messages=messages,
result_format='message',
stream=False,
watermark=False,
prompt_extend=True,
size='1328*1328'
)
if response.status_code == 200:
print(json.dumps(response, ensure_ascii=False))
image_url = response.output.choices[0].message.content[0]['image']
print(f"Image URL: {image_url}")
else:
print(f"Error: {response.code} - {response.message}")
Краткий справочник параметров
| Параметр | Предложенное значение | Примечания |
|---|---|---|
| size | 1328*1328 | Квадрат, сбалансированная скорость и качество |
| prompt_extend | TRUE | Дайте ИИ обогатить ваше описание |
| seed | Фиксированное число | Используйте для тестирования для сравнения результатов |
| negative_prompt | По мере необходимости | например, “blurry, low quality, distorted” |
Когда менять seed
- Фиксированный seed → сравнить вариации подсказок
- Разные seeds → генерировать несколько различных изображений
Частые ошибки и их исправления
401 Unauthorized→ неправильный API ключ, неправильный регион или отсутствие разрешения на изображение429 Rate limit→ слишком много запросов; добавьте задержку или обновите квоту- Timeout / проблемы с сетью → увеличьте timeout, загружайте немедленно
Небольшие улучшения, которые я добавила
- Фиксированный seed для тестирования подсказок → легче сравнивать результаты
- Непротиворечивое именование файлов:
{keyword}-{size}-{seed}.png - Управление конфигурацией: YAML, чтобы избежать жёсткого кодирования параметров
Для кого это работает
Playground
- Случайная генерация изображений
- Быстрое тестирование подсказок
- Автоматизация не требуется
API
- Массовая генерация
- Интеграция инструмента или продукта
- Запланированное или системное использование
Финальные пути (выберите то, что вам подходит)
Путь A — быстро и практично
- Используйте WaveSpeed Playground API для Qwen Image 2512
- Минимальная настройка, готовый к использованию REST endpoint
Путь B — полный контроль
- Используйте DashScope напрямую, если вам нужна глубокая интеграция с Alibaba Cloud
Мне нравятся инструменты, которые просто спокойно работают в фоне. Для обучения и понимания официальный поток отлично. Для повседневной работы и более быстрой доставки WaveSpeed экономит мне много трудностей.





