Обзор Yes Ai API Qwen Images чекпойты и сэмплеры - часть 2

Чтобы интегрировать Qwen Images в свой проект, регулярно обновляйте списки моделей (чекпойнты) и сэмплеры — со временем они могут изменяться или пополняться новыми вариантами. Делать это каждый день смысла нет: обычно хватает раз в неделю обратиться к API и получить свежие данные.

Обзор Yes Ai API Qwen Images чекпойты и сэмплеры - часть 2

При любом запросе на генерацию или редактирование изображения через Qwen Images нужно обязательно указывать два параметра: "checkpoint_id" и "sampler_id". Без них ничего не заработает — система должна понимать, с какой моделью и каким методом работать.

Чекпойнты Qwen (переменная checkpoint_id) определяют, какую именно модель нейросеть использует для генерации изображений. В системе реализовано несколько различных чекпойнтов — каждый отвечает за свой уникальный стиль и “умеет” рисовать людей с определённой внешностью, персонажей, различные образы. Например, одна модель хорошо справляется с реализмом, другая заточена под аниме-стилистику, третья — настоящий мастер по созданию пейзажей.

Сэмплеры (переменная sampler_id) выступают обработчиками генераций. Они влияют на качество, детализацию, визуальный стиль, а также на скорость самой генерации. В большинстве случаев пользователи выбирают стандартный “euler” и получают оптимальный результат.

Перед стартом работы с Qwen полезно один раз синхронизировать список чекпойнтов и сэмплеров, чтобы работать с актуальными вариантами. Лучше выделить пару минут каждую неделю для сверки — вдруг платформа Yes Ai пополнится новыми интересными вариантами. Если проект предусматривает, дайте пользователям возможность выбирать модель и сэмплер самостоятельно.

Хотите посмотреть на отличия изображений, созданных на разных чекпойнтах и сэмплерах? Просто протестируйте прямо в нашем Telegram-боте с интеграцией Qwen Images.

Синхронизировать списки автоматически не обязательно. Но есть риск, что пропустите свежие обновления. Если доверяете больше ручному контролю — просто не забывайте следить за нашим Telegram-каналом: там всегда публикуются все крупные новости и апдейты системы.

Получаем список доступных моделей (чекпойнт) для Qwen Images и Qwen Image Edit

Получить список доступных чекпойнтов для нейросетей Qwen Images и Qwen Image Edit на самом деле просто, если знать пару нюансов. Сначала важно понять, что чекпойнты для генерации и для редактирования изображений — разные. Если попытаетесь применить генеративную модель для редактирования или наоборот — ничего не получится.

  • Генерация по промтам — когда вы просто пишете текстовый запрос (промт) и ждёте полностью новое изображение. Референсы не нужны. Чтобы узнать, какие чекпойнты доступны для такого типа заданий, отправьте в API Yes Ai запрос, где в параметре "type" указано значение "qwen_prompts".
  • Редактирование (модификация) изображений — тут всё наоборот. Вы даёте не только промт, но и исходное изображение (референс), которое нужно поменять. Такой подход актуален и для нейрофотосессий, там всегда нужен референс. Получить список чекпойнтов для этой задачи можно аналогично, просто подберите в запросе "type": "qwen_references".

Мой совет по опыту разработки: храните оба списка чекпойнтов у себя в базе, это ускорит работу бэкенда. Как только пользователь выбирает режим — генерация с нуля или модификация по референсу — подтягивайте актуальный список из базы и подставляйте нужный при отправке запроса в API. Да и с ростом количества моделей вы сэкономите время на ручном обновлении.

GET https://api.yesai.su/v2/qwen/checkpoints?type=qwen_prompts
headers: { Content-Type: application/json, Authorization: Bearer }

Пример запроса для получения списка моделей Qwen Images:

curl -X GET https://api.yesai.su/v2/qwen/checkpoints?type=qwen_prompts -H "Authorization: Bearer <token>" -H "Content-Type: application/json"

Параметры:

  • type = '' (опционально, тип чекпоинта, по умолчанию: 'qwen_prompts', доступные варианты: 'qwen_prompts' и 'qwen_references')

Список возможных ошибок:
['success' => false, 'message' => 'TYPE_IS_EMPTY'], 400
['success' => false, 'message' => 'TYPE_NOT_VALID'], 400['success' => false, 'message' => 'LIMIT_OFFSET_IS_EMPTY'], 400
['success' => false, 'message' => 'LIMIT_OFFSET_NOT_VALID'], 400
['success' => false, 'message' => 'LIMIT_COUNT_IS_EMPTY'], 400
['success' => false, 'message' => 'LIMIT_COUNT_NOT_VALID'], 400
['success' => false, 'message' => 'SORT_FIELD_IS_EMPTY'], 400
['success' => false, 'message' => 'SORT_FIELD_NOT_VALID'], 400
['success' => false, 'message' => 'SORT_ORDER_IS_EMPTY'], 400
['success' => false, 'message' => 'SORT_ORDER_NOT_VALID'], 400
['success' => false, 'message' => 'DATA_TYPE_IS_EMPTY'], 400
['success' => false, 'message' => 'DATA_TYPE_NOT_VALID'], 400
['success' => false, 'message' => 'ID_OFFSET_IS_EMPTY'], 400
['success' => false, 'message' => 'ID_OFFSET_NOT_VALID'], 400
['success' => false, 'message' => 'UNAUTHORIZED'], 401
['success' => false, 'message' => 'USER_HAS_BEEN_BANNED'], 409
['success' => false, 'message' => 'USER_HAS_BEEN_DELETED'], 409
['success' => false, 'message' => 'TOO_MANY_REQUESTS'], 429
['success' => false, 'message' => 'INTERNAL_SERVER_ERROR'], 500

Сообщение об успешном запросе:

['success' => true, 'message' => 'OK', 'results' => ['checkpoints_data' => [ ... ]]], 200

Вот так может выглядеть ответ API, когда запрашиваешь список чекпойнтов для нейросети Qwen Images (если нужно сгенерировать картинку только по тексту, без референса):

{ "success": true, "message": "OK", "results": { "checkpoints_data": { "info": { "count": 2, // количество чекпойнтов Qwen Images, подходящих для генераций изображений по промтам без референсов "max_id": 3, "limit_offset": 0, "limit_count": 20, "sort_field": "id", "sort_order": 0, "id_offset": 2147483647 }, "data": [ { "id": 3, // id второго чекпойнта Qwen Images для генерации по промтам без референсов "name": "QWEN.Realistic", // название второго чекпойнта Qwen Images "type": "qwen_prompts", // тип чекпойнта, где qwen_prompts указывает на то, что модель подходит только для генерации изображений по промтам без референсов "created_at": 1758590396, "updated_at": 1759589594 }, { "id": 1, // id первого чекпойнта Qwen Images для генерации по промтам без референсов "name": "QWEN.Basic", // название первого чекпойнта Qwen Images "type": "qwen_prompts", // тип чекпойнта, где qwen_prompts указывает на то, что модель подходит только для генерации изображений по промтам без референсов "created_at": 1755821898, "updated_at": 1759589589 } ] } } }

Получаем список доступных сэмплеров для Qwen Images

Список сэмплеров для Qwen Images и Qwen Image Edit является общим.

GET https://api.yesai.su/v2/qwen/samplers
headers: { Content-Type: application/json, Authorization: Bearer }

Возможные ошибки:

['success' => false, 'message' => 'LIMIT_OFFSET_IS_EMPTY'], 400
['success' => false, 'message' => 'LIMIT_OFFSET_NOT_VALID'], 400
['success' => false, 'message' => 'LIMIT_COUNT_IS_EMPTY'], 400
['success' => false, 'message' => 'LIMIT_COUNT_NOT_VALID'], 400
['success' => false, 'message' => 'SORT_FIELD_IS_EMPTY'], 400
['success' => false, 'message' => 'SORT_FIELD_NOT_VALID'], 400
['success' => false, 'message' => 'SORT_ORDER_IS_EMPTY'], 400
['success' => false, 'message' => 'SORT_ORDER_NOT_VALID'], 400
['success' => false, 'message' => 'DATA_TYPE_IS_EMPTY'], 400
['success' => false, 'message' => 'DATA_TYPE_NOT_VALID'], 400
['success' => false, 'message' => 'ID_OFFSET_IS_EMPTY'], 400
['success' => false, 'message' => 'ID_OFFSET_NOT_VALID'], 400
['success' => false, 'message' => 'UNAUTHORIZED'], 401
['success' => false, 'message' => 'USER_HAS_BEEN_BANNED'], 409
['success' => false, 'message' => 'USER_HAS_BEEN_DELETED'], 409
['success' => false, 'message' => 'TOO_MANY_REQUESTS'], 429
['success' => false, 'message' => 'INTERNAL_SERVER_ERROR'], 500

Сообщение об успешном запросе:

['success' => true, 'message' => 'OK', 'results' => ['samplers_data' => [ ... ]]], 200

Ответ API при получении списка сэмплеров для нейросети Qwen Images:

{ "success": true, "message": "OK", "results": { "samplers_data": { "info": { "count": 1, // количество доступных сэмплеров для нейросети Qwen Images "max_id": 1, "limit_offset": 0, "limit_count": 20, "sort_field": "id", "sort_order": 0, "id_offset": 2147483647 }, "data": [ { "id": 1, // id первого сэмплера "name": "euler", // название первого сэмплера "created_at": 1755822088, "updated_at": 1755871240 } ] } } }
Начать дискуссию