d181d0bed0b7d0b4d0b0d0b5d0bc d0bad0b0d187d0b5d181d182d0b2d0b5d0bdd0bdd0bed0b5 d0b4d0b8d0bfd184d0b5d0b9d0ba d0b2d0b8d0b4d0b5d0be d0bf 6610af3fcb3c6

Ранее мы рассматривали различные способы по созданию видео с заменой лица, но они были довольно некачественными. Именно поэтому в этой статье мы разберем DeepFaceLive, настроим его и обработаем видеоматериал. Приложение намного лучше справляется, чем все бесплатные онлайн-сервисы. Единственным минусом является то, что результат сохраняется покадрово, но и эту проблему мы решим.

Учтите, что приложение имеет довольно высокие системные требования:
d181d0bed0b7d0b4d0b0d0b5d0bc d0bad0b0d187d0b5d181d182d0b2d0b5d0bdd0bdd0bed0b5 d0b4d0b8d0bfd184d0b5d0b9d0ba d0b2d0b8d0b4d0b5d0be d0bf 6610af4043def
Приступим к реализации:

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

d181d0bed0b7d0b4d0b0d0b5d0bc d0bad0b0d187d0b5d181d182d0b2d0b5d0bdd0bdd0bed0b5 d0b4d0b8d0bfd184d0b5d0b9d0ba d0b2d0b8d0b4d0b5d0be d0bf 6610af408fb35

Повторяем все действия с изображения ниже и указываем файл подкачки в размере не менее 32768 мегабайт на любом удобном для Вас диске:

d181d0bed0b7d0b4d0b0d0b5d0bc d0bad0b0d187d0b5d181d182d0b2d0b5d0bdd0bdd0bed0b5 d0b4d0b8d0bfd184d0b5d0b9d0ba d0b2d0b8d0b4d0b5d0be d0bf 6610af40d3d70

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

d181d0bed0b7d0b4d0b0d0b5d0bc d0bad0b0d187d0b5d181d182d0b2d0b5d0bdd0bdd0bed0b5 d0b4d0b8d0bfd184d0b5d0b9d0ba d0b2d0b8d0b4d0b5d0be d0bf 6610af413cc61

Распаковываем загруженный архив и запускаем установщик, соответствующий вашей видеокарте. NVIDIA_bulid для Nvidia, DirectX12_build для AMD:

d181d0bed0b7d0b4d0b0d0b5d0bc d0bad0b0d187d0b5d181d182d0b2d0b5d0bdd0bdd0bed0b5 d0b4d0b8d0bfd184d0b5d0b9d0ba d0b2d0b8d0b4d0b5d0be d0bf 6610af41851cd

Открываем папку, которую Вы указали при установке и запускаем файл «DeepFaceLive.bat»

d181d0bed0b7d0b4d0b0d0b5d0bc d0bad0b0d187d0b5d181d182d0b2d0b5d0bdd0bdd0bed0b5 d0b4d0b8d0bfd184d0b5d0b9d0ba d0b2d0b8d0b4d0b5d0be d0bf 6610af41d7887

Настраиваем все, смотря на изображение ниже. 1 — видеоматериал, на котором будет заменяться лицо; 2, 3, 4 и 6 — указываем ваш GPU; 5 — выбираем нужную модель (список можно посмотреть тут); 7 — выбираем «Merged frame»; 8 — указываем куда будут сохраняться обработанные карды вашего материала:

d181d0bed0b7d0b4d0b0d0b5d0bc d0bad0b0d187d0b5d181d182d0b2d0b5d0bdd0bdd0bed0b5 d0b4d0b8d0bfd184d0b5d0b9d0ba d0b2d0b8d0b4d0b5d0be d0bf 6610af42355aa

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

d181d0bed0b7d0b4d0b0d0b5d0bc d0bad0b0d187d0b5d181d182d0b2d0b5d0bdd0bdd0bed0b5 d0b4d0b8d0bfd184d0b5d0b9d0ba d0b2d0b8d0b4d0b5d0be d0bf 6610af42baacc

Так как видео сохраняется по кадрам, его потребуется соединить. Для этого устанавливаем Python, после чего создаем скрипт под названием script.py с таким кодом:

import cv2
import moviepy.editor as mpe
import argparse
import glob
import os

# Создание парсера
parser = argparse.ArgumentParser(description='Преобразование кадров в видео')
parser.add_argument('--in', dest='input_video', required=True, help='Путь к оригинальному видео')
parser.add_argument('--ff', dest='frames_folder', required=True, help='Путь к папке с кадрами')
parser.add_argument('--out', dest='output_video', required=True, help='Путь к выходному видео')

args = parser.parse_args()

# Получить fps из оригинального видео
clip = mpe.VideoFileClip(args.input_video)
fps = clip.fps

# Создать видеоряд из кадров
frame_array = []
files = glob.glob(args.frames_folder + '/*.jpg')  # путь к папке с кадрами
files.sort()  # убедитесь, что кадры в правильном порядке

for i in range(len(files)):
    filename = files[i]
    img = cv2.imread(filename)
    height, width, layers = img.shape
    size = (width, height)
    frame_array.append(img)

out = cv2.VideoWriter('temp.mp4', cv2.VideoWriter_fourcc(*'mp4v'), fps, size)

for i in range(len(frame_array)):
    out.write(frame_array[i])
out.release()

# Добавить звуковую дорожку из оригинального видео
my_clip = mpe.VideoFileClip('temp.mp4')
audio_background = mpe.AudioFileClip(args.input_video)
final_audio = mpe.CompositeAudioClip([audio_background])
final_clip = my_clip.set_audio(final_audio)
final_clip.write_videofile(args.output_video)

# Удалить временный файл
os.remove('temp.mp4')

Теперь перемещаем созданный скрипт и весь материал в одну папку, оригинальное видео должно называться «input.mp4», а кадры хранится в папке «processed»:

Создаем качественное дипфейк-видео при помощи DeepFaceLive

Запускаем командную строку в этой папке и пишем команду «script.py —in input.mp4 —ff processed —out result.mp4» (без кавычек) :

d181d0bed0b7d0b4d0b0d0b5d0bc d0bad0b0d187d0b5d181d182d0b2d0b5d0bdd0bdd0bed0b5 d0b4d0b8d0bfd184d0b5d0b9d0ba d0b2d0b8d0b4d0b5d0be d0bf 6610af43936c3

На этом все, надеюсь статья оказалась для Вас полезной!