Seedance 2.5 is live — 30-second cinematic video with native audio & real-person references
Цена API удаления фона: расчет за полезное изображение
2026/09/03

Цена API удаления фона: расчет за полезное изображение

Рассчитайте стоимость API удаления фона от текущей ставки 88 кредитов, добавьте отклоненные результаты, повторные попытки, хранение и проверку качества.

Текущая цена API удаления фона для mj-v7-remove-bg составляет 88 кредитов, или $0.088 за завершенный запрос, согласно проверке от 3 сентября 2026 года. Это правильная исходная цифра для бюджета запроса. Однако это не автоматически равно стоимости одного пригодного для использования изображения.

Завершенное изображение может по-прежнему содержать ореол, потерять открытие ручки, сплющить тень или прийти в формате, который следующий сервис не может принять. Это руководство показывает, как вызвать маршрут, безопасно опросить его, проверить финальный размер платежа и рассчитать стоимость за изображение, которое действительно прошло проверку.

Краткое резюме

  • Живой калькулятор вернул 88 кредитов ($0.088) за завершенный запрос mj-v7-remove-bg от 3 сентября 2026 года. Один кредит равен $0.001.[1]
  • Запрос принимает ровно один публичный URL HTTP(S). Он не принимает подсказку, разрешение, скорость или ID родительской задачи.[2]
  • Операция асинхронна: отправьте один раз, сохраните возвращаемый ID задачи и опросите конечную точку задачи. Опрос не потребляет кредиты.[3]
  • Планируйте бюджет по формуле общая финальная стоимость / принятые результаты, а не по количеству отправленных файлов. При коэффициенте приемки 80% запрос за $0.088 становится $0.11 за пригодное изображение.
  • Не прошедшая задача с usage.credits: 0 получила возврат. Завершенный результат, который ваша команда отклонила из-за плохих краев, по-прежнему является выполненной работой, так что включите его в расчет принятых изображений.[3]
  • Запустите небольшой тестовый набор из вашего собственного каталога перед увеличением объема. Одна чистая фотография товара мало что говорит о волосах, стекле, низком контрасте или объектах с отверстиями.

Почему указанная цена редко отражает реальные затраты

Если приложение удаляет фон у тысяч загруженных изображений, как сравнивать сервисы, когда на результат одновременно влияют цена, качество краёв, время ответа, разрешение и передача файлов? Одного тарифного ценника для ответа недостаточно. Полезный расчёт выглядит точнее:

стоимость пригодного изображения = общая финальная стоимость API / изображения, прошедшие проверку

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

Что покупает текущая цена удаления фона

На странице живой модели Midjourney V7 Remove BG указан как легкое редактирование. Текущая оценка запроса рассчитана в целых кредитах, и живая оценка для требуемого значения составляет 88 кредитов.[1] Так как один кредит равен $0.001, используйте $0.088 в бюджете.

ЗапросыAPI-подитог при 88 кредитахЧто предполагает цифра
1$0.088Один завершенный запрос удаления
10$0.88Десять завершенных запросов перед проверкой приемки
100$8.80Ни один завершенный результат не отклонен
1 000$88.00Без стоимости хранения, проверки или трансформации
10 000$880.00Одинаковая ставка и 100% коэффициент приемки результатов

Вы можете увидеть операцию как $0.0873 в подробной метке цены. Не используйте эту дробную цифру для выверки кредитного баланса. Таблица публичных цен и калькулятор показывают платежный блок как 88 целых кредитов, или $0.088. Перед крупным запуском еще раз проверьте живую страницу модели, так как цены могут измениться.

Подитог API исключает работу вокруг вызова:

  • размещение источника по URL, который может получить сервис;
  • загрузку и хранение результата;
  • проверку прозрачности, размеров и совместимости файлов;
  • проверку человеком или автоматизированные проверки качества;
  • завершенные результаты, не отвечающие вашим правилам приемки;
  • изменение размера, коррекцию цвета, восстановление тени или последующее объединение.

Для прототипа эти расходы могут быть незначительными. В масштабе каталога они должны быть в одной электронной таблице с элементом строки API.

Один исходный URL, без подсказки и без родительской задачи

mj-v7-remove-bg проще, чем другие операции редактирования Midjourney V7. Она не связана с предыдущей генерацией. Отправьте изображение, которое у вас уже есть в image_urls.[2]

ПолеОбязательноПринимаемое значение
modelдаmj-v7-remove-bg
image_urlsдаМассив, содержащий ровно один публичный URL-адрес изображения HTTP(S)
promptне принимаетсяНе отправляйте его
model_paramsне принимаетсяНет опций скорости, ID задачи или редактирования
size / resolutionне принимаетсяМаршрут не предоставляет контроль размера вывода

Схема строга. Добавление полей, скопированных из другой модели изображения, не является безвредной операцией; это делает запрос недействительным. Строки Base64, URL data:, локальные пути и доступные только для аутентификации ссылки браузера также являются неправильным вводом. Загрузьте источник на хранилище, которым вы управляете, и убедитесь, что он загружается без файлов cookie или входа.

Вот полный запрос cURL:

curl https://reapi.ai/api/v1/images/generations \
  -H "Authorization: Bearer $REAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "mj-v7-remove-bg",
    "image_urls": [
      "https://your-cdn.example/catalog/source-product.png"
    ]
  }'

Действительное предложение возвращает запись задачи в состоянии processing. Сохраните его id. Финальное изображение не приходит в ответе POST.

Отправьте один раз, затем опросите с крайним сроком

Самая безопасная реализация для новичков имеет две отдельные операции: один POST, который создает задание, за которым следуют ограниченные GET-запросы для чтения его состояния. Не помещайте POST внутри цикла опроса.

Этот пример Node.js опрашивает каждые 2.5 секунды и использует крайний срок в 15 минут. Ссылка на задачу рекомендует темп два-три секунды и объясняет, что текущие чтения задач кэшируются, поэтому более быстрый опрос добавляет нагрузку на запрос без ускорения завершения изображения.[3]

const API_BASE = 'https://reapi.ai/api/v1';
const API_KEY = process.env.REAPI_API_KEY;
const sourceUrl = process.argv[2];

if (!API_KEY) throw new Error('Set REAPI_API_KEY');
if (!sourceUrl) throw new Error('Pass one public source image URL');

const headers = {
  Authorization: `Bearer ${API_KEY}`,
  'Content-Type': 'application/json',
};

async function readJson(response) {
  const body = await response.json();
  if (!response.ok) {
    const code = body.error?.code ?? response.status;
    const message = body.error?.message ?? 'Request failed';
    throw new Error(`${code}: ${message}`);
  }
  return body;
}

const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));

async function getTask(taskId) {
  for (let attempt = 0; attempt < 4; attempt += 1) {
    let response;
    try {
      response = await fetch(`${API_BASE}/tasks/${taskId}`, {
        headers: { Authorization: `Bearer ${API_KEY}` },
        signal: AbortSignal.timeout(15_000),
      });
    } catch (error) {
      if (attempt === 3) throw error;
      await sleep(1000 * 2 ** attempt);
      continue;
    }

    if (response.status === 429) {
      const seconds = Number(response.headers.get('retry-after'));
      await response.body?.cancel();
      await sleep(Number.isFinite(seconds) ? seconds * 1000 : 5000);
      continue;
    }

    if ([502, 503, 504].includes(response.status)) {
      await response.body?.cancel();
      await sleep(1000 * 2 ** attempt);
      continue;
    }

    return readJson(response);
  }

  throw new Error(`Task ${taskId} could not be read after transient errors`);
}

async function removeBackground(imageUrl) {
  const submitted = await readJson(
    await fetch(`${API_BASE}/images/generations`, {
      method: 'POST',
      headers,
      body: JSON.stringify({
        model: 'mj-v7-remove-bg',
        image_urls: [imageUrl],
      }),
      signal: AbortSignal.timeout(30_000),
    })
  );

  const deadline = Date.now() + 15 * 60 * 1000;

  while (Date.now() < deadline) {
    await sleep(2500);
    const task = await getTask(submitted.id);

    if (task.status === 'completed') {
      const urls = task.output?.image_urls ?? [];
      if (urls.length === 0) {
        throw new Error('Task completed without an image URL');
      }
      return {
        taskId: task.id,
        imageUrls: urls,
        credits: task.usage?.credits,
      };
    }

    if (task.status === 'failed') {
      const code = task.error?.code ?? 'UNKNOWN_TASK_ERROR';
      const message = task.error?.message ?? 'Background removal failed';
      const credits = task.usage?.credits ?? 'unknown';
      throw new Error(
        `${code}: ${message}; task=${task.id}; settled_credits=${credits}`
      );
    }
  }

  throw new Error(`Polling deadline reached for task ${submitted.id}`);
}

removeBackground(sourceUrl)
  .then(console.log)
  .catch((error) => {
    console.error(error.message);
    process.exitCode = 1;
  });

Запустите его так:

REAPI_API_KEY=rk_live_xxx node remove-background.mjs \
  https://your-cdn.example/catalog/source-product.png

В production запишите ID задачи в вашу базу данных перед возвратом из обработчика отправки. Рабочий процесс затем может возобновить опрос после перезапуска процесса. Держите ключ API на сервере; никогда не помещайте его в браузер JavaScript или пакет мобильного приложения.

Сколько на самом деле стоил один не прошедший живой запрос

Мы отправили один запрос mj-v7-remove-bg при проверке этого руководства от 3 сентября 2026 года, используя фотографию кружки. API принял строгий значение как задача task_01a065b32dbe771eb5babd28de9b38d9, но позже она перешла в состояние failed с кодом ошибки 80003 и сообщением Service authentication failed. Она не вернула никаких результатов и usage.credits: 0, поэтому ее финальная стоимость была $0, а не $0.088.

Мы не повторно отправили неизменный запрос только для создания успешного примера. Этот единственный запуск подтверждает путь задачи и возврата; он не говорит ничего о качестве вырезания, типе файла, размерах, поддержке альфа или нормальном времени завершения. Цифра 88 кредитов выше остается живой оценкой для запроса, который завершается. Всегда читайте финальную задачу вместо умножения количества отправок на объявленную ставку.[3]

Преобразуйте цену запроса в стоимость за пригодное изображение

Начните с правила приемки, а не с процента, который вы надеетесь достичь. Затем измерьте процент на выборке из рабочей нагрузки, которую вы намеревались поставить.

Воронка стоимости API удаления фона от отправленных запросов через проверку вырезания к принятым изображениям

Если каждый завершенный запрос производит одного кандидата, уравнение планирования:

стоимость пригодного изображения = $0.088 / коэффициент приемки

Таблица ниже содержит сценарии, а не измеренное качество модели:

Предполагаемый коэффициент приемкиЗапросы на 1000 принятых изображенийAPI-подитогСтоимость за пригодное изображение
100%1 000$88.000$0.0880
95%1 053$92.664$0.0927
90%1 112$97.856$0.0979
80%1 250$110.000$0.1100
50%2 000$176.000$0.1760

Используйте финальные данные задачи для числителя. Ответ задачи содержит usage.credits во всех состояниях. processing плюс ноль означает, что выставление счета не завершено. completed показывает выставленные кредиты. failed плюс ноль означает, что резервирование было возвращено; положительное значение означает, что задокументированный платеж был сохранен.[3]

Это различие предотвращает две ошибки учета. Не считайте возвращенный сбой поставщика как оплачиваемый результат и не стирайте завершенное, но некрасивое вырезание из расходов. Оно по-прежнему потребляло оплачиваемый запрос.

Определите, что означает "пригодное" перед тестом

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

Прозрачность и целостность краев

Откройте загруженный файл в инструменте, который показывает шахматную доску альфа. Белый фон — это не прозрачность. Проверьте весь силуэт с масштабом 100% и 400% на предмет белых или темных ореолов, отсутствующих пикселей и куски старого фона.

Отверстия, тонкие детали и сложные материалы

Включите примеры с открытиями ручек, ремнями, спицами, распущенными волосами, мехом и листвой. Добавьте стекло, прозрачную упаковку, глянцевый металл и края предмета с низким контрастом, если они появляются в вашем реальном каталоге. Модель, которая проходит темную кружку на белом, по-прежнему может не пройти прозрачную бутылку или бледный предмет на бежевом.

Детали товара и тени

Подтвердите, что этикетки, печатный текст, тонкие приложения и контур товара не изменились. Решите, следует ли сохранять, смягчать или удалять тень контакта. Разные пункты назначения нужны разные ответы, поэтому "тень удалена" не автоматический проход.

Контракт файла

Запишите тип MIME, расширение, ширину, высоту, размер в байтах, наличие альфа и количество возвращаемых URL-адресов. Публичный контракт возвращает output.image_urls, но он не обещает конкретное расширение или размер пикселя для этой операции. Протестируйте реальный файл против следующего API, инструмента дизайна или импортера маркетплейса в вашем конвейере.

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

Повторите попытки неудач без создания цикла затрат

Правила повтора должны использовать ошибку, а не разочарование. Публичный справочник ошибок разделяет недействительный ввод, аутентификацию, недостаточный баланс, ограничения скорости, сбои емкости и терминальные сбои рабочего процесса.[4]

РезультатЧто делать
HTTP 400, 401, 402 или 404Исправьте запрос, учетные данные, баланс или ID задачи. Не повторяйте неизменное.
HTTP 429Подождите Retry-After, затем повторите тот же запрос на чтение или безопасную операцию.
HTTP 502, 503 или 504Отступайте экспоненциально и ограничьте попытки.
Задача failedПрочитайте error.code и usage.credits перед решением о повторной отправке.
Задача completed, QA не прошлаИзмените источник или направьте изображение на ручную очистку; ограничьте оплачиваемые повторные запуски.

Держите действие отправки вне автоматических повторов опроса. После того как POST возвращает ID задачи, каждая последующая проверка должна быть GET для этой задачи. Для завершенного изображения, которое не прошло вашу рубрику, второй одинаковый запрос может воспроизвести ту же проблему края. Изменение входной обрезки, контрастности или предварительной обработки более полезно, чем неограниченный повтор.

Загрузьте принятые файлы на собственное хранилище как только задача завершится. Документация задачи говорит, что выходные URL-адреса размещаются повторно на CDN, но не гарантирует долгосрочное сохранение.[3]

Размещенный маршрут против официального API Midjourney

mj-v7-remove-bg — это размещенный маршрут, предоставляемый через reAPI. Его не следует описывать как официальный публичный API Midjourney. Текущие руководящие принципы сообщества Midjourney говорят, что они обычно не предоставляют API и запрещают несанкционированную автоматизацию, кроме редких, явно предоставленных случаев.[5]

Это различие имеет значение во время закупок. Проверьте контракт размещенного сервиса и условия приемлемого использования вместо того, чтобы предполагать, что метка модели создает официальные отношения с поставщиком. Отдельное руководство Есть ли у Midjourney API? подробно рассматривает этот вопрос; эта статья сосредоточена на вызываемом маршруте и его стоимости.

FAQ

Нужна ли mj-v7-remove-bg предыдущей задаче Midjourney?

Нет. Это прямое редактирование изображения. Передайте один публичный URL изображения в image_urls; не отправляйте task_id или model_params.[2]

Могу ли я отправить изображение в base64?

Нет. Схема запроса принимает один публичный URL HTTP(S). Сначала загрузьте файл, затем отправьте URL, который сервис может получить без вашей сессии браузера.

Текущая цена $0.0873 или $0.088?

Используйте $0.088 для оценки выставления счета. Операция может отображаться как $0.0873 в подробном дисплее, но живой калькулятор возвращает 88 целых кредитов, а один кредит равен $0.001.[1]

Один запрос возвращает четыре изображения с удаленным фоном?

Не планируйте на этом предположении. Четыре изображения за запрос описывают базовую генерацию Midjourney V7. Прямой контракт Remove BG принимает одно исходное изображение и возвращает массив URL-адресов изображения, но не обещает четыре вырезания. Проверьте длину массива в своем пилоте.[2]

API всегда возвращает прозрачный PNG?

Текущий публичный контракт обещает URL-адреса изображений, а не конкретное расширение, тип MIME или гарантию альфа-канала. Загрузите реальный результат и проверьте альфа перед созданием рабочего процесса, предназначенного только для PNG.

Опрос стоит кредиты?

Нет. Опрос задачи не потребляет кредиты. Опрашивайте каждые две-три секунды и остановитесь в крайний срок, подходящий для вашего приложения.[3]

За не прошедшие задачи удаления фона взимается плата?

Прочитайте usage.credits на финальной задаче. Не прошедшая задача с нулевыми кредитами была полностью возвращена. Общий контракт задачи позволяет положительный сохраненный платеж в некоторых специфических для модели случаях после создания безопасности, поэтому не выводите счет только из статуса.[3]

Сколько будет стоить 1000 пригодных изображений?

При 100% коэффициенте приемки 1000 запросов стоят $88 при текущей ставке. При 80% приемке для получения 1000 пригодных файлов требуется 1250 запросов и стоит $110, не считая хранения и проверки. Замените предполагаемую ставку на вашу измеренную цифру из пилота.

Оценивайте стоимость принятого изображения, а не цену запроса

На уровне одного запроса текущая цена API удаления фона понятна: 88 кредитов, или $0.088. Но решение о промышленном использовании начинается после этого. Проверьте на своих данных качество краёв и файловый контракт, которые нужны приложению, считайте итоговое потребление каждой задачи и делите общие расходы на число результатов, прошедших фиксированные критерии.

Сначала изучите справочник по API Midjourney V7, проведите небольшой тест на собственных изображениях и держите рядом справочник по опросу задач. Так вы получите обоснованную стоимость одного пригодного изображения, а не непроверенную цену из заголовка.

Ссылки

  1. reAPI. Midjourney V7 model page and live pricing. Retrieved September 3, 2026 from reapi.ai/models/midjourney-v7
  2. reAPI. Midjourney V7 API reference. Retrieved September 3, 2026 from reapi.ai/docs/midjourney-v7
  3. reAPI. Tasks: polling, usage, output, and refund semantics. Retrieved September 3, 2026 from reapi.ai/docs/api/tasks
  4. reAPI. API error codes and retry guidance. Retrieved September 3, 2026 from reapi.ai/docs/api/errors
  5. Midjourney. Community Guidelines: unauthorized automation and third-party apps. Retrieved September 3, 2026 from docs.midjourney.com/hc/en-us/articles/32013696484109-Community-Guidelines

Автор

avatar for reAPI Team
reAPI Team

Категории

Краткое резюмеПочему указанная цена редко отражает реальные затратыЧто покупает текущая цена удаления фонаОдин исходный URL, без подсказки и без родительской задачиОтправьте один раз, затем опросите с крайним срокомСколько на самом деле стоил один не прошедший живой запросПреобразуйте цену запроса в стоимость за пригодное изображениеОпределите, что означает "пригодное" перед тестомПрозрачность и целостность краевОтверстия, тонкие детали и сложные материалыДетали товара и тениКонтракт файлаПовторите попытки неудач без создания цикла затратРазмещенный маршрут против официального API MidjourneyFAQНужна ли mj-v7-remove-bg предыдущей задаче Midjourney?Могу ли я отправить изображение в base64?Текущая цена $0.0873 или $0.088?Один запрос возвращает четыре изображения с удаленным фоном?API всегда возвращает прозрачный PNG?Опрос стоит кредиты?За не прошедшие задачи удаления фона взимается плата?Сколько будет стоить 1000 пригодных изображений?Оценивайте стоимость принятого изображения, а не цену запросаСсылки