← Блог

Z-Image-Turbo API для инпейнтинга: маски и устранение артефактов

Полное руководство по инпейнтингу Z-Image-Turbo. Создание масок, промпты на естественном языке, техники бесшовного смешивания и устранение распространённых артефактов. $0.02 за изображение.

By Dora 7 min read
Z-Image-Turbo API для инпейнтинга: маски и устранение артефактов

Привет, я Дора. На прошлой неделе меня задержала одна мелочь — пятно блика на фото товара, которое мне нужно было повторно использовать. Мне не хотелось устраивать полноценную ретушь, просто небольшая правка. Я открыла привычные инструменты, потом остановилась. Я видела упоминания Z-Image-Turbo Inpainting API и задалась вопросом: можно ли вписать его в мой рабочий процесс, не превращая пятиминутную правку в отдельный проект? Я попробовала — постепенно, на нескольких реальных задачах — и делала заметки по ходу.

Что такое AI-инпейнтинг?

Инпейнтинг — это уборщик в редактировании изображений. Вы скрываете область маской, описываете, что хотите там видеть вместо неё (или что хотите убрать), и модель заполняет её так, чтобы она сливалась с остальным изображением.

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

Как работает Z-Image-Turbo Inpaint

Я тестировала инпейнтинг Z-Image-Turbo в январе–феврале 2026 года, на нескольких задачах: удаление бликов, очистка фона и пара замен объектов. Рабочий процесс стандартный: отправляем изображение, бинарную маску и текстовый запрос в Z-Image-Turbo Inpainting API. Модель редактирует только замаскированную область и пытается смешать её с окружающим контекстом.

На практике важны два момента:

  • Края маски: мягкие края давали лучшее смешение. Жёсткие края оставляли швы.
  • Запрос: лучше всего работали короткие, буквальные запросы. Излишнее описание заставляло модель угадывать.

По скорости результаты возвращались за секунды, что вполне достаточно для асинхронной задачи в моём рабочем процессе. Согласно документации WaveSpeed, Z-Image-Turbo Inpaint оптимизирован для низкой задержки и чистых результатов, что делает его пригодным для производственного использования при пакетной обработке и быстрых итерациях. Качество сохранялось для малых и средних правок. Для крупных, сложных замен требовалось несколько попыток или меньшие маски.

Рабочий процесс с API

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

Обязательные входные данные: изображение + маска + запрос

Вот минимальный набор, который я использовала снова и снова:

  • Изображение: PNG или JPEG. Я сохраняла исходное разрешение, чтобы избежать артефактов при масштабировании.
  • Маска: та же ширина и высота, что и у изображения. Белый = редактируемая область. Чёрный = защищённая. Если версия API переворачивает это, обычно есть флаг для инвертирования.
  • Запрос: достаточно одного предложения. «Убери блик на столешнице.» Или «Замени кружку на простую белую керамическую чашку.»

Дополнительные параметры, которые помогли:

  • Guidance/strength: ниже для тонкой очистки, выше для полных замен.
  • Seed: задайте seed, чтобы воспроизвести хороший результат.
  • Steps: я держала умеренное значение: больше шагов не всегда означало лучше.

Требования к формату маски

Именно это больше всего влияло на качество:

  • Используйте бинарную маску (чисто белый и чисто чёрный). Если нужна мягкость, слегка растушуйте край, но избегайте серой каши по всей области.
  • Точно соблюдайте размеры. Если маска на пиксель отличается, API выдаст ошибку или наложит её неправильно.
  • Держите замаскированную область плотной. Меньшие маски дают модели меньше возможностей для галлюцинаций.
  • Следите за тонкими деталями. Для прядей волос или кабелей слегка увеличенная мягкая маска давала лучшее смешение, чем острая жёсткая маска.

Если вы редактируете вблизи краёв, расширьте маску чуть дальше границы. Это даёт модели место для закраски под швом и позволяет избежать эффекта «наклейки».

Реализация на Python

Я не превращала это в полноценную библиотеку. Я использовала короткий запрос в небольшом вспомогательном скрипте. Суть такова:

  • Отправить POST-запрос на эндпоинт Z-Image-Turbo Inpainting с multipart form data.
  • Прикрепить: файл изображения, файл маски, строку запроса и любые дополнительные параметры (guidance, steps, seed, размер вывода при необходимости).
  • Обработать ответ: изображение в base64 или URL для загрузки. Сохранить, затем просмотреть перед тем, как зафиксировать в пайплайне.

Несколько практических замечаний из настройки:

  • Следите за ограничениями запросов. Я группировала правки и добавила откат, чтобы избежать повторных попыток.
  • Записывайте точный запрос, seed и параметры вместе с каждым сохранённым изображением. Когда я получала чистый результат, это позволяло тривиально его воспроизвести.
  • Если вы создаёте интерфейс, просматривайте наложение маски на исходное изображение. Так я обнаружила два несовпадения маски ещё до отправки запросов.

Написание эффективных запросов для инпейнтинга

Большинство моих успехов обеспечивали более короткие, буквальные запросы. Маска делает основную часть работы: запрос должен направлять, а не описывать.

Запросы на удаление («чистая поверхность»)

Когда мне просто нужно было что-то удалить, я писала запросы, описывающие отсутствие и желаемое состояние поверхности: «Убери отражение: сохрани матовую, ровную поверхность» или «Убери пятна пыли: сохрани текстуру дерева.» Модель лучше уважала окружающую текстуру, когда я её упоминала.

Небольшой совет: упоминайте освещение, когда это важно. «Сохрани мягкий послеполуденный свет» предотвращало появление ярких пятен.

Запросы на замену (описываем новое содержимое)

Для замен я была конкретной, но лаконичной:

  • «Замени красную кружку на простую белую керамическую чашку, похожего размера, нейтральное освещение.»
  • «Заполни пустое место подходящей текстурой бетона: без рисунка.»

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

Контекстно-ориентированные запросы

Когда сцена имела выраженный вид — тёплый свет, мягкие тени, малая глубина резкости — я указывала это в запросе. Согласно тестированию сообщества на RunComfy, Z-Image-Turbo Inpainting демонстрирует высокую непрерывность текстур, реалистичное освещение и точную обработку перспективы, когда запросы явно ссылаются на контекст существующей сцены. Z-Image-Turbo Inpainting API, казалось, ориентировался на эти подсказки. «Соответствовать существующему тёплому свету, мягкая тень слева» делало больше, чем абстрактное «реалистично».

Если окружающий контекст был слабым (оживлённые рисунки, низкая детализация), я уменьшала маску и делала два прохода: сначала структурный (форма), затем поверхностный (текстура/свет). Это занимало лишнюю минуту, но конечный результат выглядел менее «ИИ-шным».

Практическое применение

Вот места, где Z-Image-Turbo Inpainting API заработал себе место в моей неделе.

Очистка фотографий товаров

Я прогнала небольшую партию настольных снимков: случайные царапины, складка на фоне и странное пятно от лампы. Запросов на удаление было достаточно. По времени я экономила примерно 3–4 минуты на изображение по сравнению с ручным заживлением. Главный выигрыш был в умственных усилиях — меньше микрорешений.

Удаление нежелательных объектов

Я тестировала на уличных фото: мусорный бак у витрины и частичный прохожий у края кадра. С плотными масками и упоминанием «продолжи кирпичный узор» или «расширь текстуру тротуара» заполнение хорошо смешивалось. Крупные удаления со сложными текстурами всё же требовали нескольких попыток.

Замена фона

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

Исправление типичных артефактов

Когда что-то выглядело «не так», обычно это было одно из следующего.

Видимые швы на краях маски

Симптом: слабый контур там, где заплатка встречается с оригиналом.

Что помогало:

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

Несоответствие цвета/освещения

Симптом: заплатка правильной формы, но неправильного освещения.

Что помогало:

  • Упомянуть направление и теплоту света в запросе: «соответствовать тёплому свету справа, мягкие тени.»
  • Слегка уменьшить количество шагов. Я заметила, что более плотная выборка иногда уводит цвет в сторону.
  • Если всё фото имеет цветовую коррекцию, делайте инпейнтинг до неё, затем снова применяйте коррекцию к итоговому результату.

Несоответствие текстуры

Симптом: поверхности выглядят размытыми или слишком однородными.

Что помогало:

  • Явно описать текстуру («мелкая текстура холста», «тонкий рисунок дерева»).
  • Уменьшить маску и заполнять поэтапно: сначала структура, потом текстура.
  • После добавить немного шума или зерна для смешения. Не чистое решение, но эффективное.

Почему это важно для меня: инпейнтинг не выглядит эффектно, но снижает трение при небольших, неброских правках. Z-Image-Turbo Inpainting API не изменил мой процесс — он вписался в него. Если вы много занимаетесь лёгкой очисткой или периодическими заменами объектов и умеете рисовать маски, это хороший вариант. Если вам нужна серьёзная переработка сцены, вы всё равно потратите время на корректировку масок и запросов.

Последнее замечание из тестирования: лучшие результаты получались, когда я относилась к запросам как к режиссёрским указаниям, а к маскам — как к границам. Чёткие роли. Модель справлялась с этим хорошо. И мне по-прежнему интересно, насколько далеко можно зайти с крошечными масками на сложных текстурах, не получив этого характерного тумана — это следующее в моём списке. А у вас?

Поделиться