Динамические маски

Динамическая маска — это маска, которая строится по указанным областям вписывания и может применяться как для области вписывания, так и для графического слоя.

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

  • по фигуре;
  • по лицу;
  • по голове;
  • по коже;
  • по волосам;
  • по губам;
  • по радужке;
  • по стикерам;
  • по пользовательской фотографии;
  • по небу;
  • по одежде;
  • по частям лица
  • по очкам.

Чтобы понять концепцию динамических масок, обратимся к шаблону с применением динамических масок по фигуре.

Оригинальное фото Результат обработки

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

Принцип работы такого шаблона можно понять из схемы ниже:

Графический слой Динамическая маска по фигуре c пользовательской фотографии Результат обработки

Наличие у графического слоя динамической маски никак не ограничивает использование блендингов.

Добавление динамической маски

Обратиться к диалогу добавления динамических масок можно одним из следующих способов:

  • кликнув по необходимому графическому слою / области вписывания правой кнопкой мыши и выбрав в контекстном меню пункт Параметры применения динамических масок...;

  • выделив необходимый графический слой или область вписывания в списке слоёв и обратившись к меню Слой в строке меню Конструктора шаблонов. В появившемся контекстном меню следует выбрать пункт Параметры применения динамических масок...;

  • выделив необходимый графический слой / область вписывания в списке и обратившись к его параметрам в блоке под списком слоев.

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

Окно редактора динамических масок

Для графического слоя/области вписывания, к которой будет применяться маска, можно опционально выключить маску, имеющуюся в PSD-документе, поставив галочку напротив “Игнорировать маску слоя, заданную в Photoshop”. Это может быть удобно для выключения тестовой маски, нарисованной в Photoshop для прикидки конечного результата.

При построении маски для каждой выбранной области вписывания можно выбрать тип маски:

  • по фигуре;
  • по лицу;
  • по голове;
  • по коже;
  • по волосам;
  • по губам;
  • по радужке;
  • по стикерам;
  • по пользовательской фотографии;
  • по небу;
  • по одежде
  • по частям лица
  • по очкам.

Совмещение масок

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

Конструктор шаблонов поддерживает следующие режимы совмещения масок:

  • Умножение — цветовое значение каждого пикселя одной маски умножается на значение того же пикселя другой маски. Цветовое значение высчитывается в градациях серого, исходя из диапазона [0;1].

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

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

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

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

Схемы ниже иллюстрируют примеры умножения, сложения, вычитания, а также минимума и максимума для динамических масок.

Динамическая маска 1 Динамическая маска 2
Сложение масок 1 и 2 Умножение масок 1 и 2
Вычитание масок 1 и 2 Минимум масок 1 и 2
Максимум масок 1 и 2

Параметры генерации динамической маски

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

  • кликните правой кнопкой мыши по области вписывания и в контекстном меню выберите пункт Параметры создания динамической маски.

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

  • выделите необходимую область вписывания и выберите в меню слой пункт Параметры создания динамической маски.

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

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

Важно:

  • настройки маски по лицу используются только для операций с лицами (такими как вырезание лица при его вписывании, построение динамической маски по лицу и использование лицевых фильтров).
  • Настройки масок по фигуре работают аналогично, но в контексте фигур.
  • Настройки для остальных масок работают при создании соответствующих масок.

Вне зависимости от типа маски, всем им доступен идентичный набор параметров:

  • Вытравка фигуры — определяет то, насколько сильно сдвигать границу динамической маски к границам выделенного объекта (фигуры, лица, области кожи и т.п. в зависимости от типа маски). При этом граница области становится четкой за счет бинаризации. Если установлено слишком большое значение, то произойдет “обрезка” динамической маской части изображения. Если указать в данном параметре отрицательное значение - произойдет обратное явление, когда граница будет сдвигаться от фигуры, в сторону окружающего ее фона, что хорошо видно на примерах ниже (нажмите на лупу чтобы увеличить конкретный пример):

    Исходное изображение Вытравка фигуры: 0
    Вытравка фигуры: 10 Вытравка фигуры: -10
  • Радиус размытия — определяет то, насколько сильно размыть границу маски после вытравки изображения (см. выше). Работает только в том случае, если для вытравки установлено ненулевое значение.

  • Размеры в процентах — переключает единицы измерения для заданных параметров вытравки и радиуса размытия краев динамической маски. Если установлено значение False — используются пиксели, если True — используются проценты.

Следует также иметь в виду, что слишком большие значения вытравки и размытия замедляют работу шаблона

Для маски по стикерам параметры недоступны. Она используется в том виде, в котором нарисована в Photoshop и в соответствии с позицией, заданной фильтром “Растеризация”.

Обязательные маски

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

Данная настройка распространяется на весь шаблон, независимо от количества ориентаций в нём

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

Настройка находится в диалоге параметров применения масок в виде галочки в колонке "Обязательная маска".

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

  • Шаблон, действие которого основано на масках. В случае, если маску не удается построить, пользователь получит ошибку вида "Обработка тестового фото неудачна. Объект не найден на фотографии. Попробуйте другую фотографию".

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

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

  • Комбы/цепочки обработок. В случае, если в комбе на одном из этапов участвует шаблон с обязательными масками, то невозможность получить искомую маску приведет к тому, что обработка комбы завершится с ошибкой вида "Объект не найден на фотографии. Попробуйте другую фотографию".

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

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

Примеры динамических масок

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

Исходное фото Динамическая маска по фигуре

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

Детектор фигуры v3 по умолчанию включен для всех новых проектов. Для использования детектора фигуры v3 в проектах, созданных в предыдущих версиях Конструктора шаблонов его необходимо выбрать вручную на вкладке Версии детекторов в меню Файл – Изменить проект.

Исходное фото Детектор фигуры v2 Детектор фигуры v3

Как уже было написано выше, маски могут строиться не только по фигуре, но и по овалу лица и контурам головы.

Исходное фото Динамическая маска по лицу
Исходное фото Динамическая маска по голове

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

Детектор головы v2 по умолчанию включен для всех новых проектов. Для использования детектора головы v2 в проектах, созданных в предыдущих версиях Конструктора шаблонов его необходимо выбрать вручную на вкладке Версии детекторов в меню Файл – Изменить проект.

Исходное фото Детектор головы v1 Детектор головы v2

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

Исходное фото Динамическая маска по коже

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

Исходное фото Динамическая маска по волосам

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

Детектор волос v2 по умолчанию включен для всех новых проектов. Для использования детектора волос v2 в проектах, созданных в предыдущих версиях Конструктора шаблонов его необходимо выбрать вручную на вкладке Версии детекторов в меню Файл – Изменить проект.

Исходное фото Детектор волос v1 Детектор волос v2
Исходное фото Динамическая маска по радужкам
Исходное фото Динамическая маска по губам

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

Исходное фото Динамическая маска по небу

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

Исходное фото Результат

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

Динамическая маска по очкам выделяет очки на пользовательской фотографии.

Исходное фото Маска по очкам

Применение масок с инверсией

Возвращаясь к полученным выше результатам, применим к области вписывания инвертированную маску, построенную по фигуре. Это позволит получить эффект “отсутствия фигуры на фотографии”.

Исходное фото Маска по фигуре с инверсией

Аналогичного эффекта можно добиться, выполнив ту же процедуру с маской, построенной по овалу лица. Если инвертировать данную маску и применить её к области вписывания типа Фигура, получится следующий результат:

Исходное фото Результат

Маска по стикерам

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

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

Исходное фото Фото со стикером Динамическая маска по стикерам

Подробнее о практическом применении динамической маски по стикерам можно узнать в этом разделе.

Маска по пользовательской фотографии

Данная маска создается путем преобразования фото в градации серого. Полученное изображение интерпретируется конструктором шаблонов как маска.

Исходное фото Маска по пользовательской фотографии

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

Исходное фото Исходное фото с фильтром Результат применения маски

При работе с маской по пользовательской фотографии нежелательно выставление ненулевых параметров "вытравка" и "размытие".

Пример разработки шаблона с использованием динамических масок по пользовательской фотографии можно найти в этом разделе.

Маска по частям лица

Маска по частям лица позволяет обработать отдельно или группой некоторые части лица

Исходное фото Маска по частям лица

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

Ниже на схеме показаны части лица, по которым возможно построить маску

1. Лоб

2-3. Висок левый/правый

4-5. Скула левая/правая

6-7. Подглазничный левый/правый

8-9. Нижнечелюстной левый/правый

10-11. Бровь левая/правая

12-13. Глазница левая/правая

14-15. Глаз левый/правый

16-17. Радужка левая/правая

18-19. Стенка носа левая/правая

20. Переносица

21. Кончик носа

22. Крылья носа

23-24. Ноздря левая/правая

25-26. Облась усов левая/правая

27. Желобок

28. Губа верхняя

29. Губа нижняя

30. Подгубный

31. Подбородок

32. Полость рта

33-34. Зрачок левый/правый

Примеры разработки шаблонов с использованием динамических масок

Пошаговые уроки с динамическими масками

Видеоурок с примером использования динамической маски