Мануал DeepFaceLive
Помните, что использование DeepFaceLive может нарушить приватность других людей. Поэтому, убедитесь, что у вас есть согласие на использование лица, которое вы хотите наложить на видео.
Так что, если вы хотите изменить лица в режиме реального времени, попробуйте использовать DeepFaceLive!
Для того чтобы начать использовать DeepFaceLab, вам нужно:
- Установить и настроить программу. Вы можете скачать DeepFaceLab на официальном сайте, и следовать инструкциям для установки на свой компьютер.
- Собрать и подготовить видео-материалы. DeepFaceLab использует набор фотографий для создания модели лица, а затем применяет эту модель к видео. Вы можете использовать любой набор фотографий, включая снимки вашего лица или чьего-то другого.
- Создать модель лица. DeepFaceLab предоставляет несколько различных методов для создания модели лица, включая SAEHD, Quick96 и H128. Каждый метод имеет свои сильные и слабые стороны, и лучше выбрать метод в зависимости от ваших потребностей и возможностей вашего компьютера.
- Обучить модель. После создания модели лица, вам нужно обучить ее на вашем наборе фотографий. Это может занять много времени, в зависимости от сложности модели и количества фотографий, но это необходимо для получения качественных результатов.
- Применить модель к видео. После того, как модель будет обучена, вы сможете использовать ее для замены лица на видео. DeepFaceLab позволяет выбирать точки на лице, которые будут использоваться для выравнивания, и много других параметров для получения наилучшего результата.
- Экспортировать результат. После того, как вы создали deepfake-видео, вы можете экспортировать его в формате видеофайла, который вы можете сохранить на вашем компьютере.
Важно помнить, что создание deepfake-видео может быть незаконным и может нарушать права других людей. Поэтому перед использованием DeepFaceLab убедитесь, что вы выполняете все необходимые правовые требования.
ITСooky
Полное руководство по созданию своих DeepFake видео в DeepFaceLab плюс натренерованные модели!
Прошло уже полтора года после написания первой статьи про DeepFake, пришло новое понимание, хотя до конца все мне еще не понятно! Главное что DeepFake все еще удивляет, в какой-нибудь онлайн сервис его так и не могут засунуть потому что тут много ручной работы, ну и проблема с вычислительной мощностью тоже остается. А в домашних условиях, когда не жалко ни электричества ни времени, пожалуйста можно уже интересные веши делать с любимыми актерами или вот хотябы например с женой, что гораздо интереснее получается!
Про выбор железа. Можно на любом на котором есть ядра CUDA, но если их мало то будет долго обрабатываться, да можно даже на CPU но обрабатываться будет вечность(одной жизни не хватит). В начале все делал на GIGABYTE RTX 2070 MINI ITX 8Gb 2304 CUDA, потом на NVIDIA PNY RTX A4500 20Gb 7168 CUDA! И сейчас очень жалею что схватил профессиональную карту весной 22 года, хотя тогда по памяти и по ценам она того стоила — сейчас же… Профессиональные карты, они не быстрые — они энергоэффективные, цены на них не падают(и не особо растут потому что изначально уже очень высокие) сейчас дешевле и гораздо выгодней по производительности брать 3090 или 3090 TI, да даже 4090 (но она обрезанная без SLI в два раза увеличить память, для большших моделей по разрешению, собрав бутер не получится) — вот только электричество, производительность на ватт у профессиональных выше!
Для создания DeepFake использую DeepFaceLab на Ubuntu, но можно и на Windows, особой разницы по стабильности нет так же иногда крашится всё, даже если на карте включен ECC!
Собираем данные лица data_src
Требования к лицу (у меня)
— видео с тенями на лице и без
— отсутвие волос на лице, и пальцев и прочее
— и надо смотреть чтобы было похоже на себе, обычно на видео впределах 2-3 лет все похожи на себя
— лицо должно быть на пол экрана, при размере видео 1080p лицо ну хотябы на 30-50% экрана!
Тут конечно больше всего лица даст видео Anya Taylor-Joy From «Emma» Tells Us About Her First Times, но остальные тоже карйне полезны потому что с тенями и редкими выражениями и позами лица!
Если Аня Тейлор-Джой живет с вами в одной квартире, то вам конечно проще специально её снять для DeepFake, на монотонном фоне, чтобы AI было легце вырезать её лицо. И тени можно создать освещением всякие.
Видео скачиваю и в видео редакторе Kdenlive соединяю их в одно видео, вырезая всё лишнее и всё где мелкое лицо и где прикрыто!
Сохраняю его в папку \DeepFaceLab\workspace под именем data_src.mp4
Получается около 10 минут лица
Теперь запускаем скрипт который из этого видео сделат кадры
\DeepFaceLab\scripts\2_extract_image_from_data_src.sh
Он спросит сколько кадров в секунду брать, я обычно пишу 7 — 12 и формат png. Кадры кладуться сюда \DeepFaceLab\workspace\data_src\
Всго вышло примерно 7500 это не много, но нам пойдет, теперь запускаем скрипт который будет вытасиквать лица из кадров и класть их в \DeepFaceLab\workspace\data_src\align\
\DeepFaceLab\scripts\4_data_src_extract_faces_S3FD.sh
Он спросит:
Face type — что выхватывать я обычно беру wf — всё лицо
Max number of faces from image — естественно 1 одно
Image size — и мне по моему видео достаточно 512
Jpeg quality — 90
Write debug images to aligned_debug? — n
И вот это уже долгий процесс, я смотрю сразу в \DeepFaceLab\workspace\data_src\align\ и не удасчные стараюсь сразу удалить — где лицо прикрыто, где совсем смазано.
Теперь запускаем некую сортировку
\DeepFaceLab\scripts\5.2_data_dst_sort.sh
Тут выбираем лучше лица
[13] best faces
И число близкое к общему количеству лиц например 7000. Итого стало меньше на 81 кадр!
Самое время, подготовить видео на которое будем накладывать лицо Аньи. Его надо сохранить в папке \DeepFaceLab\workspace под именем data_dst.mp4.
И так же вытащить кадры
\DeepFaceLab\scripts\3_extract_image_from_data_dst.sh
И лица
\DeepFaceLab\scripts\5_data_dst_extract_faces_S3FD.sh
параметры такие же
Face type — wf
Image size — 512
Jpeg quality — 90
Удалять тут придется тщательнее, тут больше лиц, появляются они в \DeepFaceLab\workspace\data_dst\align\
И так у нас есть картинки лица какого на кого наложить, но надо на этих картинках выделить самое лицо. Вот тут появляется первая нейросеть, она тоже тренируется, но даже натренированной имеет смысл помочь выделив на кадрах несколько лиц, особенно если на эти лица попадает палец в принимающем видео.
Запускаем распознавание контура лица
Нужна модель для распознования, можно свою качать а можно скачать уже натренерованную мной от сюда
mega.nz/folder/9JoHVKaZ#5ZHqRmeCe0FxPOJlBxgIXg
и кладем в \DeepFaceLab\workspace\model\ все файлы
Выделяем линией с первого значка, он для лица. Второй значок для сохранений деталий лица с принимающего видео, например усов или стекающих капель крови.
И так несколько кадров, где сложное или необычное лицо.
По умолчанию нейроесть учится сразу и на принимающих кадрах и на отдающих, так что на принимающих тоже отмечаем.
\DeepFaceLab\scripts\5_XSeg_data_dst_mask_edit.sh
Тут сильно рекомендую промотать все кады в редакторе, во-первых это будет еще одна проверка кадров на вшивость и иногда одно и тоже(нужное нам лицо) опеределяется два раза, и при промотке это будет заметно, второе определяется неправильно и видно как оно дергается на общем фоне… факт наличия этого глюка еще заметен по номуреции файлов, но понять какой правильный можно только просматривая.
И запускаем учебу нейросети
\DeepFaceLab\scripts\5_XSeg_train.sh
тут все по умолчанию
Есть тут и настройки в них можно выйти нажав любую кнопка когда появится
Здесь везде n но имеет смысл установить
Batch_size — у меня 16 зависит от размера памяти видокарты кажется
В открывшемся окне, надо будем смотреть как нейросеть научилась для этого надо нажать:
P — обновить прогресс
[пробел] — переключиться между видами
L — переключиться между графиком прогресса, хорошо когда линия как можно ниже и без скачков
ВАЖНО: Нельзя тут вводить символы при русской раскладке клавиатуры, процесс сразу крашится!
Тут не обезательно ждать вечно, можно остановить учебу, применить эту нейросеть, опять её посмотеть редактором(который запускали выше) обвести лица на сложных кадрах и опять запустить обучение!
Останновить процесс можно нажав [Enter] когда на странице с превью!
Применяем нейросеть на лицах
\DeepFaceLab\scripts\5_XSeg_data_src_mask_apply.sh
\DeepFaceLab\scripts\5_XSeg_data_dst_mask_apply.sh
И смотрим
\DeepFaceLab\scripts\5_XSeg_data_src_mask_edit.sh
\DeepFaceLab\scripts\5_XSeg_data_dst_mask_edit.sh
Чтобы выделился выделение лица надо нажать вот это, выделяет не очень наглядно, просто делается темнее
Если все норм идем дальше
Запускаем обучение нейросети для наложения лица на видео
Настройки мною натренерованной модели
Скачиваем её от сюда
mega.nz/folder/tE5XTDbT#OFcuuSOVLoUa8Hrj1dt8Lg
и кладем в \DeepFaceLab\workspace\model\ все файлы
Запускаем
\DeepFaceLab\scripts\6_train_SAEHD.sh
Выбираем модель
и тут также идем в настройки в них можно выйти нажав любую кнопка когда появится
Все подойдет как у меня но стоит обратить внимание на следующие настройки
Autobackup every N hour — делать настройки каждые штук часов, смотрите по совему диску я делаю каждые 5 часов, если чаще диск забивается, все таки работает пару дней, а модель весит 4Gb!
Batch_size — а вот это во сколько потоков запускать тренировку, это напрямую зависит от количества памяти на вашей видеокарте, у меня 20GB стоит 6, попробуйте крастно снижать, если у вас 12Gb ставьте 3. Если модель поучится и выдаст ошибку или не запустить вообще то снижайте это число.
Ну и все поехали!
Лицо Аньки новое для этой модели, так что начинается вот так — это уже хорошо!
— все не черное, значит модель не рассыпалась
— уже видны черты лица, если бы это модель начиналась с нуля, просто очертания лица появились бы только через пару часов
Тут также
[P] — обновить прогресс
[пробел] — переключиться между видами
L — переключиться между графиком прогресса, хорошо когда линия как можно ниже и без скачков
Через час или через 6000 итирация — уже хорошо, я обычно на зубы смотрю, тут плохо видно но если появляются отдельные зубы значит уже хорошо! Очень мало времени прошло а уже хорошо — но это обьяснимо, во-первых модель уже была натренерована, во втроых всего на 200 кадров накладываем, в третьих но это же Венздей — ноль эмоций на лице!
В предпросмотре появляются совсем кривые картинки, это нормально, модель учится эксперементирует, в конечный результат они не попадут. А вот если на лице (по краям кадра — не страшно) начнут появляется радужные точки или пятны это плохо — модель локально начинает рассыпаться, остается только надеятся что в конечный результат они не попадут, или их будет мало и можно будет вырезать.
Да и на этом обучение не переносятся цвета, это модель для формы лица. Для цвета запустим эту же модель но с другими настройками и она перестанет быть многоразовой, станет одноразовой только под это видео!
Итого училась 13 часа, чем дальше тем улучшения менее заметны но они есть!
Останавливаю нажатием [Enter] и эту модель копирую прям из папки \DeepFaceLab\workspace\model\ в отдельную, это для следующих видео, начинать будем с этой модели.
А теперь добиваюсь цветов, с этим как я понял DeepFaceLab уже плохо справляется и его автор рекомендует использовать AfterEffects или Davinci Resolve, это не свободные порграммы, кто его знает что там происходит и как! Скину всю работу опять на нейросеть может вытянет!
Запускаю опять обучения но меняю параметры.
\DeepFaceLab\scripts\6_train_SAEHD.sh
идем в настройки в них можно выйти нажав любую кнопка когда появится
Batch_size — уменьшаю на один до 5 по другим разам знаю что сейчас память будет больше использоваться и может не хватить.
Use learning rate dropout — тут ставлю y так надо
Enable random warp of samples — тут ставлю n так надо
GAN power — это не трогаю, а вообще это повышает четкость, начинаю обычно с 0.1, если сразу не завалится повышаю еще
Face style power — вот оно тут ставлю 0.002 все эти улучшатели повышают риск колапса модели, конкретно этот параметр выдает черные дыры на лице, так что надо по чуть-чуть.
Запустил утром, вечером подошел посмотреть — вот модель и рассыпалась
Бекапы делал каждые ти часа смотрю и значит развалилась где-то после обеда эх пол дня жег электричество в пустую!
Копирую последную живую модель из \DeepFaceLab\workspace\model\320A256A128_SAEHD_autobackups в \DeepFaceLab\workspace\model и буду уже накладывать, а что делать, все равно после Face style power не особо заметные улучшения, они только на уровне тонов слегка лучше делают картинку!
Запускаем
\DeepFaceLab\scripts\7_merge_SAEHD.sh
Тут все поумолчанию, потом задумается, но надо жать [Tab] когда одумается покажет вот что
Конкретно для этого кадры у меня такие настройки
Для каждой сцены иногда приходиться подбирать свои, так что с этим вам придется возится самим, опишу основные:
mask_mode: — это варианты выделения лица, меняется нажатием [X]
erode_mask_modifier — подрезание накладываемого лица по контуру [W] в меньшую сторону и в большую [S]
blur_mask_modifier — размыливание контуров накладываемого лица больше [E] меньше [D]
output_face_scale — размер накладываемого лица увеличение [J] уменьшение [U]
color_transfer_mode — это единственная настройка реально влияющая на цвет накладываемого лица, отдельно сделать ярче или цветатсей нельзя эх… переключаться [C], тут заметно что разные цветовые схемы по разному нагружают процессор.
blursharpen_amount — делает размытие или четче… чуть-чуть, размытие лучше работает, так же он слегка подрезает контуры, четче [Y], размытие [H]
super_resolution_power — делает четче, не идеально четко но делает, побочный эффект осветление(или наоборот затемнение) четче [T] менее [G]
] — посмотреть оригинал
[1], [2], [3], [4] — вернуть накладываемое лицо с разными цветовыми деффектами, но практически всегда подходит только [1]
[?]+[Shift] — применить настройки ко всем кадрам, которые дальше
[>]+[Shift] — обработать все кадры, которые дальше
[?] — обработать один следующий кадр
[ESC] — закончить редактирование
Смотрим, первая сцена — в целом хорошо но не хватает светлости у лицы Аньи…
Тут уже похуже, тени на Ани сильнее чем на оригинале, но все еще похоже на сцену и оттенки кожи тоже имеются
Ну вот тут уже, в конце, плохо — тень так и выделяется, общий оттенок лица, и четкости не хватает так как лицо больше… можно было бы докрутить еще на пару дней оставить обрабатывается и стало бы лучше, а может и нет! DeepFakeLab не придумает нужную тень он может только подогнать существующею слегка, может в этом проблема — не было достаточно близкого лица Аньи для этой сцене, а в других были!
Записываем все в видео
\DeepFaceLab\scripts\8_merged_to_mp4.sh
ДипФейк [DeepFaceLab] как я создал Нейронную сеть за 15 Минут Без Программирования?
В этой статье подробно пошагово описан алгоритм действий из видео, в котором описывается создание дипфейка(deepfake) с нуля без навыков программирования, снятого для YouTube канала.
Deepfakes ( конкатенация слов «глубинное обучение» (англ. Deep learning) и «подделка» (англ. Fake) ) методика синтеза изображения, основанная на искусственном интеллекте. Она используется для соединения и наложения существующих изображений и видео на исходные изображения или видеоролики.
В подавляющем большинстве случаев, для создания таких видео используют генеративно-состязательные нейросети (GAN). Одна часть алгоритма учится на реальных фотографиях определенного объекта и создает изображение, буквально «состязаясь» со второй частью алгоритма, пока та не начнет путать копию с оригиналом. Хотя подделка контента не нова, дипфейки используют мощные методы машинного обучения и искусственного интеллекта для манипулирования или создания визуального и аудиоконтента с высоким потенциалом обмана.
Основные методы машинного обучения, используемые для создания дипфейков, основаны на глубоком обучении и включают обучение генеративной архитектуре нейронных сетей, например автоэнкодерам или генеративные состязательные сети (GAN). Deepfakes снискали всеобщее внимание на их использование в знаменитости порнофильмах , порноместь , новости подделки , мистификации и финансовое мошенничество. Это вызвало реакцию как отрасли, так и правительства с целью выявления и ограничения их использования.
Я работал на ноутбуке с системными характеристиками: Ryzen 5 3550H, NVIDIA GeForce GTX 1050 3GB, 8GB memory size. Это не лучшее железо для работы, подходит для начального уровня.
Итак приступаем к работе:
Убедитесь, что у вас видеокарта от Nvidia и поддерживает CUDA (CUDA — это программно-аппаратная архитектура параллельных вычислений, позволяющая существенно увеличить вычислительную продуктивность благодаря использованию графических процессоров NVIDIA).
Установка Cuda, если не установлен(параллельно установятся свежие драйвера видеокарты)
Проверка установки Cuda nvcc -version в терминале
Переходим в репозиторий DeepFaceLab с которым будем работать
Скачиваем файлы с торрента или mega.nz
Распаковываем: запускаем EXE файл или используя любую программу для распаковки архивов
Открываем каталог ..DeepFaceLab_NVIDIA\workspace , где находятся видео и кадры из видео в формате изображений
Файл с названием data_src является исходным видео с которого будут браться лица(без звука), файл data_dst является видео на которое переносится лицо, звук из него будет на конечном видео. Заменяем эти файлы на свои видео, сохраняя названия data_src и data_dst
Возвращаемся в каталог ..DeepFaceLab_NVIDIA\ ,где запускаем файл 2) extract images from video data_src.bat для извлечения изображений из data_src.
Запускаем файл 3) extract images from video data_dst FULL FPS.bat для извлечения изображений из data_dst
Запускаем файл 4) data_src faceset extract.bat для извлечения лиц изображений полученных от data_src
Запускаем файл 5) data_dst faceset extract.bat для извлечения лиц изображений полученных от data_dst
Файлы 4.1) data_src view aligned result.bat и 5.1) data_dst view aligned results.bat позволяют посмотреть полученный результат и удалить нежелательные изображения
Запускаем файл 6) train Quick96.bat для обучения DeepFake модели (мы можем остановить обучение в любой момент, если нас устраивает качество предварительного просмотра)
Запускаем файл 7) merge Quick96.bat для создания финального видео применив обученную модель. В окне слияния будет карта горячих клавиш, мы можем использовать TAB для переключения на предварительный просмотр. используя W S мы можем изменять маску эрозии, то есть границу вокруг лица для детального наложения. E D можно использовать для изменения уровня размытия. После одновременного нажатия SHIFT+/ мы применим настройки ко всем кадрам. Жмем одновременно SHIFT+> для обработки оставшихся кадров
Запускаем файл 8) merged to mp4.bat создаем финальное в формате mp4, объединяющее новый видеоряд и звук исходного файла
Открываем каталог ..DeepFaceLab_NVIDIA\workspace , где появляется файл result.mp4 — это конечное видео. Для улучшения качества можно продолжить тренировку в любой момент, повторив предыдущие шаги.
Вот, например, видео, которое я сделал после потратив два часа на обучение