Обзор API Yes Ai Dalle-3, нейросети для генерации изображений

На данный момент API, официально предложенный разработчиками нейросети Dalle-3, доступен исключительно для версии, выпущенной компанией OpenAI. В случае же с моделью от Bing такая возможность не предусмотрена. Однако наш сервис Yes Ai предлагает универсальное решение и предоставляет собственный интерфейс API, который полностью повторяет функционал официального. Благодаря этому пользователи смогут работать с любой из версий Dalle-3 без ограничений в своих проектах.

Обзор API Yes Ai Dalle-3, нейросети для генерации изображений
Обзор API Yes Ai Dalle-3, нейросети для генерации изображений

Стоит особо подчеркнуть, что нейросеть Dalle-3 идеально подойдет тем, кто предпочитает формулировать запросы в виде простых текстовых инструкций, не нагруженных сложными командами или дополнительными параметрами. Модель прекрасно распознает детализацию героев, художественных стилевых приемов и отдельных предметов, а также эффективно комбинирует несколько объектов в одном изображении.

Cуществуют две основные разновидности нейросети Dalle-3, которые различаются характеристиками и стоимостью:

  • Версия от Bing является бюджетным решением. Она генерирует изображения только в одном формате — квадратном, размером 1024х1024 пикселей, не предлагая дополнительных функций и настроек.
  • Версия от Open AI — это уже премиальный вариант, имеющий расширенные возможности. Здесь пользователь может указать разные пропорции изображения и получить итоговые картинки заметно более высокого качества.

Большинство пользователей предпочитает именно Dalle-3 от Bing, поскольку версия Open AI порой неоправданно дорога. При необходимости высококачественного результата и гибких настроек становится гораздо разумнее и выгоднее применять Flux.1 или Midjourney: эти варианты превосходят экономически и по качеству вариант от Open AI.

Поэтому в данном руководстве мы рассмотрим только процесс подачи запросов через API Yes AI к версии от Bing. Ее преимущества очевидны — доступная цена генераций и простота пользования, что особенно удобно для новичков при знакомстве с возможностями ИИ по созданию изображений.

Если же для проекта все-таки нужен доступ к API нейросети Dalle-3 Open AI, пожалуйста, обратитесь в техническую поддержку компании @yes_ai_support


Перед добавлением генератора Dalle-3 в ваш собственный проект рекомендуем проверить его возможности и изучить работу этой системы через специальный телеграм-бот — @yes_ai_bot

Как отправить запрос на создание изображений через Dalle-3 в Bing, используя API Yes Ai

Пример запроса для создания изображения с помощью нейросети Dalle-3, интегрированной в поисковик Bing:

curl -X POST https://api.yesai.su/v2/dalle/generations -H "Authorization: Bearer <token>" -H "Content-Type: application/json" -d '{ "prompt": "текст вашего промпта на любом языке", "style":"2,3", "model_id":2 }'

Параметры:

  • model_id = 2 (обязательно, id модели, по умолчанию: 2, доступные варианты: 1 - openai, 2 - bing)
  • style = '', '0', '1' или '2,3,4' (опционально, стиль задания, по умолчанию: 0, доступные варианты: 0 - без стиля, 1 - случайный стиль, 2 - Midjourney, 3 - Steampunk, 4 - Cyberpunk, 5 - Anime, 6 - Logo, 7 - Photo, 8 - Image, 9 - Cinema, 10 - Illustration, 11 - Horror, 12 - Detailed, 13 - Space, 14 - Gothic, 15 - Surrealism, 16 - Realism, 17 - Fantasy, 18 - Sci-Fi, 19 - FantasyArt, 20 - ComicBook, 21 - PixelArt, 22 - 3D, 23 - LineArt, 24 - Origami, 25 - Isometric, 26 - NeonPunk, 27 - PrimeAnime, 28 - Watercolor, 29 - Pop art, 30 - Kawaii, 31 - Minimalism, 32 - RetroFutur, 33 - Dystopian, 34 - Advertising, 35 - Renaissance, 36 - Biomechanical, 37 - Futuristic, 38 - Art deco, 39 - Cubism, 40 - Fashion, 41 - RPG, 42 - Disco, 43 - Architecture, 44 - Luxury, 45 - Cybernetic, 46 - RetroCyber, 47 - BioCyber, 48 - FairyTale, 49 - Pin-up)
  • prompt = '' (обязательным условием является то, что само задание должно представлять собой текст - промпт, содержащий минимум пятнадцать символов и как минимум два пробела)

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

['success' => false, 'message' => 'MODEL_ID_IS_EMPTY'], 400
['success' => false, 'message' => 'MODEL_ID_NOT_VALID'], 400
['success' => false, 'message' => 'ID_IS_EMPTY'], 400
['success' => false, 'message' => 'ID_NOT_VALID'], 400
['success' => false, 'message' => 'TYPE_IS_EMPTY'], 400
['success' => false, 'message' => 'TYPE_NOT_VALID'], 400
['success' => false, 'message' => 'STYLE_IS_EMPTY'], 400
['success' => false, 'message' => 'STYLE_NOT_VALID'], 400
['success' => false, 'message' => 'PROMPT_IS_EMPTY'], 400
['success' => false, 'message' => 'PROMPT_NOT_VALID'], 400
['success' => false, 'message' => 'OPENAI_WIDTH_IS_EMPTY'], 400
['success' => false, 'message' => 'OPENAI_WIDTH_NOT_VALID'], 400
['success' => false, 'message' => 'OPENAI_HEIGHT_IS_EMPTY'], 400
['success' => false, 'message' => 'OPENAI_HEIGHT_NOT_VALID'], 400
['success' => false, 'message' => 'OPENAI_QUALITY_ID_IS_EMPTY'], 400
['success' => false, 'message' => 'OPENAI_QUALITY_ID_NOT_VALID'], 400
['success' => false, 'message' => 'OPENAI_STYLE_ID_IS_EMPTY'], 400
['success' => false, 'message' => 'OPENAI_STYLE_ID_NOT_VALID'], 400
['success' => false, 'message' => 'UNAUTHORIZED'], 401
['success' => false, 'message' => 'ID_NOT_FOUND'], 404
['success' => false, 'message' => 'MODEL_ID_NOT_FOUND'], 404
['success' => false, 'message' => 'OPENAI_WIDTH_NOT_FOUND'], 404
['success' => false, 'message' => 'OPENAI_HEIGHT_NOT_FOUND'], 404
['success' => false, 'message' => 'OPENAI_WHSIZES_NOT_FOUND'], 404
['success' => false, 'message' => 'OPENAI_QUALITY_ID_NOT_FOUND'], 404
['success' => false, 'message' => 'OPENAI_STYLE_ID_NOT_FOUND'], 404
['success' => false, 'message' => 'USER_HAS_BEEN_BANNED'], 409
['success' => false, 'message' => 'USER_HAS_BEEN_DELETED'], 409
['success' => false, 'message' => 'NOT_ENOUGH_RPOINTS'], 409
['success' => false, 'message' => 'PROMPT_NSFW_WORDS'], 409
['success' => false, 'message' => 'PROMPT_FAILED_TO_TRANSLATE'], 409
['success' => false, 'message' => 'STYLE_LIMIT_EXCEEDED'], 409
['success' => false, 'message' => 'TASK_LIMIT_EXCEEDED'], 409
['success' => false, 'message' => 'TASK_IS_NOT_COMPLETED'], 409
['success' => false, 'message' => 'MODIFICATION_FORBIDDEN'], 409
['success' => false, 'message' => 'TOO_MANY_REQUESTS'], 429
['success' => false, 'message' => 'INTERNAL_SERVER_ERROR'], 500

Успех:
['success' => true, 'message' => 'OK', 'results' => ['generation_data' => [ ... ]]], 200

После того как вы успешно отправите задание, система предоставит вам специальный идентификатор (ID). Данный уникальный код понадобится позже, когда потребуется проверить текущее состояние вашего запроса и получить итоговый результат. Более того, указав данный идентификатор, вы сможете просмотреть список всех созданных изображений из данного задания. Как правило, нейросеть Dalle-3 от Bing формирует изображения пачками по четыре штуки.

Как узнать состояние и получить итоговый результат задания по его идентификатору?

GET https://api.yesai.su/v2/dalle/generations/{id}/batch
headers: { Content-Type: application/json, Authorization: Bearer }

Запрос для получения статуса выполнения задания, пример:

curl -X GET https://api.yesai.su/v2/dalle/generations/{id}/batch -H "Authorization: Bearer <token>" -H "Content-Type: application/json"

Возможные коды статусов:

"status": 0 ("status_description":"in queue") - задание находится в очереди, пожалуйста, подождите некоторое время.
"status": 1 ("status_description":"in progress") - задание уже находится в работе. Следует немного подождать завершения обработки.
"status": 2 ("status_description":"completed") - задание успешно завершено. Теперь вы можете приступать к обработке полученных результатов. Обратите внимание, что ссылки на изображения из пакета будут появляться постепенно с временным промежутком от 3 до 10 секунд.
"status": 3 ("status_description":"rejected with error") - задание отклонено с указанием ошибки. В таком случае обязательно проверьте описание причины отказа, размещённое в блоках «comment_ru» и «comment_en».
"status": 4 ("status_description":"rejected due to timeout") - задание было отклонено из-за превышения времени ожидания (таймаут). Необходимо отправить задание повторно.

Параметры:
{id} = 12345 (обязательно, id задания)

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

['success' => false, 'message' => 'ID_IS_EMPTY'], 400
['success' => false, 'message' => 'ID_NOT_VALID'], 400
['success' => false, 'message' => 'UNAUTHORIZED'], 401
['success' => false, 'message' => 'ID_NOT_FOUND'], 404
['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' => ['generations_data' => [ ... ]]], 200

Как разобрать JSON-данные, полученные из API (batch), на примере задания по генерации изображений в Dalle-3

Как выглядит типичный ответ API при запросе статуса задания по указанному идентификатору: пример и разбор

{ "success": true, // данные успешно получены "message": "OK", "results": { "generations_data": { "info": { "count": 4, // количество изображений в задании "max_id": 105, "limit_offset": 0, "limit_count": 20, "sort_field": "id", "sort_order": 1, "id_offset": 2147483647 }, "data": [ { "id": 102, // id первого задания в пачке "user_id": 1234567890, // id пользователя, подавшего задание "tariff_id": 30, "model_id": 2, // id модели нейросети Dalle-3, где 2 - это Bing "type": 0, "styles": [], "settings": { "model_alias": "bing" }, "child_ids": [ 103, 104, 105 ], "parent_id": 0, "result_url": "https://yesai.su/files/dalle/generations/1234567890_1743899267253650.png", // ссылка на скачивание первого изображения из пачки "result_type": "image", "result_data": { "image_width": 1024, // ширина изображения в пикселях "image_height": 1024, // высота изображения в пикселях "image_mime_type": "image/png" }, "comment_ru": "", // комментарий к заданию на русском языке, будет заполнен только при ошибке генерации со статуосм 3 "comment_en": "", // комментарий к заданию на английском языке, будет заполнен только при ошибке генерации со статуосм 3 "accounting": { "total_cost": 0.15, "spent_points": 0, "spent_rpoints": 0.15, // стоимость генерации в 🔅монетах. Все генерации в нейросети Dalle-3 тарифицируются в монетах "spent_repost_points": 0, "spent_balance": 0, "spent_rbalance": 0, "remaining_points": 1820, "remaining_rpoints": 2572.60595736, // остаток 🔅монет на балансе заказчика в помент выполнения задания "remaining_repost_points": 0, "remaining_balance": 0, "remaining_rbalance": 18511.94731 }, "language": "", "prompt": "текст промта", // исходный текст промта, по которому сгенерировано изображение "prompt_en": "kitty is crying", // текст промта на английском языке, по которому сгенерировано изображение "prompt_language": "source", "status": 2, "status_description": "completed", // статус задания, где 'completed' - это успешное выполнение "start_at": 1743899233, // время начала выполнения задания в формате Unixtime "finish_at": 1743899268, // время завершения выполнения задания в формате Unixtime "created_at": 1743899227, // время подачи задания в формате Unixtime "updated_at": 1743899278, "deleted_at": 0 }, { // здесь будет находиться блок с данными о второй генерации в пачке. Блоки JSON идентичны тем, которые были описаны выше. }, { // здесь будет находиться блок с данными о третьей генерации в пачке. Блоки JSON идентичны тем, которые были описаны выше. }, { // здесь будет находиться блок с данными о четвертой генерации в пачке. Блоки JSON идентичны тем, которые были описаны выше. } ] } } }

Внимание! Учтите, что после отправки задания первую проверку результата следует проводить не раньше, чем через полминуты. Это связано с тем, что быстрее указанного периода генерация изображений выполнена не будет. Если при первой проверке вы увидели хотя бы одну готовую ссылку в разделе "result_url", то дальнейший контроль состояния задания следует осуществлять примерно каждые 5 секунд.

Обратите внимание, если вы увидели уже четыре сгенерированных изображения, значит дальнейшие проверки больше не имеют смысла, так как максимальное количество генераций на каждое задание — четыре. Бывают ситуации, когда после нескольких проверочных запросов количество ссылок на создаваемые изображения так и не увеличивается и меньше максимума. Это указывает на неполный возврат результатов нейросетью, что периодически возможно. В таком случае дальнейшие проверки проводить также нет смысла.

Как обрабатываются готовые изображения, созданные через API Yes Ai в нейросети Dalle-3?

После того как нейросеть Dalle-3 успешно завершит генерацию изображения, каждому пользователю предоставляется индивидуальная ссылка для загрузки картинки. Полученные изображения доступны к скачиванию в удобных форматах "PNG" или "JPG", и хранятся на нашем сервере ровно один час (60 минут).

Настоятельно рекомендуем незамедлительно после завершения генерации сохранить созданные изображения непосредственно на ваш сервер, чтобы избежать потери данных.

В случае возникновения вопросов или затруднений свяжитесь с нашей техподдержкой через мессенджер Telegram — @yes_ai_support. Мы рады вам помочь!

4
Начать дискуссию