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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Давайте рассмотрим примеры совмещения двух масок:

  • В левом столбце рассмотрим теоретический пример совмещения двух одинаковых масок, используя окружности в градациях серого. Каждая окружность представляет собой черное кольцо, внутри которого находится темно-серое кольцо меньшего размера, затем светло-серое кольцо еще меньшего размера, и наконец, центральный круг белого цвета. Для наглядности мы выделим границы между кольцами желтым цветом. Каждому цвету присвоим свое числовое значение в рамках диапазона градаций серого [0;1].

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

Теоретический пример совмещения масок Практический пример (на шаблоне) совмещения масок
Исходная маска
Умножение двух масок
Сложение двух масок
Вычитание двух масок
Минимум двух масок
Максимум двух масок

Пример использования нескольких режимов совмещения масок вы можете посмотреть здесь.

Примеры использования совмещения масок в различных других шаблонах:

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

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

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

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

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

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

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

Важно:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Маску можно строить как по одному, так и по нескольким лицам. Чтобы настроить распознавание множества лиц, перейдите в Файл > Изменить проект > Версии детекторов, выберите детектор По лицу и задайте значение опции Макс. количество лиц (допустимы значения от 1 до 9).

Для улучшения распознавания также можно отключить опцию Быстрый поиск и включить опцию Поиск повернутых лиц.

Маску по лицу можно выгрузить в облако, что позволит использовать ее на следующих этапах обработки. Чтобы сделать это, перейдите в Файл > Изменить проект > Версии детекторов, выберите детектор По лицу и включите опцию Выгружать маску.

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

В Конструктор шаблонов добавлен Детектор головы 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. Зрачок левый/правый

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

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

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