CyHUB
EnglishПолучить ключ

Recraft API

Картинки Recraft и настоящий вектор SVG по описанию, версии V4.1 и V4.1 Pro. Правка вашей картинки: замена и стирание области по маске, расширение кадра, замена фона. Ещё похожие варианты, перевод в вектор, удаление фона и апскейл.

Разработчик: RecraftКлюч модели в API: recraft

Для нейросети:Скачать .mdВся документация .mdОткрыть как текст

Подключение в три шага

  1. Получите ключКлюч создаётся в кабинете после подтверждения почты. Один ключ открывает все модели.
  2. Узнайте ценуPOST /v1/price считает стоимость запуска заранее, деньги при этом не списываются.
  3. Запустите задачу и заберите результатPOST /v1/tasks ставит задачу, GET /v1/tasks/{id} показывает её статус и файлы.

Готовый код

Замените YOUR_API_KEY своим ключом. Код ставит задачу и ждёт результата. В cURL второй запрос повторяйте, подставив вместо TASK_ID поле id из ответа первого, пока status не станет succeeded.

cURL
curl -X POST "https://api.cyhub.ai/v1/tasks" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "recraft",
  "settings": {
    "mode": "text_to_image",
    "prompt": "Деревянная вывеска кофейни с надписью «Утро», тёплый вечерний свет",
    "engine": "v4_1",
    "aspect_ratio": "3:2"
  }
}'

curl "https://api.cyhub.ai/v1/tasks/TASK_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
Python
import time

import requests

API = "https://api.cyhub.ai/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

body = {
    "model": "recraft",
    "settings": {
        "mode": "text_to_image",
        "prompt": "Деревянная вывеска кофейни с надписью «Утро», тёплый вечерний свет",
        "engine": "v4_1",
        "aspect_ratio": "3:2",
    },
}

response = requests.post(f"{API}/tasks", json=body, headers=HEADERS, timeout=60)
response.raise_for_status()
task = response.json()
while task["status"] in ("queued", "running"):
    time.sleep(5)
    task = requests.get(f"{API}/tasks/{task['id']}", headers=HEADERS, timeout=30).json()
print(task["status"], task["result"])
Node.js
const API = "https://api.cyhub.ai/v1";
const HEADERS = { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" };

const body = {
  "model": "recraft",
  "settings": {
    "mode": "text_to_image",
    "prompt": "Деревянная вывеска кофейни с надписью «Утро», тёплый вечерний свет",
    "engine": "v4_1",
    "aspect_ratio": "3:2"
  }
};

async function main() {
  let response = await fetch(`${API}/tasks`, { method: "POST", headers: HEADERS, body: JSON.stringify(body) });
  if (!response.ok) throw new Error(await response.text());
  let task = await response.json();
  while (task.status === "queued" || task.status === "running") {
    await new Promise((resolve) => setTimeout(resolve, 5000));
    response = await fetch(`${API}/tasks/${task.id}`, { headers: HEADERS });
    task = await response.json();
  }
  console.log(task.status, task.result);
}

main();
Получить ключ

Цена до запуска

Цены на 15.10.2026: от 1 ₽. Точную цену своих настроек покажет POST /v1/price.

РежимЦена
Картинка по описаниюот 6 ₽
V4.1 (лучший баланс) engine = v4_1от 6 ₽
V4.1 Pro (максимум качества) engine = v4_1_proот 31 ₽
Вектор по описаниюот 12 ₽
V4.1 (лучший баланс) engine = v4_1от 12 ₽
V4.1 Pro (максимум качества) engine = v4_1_proот 43 ₽
Переделать картинкуот 6 ₽
Заменить областьот 6 ₽
Стереть лишнееот 1 ₽
Расширить кадрот 6 ₽
Заменить фонот 6 ₽
Фон по маскеот 6 ₽
Похожие вариантыот 6 ₽
Перевести в векторот 2 ₽
Убрать фонот 2 ₽
Апскейлот 1 ₽
Апскейл с дорисовкойот 36 ₽

Отправьте те же настройки в POST /v1/price: ответ покажет цену запуска, деньги при этом не списываются.

cURL
curl -X POST "https://api.cyhub.ai/v1/price" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "recraft",
  "settings": {
    "mode": "text_to_image",
    "prompt": "Деревянная вывеска кофейни с надписью «Утро», тёплый вечерний свет",
    "engine": "v4_1",
    "aspect_ratio": "3:2"
  }
}'
  • amount_minor: цена запуска в копейках (для рублей)
  • currency: валюта кошелька
  • available_minor: сколько сейчас доступно на балансе для новых задач

Режимы

У каждого режима свои параметры и примеры. Режим выбирает поле mode.

Картинка по описанию

Рисует картинку с нуля по описанию. Recraft хорошо держит текст в кадре.

Значение поля mode: text_to_image

Цена в этом режиме от 6 ₽.

Параметры

Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

promptОбязательно

Что нарисовать. Слова, которые должны быть на картинке, пишите в кавычках. С движками V3 и V2 не длиннее 1000 символов.

Тип: СтрокаМинимум символов: 1Максимум символов: 2000
engineНеобязательно

Движок, от него зависит цена. V4.1: лучший баланс. V4.1 Pro: максимум качества, крупнее (квадрат 2048 на 2048 против 1024 на 1024) и заметно дороже. V3: умеет готовые стили. V2: самый дешёвый.

Тип: СтрокаДопустимые значения: v4_1v4_1_proПо умолчанию: "v4_1"
styleНеобязательно

Готовый стиль: фотореализм или иллюстрация. Есть только у V3 и V2, у V4.1 манеру задают словами в описании.

Тип: СтрокаДопустимые значения: noneНабор зависит от engine.По умолчанию: "none"
aspect_ratioНеобязательно

Пропорции кадра.

Тип: СтрокаДопустимые значения: 1:13:22:34:33:416:99:162:11:2По умолчанию: "1:1"
countНеобязательно

Сколько вариантов сделать за раз, от 1 до 6. Каждый оплачивается отдельно.

Тип: Целое числоМинимум: 1Максимум: 6По умолчанию: 1

Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

Входные данные

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

    Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

    Вывеска с надписью

    JSON
    {
      "model": "recraft",
      "settings": {
        "mode": "text_to_image",
        "prompt": "Деревянная вывеска кофейни с надписью «Утро», тёплый вечерний свет",
        "engine": "v4_1",
        "aspect_ratio": "3:2"
      }
    }

    Цена считается при приёме задачи, валюта RUB.

    Полный пример запуска

    Результат

    • Обычно готово за время от нескольких секунд до минуты.
    • Картинки приходят файлами WebP без потери качества, столько, сколько задано в count.
    Вид (kind)ФорматыСколькоПояснение
    imagewebpот 1 до 6Сколько задано в count.

    Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

    JSON
    {
      "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "status": "succeeded",
      "finished_at": "2026-10-01T12:03:41+00:00",
      "result": {
        "caption": "Подпись к результату: модель и настройки",
        "texts": [],
        "files_expire_at": "2026-10-08T12:03:41+00:00",
        "files_expired": false,
        "artifacts": [
          {
            "index": 0,
            "kind": "image",
            "filename": "image.webp",
            "size": 1843200,
            "caption": "",
            "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
          }
        ]
      }
    }
    Как читать результат и скачивать файлы

    Вектор по описанию

    Рисует с нуля настоящий вектор SVG: логотипы, иконки, плоские иллюстрации.

    Значение поля mode: text_to_vector

    Цена в этом режиме от 12 ₽.

    Параметры

    Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

    promptОбязательно

    Что нарисовать. Слова, которые должны быть на картинке, пишите в кавычках. С движками V3 и V2 не длиннее 1000 символов.

    Тип: СтрокаМинимум символов: 1Максимум символов: 2000
    engineНеобязательно

    Движок, от него зависит цена. V4.1: лучший баланс. V4.1 Pro: максимум качества, заметно дороже. V3: прошлое поколение. V2: самый дешёвый.

    Тип: СтрокаДопустимые значения: v4_1v4_1_proПо умолчанию: "v4_1"
    aspect_ratioНеобязательно

    Пропорции кадра.

    Тип: СтрокаДопустимые значения: 1:13:22:34:33:416:99:162:11:2По умолчанию: "1:1"
    countНеобязательно

    Сколько вариантов сделать за раз, от 1 до 6. Каждый оплачивается отдельно.

    Тип: Целое числоМинимум: 1Максимум: 6По умолчанию: 1

    Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

    Входные данные

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

      Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

      Иконка

      JSON
      {
        "model": "recraft",
        "settings": {
          "mode": "text_to_vector",
          "prompt": "Плоская иконка ракеты в два цвета, толстый контур",
          "engine": "v4_1",
          "aspect_ratio": "1:1"
        }
      }

      Цена считается при приёме задачи, валюта RUB.

      Полный пример запуска

      Результат

      • Обычно готово за время от нескольких секунд до минуты.
      • Результат в SVG: настоящий вектор, его можно увеличивать без потерь и править в редакторе. Файлов столько, сколько задано в count.
      Вид (kind)ФорматыСколькоПояснение
      documentsvgот 1 до 6Сколько задано в count.

      Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

      JSON
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "status": "succeeded",
        "finished_at": "2026-10-01T12:03:41+00:00",
        "result": {
          "caption": "Подпись к результату: модель и настройки",
          "texts": [],
          "files_expire_at": "2026-10-08T12:03:41+00:00",
          "files_expired": false,
          "artifacts": [
            {
              "index": 0,
              "kind": "document",
              "filename": "result.svg",
              "size": 2097152,
              "caption": "",
              "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
            }
          ]
        }
      }
      Как читать результат и скачивать файлы

      Переделать картинку

      Ваша картинка плюс описание: модель рисует новую, сохраняя композицию и цвета исходника. Насколько далеко уйти, задаёт strength.

      Значение поля mode: image_to_image

      Цена в этом режиме от 6 ₽.

      Параметры

      Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

      image_urlsОбязательно

      Одна ссылка на исходную картинку.

      Тип: Список (Строка, uri)Максимум элементов: 1
      promptОбязательно

      Какой должна получиться картинка, до 1000 символов. Предметы называйте словами: модель рисует по описанию и не понимает отсылок вроде «тот же предмет».

      Тип: СтрокаМинимум символов: 1Максимум символов: 1000
      strengthНеобязательно

      Насколько далеко уйти от исходника: 0.2 слегка подправить, 0.5 заметно переделать, 0.8 почти нарисовать заново.

      Тип: СтрокаДопустимые значения: 0.20.50.8По умолчанию: "0.5"
      countНеобязательно

      Сколько вариантов сделать за раз, от 1 до 6. Каждый оплачивается отдельно.

      Тип: Целое числоМинимум: 1Максимум: 6По умолчанию: 1

      Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

      Входные данные

      • Картинка передаётся ссылкой на JPEG, PNG или WebP до 10 МБ, не больше 16 мегапикселей, каждая сторона от 256 до 4096 пикселей.
      ПолеЧто принимаетФорматыФайловРазмер файла до
      image_urlsКартинкиjpeg, jpg, png, webp110 МБ
      Как передать файлы

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

      Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

      Другой интерьер

      JSON
      {
        "model": "recraft",
        "settings": {
          "mode": "image_to_image",
          "image_urls": [
            "https://example.com/living-room.jpg"
          ],
          "prompt": "Гостиная в скандинавском стиле: светлый диван, дубовый стол, растения в горшках",
          "strength": "0.5"
        }
      }

      Цена считается при приёме задачи, валюта RUB.

      Полный пример запуска

      Результат

      • Обычно готово за время от нескольких секунд до минуты.
      • Картинки приходят файлами WebP без потери качества, столько, сколько задано в count.
      Вид (kind)ФорматыСколькоПояснение
      imagewebpот 1 до 6Сколько задано в count.

      Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

      JSON
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "status": "succeeded",
        "finished_at": "2026-10-01T12:03:41+00:00",
        "result": {
          "caption": "Подпись к результату: модель и настройки",
          "texts": [],
          "files_expire_at": "2026-10-08T12:03:41+00:00",
          "files_expired": false,
          "artifacts": [
            {
              "index": 0,
              "kind": "image",
              "filename": "image.webp",
              "size": 1843200,
              "caption": "",
              "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
            }
          ]
        }
      }
      Как читать результат и скачивать файлы

      Заменить область

      Перерисовывает по описанию часть картинки, отмеченную маской. Остальное не меняется.

      Значение поля mode: inpaint

      Цена в этом режиме от 6 ₽.

      Параметры

      Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

      image_urlsОбязательно

      Одна ссылка на исходную картинку.

      Тип: Список (Строка, uri)Максимум элементов: 1
      mask_urlsОбязательно

      Одна ссылка на маску: картинку в оттенках серого ровно того же размера, что исходник. Белым отмечено то, что перерисовать, чёрным то, что оставить.

      Тип: Список (Строка, uri)Максимум элементов: 1
      promptОбязательно

      Описание всей картинки, какой она должна стать, а не только отмеченного куска, до 1000 символов. Короткая команда вроде «напиши тут GG» область только затрёт.

      Тип: СтрокаМинимум символов: 1Максимум символов: 1000
      countНеобязательно

      Сколько вариантов сделать за раз, от 1 до 6. Каждый оплачивается отдельно.

      Тип: Целое числоМинимум: 1Максимум: 6По умолчанию: 1

      Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

      Входные данные

      • Картинка передаётся ссылкой на JPEG, PNG или WebP до 10 МБ, не больше 16 мегапикселей, каждая сторона от 256 до 4096 пикселей.
      • Маска: картинка PNG или JPEG в оттенках серого (один канал, без цвета и прозрачности) ровно того же размера, что исходник. Белым отмечено то, что меняется, чёрным то, что остаётся. Цветная маска не подойдёт, даже если на вид она чёрно-белая.
      • Лучше PNG: нужны только чистый чёрный и чистый белый, а JPEG при сжатии даёт серые пиксели на границах.
      • Картинку и маску мы скачиваем сами: ссылка должна отдавать файл сразу, без переадресации.
      ПолеЧто принимаетФорматыФайловРазмер файла до
      image_urlsКартинкиjpeg, jpg, png, webp110 МБ
      mask_urlsКартинкиjpeg, jpg, png110 МБ
      Как передать файлы

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

      Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

      Кактус на подоконнике

      JSON
      {
        "model": "recraft",
        "settings": {
          "mode": "inpaint",
          "image_urls": [
            "https://example.com/room.jpg"
          ],
          "mask_urls": [
            "https://example.com/room-mask.png"
          ],
          "prompt": "Светлая комната, на подоконнике стоит глиняный горшок с кактусом"
        }
      }

      Цена считается при приёме задачи, валюта RUB.

      Полный пример запуска

      Результат

      • Обычно готово за время от нескольких секунд до минуты.
      • Картинки приходят файлами WebP без потери качества, столько, сколько задано в count.
      Вид (kind)ФорматыСколькоПояснение
      imagewebpот 1 до 6Сколько задано в count.

      Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

      JSON
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "status": "succeeded",
        "finished_at": "2026-10-01T12:03:41+00:00",
        "result": {
          "caption": "Подпись к результату: модель и настройки",
          "texts": [],
          "files_expire_at": "2026-10-08T12:03:41+00:00",
          "files_expired": false,
          "artifacts": [
            {
              "index": 0,
              "kind": "image",
              "filename": "image.webp",
              "size": 1843200,
              "caption": "",
              "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
            }
          ]
        }
      }
      Как читать результат и скачивать файлы

      Стереть лишнее

      Убирает с картинки то, что отмечено маской, и достраивает фон под ним. Описание не нужно.

      Значение поля mode: erase

      Цена в этом режиме от 1 ₽.

      Параметры

      Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

      image_urlsОбязательно

      Одна ссылка на исходную картинку.

      Тип: Список (Строка, uri)Максимум элементов: 1
      mask_urlsОбязательно

      Одна ссылка на маску: картинку в оттенках серого ровно того же размера, что исходник. Белым отмечено то, что стереть, чёрным то, что оставить.

      Тип: Список (Строка, uri)Максимум элементов: 1

      Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

      Входные данные

      • Картинка передаётся ссылкой на JPEG, PNG или WebP до 10 МБ, не больше 16 мегапикселей, каждая сторона от 256 до 4096 пикселей.
      • Маска: картинка PNG или JPEG в оттенках серого (один канал, без цвета и прозрачности) ровно того же размера, что исходник. Белым отмечено то, что меняется, чёрным то, что остаётся. Цветная маска не подойдёт, даже если на вид она чёрно-белая.
      • Лучше PNG: нужны только чистый чёрный и чистый белый, а JPEG при сжатии даёт серые пиксели на границах.
      • Картинку и маску мы скачиваем сами: ссылка должна отдавать файл сразу, без переадресации.
      ПолеЧто принимаетФорматыФайловРазмер файла до
      image_urlsКартинкиjpeg, jpg, png, webp110 МБ
      mask_urlsКартинкиjpeg, jpg, png110 МБ
      Как передать файлы

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

      Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

      Убрать прохожего

      JSON
      {
        "model": "recraft",
        "settings": {
          "mode": "erase",
          "image_urls": [
            "https://example.com/beach.jpg"
          ],
          "mask_urls": [
            "https://example.com/beach-mask.png"
          ]
        }
      }

      Цена считается при приёме задачи, валюта RUB.

      Полный пример запуска

      Результат

      • Обычно готово за время от нескольких секунд до минуты.
      • Картинка приходит файлом WebP без потери качества.
      Вид (kind)ФорматыСколькоПояснение
      imagewebp1

      Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

      JSON
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "status": "succeeded",
        "finished_at": "2026-10-01T12:03:41+00:00",
        "result": {
          "caption": "Подпись к результату: модель и настройки",
          "texts": [],
          "files_expire_at": "2026-10-08T12:03:41+00:00",
          "files_expired": false,
          "artifacts": [
            {
              "index": 0,
              "kind": "image",
              "filename": "image.webp",
              "size": 1843200,
              "caption": "",
              "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
            }
          ]
        }
      }
      Как читать результат и скачивать файлы

      Расширить кадр

      Дорисовывает картинку в стороны на заданное число пикселей.

      Значение поля mode: outpaint

      Цена в этом режиме от 6 ₽.

      Параметры

      Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

      image_urlsОбязательно

      Одна ссылка на исходную картинку.

      Тип: Список (Строка, uri)Максимум элементов: 1
      promptОбязательно

      Что должно появиться в дорисованной части, до 1000 символов.

      Тип: СтрокаМинимум символов: 1Максимум символов: 1000
      expand_leftНеобязательно

      На сколько пикселей дорисовать слева, от 0 до 1024.

      Тип: Целое числоМинимум: 0Максимум: 1024По умолчанию: 0
      expand_rightНеобязательно

      На сколько пикселей дорисовать справа, от 0 до 1024.

      Тип: Целое числоМинимум: 0Максимум: 1024По умолчанию: 0
      expand_topНеобязательно

      На сколько пикселей дорисовать сверху, от 0 до 1024.

      Тип: Целое числоМинимум: 0Максимум: 1024По умолчанию: 0
      expand_bottomНеобязательно

      На сколько пикселей дорисовать снизу, от 0 до 1024.

      Тип: Целое числоМинимум: 0Максимум: 1024По умолчанию: 0
      countНеобязательно

      Сколько вариантов сделать за раз, от 1 до 6. Каждый оплачивается отдельно.

      Тип: Целое числоМинимум: 1Максимум: 6По умолчанию: 1

      Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

      Входные данные

      • Картинка передаётся ссылкой на JPEG, PNG или WebP до 10 МБ, не больше 16 мегапикселей, каждая сторона от 256 до 4096 пикселей.
      • Хотя бы одна сторона больше нуля. Итоговый кадр не больше 4096 пикселей по каждой стороне.
      ПолеЧто принимаетФорматыФайловРазмер файла до
      image_urlsКартинкиjpeg, jpg, png, webp110 МБ
      Как передать файлы

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

      Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

      Шире по бокам

      JSON
      {
        "model": "recraft",
        "settings": {
          "mode": "outpaint",
          "image_urls": [
            "https://example.com/portrait.jpg"
          ],
          "prompt": "Песчаный пляж и спокойное море до горизонта",
          "expand_left": 512,
          "expand_right": 512
        }
      }

      Цена считается при приёме задачи, валюта RUB.

      Полный пример запуска

      Результат

      • Обычно готово за время от нескольких секунд до минуты.
      • Картинки приходят файлами WebP без потери качества, столько, сколько задано в count.
      Вид (kind)ФорматыСколькоПояснение
      imagewebpот 1 до 6Сколько задано в count.

      Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

      JSON
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "status": "succeeded",
        "finished_at": "2026-10-01T12:03:41+00:00",
        "result": {
          "caption": "Подпись к результату: модель и настройки",
          "texts": [],
          "files_expire_at": "2026-10-08T12:03:41+00:00",
          "files_expired": false,
          "artifacts": [
            {
              "index": 0,
              "kind": "image",
              "filename": "image.webp",
              "size": 1843200,
              "caption": "",
              "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
            }
          ]
        }
      }
      Как читать результат и скачивать файлы

      Заменить фон

      Объект остаётся, а фон Recraft находит сам и переписывает по описанию.

      Значение поля mode: replace_background

      Цена в этом режиме от 6 ₽.

      Параметры

      Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

      image_urlsОбязательно

      Одна ссылка на исходную картинку.

      Тип: Список (Строка, uri)Максимум элементов: 1
      promptОбязательно

      Каким должен стать фон, до 1000 символов.

      Тип: СтрокаМинимум символов: 1Максимум символов: 1000
      countНеобязательно

      Сколько вариантов сделать за раз, от 1 до 6. Каждый оплачивается отдельно.

      Тип: Целое числоМинимум: 1Максимум: 6По умолчанию: 1

      Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

      Входные данные

      • Картинка передаётся ссылкой на JPEG, PNG или WebP до 10 МБ, не больше 16 мегапикселей, каждая сторона от 256 до 4096 пикселей.
      ПолеЧто принимаетФорматыФайловРазмер файла до
      image_urlsКартинкиjpeg, jpg, png, webp110 МБ
      Как передать файлы

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

      Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

      Товар на мраморе

      JSON
      {
        "model": "recraft",
        "settings": {
          "mode": "replace_background",
          "image_urls": [
            "https://example.com/bottle.png"
          ],
          "prompt": "Мраморная столешница, мягкий утренний свет"
        }
      }

      Цена считается при приёме задачи, валюта RUB.

      Полный пример запуска

      Результат

      • Обычно готово за время от нескольких секунд до минуты.
      • Картинки приходят файлами WebP без потери качества, столько, сколько задано в count.
      Вид (kind)ФорматыСколькоПояснение
      imagewebpот 1 до 6Сколько задано в count.

      Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

      JSON
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "status": "succeeded",
        "finished_at": "2026-10-01T12:03:41+00:00",
        "result": {
          "caption": "Подпись к результату: модель и настройки",
          "texts": [],
          "files_expire_at": "2026-10-08T12:03:41+00:00",
          "files_expired": false,
          "artifacts": [
            {
              "index": 0,
              "kind": "image",
              "filename": "image.webp",
              "size": 1843200,
              "caption": "",
              "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
            }
          ]
        }
      }
      Как читать результат и скачивать файлы

      Фон по маске

      Как замена фона, но где фон, задаёт маска.

      Значение поля mode: generate_background

      Цена в этом режиме от 6 ₽.

      Параметры

      Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

      image_urlsОбязательно

      Одна ссылка на исходную картинку.

      Тип: Список (Строка, uri)Максимум элементов: 1
      mask_urlsОбязательно

      Одна ссылка на маску: картинку в оттенках серого ровно того же размера, что исходник. Белым отмечено, где рисовать новый фон, чёрным объект, который остаётся.

      Тип: Список (Строка, uri)Максимум элементов: 1
      promptОбязательно

      Каким должен стать фон, до 1000 символов.

      Тип: СтрокаМинимум символов: 1Максимум символов: 1000
      countНеобязательно

      Сколько вариантов сделать за раз, от 1 до 6. Каждый оплачивается отдельно.

      Тип: Целое числоМинимум: 1Максимум: 6По умолчанию: 1

      Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

      Входные данные

      • Картинка передаётся ссылкой на JPEG, PNG или WebP до 10 МБ, не больше 16 мегапикселей, каждая сторона от 256 до 4096 пикселей.
      • Маска: картинка PNG или JPEG в оттенках серого (один канал, без цвета и прозрачности) ровно того же размера, что исходник. Белым отмечено то, что меняется, чёрным то, что остаётся. Цветная маска не подойдёт, даже если на вид она чёрно-белая.
      • Лучше PNG: нужны только чистый чёрный и чистый белый, а JPEG при сжатии даёт серые пиксели на границах.
      • Картинку и маску мы скачиваем сами: ссылка должна отдавать файл сразу, без переадресации.
      ПолеЧто принимаетФорматыФайловРазмер файла до
      image_urlsКартинкиjpeg, jpg, png, webp110 МБ
      mask_urlsКартинкиjpeg, jpg, png110 МБ
      Как передать файлы

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

      Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

      Кроссовок у стены

      JSON
      {
        "model": "recraft",
        "settings": {
          "mode": "generate_background",
          "image_urls": [
            "https://example.com/sneaker.png"
          ],
          "mask_urls": [
            "https://example.com/sneaker-mask.png"
          ],
          "prompt": "Бетонная стена с граффити, дневной свет"
        }
      }

      Цена считается при приёме задачи, валюта RUB.

      Полный пример запуска

      Результат

      • Обычно готово за время от нескольких секунд до минуты.
      • Картинки приходят файлами WebP без потери качества, столько, сколько задано в count.
      Вид (kind)ФорматыСколькоПояснение
      imagewebpот 1 до 6Сколько задано в count.

      Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

      JSON
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "status": "succeeded",
        "finished_at": "2026-10-01T12:03:41+00:00",
        "result": {
          "caption": "Подпись к результату: модель и настройки",
          "texts": [],
          "files_expire_at": "2026-10-08T12:03:41+00:00",
          "files_expired": false,
          "artifacts": [
            {
              "index": 0,
              "kind": "image",
              "filename": "image.webp",
              "size": 1843200,
              "caption": "",
              "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
            }
          ]
        }
      }
      Как читать результат и скачивать файлы

      Похожие варианты

      Несколько вариаций вашей картинки: меняются детали, положение предметов и композиция, общая идея остаётся. Описание не нужно.

      Значение поля mode: variate

      Цена в этом режиме от 6 ₽.

      Параметры

      Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

      image_urlsОбязательно

      Одна ссылка на исходную картинку.

      Тип: Список (Строка, uri)Максимум элементов: 1
      aspect_ratioНеобязательно

      Пропорции вариантов.

      Тип: СтрокаДопустимые значения: 1:13:22:34:33:416:99:162:11:2По умолчанию: "1:1"
      countНеобязательно

      Сколько вариантов сделать за раз, от 1 до 6. Каждый оплачивается отдельно.

      Тип: Целое числоМинимум: 1Максимум: 6По умолчанию: 1

      Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

      Входные данные

      • Картинка передаётся ссылкой на JPEG, PNG или WebP до 10 МБ, не больше 16 мегапикселей, каждая сторона от 256 до 4096 пикселей.
      ПолеЧто принимаетФорматыФайловРазмер файла до
      image_urlsКартинкиjpeg, jpg, png, webp110 МБ
      Как передать файлы

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

      Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

      Три варианта персонажа

      JSON
      {
        "model": "recraft",
        "settings": {
          "mode": "variate",
          "image_urls": [
            "https://example.com/mascot.png"
          ],
          "aspect_ratio": "1:1",
          "count": 3
        }
      }

      Цена считается при приёме задачи, валюта RUB.

      Полный пример запуска

      Результат

      • Обычно готово за время от нескольких секунд до минуты.
      • Картинки приходят файлами WebP без потери качества, столько, сколько задано в count.
      Вид (kind)ФорматыСколькоПояснение
      imagewebpот 1 до 6Сколько задано в count.

      Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

      JSON
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "status": "succeeded",
        "finished_at": "2026-10-01T12:03:41+00:00",
        "result": {
          "caption": "Подпись к результату: модель и настройки",
          "texts": [],
          "files_expire_at": "2026-10-08T12:03:41+00:00",
          "files_expired": false,
          "artifacts": [
            {
              "index": 0,
              "kind": "image",
              "filename": "image.webp",
              "size": 1843200,
              "caption": "",
              "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
            }
          ]
        }
      }
      Как читать результат и скачивать файлы

      Перевести в вектор

      Переводит картинку в настоящий вектор SVG. Описание не нужно.

      Значение поля mode: vectorize

      Цена в этом режиме от 2 ₽.

      Параметры

      Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

      image_urlsОбязательно

      Одна ссылка на исходную картинку.

      Тип: Список (Строка, uri)Максимум элементов: 1

      Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

      Входные данные

      • Картинка передаётся ссылкой на JPEG, PNG или WebP до 10 МБ, не больше 16 мегапикселей, каждая сторона от 256 до 4096 пикселей.
      ПолеЧто принимаетФорматыФайловРазмер файла до
      image_urlsКартинкиjpeg, jpg, png, webp110 МБ
      Как передать файлы

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

      Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

      Логотип в вектор

      JSON
      {
        "model": "recraft",
        "settings": {
          "mode": "vectorize",
          "image_urls": [
            "https://example.com/logo.png"
          ]
        }
      }

      Цена считается при приёме задачи, валюта RUB.

      Полный пример запуска

      Результат

      • Обычно готово за время от нескольких секунд до минуты.
      • Результат: один файл SVG.
      Вид (kind)ФорматыСколькоПояснение
      documentsvg1

      Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

      JSON
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "status": "succeeded",
        "finished_at": "2026-10-01T12:03:41+00:00",
        "result": {
          "caption": "Подпись к результату: модель и настройки",
          "texts": [],
          "files_expire_at": "2026-10-08T12:03:41+00:00",
          "files_expired": false,
          "artifacts": [
            {
              "index": 0,
              "kind": "document",
              "filename": "result.svg",
              "size": 2097152,
              "caption": "",
              "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
            }
          ]
        }
      }
      Как читать результат и скачивать файлы

      Убрать фон

      Вырезает объект и убирает фон. Описание не нужно.

      Значение поля mode: remove_background

      Цена в этом режиме от 2 ₽.

      Параметры

      Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

      image_urlsОбязательно

      Одна ссылка на исходную картинку.

      Тип: Список (Строка, uri)Максимум элементов: 1

      Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

      Входные данные

      • Картинка передаётся ссылкой на JPEG, PNG или WebP до 10 МБ, не больше 16 мегапикселей, каждая сторона от 256 до 4096 пикселей.
      ПолеЧто принимаетФорматыФайловРазмер файла до
      image_urlsКартинкиjpeg, jpg, png, webp110 МБ
      Как передать файлы

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

      Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

      Товар без фона

      JSON
      {
        "model": "recraft",
        "settings": {
          "mode": "remove_background",
          "image_urls": [
            "https://example.com/product.jpg"
          ]
        }
      }

      Цена считается при приёме задачи, валюта RUB.

      Полный пример запуска

      Результат

      • Обычно готово за время от нескольких секунд до минуты.
      • Картинка с прозрачным фоном, файл WebP без потери качества.
      Вид (kind)ФорматыСколькоПояснение
      imagewebp1

      Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

      JSON
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "status": "succeeded",
        "finished_at": "2026-10-01T12:03:41+00:00",
        "result": {
          "caption": "Подпись к результату: модель и настройки",
          "texts": [],
          "files_expire_at": "2026-10-08T12:03:41+00:00",
          "files_expired": false,
          "artifacts": [
            {
              "index": 0,
              "kind": "image",
              "filename": "image.webp",
              "size": 1843200,
              "caption": "",
              "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
            }
          ]
        }
      }
      Как читать результат и скачивать файлы

      Апскейл

      Увеличивает картинку: линии остаются резкими, нового не появляется. Описание не нужно.

      Значение поля mode: upscale_crisp

      Цена в этом режиме от 1 ₽.

      Параметры

      Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

      image_urlsОбязательно

      Одна ссылка на исходную картинку.

      Тип: Список (Строка, uri)Максимум элементов: 1

      Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

      Входные данные

      • Картинка передаётся ссылкой на JPEG, PNG или WebP до 10 МБ, не больше 16 мегапикселей, каждая сторона от 32 до 4096 пикселей.
      ПолеЧто принимаетФорматыФайловРазмер файла до
      image_urlsКартинкиjpeg, jpg, png, webp110 МБ
      Как передать файлы

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

      Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

      Увеличить маленькую картинку

      JSON
      {
        "model": "recraft",
        "settings": {
          "mode": "upscale_crisp",
          "image_urls": [
            "https://example.com/small.png"
          ]
        }
      }

      Цена считается при приёме задачи, валюта RUB.

      Полный пример запуска

      Результат

      • Обычно готово за время от нескольких секунд до минуты.
      • Картинка приходит файлом WebP без потери качества.
      Вид (kind)ФорматыСколькоПояснение
      imagewebp1

      Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

      JSON
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "status": "succeeded",
        "finished_at": "2026-10-01T12:03:41+00:00",
        "result": {
          "caption": "Подпись к результату: модель и настройки",
          "texts": [],
          "files_expire_at": "2026-10-08T12:03:41+00:00",
          "files_expired": false,
          "artifacts": [
            {
              "index": 0,
              "kind": "image",
              "filename": "image.webp",
              "size": 1843200,
              "caption": "",
              "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
            }
          ]
        }
      }
      Как читать результат и скачивать файлы

      Апскейл с дорисовкой

      Увеличивает картинку и досочиняет мелкие детали: поры кожи, волоски, фактуру ткани. Спасает маленькие и мыльные исходники, но детали может переписать по-своему. Описание не нужно.

      Значение поля mode: upscale_creative

      Цена в этом режиме от 36 ₽.

      Параметры

      Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

      image_urlsОбязательно

      Одна ссылка на исходную картинку.

      Тип: Список (Строка, uri)Максимум элементов: 1

      Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

      Входные данные

      • Картинка передаётся ссылкой на JPEG, PNG или WebP до 10 МБ, не больше 16 мегапикселей, каждая сторона от 256 до 4096 пикселей.
      ПолеЧто принимаетФорматыФайловРазмер файла до
      image_urlsКартинкиjpeg, jpg, png, webp110 МБ
      Как передать файлы

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

      Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

      Старое фото крупнее

      JSON
      {
        "model": "recraft",
        "settings": {
          "mode": "upscale_creative",
          "image_urls": [
            "https://example.com/old-photo.jpg"
          ]
        }
      }

      Цена считается при приёме задачи, валюта RUB.

      Полный пример запуска

      Результат

      • Обычно готово за время от нескольких секунд до минуты.
      • Картинка приходит файлом WebP без потери качества.
      Вид (kind)ФорматыСколькоПояснение
      imagewebp1

      Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

      JSON
      {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "status": "succeeded",
        "finished_at": "2026-10-01T12:03:41+00:00",
        "result": {
          "caption": "Подпись к результату: модель и настройки",
          "texts": [],
          "files_expire_at": "2026-10-08T12:03:41+00:00",
          "files_expired": false,
          "artifacts": [
            {
              "index": 0,
              "kind": "image",
              "filename": "image.webp",
              "size": 1843200,
              "caption": "",
              "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
            }
          ]
        }
      }
      Как читать результат и скачивать файлы

      Смотрите также

      Попробуйте Recraft через API

      Один ключ открывает все модели CyHUB. Оплата в рублях, цену видно до запуска.

      Получить ключ API