Привет, друзья. Я ещё не знаю, как вы восприняли мою первую статью об охоте на старые уязвимости, но появилась очень занятная тема для ещё одной. Этот рассказ основан на реальных событиях, точнее, это будет что-то типа попытки предугадать и предсказать то, что делал злодей, чтобы скомпрометировать мою близкую знакомую.
Шантаж в интернете. Что происходит у тебя в голове, когда ты слышишь это выражение? Лично я всегда представляю огромного толстого мужика, сидящего подле маленького лептопа в кромешно-темной комнате. Этот негодяй зачастую имеет дело только с маленькими девочками, от которых требует шекели за неразглашение чего-то личного. Мерзкая картина, не так ли?
И самое печальное в этом всем. Нет, не так. Раньше, чтобы стать шантажистом, нужно было приложить недюжинные усилия и даже так шанс на успех был крайне мал. Но сейчас, как показала эта история, достаточно лишь воспользоваться тем, что давным-давно доступно всем и каждому. Не буду уже говорить о безопасности и то, как мы, ведя активную жизнь в социальных сетях, подвергаем опасности не только себя, но и окружение. Сегодня тебе, дорогой читатель, предстоит познать способ фальсификации материалов для дальнейшего шантажа. И поверь, доказать другим, что это подделка, будет невозможно.
Дисклеймер
Все описанные способы и мои манипуляции - это исключительно плод фантазий. Информация предоставлена исключительно в рамках ознакомительного материала и не несет побуждения к действию. Автор, как и портал, не несет никакой ответственности за то, с каким умыслом будут использованы способы представленные ниже. Все лишь для того, чтобы ты, дорогой читатель, мог защитить себя.
Самая легкая часть - подделка
Звучит странно, но именно так это и есть. Сперва нам потребуются фотографии, желательно, чтобы их было несколько и они учитывали разные ракурсы и выражения лица. Найти подходящую жертву труда не составит, ведь в наши времена практически каждая или каждый имеет несколько фотографий в социальных сетях. Естественно, никто ничего и не думал замазывать.
Качаем изображения, в хорошем качестве, сразу скажу не выйдет, ведь на данный момент социальные сети не предоставляют возможность заполучить полноразмерное фото простым скачиванием. Но выход есть.
Улучшаем качество выбранных фото и как поможет в этом нейросеть
Здесь можно было пойти путем намного проще и воспользоваться обычным сервисом по улучшению качества фото. Но найти рабочий и бесплатный - не самое простое решение, плюс этим мы оставим ,какие никакие следы, а раз моделируем схему шантажа, то это нам ни к чему. Поэтому воспользуемся репозиторием “идеал/изображение-супер-разрешение”. Дословно.
Целью этого проекта является масштабирование и улучшение качества изображений с низким разрешением.
Этот проект содержит реализации Keras различных ИИ для создания изображения с высоким разрешением (ISR), а также сценарии для обучения этих сетей с использованием компонентов.
Здесь было все на Китайском, как смог, так и перевел. Не обессудь.
Сперва установим наш репозиторий посредством pip:
Код:
pip install ISR
Собственно, на этом все. Всем удачи и пока. Ладно, шучу, способ установки через pip исключит ненужную мороку с установкой зависимостей.
Итак, в репозитории уже существуют четыре заготовленных и обученных модели, объяснять что и какая делает не стану, нас интересует только одна - psnr-large. Именно она сможет масштабировать нужный сектор изображения и повысить его качество.
В фотошопе вырезаем лица из желаемых фотографий и переходим обратно в Кали. Теперь откроем скрипт run.py с помощью текстового редактора и ищем следующие строки:
Код:
import numpy as np
from PIL import Image
img = Image.open('data/input/test_images/sample_image.jpg')
lr_img = np.array(img)
В третьей строке заменяем на путь к нашему изображению.
Здесь выберем нужную нам модель:
Код:
from ISR.models import RDN
rdn = RDN(weights='psnr-small')
sr_img = rdn.predict(lr_img)
Image.fromarray(sr_img)
В принципе, на этом все, запускаем сам скрипт, поочередно меняя путь к целевому файлу для улучшения. Результат не прям супер, но удовлетворителен, по крайней мере убрало видимые пиксели. Покажу вот на этом примере:
Прогресс есть. Теперь мы можем переходить непосредственно к подделке лица.
Прежде нам нужно подготовить изображения для работы с DFL, так как данный репозиторий работает исключительно с видео. Но как быть, когда мы хотим сделать фейковое фото? Очень просто.
Открываете любой редактор видео и на временную шкалу помещаете фото, сохраняете в любом понравившемся формате и готово.
Создаем первый DeepFake
Начнем с грустного.
Для использования Deep Face Lab 2.0 требуется высокопроизводительный ПК с современным графическим процессором, достаточной оперативной памятью, хранилищем и быстрым процессором. Windows 10 обычно рекомендуется для большинства пользователей, но более продвинутые пользователи могут захотеть использовать Linux для повышения производительности. Винда 11 тоже работает.
Минимальные требования для создания очень простых дипфейков с низким качеством/разрешением:
- современный 4-ядерный процессор с поддержкой инструкций AVX и SSE
- 16 ГБ ОЗУ
- современный графический процессор Nvidia или AMD с 6 ГБ видеопамяти (хорошо для моделей с разрешением до 192)
- много места для хранения пространство и файл подкачки установлены как минимум в 4 раза больше размера ОЗУ.
Проще говоря, нужно устройство, которое способно запустить тетрис на минимальных настройках графики. Но вы не печальтесь, играть в тетрис не каждому дано и если ПК не тянет, то ничего не поделать. Правда в случае с DFL обходной путь есть.
Самая требовательная процедура - это как раз-таки обучение, остальное можно делать хоть на Пентиуме первом, поэтому для тренировки мы используем Гугл Колаб. Обо всем по порядку.
Сперва нам нужно переименовать наши два видео файла, напомню, в одном из них находятся фото с лицом для замены, а во втором то фото, на которое лицо будет наложено. Первое видео будет носить имя data_scr, а второе data_dst.
Теперь качем наш архив с DFL, разархивируем его и идем в папку WorkSpace. Если вы очень внимательный, то уже заметили, что сам репозиторий под Windows состоит из 20+ .bat файлов, которые мы и будем выполнять по ходу работы.
Заменяем два имеющиеся файла в рабочем пространстве на те, которые недавно переименовали.
Все готово: камера, мотор и дипфейки
Итак, первым делом нам нужно изъять все кадры из наших видео. Использовать будем дефолтные настройки, просто кликая энтер. Запускаем второй бат файл с именем extract images from video data_sct. Хотя раз мы подделать хотим фото, то в количестве фпс можем указать значение 1, от этого процесс пойдет быстрее.
Теперь остается только ожидать, для кадра будет создана отдельная картинка. После того как файл закончит свое выполнение, мы можем перейти в рабочее пространство и посмотреть на наличие фотографий-кадров из видео.
Теперь запустим второй батник для извлечения кадров из data_dst - extract… data_dst Full FPS.bat. Здесь вовсе не нужно ничего нажимать, просто ждем.
Шаг третий. Теперь нам нужно извлечь из кадров фейс-сеты, проще говоря лица, которые будут использоваться в нашем дипфейке. Делаем это, аналогично для двух файлов - data_sct /data_dst faceset extract.bat. Использовать будем дефолтные значения.
После отработки обоих скриптов, можем опять же посмотреть результат. На деле, меня очень удивило, насколько оно красиво выделяет контуры лица.
Теперь тренировка или обучение. Использовать будет способ quick96, в котором прописаны самые оптимальные настройки для нашего рода занятий. Так как я не хочу напрягать свое устройство, мы пойдём в Гугл Колаб.
Переходим вот по этой
Ссылка скрыта от гостей
и начинаем работу.Первым делом установим сам репозиторий, здесь в принципе все просто, нажимаем на иконку “play” и ждем. Установка займет около двух-трех минут и не забудьте вот эту галку:
Примечательно, что коллаб использует современные ускорители вычислений, которые организуют обучение очень и очень быстро.
“Google Collab может предоставить вам одну из видеокарт Tesla: K80, T4, P4 или P100”.
Так-с, сейчас нужно сделать так, чтобы машина из Коллаба работала с нашим рабочим пространством. Для этого нам нужно создать архив workspace.zip, а после выгрузить на Гугл Диск. Затем перейти во вкладку “управление рабочим пространством”, где и выгрузить наш архив, разрешив доступ Гугла к данным на диске.
Теперь двигаемся ко вкладке “Модель поезда”, да, я буду оставлять кривой перевод, мне нравится. Раскроем её и выберем нужный метод обучения модели - в нашем случае это быстрый96 и запускаем работу.
Ждем около двух-трех часов, чем больше генераций будет создано - тем лучше.
Мы не можем получить предварительный просмотр данных о тренировках в реальном времени, как при использовании DeepFaceLab на своем рабочем столе, но можем просмотреть предварительный снимок тренировки. Обновляются они каждые 10 итераций, так что это почти в режиме реального времени. Просто перейдите на левую панель и войдите в папку «Модель». Там будет файл с именем «SAE_preview_SAE.jpg». Дважды щелкаем на файл jpg, чтобы открыть новое окно для предварительного просмотра.
Хорошо, что разработчик установил функцию автоматического резервного копирования и сохранения. Если что, наш сеанс перезапустится через 12 часов после первого сброса. Чтобы не потерять данные, коллаб автоматически заархивирует и загрузит все «рабочее пространство» на Google Диск примерно через 11 часов. Но мне это не интересно, поэтому просто останавливаю обучение и провожу мануальный запуск скрипта для экспорта.
Наше рабочее пространство на диске будет или обновлено, или заменено обученным. Качаем его и заменяем имеющиеся в папке DFL.
Шаг пятый - соединение воедино
Один из самых простых и ответственных шагов, именно в этот момент будет происходит наложение одного лица на второе, поэтому нужно постараться сделать все нормально.
Понадобится нам скрипт merge96.bat или сливаться96.bat, открываем его, нажимаем энтер несколько раз, чтобы применить дефолтные настройки. Затем нам откроется некая карта с комбинациями клавиш, которые нужно нужно использовать для регулировки наложения лица на лицо. Использовать мы будем только несколько из них.
Жмякаем Tab для переключения между окном с картой и изображением. Сперва нам нужно выставить так называемую erode_mask, она отвечает за жесткость слияния двух лиц. Стандартно она на нуле и поэтому видно стык, где лицо было присоединено, будто фотошопил рукастый человек, но в конце сдался и сохранил все как есть.
В моем случае, используя клавиши W и S, выставляем значение 36. Затем нам нужно выставить значение блюрмаски на 100-150. Достаточная степень размытия контуров, не видны шероховатости и стыки, идеально.
Теперь применим эти настройки для остальных кадров нажатием комбинации клавиш - стрелка вверх и ?. Запустим обработку и сохранение, зажав клавиши . и стрелку вверх. Когда полоса загрузки дойдёт до ста процентов, можем закрывать окно.
Скомпилируем все в формат .mp4, используя очередной батник - merge to mp4.
Ну и можем смотреть на результаты, а они впечатляют.
Реализация плана
Сейчас поговорим о том как бы делал это я, будь я в роли преступника. По правде человек, который сделал это с моей подругой был набутылен сотрудниками правоохранительных органов через два-три часа. Но результата он определенно достиг.
Заметаем следы, очищаем метаданные
Для этого нам опять понадобится Кали, установим простенький репозиторий:
Код:
git clone https://github.com/masterofobzene/Image-Metadata-Remover-Script.git
Его использование ещё проще:
Код:
python3 main.py /home/1.png
Как по мне, слишком просто. Давайте создадим фейковые метаданные, на месте преступника я бы так и сделал, чтобы следствие пошло по ложному пути.
Для этой манипуляции воспользуемся вот этим скриптом, репозитория под него нет, поэтому придется просто скачать.
Затем запускаем скрипт и следуем простым инструкциям:
Код:
bash 1.sh
Создаем поддельный форум со сливом
Если бы я делал подобное, то явно подошел бы к этому делу с умом. Зачем мне взаправду вредить кому-то и публиковать в открытый доступ якобы реальные материалы с участием цели? Вообразим, что я шантажист. Мне не нужно ничего, кроме получения желаемого. Логично? Думаю, что так. По сему я решил создать поддельный форум, на котором будет размещен якобы “слив”. Также добавлю в коде несколько комментаторов, которые узнали жертву и находятся в одном городе с ней для создания эмоционального давления.
А теперь переходим к созда… Продолжение следует.
Oh no, извините. Статья получается очень большой, поделим на две части.
Последнее редактирование модератором: