Генерация изображений · alibaba

Qwen Image (Gen)

qwen-image

Qwen Image (Gen) — генерация изображений от alibaba, доступная через единый Ranvik API. Поддерживаемые возможности: text_to_image.

от 0.766 ₽ / шт

Технические характеристики

МодальностьГенерация изображений
Провайдерalibaba
СтатусАктивна
ID для запросовqwen-image

Возможности

  • Изображение по тексту

Цены

ЕдиницаЦена
за изображение · 1024x1024 / 20 steps (default)0.766 ₽

Цены указаны в рублях. Списываются с баланса проекта при каждом успешном запросе.

Поддерживаемые параметры

Параметры передаются вендору как есть (pure proxy) — мы не валидируем их у себя на стороне. Если вендор не примет — вернётся его ошибка.

ПараметрТипДиапазон / valuesDefaultОписание
positivePromptrequiredstringmin: 1 · max: 32000— Текстовый промпт описывающий желаемое изображение.
примеры значений
Примеры
Студийный портрет китайской каллиграфии: иероглиф "терпение" чёрной тушью на рисовой бумаге.
negativePromptstringmin: 1 · max: 32000— Что НЕ должно быть в результате. Игнорируется при CFGScale ≤ 1.
widthrequiredintegermin: 128 · max: 2048— Ширина в px. Любое значение от 128 до 2048 с шагом 16. Парный к height.
примеры значений
Примеры
1024
1280
1536
heightrequiredintegermin: 128 · max: 2048— Высота в px. Любое значение от 128 до 2048 с шагом 16. Парный к width.
примеры значений
Примеры
1024
1280
1536
seedintegermin: 0 · max: 9223372036854776000— Seed для воспроизводимой генерации. Если не указан — выбирается случайно.
stepsintegermin: 1 · max: 5020 Количество denoising-шагов. Больше — выше качество, медленнее.
CFGScalenumbermin: 1 · max: 20— Guidance scale (шаг 0.01). Выше — строже следует prompt, ниже — больше креатива.
schedulerenumDDIM, DDIMScheduler, DDPMScheduler, DEISMultistepScheduler, Default, DPM++, DPM++ 2M, DPM++ 2M Beta, DPM++ 2M Exponential, DPM++ 2M Karras, DPM++ 2M SDE, DPM++ 2M SDE Beta, DPM++ 2M SDE Exponential, DPM++ 2M SDE Karras, DPM++ 2M SDE Uniform, DPM++ 2M Uniform, DPM++ 3M, DPM++ 3M Beta, DPM++ 3M Exponential, DPM++ 3M Karras, DPM++ 3M SDE Uniform, DPM++ 3M Uniform, DPM++ Beta, DPM++ Exponential, DPM++ Karras, DPM++ SDE, DPM++ SDE Beta, DPM++ SDE Exponential, DPM++ SDE Karras, DPM++ Uniform, DPM++ Uniform Beta, DPM++ Uniform Exponential, DPM++ Uniform Karras, DPMSolverMultistepInverse, DPMSolverMultistepScheduler, DPMSolverSinglestepScheduler, EDMDPMSolverMultistepScheduler, EDMEulerScheduler, Euler, Euler a, Euler Beta, Euler DiscreteScheduler, Euler Exponential, Euler Karras, EulerAncestralDiscreteScheduler, FlowMatchEulerDiscreteScheduler, Heun, HeunDiscreteScheduler, Heun Karras, IPNDMScheduler, IPNDM Uniform, IPNDM Uniform Beta, IPNDM Uniform Exponential, IPNDM Uniform Karras, KDPM2AncestralDiscreteScheduler, KDPM2DiscreteScheduler, LCM, LCMScheduler, LMS, LMSDiscreteScheduler, LMS Karras, PNDMScheduler, TCDScheduler, UniPC, UniPC 2M, UniPC 2M Karras, UniPC 2M Uniform, UniPC 3M, UniPC 3M Karras, UniPC 3M Uniform, UniPC Karras, UniPC Uniform, UniPC Uniform Beta, UniPC Uniform Exponential, UniPC Uniform Karras— 75 опций scheduler-а для diffusion. Default — выбирается моделью. DPM++ 2M Karras и Euler a — популярные универсальные варианты.
inputs.seedImagestring—— Стартовое изображение для img2img / edit (UUID / URL / Data URI / Base64). Используется вместе с strength.
примеры значений
Примеры
https://example.com/source.jpg
inputs.maskImagestring—— Маска для inpainting (UUID / URL / Data URI / Base64). Белые области — где разрешено редактировать.
примеры значений
Примеры
https://example.com/mask.png
inputs.strengthnumbermin: 0 · max: 10.8 Сила трансформации для img2img. 0 — почти не изменять, 1 — полная перерисовка.
loraarray of objectsmin: 1— Конфигурация LoRA адаптеров. Каждый item — объект {model, weight}.
1 формата ввода
LoRA config object[]
ПолеТипЗначенияОписание
modelreqstring— Идентификатор LoRA модели.
weightnumbermin: -4 · max: 4 Сила влияния LoRA (-4..4). Отрицательные — обратный эффект.
[
  {
    "model": "civitai:12345@67890",
    "weight": 0.8
  }
]
controlNetarray of objectsmin: 1— Конфигурация ControlNet моделей для precise guidance (canny, depth, pose, etc.).
1 формата ввода
ControlNet config object[]
ПолеТипЗначенияОписание
modelreqstring— ControlNet идентификатор.
guideImagereqstring— Reference изображение для guidance (UUID / URL / Data URI / Base64).
weightnumbermin: -4 · max: 4 Сила влияния ControlNet.
controlModeenumbalanced, controlnet, prompt Приоритет: balanced — баланс, controlnet — controlnet важнее, prompt — prompt важнее.
[
  {
    "model": "runware:25@1",
    "guideImage": "https://example.com/pose.png",
    "weight": 1,
    "controlMode": "balanced"
  }
]
outpaint.topintegermin: 0— Сколько пикселей расширить сверху при outpainting.
outpaint.bottomintegermin: 0— Сколько пикселей расширить снизу при outpainting.
outpaint.leftintegermin: 0— Сколько пикселей расширить слева при outpainting.
outpaint.rightintegermin: 0— Сколько пикселей расширить справа при outpainting.
settings.trueCFGScalenumber—— True Classifier-Free Guidance scale (продвинутая альтернатива CFGScale для некоторых режимов).
numberResultsintegermin: 1 · max: 201 Сколько вариаций сгенерировать. Для image — до 20 за один запрос.
outputTypeenumURL, base64Data, dataURIURL Формат доставки: URL — CDN-ссылка (default), base64Data — raw base64, dataURI — data:image/...;base64,...
outputFormatenumJPG, PNG, WEBPJPG Формат изображения.
outputQualityintegermin: 20 · max: 9995 Качество компрессии (20–99).
asyncboolean—false true → task_id для async-polling. false (default) → sync.
safety.checkContentboolean—false Включить проверку контента на NSFW / запрещёнку.
safety.modeenumnone, fastnone Режим safety-сканера.
webhookURLstring—— URL для POST-уведомления при готовности async-задачи.
примеры значений
Примеры
https://yourapp.com/webhooks/runware
uploadEndpointstring—— Presigned URL для автозагрузки готового изображения.
примеры значений
Примеры
https://bucket.s3.amazonaws.com/result.png?X-Amz-Signature=...

Параметры ответа

Что возвращает API. У медиа-моделей формат зависит от режима: sync — сразу результат, async — task_id для опроса через GET /v1/tasks/{id}.

Sync (HTTP 200)

Sync-ответ (default). HTTP 200 + JSON.

ПолеТипЗначенияОписание
createdinteger— Unix timestamp когда сгенерировано.
dataarray—
Каждый элемент:
  • url— string · CDN URL картинки (если outputType=URL).
  • b64_json— string · Base64-кодированный PNG/JPG (если outputType=base64Data).
  • taskUUID— string · Идентификатор upstream-задачи (для chain в i2i и т.п.).
  • seed— integer · Использованный seed (если детерминистичная генерация).
providerstring— Вендор для отладки.

Async (HTTP 202)

Если в запросе передан async:true → HTTP 202.

ПолеТипЗначенияОписание
idstring— task_id для опроса через GET /v1/tasks/{id}.
objectstringimage.task
statusenumqueued, processing, completed, failed
modelstring— Public model id.
createdinteger—

Опрос статуса (GET /v1/tasks/{id})

GET /v1/tasks/{id} — опрос статуса async-задачи.

ПолеТипЗначенияОписание
idstring—
objectstringtask
statusenumqueued, processing, completed, failed, canceled
modalitystringimage
modelstring—
createdinteger—
dataarray—
Каждый элемент:
  • url— string · CDN URL артефакта (если completed).
errorstring— Сообщение об ошибке (если failed).

Пример запроса

from openai import OpenAI

client = OpenAI(api_key="rk_live_...", base_url="https://api.ranvik.ru/v1")
resp = client.images.generate(
    model= "qwen-image",
    positivePrompt= "Пример промпта",
    width= 1088,
    height= 1088,
    negativePrompt= "Пример промпта",
    seed= 4611686018427388000,
    steps= 20,
    CFGScale= 10.5,
    scheduler= "DDIM",
    lora= [],
    controlNet= [],
    numberResults= 1,
    outputType= "URL",
    outputFormat= "JPG",
    outputQuality= 95,
    async= False,
    webhookURL= "https://example.com/...",
    uploadEndpoint= "value",
    inputs= {
        "seedImage": "Пример промпта",
        "maskImage": "Пример промпта",
        "strength": 0.8
    },
    outpaint= {
        "top": 0,
        "bottom": 0,
        "left": 0,
        "right": 0
    },
    settings= {
        "TrueCFGScale": 1
    },
    safety= {
        "checkContent": False,
        "mode": "none"
    },
)
print(resp)

Замените rk_live_... на ваш ключ из кабинета.