Рядом в корзине лежит ещё один документ — текстовый файл с расширением, указывающим на лог рендера видеомонтажной программы. Название файла тоже подобрано нейтрально, ничем не выдавая содержимое случайному наблюдателю. Открываю его прямо в окне предпросмотра, не желая тратить время на полноценный запуск редактора. Строчки технической информации мелькают перед глазами — кодек H.264, разрешение видео, время обработки. А в самом конце файла — имя итогового проекта, отпечатанное чёткими символами: «Kiss_final».
Внутри всё сжимается одновременно от ужаса и странного, почти торжествующего облегчения — вот оно, наконец конкретное, неопровержимое доказательство, лежащее прямо здесь, в обычной цифровой корзине рабочего компьютера, будто забытое второпях или намеренно оставленное из ложного чувства безопасности. Сколько раз за последние недели прокручивала в голове сценарии, где так и не находим ничего конкретного, где всё остаётся на уровне подозрений и косвенных догадок, — и вот сейчас, буквально в паре кликов от чужого экрана, лежит именно то, что нужно.
Достаю из кармана заранее приготовленную флешку, вставляю в порт ноутбука, руки трясутся настолько сильно, что с первого раза не попадаю в разъём. Проклинаю про себя собственную неловкость, делаю глубокий вдох, пытаясь унять дрожь хотя бы на несколько секунд. Копирую оба файла — исходное видео и лог-файл рендера, — наблюдая за прогресс-баром с колотящимся сердцем, каждую секунду ожидая, что кто-то из коллег вернётся раньше времени и застанет меня прямо на месте.
Копирование завершается, вынимаю флешку, поспешно закрываю окно корзины, возвращаю рабочий стол в исходное состояние перед тем, как экран снова уйдёт в блокировку. Мышкой возвращаю курсор на прежнее место, будто пытаясь стереть даже мельчайшие следы собственного присутствия на чужом устройстве. Проверяю дату модификации исходника ещё раз, сверяясь с записями в собственном телефоне про корпоратив — числа совпадают идеально. Дата же лог-файла указывает на день скандала, тот самый субботний день, когда Артём ворвался в квартиру родителей с обвинениями.
Отхожу от стола Димы с фальшивым степлером в руке, сердце колотится так громко, что кажется, будто стук слышен на весь опенспейс. Прохожу мимо кофемашины неторопливым шагом, стараясь выглядеть максимально обыденно, будто просто искала канцелярские принадлежности и уже нашла нужное. Возвращаюсь на своё место, убираю флешку глубоко в карман, стараясь дышать ровно, несмотря на бушующий внутри вихрь эмоций.
Достаю телефон, набираю сообщение Антону дрожащими пальцами: «Нашла. Исходник и лог рендера. Даты совпадают идеально».
Ответ приходит почти мгновенно, будто он ждал сообщения, не отрываясь от экрана.
«Встречаемся у меня сразу после работы. Захвати флешку, разберём всё».
Сажусь обратно за макет, но сосредоточиться теперь абсолютно невозможно — руки всё ещё подрагивают от адреналина, а мысли крутятся вокруг единственного вопроса, застрявшего где-то глубоко под рёбрами: что именно скрывается за этим коротким названием проекта, оставленным в корзине по чужой неосторожности. Смотрю на время в углу монитора — до конца рабочего дня остаётся ещё три томительных часа, и каждая минута теперь тянется невыносимо медленно.
Глава 17. Сравнение
— Показывай, что там, — говорит Антон, едва я переступаю порог квартиры, даже не предложив снять куртку в прихожей.
Голос звучит взволнованно, куда живее обычной размеренной интонации — сообщение о находке явно не оставило его равнодушным. Протягиваю флешку молча, руки всё ещё немного дрожат от событий рабочего дня. По дороге сюда репетировала мысленно, как коротко и без лишних эмоций расскажу про находку в корзине, но сейчас все заготовленные фразы вылетают из головы разом. Проходим сразу в кабинет, Антон вставляет накопитель в компьютер, открывает специальную программу для монтажа, знакомую уже по прошлым посиделкам за разбором видео.
— Смотри, — говорит он, растягивая на экране два видеоряда параллельно, один над другим. — Слева исходник с камеры, справа готовый ролик, присланный Артёмом.
Сажусь рядом, вглядываюсь в оба изображения одновременно. На исходнике я стою у барной стойки одна, поправляю выбившуюся прядь волос, оглядываюсь на звук музыки за спиной. Смотрю на саму себя со стороны, будто на постороннего человека — та вечеринка кажется теперь бесконечно далёкой, из совсем другой, беззаботной жизни, когда самой серьёзной заботой оставался выбор ткани на свадебное платье. На готовом ролике та же самая сцена, только рядом внезапно появляется чужая фигура, склоняющаяся ко мне для поцелуя.
— Видишь разницу в позе? — Антон указывает курсором на моё плечо в обоих кадрах. — На исходнике корпус развёрнут чуть влево, на финальном видео — почти прямо. Небольшая деталь, но её не так просто подделать идеально, особенно при склейке разных источников. Мозг обычно достраивает картинку сам, если её не разглядывать специально.
Приглядываюсь внимательнее, действительно замечаю едва уловимое расхождение — угол плеч, положение подбородка, чуть иное освещение волос сбоку. Мозг дизайнера, привыкший работать с визуальными деталями каждый день, неожиданно оказывается полезен в этом странном расследовании, будто профессиональная привычка наконец нашла себе неожиданное практическое применение.
— А тени вообще другие совсем, — добавляю сама, указывая на пол под моими ногами на обоих кадрах. — На исходнике тень падает вправо, на монтаже — почти прямо вниз. Дизайнерский глаз, оказывается, цепляется за такие мелочи автоматически, даже когда сознательно не ищешь подвох.
— Точно, — кивает Антон одобрительно. — Разные источники освещения на исходных материалах, склеенные без должной коррекции. Профессиональная студия такое обычно исправляет, но, видимо, времени не хватило довести до идеала. Спешка обычно выдаёт себя именно такими мелочами, ускользающими от беглого просмотра.
Работает дальше молча несколько минут, набирает какой-то код в отдельном окне терминала, объясняя попутно, что пишет простой скрипт для наложения специальной сетки поверх лица — технология, обычно используемая для отслеживания движений в анимации, но полезная и для обратной задачи, выявления подделок. Наблюдаю за строчками кода, мелькающими на экране, ничего не понимая в синтаксисе, но заворожённая уверенностью пальцев Антона, летающих по клавиатуре без единой запинки. За окном где-то далеко сигналит машина, обычные вечерние звуки города, доносящиеся будто из другой, менее напряжённой реальности. Экран монитора остаётся единственным источником света в комнате, отбрасывая на его лицо холодноватые синеватые блики.
— Готово, — объявляет он, запуская обработку. — Сейчас сетка ляжет поверх обоих видео, посмотрим на искажения. Терпение, пара секунд на просчёт кадров.
На экране появляются два лица, покрытые тонкой полупрозрачной решёткой, повторяющей контуры черт — лоб, скулы, подбородок, линия рта. На исходнике сетка двигается плавно, синхронно с поворотом головы, ровными правильными ячейками. На финальном ролике та же сетка временами странно морщится, будто ткань, натянутая на неровную поверхность, особенно заметно в области подбородка и шеи. Наблюдаю за этим искажением с почти гипнотическим вниманием, будто смотрю на разоблачение фокусника, наконец показавшего скрытый механизм трюка.
— Вот оно, — говорит Антон тихо, останавливая кадр в момент максимального искажения. — Классический след замены лица нейросетью. Алгоритм хорошо справляется с основными чертами, но геометрия под разными углами выдаёт подмену. Дальше можно не сомневаться, что перед нами именно синтез, а не случайное совпадение ракурсов.
Смотрю на застывшую картинку долго, чувствуя странную смесь эмоций — облегчение от очередного технического подтверждения собственной невиновности, смешанное с горькой усталостью от необходимости вообще доказывать очевидное. Хочется одновременно кричать от радости и заплакать от того, сколько сил ушло на путь к этой простой, в сущности, истине.