Содержание
  1. Чем правка области отличается от расширения кадра
  2. Правило маски: чёрное сохраняется, белое перерисовывается
  3. Два способа задать область правки
  4. Минимальный запрос к API
  5. Polling: id, статусы и срок жизни ссылки
  6. Промпт для удаления: что убрать и чем заполнить
  7. Чек-лист проверки результата
  8. Частые вопросы
Гайды

Как удалить объект с изображения через FLUX Inpainting

29 октября 2026 · 8 минут чтения

Как удалить объект с изображения через FLUX Inpainting? Для этого подготовьте маску, где лишний предмет закрашен белым, отправьте изображение и маску на эндпоинт flux-pro-1.0-fill, дождитесь статуса Ready и скачайте результат. Модель для этой задачи — FLUX.1 Fill от Black Forest Labs.

Чем правка области отличается от расширения кадра

FLUX.1 Fill — специализированная модель для инпейнтинга, и в документации BFL она описана через две взаимодополняющие задачи. Первая: выделить конкретные области внутри изображения и отредактировать их, сохраняя окружающий контекст — менять объекты, улучшать детали, естественно убирать лишние элементы. Вторая: добавлять новые пиксели по краям изображения, расширяя кадр за исходные границы, чтобы повысить разрешение или сменить соотношение сторон.

Разница для читателя практическая. Инпейнтинг работает внутри холста: вы указываете область, и модель перерисовывает её, опираясь на соседние пиксели. Аутпейнтинг работает снаружи: холст увеличивается, и модель достраивает то, чего в кадре не было. Удаление объекта — это инпейнтинг. Вы не расширяете сцену, вы заменяете фрагмент содержимым, которое должно там находиться.

Официальный репозиторий проекта на GitHub описывает FLUX.1 Fill как модель с продвинутыми возможностями инпейнтинга и аутпейнтинга, где правки бесшовно интегрируются в существующее изображение. В примерах документации BFL показана замена куртки на другую по стилю и замена текста на неоновой вывеске — оба случая относятся к правке области.

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

Правило маски: чёрное сохраняется, белое перерисовывается

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

Практический вывод: объект, который вы убираете, закрашивается белым. Всё, что должно остаться нетронутым, остаётся чёрным. Если перепутать полярность, модель перерисует фон и оставит предмет — результат будет противоположным задуманному.

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

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

В примере документации BFL показано, как исходный заголовок «KILL BILL» превращается в «FLUX PILL» с помощью чёрно-белой маски. Тот же принцип работает для удаления: белым закрывается то, что должно исчезнуть.

Два способа задать область правки

Документация BFL перечисляет два подхода к указанию области редактирования.

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

Альфа-канал. Вы передаёте один PNG или WebP с прозрачностью. Прозрачные области перерисовываются, непрозрачные сохраняются. Отдельный файл маски не нужен.

Критерий Отдельная маска Альфа-канал PNG/WebP
Файлов в запросе Изображение и маска Один файл
Что задаёт область Белые пиксели Прозрачные пиксели
Что сохраняется Чёрные пиксели Непрозрачные пиксели
Формат Чёрно-белое изображение PNG или WebP
Когда удобнее Правка готового JPEG Работа со слоями и прозрачностью

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

Оба способа описаны в одном разделе документации BFL, и оба ведут к одному эндпоинту. Смысл области задаётся одинаково: помеченное место перерисовывается, остальное остаётся.

Минимальный запрос к API

Документация BFL приводит запрос к эндпоинту https://api.bfl.ai/v1/flux-pro-1.0-fill. Ключ передаётся в заголовке x-key, тело — JSON. Вот минимальный набор полей по документации:

ТЕРМИНАЛ
curl -X POST "https://api.bfl.ai/v1/flux-pro-1.0-fill" \
  -H "x-key: $BFL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "<your prompt>",
    "image": "<base64 encoded image>",
    "mask": "<base64 encoded mask>",
    "steps": 50,
    "guidance": 30,
    "output_format": "jpeg",
    "safety_tolerance": 2
  }'

Что делает каждое поле. prompt — текстовое описание того, что должно появиться в области правки. image — исходное изображение в base64. mask — маска в base64. steps — число шагов генерации. guidance — сила следования промпту. output_format — формат результата. safety_tolerance — допуск фильтра безопасности.

В примере на Python из документации BFL изображение и маска кодируются через base64.b64encode, ключ берётся из переменной окружения BFL_API_KEY через os.environ.get. Секрет не попадает в код и не выводится в терминал.

Для удаления объекта поле prompt описывает не сам предмет, а то, чем заполняется освободившееся место. Об этом — следующий раздел.

Polling: id, статусы и срок жизни ссылки

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

Статусы в примере документации: Ready означает готовность, Error и Failed — сбой генерации. Цикл опроса в примере BFL делает паузу и повторяет запрос, пока не увидит один из этих статусов.

Успешный ответ — JSON-объект с полем result, а result['sample'] содержит подписанную ссылку на файл. Документация BFL отдельно предупреждает: подписанные ссылки действительны 10 минут, результат нужно забрать в этот срок.

Практический порядок действий:

  1. Отправьте POST-запрос с изображением и маской.
  2. Сохраните id и polling_url из ответа.
  3. Опрашивайте polling_url с заголовком x-key, пока статус не станет Ready, Error или Failed.
  4. При Ready скачайте файл по result['sample'] в течение 10 минут.
  5. При Error или Failed проверьте тело ответа и повторите запрос.

Ссылку стоит скачивать сразу в постоянное хранилище. Полагаться на то, что она откроется позже, нельзя.

Промпт для удаления: что убрать и чем заполнить

Промпт в задаче удаления описывает не предмет, а поверхность под ним. Формулируйте по трём слотам: что убрать, чем заполнить место, что сохранить без изменений.

Промпт, чтобы убрать объект с фотографии и восстановить фон:

КОД
Удали [объект] из области, отмеченной маской. Заполни это место [описание фона: текстура, цвет, поверхность]. Сохрани без изменений всё остальное: освещение, тени, линии перспективы, фон вокруг области правки.

Что менять под себя: [объект] — предмет, который убираете; [описание фона] — то, что должно оказаться на его месте. Чем конкретнее описан фон, тем меньше поводов у модели дорисовать лишнее.

Вариации той же задачи:

КОД
Убери [объект] с маски. Восстанови [поверхность] так, чтобы текстура совпадала с соседними участками. Остальное оставь как есть.
КОД
Удали [объект] и заполни область фоном [цвет и материал]. Сохрани направление света и тени от соседних предметов.
КОД
Убери [объект] с маски. Продолжи [линия: горизонт, край стола, стена] через область правки. Остальную часть кадра не меняй.
КОД
Удали [объект]. Заполни место [материал] с той же зернистостью, что у соседних участков. Сохрани отражения и блики вокруг.
КОД
Убери [объект] с маски. Восстанови [фон] без новых предметов. Сохрани исходный кадр за пределами области.

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

Чек-лист проверки результата

Готовый файл нужно осмотреть до передачи заказчику. Используйте следующую карту приёмки: сравните область правки с соседним фоном и исходным изображением. Последний столбец содержит возможное следующее действие; результат повторной генерации проверяют заново.

Зона проверки На что смотреть Типичный дефект Что менять
Граница маски Стык правки с исходником Видимая кромка, резкий переход Расширить маску, добавить запас по краю
Повторяющиеся текстуры Плитка, трава, ткань Разрыв рисунка, дубль фрагмента Уточнить описание фона в промпте
Линии перспективы Горизонт, края стола, стены Излом линии на границе Продолжить линию в промпте
Тени Тень от удалённого объекта Лишняя тень или её пропажа Описать направление света
Отражения Зеркала, лужи, стекло Отражение удалённого предмета Указать отражения в промпте
Анатомия Руки, лица, фигуры Лишний палец, искажённая кисть Сузить маску до предмета
Случайные объекты Вся область правки Появился новый предмет Убрать из промпта лишние слова

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

Частые вопросы

Чем FLUX Inpainting отличается от обычной генерации изображения?

Обычная генерация создаёт картинку с нуля по текстовому описанию. FLUX.1 Fill работает с уже существующим изображением: вы задаёте область, и модель перерисовывает её с опорой на окружающие пиксели. Документация BFL описывает это как правку частей изображения с сохранением окружающего контекста.

Что делать, если маска перепутана и модель перерисовала фон?

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

Можно ли задать область без отдельного файла маски?

Да. Документация BFL описывает второй способ: PNG или WebP с прозрачностью. Прозрачные области перерисовываются, непрозрачные сохраняются. Отдельный файл маски в этом случае не нужен.

Сколько живёт ссылка на готовый результат?

Подписанная ссылка в поле result['sample'] действительна 10 минут. Документация BFL просит забрать результат в этот срок. Скачивайте файл сразу в постоянное хранилище.

Что писать в промпте, если нужно просто убрать предмет?

Опишите фон, который должен оказаться на месте предмета: текстуру, цвет, поверхность. Добавьте просьбу сохранить освещение, тени и линии перспективы. Чем конкретнее описан фон, тем меньше риск, что модель дорисует лишнее.

Читайте также

3 материала