From 5d819e3e835dcd53e34ba38d793cf71adf721c52 Mon Sep 17 00:00:00 2001 From: iperov Date: Mon, 18 Mar 2019 11:49:01 +0400 Subject: [PATCH] upd manual_ru --- doc/manual_ru.pdf | Bin 2962109 -> 2963040 bytes doc/manual_ru_source.xml | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/manual_ru.pdf b/doc/manual_ru.pdf index 71b77577d1b8a736b49a919f53748eca28f02817..6cc41c4b2986931273ef536104266d870b9567c5 100644 GIT binary patch delta 93091 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 delta 92618 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%0A*WUB?aJ@c?&KbK6{@WJvgl#8lO;D+Pn>cuYtY;W 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 D2PILy diff --git a/doc/manual_ru_source.xml b/doc/manual_ru_source.xml index 93b0613..1990125 100644 --- a/doc/manual_ru_source.xml +++ b/doc/manual_ru_source.xml @@ -1,6 +1,6 @@ -DeepFaceLab это программа для замены лица в видео с помощью нейросети, работающей на графическом ускорителе NVIDIA / AMD / IntelHD Graphics.Разработчик: iperovСайт разработчика: https://github.com/iperov/DeepFaceLabРазрядность: 64bitЯзык интерфейса: АнглийскийМинимальные системные требования: Windows 7 и вышепроцессор с поддержкой SSE инструкций2Gb ОЗУ с подкачкойOpenCL-совместимая видеокарта ( NVIDIA, AMD, Intel HD Graphics ) Рекомендуемые системные требования:Windows 7 и вышепроцессор с поддержкой AVX инструкцийNVIDIA видеокарта с 6GB видео, 8Gb ОЗУДоступные сборки:DeepFaceLabCUDA9.2SSE для NVIDIA видеокарт вплоть до GTX1080 и любых 64-бит процессоров.DeepFaceLabCUDA10.1AVX для NVIDIA видеокарт вплоть до RTX и процессоров с поддержкой AVX инструкций.DeepFaceLabOpenCLSSE для AMD видеокарт и любых 64-бит процессоров.Зеркало со старыми версиями: https://mega.nz/#F!b9MzCK4B!zEAG9txu7uaRUjXz9PtBqgОсобенности DeepFaceLab :отсутствие любых предустановок, кроме драйверов на вашу видеокарту. Проверено на чистых Windows 7 и 10, а также в VMWare.работает на любых OpenCL-совместимых видеокартах с памятью от 256Mb и выше, даже довольно старых.автоматически выбирает «лучшую» видеокарту. Так можно работать с офисными приложениями на видеокарте послабее, а тренировка сети будет автоматически на лучшей.есть возможность тренировки полностью на CPU. 8-е поколение процессоров Intel способен выдать неплохой демонстрационный результат за 2 дня тренировки.все необходимые мета-данные лиц хранятся непосредственно в извлеченных JPG файлахесть режим ручного выделения лицесть сортировка извлеченных лиц для быстрого удаления ненужных лиц.быстрая работа с видео: извлечение, удаление шума, сборка финального видеоПриступая, поймите: эта программа не гарантирует идеальной замены лиц во всех случаях! Всё зависит от качества исходных данных, совместимости лиц, источников света, и т.д. и т.п. Да и сама технология появилась недавно (февраль 2018), она далека от идеала, т.к. заменяется только лицо, причём без лба и волос. Вы можете потратить кучу времени и сил, а в итоге ничего не получить! У вас есть невысокий шанс создания успешного фейка с первой попытки. Только когда вы сделаете много попыток создания фейков с разными лицами, тогда вы поймете все нюансы.DeepFaceLab создана на чистом энтузиазме одним человеком. Поэтому, если вы найдете какие-либо ошибки, то отнеситесь к этому с пониманием.Посмотрите вводную видео инструкцию по работе с программой, чтобы получить общее представление о рабочем процессе: https://www.youtube.com/watch?v=K98nTNjXkq8 Обновите драйвера на вашу видеокарту.Первый запуск программы в чистой папке из торрента будет происходить долго, т.к. компилируются GPU программы.Определим термины dst и src.src - это лицо, которое будет использоваться для замены.dst - это лицо, которое будет заменяться.DeepFaceLab\workspace – наша рабочая папка для хранения модели целиком (видео, фото, файлы самой программы). Вы можете переименовывать её, чтобы сохранять как резервную копию или работать с другой.1) clear workspace.batОчистит или создаст все папки внутри папки workspace. Помещаете в папку workspace ваше видео data_src.xxx формата максимум 1080р - это видео откуда брать лицо. Тестовое видео уже содержится в папке workspace.Помещаете в папку workspace ваше видео data_dst.xxx формата максимум 1080р - это видео где заменить лицо. Тестовое видео уже содержится в папке workspace.где xxx - любое расширение видео, например mkv, mp4, avi2) extract PNG from video data_src.batконвертирует видео откуда брать лицо в набор PNG в workspace\data_srcEnter FPS ( ?:help skip:fullfps ) : сколько кадров из каждой секунды видео извлечь, пропустить = все кадры. Здесь мы собираем кадры из которых будем извлекать src лица. Чем их больше тем лучше.3.1) cut video (drop video on me).batопционально. Обрезает видео где заменить лицо, на время которое вы укажите.Нужно перетянуть видео файл на этот .bat файл, при этом оригинальный файл сохраняется, а появляется новый с суффиксом _cutFrom time (skip: 00:00:00.000) : время начала обрезкиTo time (skip: 00:00:00.000) : время конца обрезкиSpecify audio track id. ( skip:0 ) : можно указать аудио дорожку. Полезно, если например вам нужен другой язык из фильма.Bitrate of output file in MB/s ? (default:25) : битрейт выходного файла, пропустить = 25.Тестовое видео, которое уже лежит в папке, обрезать не нужно.3.2) extract PNG from video data_dst FULL FPS.bat конвертирует видео где заменить лицо в набор PNG в workspace\data_dstЗдесь извлечение только с ПОЛНЫМ FPS, потому что каждый кадр должен быть обработан.3.other) denoise extracted data_dst.batDenoise factor? (1-20 default:5) :степень подавления шумаделается перед извлечением dst лиц! делает проход по извлеченным видео кадрам, убирая шум, сохраняя четкими грани.Позволяет тем самым сделать финальный фейк более правдоподобным, т.к. нейронная сеть не способна сделать детальную текстуру кожи, но грани делает вполне четкими.Поэтому, если весь кадр будет более "смазан", то и фейк будет казаться более правдоподобным. Особенно актуально для фильмовых сцен, которые обычно очень четкие.4) data_src extract faces ... .bat производит выборку конечного набора лиц из PNG в папку workspace\data_src\alignedОпции:DLIB, MT, S3FD детекторы.Для src оптимально MT детектор.DLIB – наименее точный, лица получаются с некоторым дрожанием, работает только на NVIDIAMT - меньше дрожания лиц, но производит больше ложных лиц.S3FD медленнее других, требователен к ресурсам, но более точный, меньше ложных лиц.MANUAL - извлечение вручную, полезно для src только для переизвлечения уже извлеченных лиц, если найдены где-то ошибки с помощью 4.2.other) data_src util add landmarks debug images.bat Для этого нужно вручную сделать резервную копию data_src\aligned\ , переместить из этой папки лица в data_src\ , сделать ручное извлечение, затем объединить data_src\aligned с резервной копией.GPUЗдесь либо ALL (все), либо Best (лучший).Если у вас только один GPU, то нет разницы, что выбирать.Если вы работаете в офисных приложениях на слабом GPU, а имеется мощный, то выбираете Best.Для максимальной скорости на мульти-GPU выбираете ALL, но тогда офисная работа на основном GPU может подтормаживать.DEBUGЗаписывает в workspace\data_src\aligned_debug каждый кадр с выделенными лицами и лицевыми точками, тем самым можно смотреть работу детекторов.4.1) data_src check result.batпросмотр результатов выборки лиц с помощью портативной программы XNViewMP.Здесь ваша цель - убрать ненужные лица.Сначала пролистываете скролом и убираете те ненужные лица, которые идут подряд большими группами. Не нужно удалять мелкие группы. Для этого есть сортировка.Если нужное лицо перемешано с другими, то запускаете сортировки следующих пунктах.Сортировку по резкости в любом случае делаете, потому что мутные лица src нужно удалять.4.2.1) data_src sort by blur.batСортировка по резкости. Запускаете и ждете сортировки. Затем смотрите результаты. Самые мутные лица будут в конце. Для src важно убрать мутные лица.4.2.2) data_src sort by similar histogram.batПосле этой сортировки лица будут сгруппированы по содержанию, так что отсеять ненужные лица теперь намного проще.Пролистываете скроллом и удаляете ненужные лица группами.4.2.4) data_src sort by dissimilar histogram.batЭта сортировка оставляет ближе к концу списка те изображения, у которых больше всего похожих.Обычно это лица в анфас, которых больше всего, потому что актёр чаще смотрит прямо на камеру либо куда-то в одном направлении в интервью.Часть с конца списка можете удалить по усмотрению.4.2.5) data_src sort by face pitch.batОпциональный пункт. Сортирует лица так, чтобы вначале списка лицо смотрело вниз, а к концу списка вверх.4.2.5) data_src sort by face yaw.batОпциональный пункт. Сортирует лица так, чтобы вначале списка лицо смотрело налево, а к концу списка - направо.4.2.6) data_src sort by final.batРекомендованный пункт.Target number of images? (default:2000) : ввести целевое количество изображенийАвтоматически делает лучшую финальную выборку лиц из любого количества в целевое количество.Применяйте только после очистки набора лиц другими пунктами, если у вас осталось более чем 2000 лиц.Отсеянные лица перемещаются в мусор (aligned_trash)4.2.other) data_src sort by black.batСортирует по количеству черных пикселей в конец списка. Позволяет отсеять лица вырезанные экраном.4.2.other) data_src sort by one face in image.batПеремещает в мусор (aligned_trash) все изображения, в которых нашлось более 1 лица4.2.other) data_src sort by original filename.batСортирует по оригинальному имени файла4.2.other) data_src util add landmarks debug images.batОпциональный пункт. добавляет к извлеченным data_src лицам изображения с нанесенными лицевыми точками с суффиксом к файлу _debug.jpgЭто позволяет вручную отсеять совсем плохие извлечения из вашего набора src лиц.Перед этим сделайте сортировку по yaw.Имеет смысл удалять только те лица, в которых нанесенные брови ниже чем реальные, или контур челюсти существенно заходит на лицо.После отсеивания удалите вручную все файлы по маске *_debug.jpg4.2.other) data_src util recover original filename.batВосстанавливает оригинальное имя файла извлеченного лица.Итог по извлечению лиц src.Мутные лица надо удалять.Лица закрывающиеся чем-то (рукой, волосами, и т.д.) - также нужно удалять.После приведения набора лиц в надлежащий вид делаем финальную сортировку sort by final.Опционально можете провести пункт 4.2.other) data_src util add landmarks debug images.batВы можете собрать несколько разных наборов лиц одного актёра и затем использовать их в зависимости от условий лица dst, помещая их в папку data_src\aligned5) data_dst extract faces ... .batТо же, что и п.4, с некоторыми отличиями.Здесь мы извлекаем лицо, которое будет заменяться.Детектор DLIB , MT, S3FD ?В большинстве случаев - S3FD.Если лицо не определилось в каком-то кадре, то для этого есть опция +manual fix - позволяет вручную указать лица на кадрах, где вообще не определилось никаких лиц.Подвох с MT+manual fix в том, что на кадре могут определиться ненужные лица кроме главного, поэтому программа не предложит указать лица на этом кадре. В таком случае можете проверить в папке data_dst\aligned_debug какие лица обнаружились вообще.Можете использовать DLIB+исправить, он генерирует меньше ложных лиц.В совсем крайнем случае или для экспериментов есть полностью ручная выборка (manual), т.е. по каждому исходному кадру dst вы вручную проходите и указываете лица.Окно ручного исправления лиц. здесь вам нужно совместить зеленые точки с лицом.Управление:Enter - подтвердить лицо и следующий кадр.Пробел - пропустить кадр., - вернуться на прошлые кадрыКолесо мыши - изменять прямоугольник.5) data_dst extract faces MANUAL FIX DELETED ALIGNED DEBUGОчень важный пункт. Напрямую влияет на качество итогового фейка.позволяет переизвлечь те кадры из dst, чьи results debug из п.5.1 были удалены вами.Для чего это нужно? Чтобы сделать фейк качественнее, нужно проверять dst кадры в папке aligned_debug, просмотреть их можно через п.5.1.Неправильно размеченное dst лицо может приводить к значительному ухудшению качества:Если где-то увидите, что контур лица существенно отличается от реального, например съехало на фон, то удаляете эти кадры из папки aligned_debug (п.5.1), и запускаете этот пункт.Произойдет ручное переизвлечение удалённых кадров. Видео поясняющее этот процесс: https://www.youtube.com/watch?v=7z1ykVVCHhM5.1) data_dst check results debug.batпросмотреть все dst кадры с наложенными поверх них предсказанными контурами лица5.1) data_dst check results.batАналогично смотрим результаты выборки лица dst, и удаляем другие не целевые лица. А целевое лицо, даже мутные - оставляем.5.2) data_dst sort by similar histogram.batЕсли в целевом видео содержатся другие ненужные лица, можете произвести эту сортировку, и затем удалить эти лица будет проще.5.3.other) data_dst sort by original filename.batСортирует по оригинальному имени файла5.3.other) data_dst util recover original filename.batВосстанавливает оригинальное имя файла извлеченного лица.Итог по извлечению лиц dst.Ваша цель извлечь только целевое лицо (даже мутное) из каждого кадра, удалив все другие лица.6) train ... .bat Тренировка.Отключаем любые программы, которые могут использовать видео память.Если в процессе запуска тренировки появилось много текста, содержащее одно из этих слов: Memory ErrorAllocationOOMзначит на вашем GPU модель не запустилась, и вам нужно урезать модель, для этого смотрите описание опций моделей.При первом запуске модели, программа спросит о различных опциях, которые сохранятся и будут использоваться при последующих запусках.Просто нажимая Enter - будут использоваться значения по-умолчанию.Which GPU idx to choose? ( skip: system choice ) : Имея мульти-GPU можно тренировать одну сцену на разных моделях или опциях одной модели без клонирования папок. Просто выбираете индекс GPU на старте тренировки/конвертации и тогда файлы модели в папке workspace\model будут содержать префикс этой GPU в имени.Если оставить выбор GPU по-умолчанию, то выберется лучшая GPU и файлы модели не будут содержать префикс.Write preview history? (y/n skip:n) : писать ли историю превью на дискTarget iteration (skip:unlimited) : целевая итерация, по достижению которой тренировка остановится.Batch_size (skip:model choice) : выбор размера батча - это то сколько картинок за раз кормится нейронной сети для обучения. По-умолчанию выбирается низкое значение, но вы можете подобрать это значение самому под свою видеокарту. Чем больше - тем лучше.Feed faces to network sorted by yaw? (y/n skip:n) : кормит модели src лица отсортированные по такому же направлению как и dst. Смысл в том, чтобы кормить только нужные лица. Однако пока до конца не протестировано хорошо это или плохо.Flip faces randomly? (y/n ?:help skip:y) : кормит модели все лица случайно перевернутые по горизонтали. При выключенной опции финальное лицо будет более естественным, но тогда src сборка лиц должна покрывать все углы поворота.Src face scale modifier % ( -30...30, ?:help skip:0) : модификатор масштабирования для src лиц. Если src лицо более широкое чем dst и фейк получился плохим, то имеет смысл немного уменьшить это значение.Если модель запускается уже второй раз:Press enter in 2 seconds to override some model settings.если вы нажмете Enter в течение 2х секунд, то появится возможность заменить некоторые опции модели.Список моделей для тренировки. Также указано минимальные требования к памяти GPU.H64 (2GB+)половина лица с разрешением 64 - это как оригинальная FakeApp или FaceSwap, только лучше за счёт тренировки маски нейросетью + исключающей фон вокруг лица + исправленного конвертора. Для видеокарт с видеопамятью 2 и 3Гб данная модель работает в сокращенном режиме, т.е. качество будет хуже чем с 4GB.H128 (3GB+)как H64 только с разрешением 128. Однако половина лица может плохо обучится на некоторых условиях света и поворота головы и т.д. Для видеокарт с видеопамятью 3 и 4Gb данная модель работает в сокращенном режиме, т.е. качество будет хуже чем с 5Gb.Опции для H64 и H128:Use lightweight autoencoder? (y/n, ?:help skip:n) :выбрать урезанную модель. Необходимо для видеокарт с <= 4Gb видео памяти.DF (5GB+)модель от dfaker. Полнолицевая модель с разрешением 128, умная функция тренировки лиц, исключающая фон вокруг лица.LIAEF128 (5GB+) как DF, только пытается морфировать исходное лицо в целевое лицо, сохраняя черты исходного лица. Морфирование не всегда хорошо, и может сделать вообще не узнаваемое лицо, в таком случае выбирайте DF.Опции H64, H128, DF, LIAEF128 моделей:Use pixel loss? (y/n, ?:help skip: n/default ) :позволяет быстрее улучшать мелкие детали и убрать дрожание. Включать только после 20к итераций.SAE (512MB+) Самая последняя лучшая и гибкая модель. Содержит все другие модели. Есть возможность переносить стиль лица и освещение, которое будет изучаться непосредственно нейронной сетью. При первом запуске можно настроить различные параметры. Эти параметры влияют на то, какого размера будет сеть и запустится ли на вашей видеокарте, так что можно подстроить модель на тренировку как на 512MB так и на 24GB. Конечно же, чем больше памяти, тем лучше качество получится в итоге.Пример фейка Cage-Trump: https://www.youtube.com/watch?v=2R_aqHBClUQПример фейка Elon Musk - Robert Downey jr: https://www.youtube.com/watch?v=OLWFnPwzgEYОпции только для SAE модели:Resolution ( 64-256 ?:help skip:128) : разрешение лица. Больше разрешение - больше требуется памяти, дольше тренируется модель. Вы можете выбрать любое значение от 64 до 256 кратное 16.Half or Full face? (h/f, ?:help skip:f) : половинный или полный размер лицаLearn mask? (y/n, ?:help skip:y) : учить ли маску. С изучением, маска будет более сглаженной и менее дрожащей, иначе будет использоваться грубая. Однако при стилизованной тренировки можно обойтись без изучения маски.Optimizer mode? ( 1,2,3 ?:help skip:%d) : Эта опция только NVIDIA видео-карт. Режим оптимизатора нейронной сети. 1по-умолчанию. 2 – позволяет тренировать сеть x2 большего размера, требует дополнительной ОЗУ памяти. 3 – позволяет тренировать сеть x3 большего размера, требует еще больше ОЗУ и на 30% медленнее.AE architecture (df, liae, vg ?:help skip:df) : тип архитектуры нейронной сети. AutoEncoder dims (128-1024 ?:help skip:%d) : количество размерностей сети, больше - лучше, но может не запуститься из-за нехватки памяти. Можно уменьшать для достижения работоспособности на вашей видеокарте.Encoder/Decoder dims per channel (21-85 ?:help skip:%d) количество размерностей енкодера/декодера сети, больше - лучше, но может не запуститься из-за нехватки памяти. Можно уменьшать для достижения работоспособности на вашей видеокарте.Use CA weights? (y/n, ?:help skip: %s ) :позволяет получить выше точность модели, но требует время для первого запуска 0-й итерации.Use lightweight encoder? (y/n, ?:help skip:n) : использовать ли облегченный энкодер, он быстрее на 35%, только не тестирован на различных сценах.Use multiscale decoder? (y/n, ?:help skip:n) : использовать ли многомасштабный декодер, позволяет добиться более высокой четкости. Use pixel loss? (y/n, ?:help skip: n/default ) позволяет быстрее улучшать мелкие детали и убрать дрожание. Включать только после 20к итераций.Face style power ( 0.0 .. 100.0 ?:help skip:%.1f) : скорость изучения переноса стиля лица, таких как освещение и цвет. Может вызывать артефакты при больших значениях. Число с плавающей точкой. 0 - не учитьBackground style power ( 0.0 .. 100.0 ?:help skip:%.1f) : скорость изучения фона вокруг лица. В большинстве случаев морфирует лицо в dst. Число с плавающей точкой. 0 - не учитьВ процессе тренировки можно выходить через Enter, нажав его в окне Training preview, и запускать в любое время, модель будет продолжать обсчитываться с той же точки.Тренируем от 24 часов и больше. Когда результат удовлетворяет - выходим также через Enter, нажав его в окне Training preview.Кнопка 'p'(на англ раскладке) в окне Training preview обновляет предпросмотр.В окне Training preview также мы видим кривую ошибки. Понижаясь, она показывает прогресс тренировки с течением времени.Итог по тренировке.Выбираете модель в зависимости от сцены и вашего личного опыта.7) convert ... .bat Наложение лиц.Выбираете ту модель и тот номер GPU (если у вас их несколько), с которым тренировали.Опция debug позволяет посмотреть процесс наложения лиц и некоторую техническую информацию по каждому кадру в консоли, нажимаете пробел в окне просмотра.Основная концепция наложения лиц.Далее при запуске программа спросит об опциях:Choose mode: (1) overlay, (2) hist match, (3) hist match bw, (4) seamless (default), (5) raw :Выбор режима наложения лиц.РежимыOverlayпрямое наложение предсказанного лица из нейросети без предварительной обработкиHist-matchналожение с уравниванием гистограммы.Histh-match-bwналожение с уравниванием гистограммы из чернобелого канала.Seamlessналожение методом Пуассо"Poisson image editing." ACM Transactions on Graphics (TOG). Vol. 22. No. 3. ACM, 2003.Rawполучить сырые слои для собственной обработки в видео редакторе, например After Effects.По-умолчанию, если нажать Enter - выберет seamless.Какую выбрать? Зависит от случая. Пробуете все и смотрите результат.ОпцииSuppress seamless jitter? [ y/n ] (?:help skip:n ) :Для режима seamless. Подавляет дрожание лица, возникающее только в seamless режиме. Включение этой опции сделает процесс конвертации в несколько раз дольше.Seamless hist match? (y/n skip:n) :Для режима seamless. Включить ли уравнивание гистограммы.Masked hist match? (y/n skip:y) :Для режимов hist match, hist match bw, seamless, указывает, уравнивать ли гистограмму по маске лица.Use predicted mask? (y/n skip:y) : Использовать ли маску, которая предсказана моделью (только если маска изучалась, например в SAE модели можно выключить изучение маски) - по умолчанию да. Либо использовать маску из dst лица.NoYesChoose erode mask modifier [-200..200] (default 0) :Указываете насколько уменьшить в размерах dst маску. Значение < 0 - расширить маску. Это адаптивное значение, а не абсолютное.-100+100Choose seamless erode mask modifier [-100..100] (default 0) : только для режима seamless - модификация размеров маски, использующейся для самой seamless функции. Значение < 0 - расширить маску. Эта маска задаёт непосредственно шов, по которому будет проходить адаптация цвета.0+40 Choose blur mask modifier [-200..200] (default 0) : Указываете насколько сгладить dst маску. Значение < 0 - уменьшает сглаживание по-умолчанию моделями H64 и H128. Это адаптивное значение, а не абсолютное.-200+200Hist match threshold. [0..255] (default - 255) :Уменьшение значения подавляет артефакты для режимов с уравниванием гистограммы.(по-умолчанию) 255231Choose output face scale modifier [-50..50] (default 0) : изменить масштаб выходного лица в пределах -50+50%. Полезно, когда предсказанное лицо несколько больше оригинала.-50+50Apply color transfer to predicted face? Choose mode ( rct/lct skip:None ) : дополнительно адаптировать цвет лица, используя rct или lct алгоритмDst лицоПредсказанное лицоrctlctDegrade color power of final image [0..100] (default 0) : Степень деградации цветности конечной картинки от 0 до 100. Уменьшая общее качество картинки, можно скрыть недостатки наложения лица.0100Export png with alpha channel? [0..1] (default 0) : экспортирует только лицо с альфа каналом для последующей работы в видео редакторе.Итог по наложению лиц.В начале запускаете с отладкой, пробуя различные параметры и смотрите результат.Запомнив подходящие значения, запускаете наложение без отладки.Результат картинок в workspace\data_dst\merged - можно использовать самому в видеоредакторе, либо склеить в видео в п.88)convertedbat Склейка в видео.Следующие .bat файлы склеивают картинки в видео с тем же FPS и звуком, что и data_dst.mp4 - поэтому не удаляйте data_dst.mp4 из workspace папки.to avi.batв формат avito mp4.batв формат mp4to mp4(lossless+alpha).batmp4 без потерь с использованием alpha канала.to mov(lossless+alpha).batmov без потерь с использованием alpha канала. Sony Vegas с использованием QuickTime сможет использовать alpha канал из mov файла.Всё. Результат в workspace\result.mp4Если результат не удовлетворил, можно пробовать разные опции наложения, либо продолжать тренировать для повышения четкости, либо пробовать другую модель, либо пробовать другое исходное лицо.Дополнительная информация:9) util convert aligned PNG to JPG (drop folder on me).batпозволяет конвертировать папку с извлеченными PNG лицами из старых версий DeepFaceLab в JPG. Для этого перетяните папку с набором лиц прямо на этот .bat файл. Известны случаи, когда Windows 10 резервирует % видеопамяти, даже если видеокарта не используется для вывода картинки. В таком случае придётся чем-то жертвовать, чтобы тренировка запустилась (batch size, размерности в SAE, итд).Советы и хитрости.Узкие лица лучше тренируются на широкие лица. Вот почему фейки с Кейджем так популярны.Иногда, если нейронная сеть будет получать dst лица только одного освещения, например, с затенённым носом, при этом src лица не содержат аналогичного лица с таким же освещением, то нейронная сеть может не понять, куда вообще смотрит лицо на некоторых ракурсах, в результате предсказанное лицо будет содержать неправильный поворот головы.В этом случае полезно добавить в тренировочный набор data_dst\aligned лица того же персонажа, но извлеченные из других сцен с другим освещением.Тем самым можно несколько улучшить результат. Но лучше всего, конечно, найти src лица с тем же освещением носа.Продвинутые советы от @GAN-er ( только на английском языке ):Tip 1:You may benefit by starting with a small batch size (within reason) and increasing it later. The reason is that a **large batch size will give you a more accurate descent direction but it will also be costlier to calculate**, and when you just start, you care mostly about the general direction; no need to sacrifice speed for precision at that point. There are plenty of sources discussing the batch size, as an example you can check this one:https://stats.stackexchange.com/questions/164876/tradeoff-batch-size-vs-number-of-iterations-to-train-a-neural-networkTip 2:Unlike the batch size that the only thing that does is affecting how accurate each step will be as far a the true gradient goes, the dimensions, actually, increase the complexity of your NN. As a rule, **the more complex a network the better the resulting model**, but since nothing comes for free, **the more complex the network the more time it will take to converge**.What you generally want is to **_figure out the max dimensions that you can use_** given your GPU's memory, and your desired max batch size.You can set the max batch size to something, say K, and then increase the dimensions until you get OOM errors. In the end, you will end up with a triplet, {batch size, ae_dims, ed_dims}Ideally, you would use 1024 and 85 for your autoencoder and encoder/decoder dimensions, but no card has enough memory for such a configuration even with batch size 1.Remember that unlike batch size that you can change at will, once you set up the dimensions you can not change them.Note that **if you use a complex - high number of dimensions NN, in combination with a small batch size, it will take _considerably_ longer for your model to converge**. So keep that in mind! You will simply have to wait longer, but also you will get a much much better result.For cards with 11Gb of memory, and for SAE you can try the following settings:For DF architecture: 12 698 51 For LIAEF architecture: 8 402 47Tip 3:If you end up being stuck, i.e. the loss does not go down but for no obvious reason or if you get weird artifacts in some previews before you discard and start from scratch, you may want to flip your DST and SRC for a while. This often is all you need to keep things going again.Tip 4:99.995% of your success or failure rate is due to bad SRC or DST sets. This means that 99.995% of your time should be spent in actually ensuring that your sets are well curated. Throwing together a hot podge of material and expecting a decent outcome is guaranteed to result in disappointment. Garbage in, garbage out.Дополнительное описание SAE.Эта модель по сути содержит все другие модели, если отключить тренировку стиля и multiscale decoder.SAE очень гибкая, можно подстроить либо под лучшее обобщение лиц сетью, либо под лучшую четкость изображения, либо просто чтобы заработало на вашей GPU.Если src сборка лиц содержит количество лиц больше чем dst, модель может не сойтись. В этом случае используйте опцию Feed faces to network sorted by yaw.Если src лицо шире чем dst, модель может не сойтись. В этом случае можете попробовать опцию Src face scale modifier в -5.Архитектура df делает лицо более похожее на src, но если модель не сходится, используйте liae.VG архитектура SAE пока что не показала каких-либо улучшений, нужно больше тестов.Если на вашей видеокарте много видеопамяти, вы можете выбрать между большим batch size, которое улучшает обобщение лиц, и Encoder/Decoder dims размерностями, которые улучшают качество картинки.Face стиль тренируется, чтобы перенести цвет лица, освещение, макияж. Если он уже хорошо перенесен, то продолжение тренировки с высоким значением может сделать артефакты.Background стиль тренируется, чтобы перенести контур лица и окружение. Благодаря контуру лица, подгоняется src лицо под контур dst.Как лучше всего тренировать SAE со стилем? Не существует лучшего решения, всё зависит от сцены. Экспериментируйте со style значениями по своему усмотрению. Включите write preview history и отслеживайте изменения. Делайте резервную копию файлов модели каждые 10к итераций. Вы можете откатывать файлы модели и менять значения, если что-то пошло не так в превью-истории.Работа на AMD/Старых NVIDIA/IntelHD видеокартах.DeepFaceLab поддерживает старые процессоры без AVX инструкций. Для этого используйте DeepFaceLabCUDA9.2SSE сборку.DeepFaceLab поддерживает AMD, IntelHD Graphics и любые старые GeForce видеокарты через использование OpenCL 1.2 движка.Для этого используйте DeepFaceLabOpenCLSSE сборку.Работа на OpenCL в сравнении с CUDA имеет некоторые недостатки:- извлечение лиц можно запускать только MT или S3FD, при этом первый проход (1st pass) на MT всё равно будет работать на CPU, но достаточно быстро! S3FD полностью работает на OpenCL и является предпочтительным методом. Второй проход работает на OpenCL без проблем.- чтобы запустилась SAE, её нужно урезать существенно как в ae_dims , ed_ch_dims так и в batch size по-сравнению с тем же количеством видеопамяти на CUDA версии. Можете поставить вообще самые минимальные значения, а также разрешение 64 и half face - в качестве демонстрации натренируете фейк худшего качества без проблем даже на IntelHD Graphics с 256МБ памяти !- каждый запуск тренировки и после сохранения в процессе тренировки, OpenCL будет перезагружать свои подпрограммы, что будет занимать некоторое время.Пожертвование разработке.Если вам нравится данная программа, вы можете пожертвовать денег для дальнейшего развития.Yandex.moneyhttps://money.yandex.ru/to/41001142318065Paypalhttps://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=KK5ZCH4JXWMQS&source=urlbitcoin:31mPd6DxPCzbpCMZk4k1koWAbErSyqkAXrПолезные ссылкиСтраница разработкиhttps://github.com/iperov/DeepFaceLabВводная видео инструкция по работе с программойhttps://www.youtube.com/watch?v=K98nTNjXkq8 Мой канал фейковhttps://www.youtube.com/channel/UCEtoVzBLuE-ni-54h7kYvsgПопулярный канал фейков https://www.youtube.com/channel/UCUix6Sk2MZkVOr5PWQrtH1g/videos Фейки на реддитеhttps://www.reddit.com/r/GifFakes Готовые src наборы лиц для DeepFaceLabhttps://mega.nz/#F!y1ERHDaL!PPwg01PQZk0FhWLVo5_MaQ поиск подходящей знаменитости по загруженному лицуhttp://www.pictriev.com поиск подходящей порнозвезды по загруженному лицуhttps://findface.sex/ruhttps://findpornface.comhttps://pornstarbyface.comhttp://www.didshedoporn.com/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcG +DeepFaceLab это программа для замены лица в видео с помощью нейросети, работающей на графическом ускорителе NVIDIA / AMD / IntelHD Graphics.Разработчик: iperovСайт разработчика: https://github.com/iperov/DeepFaceLabРазрядность: 64bitЯзык интерфейса: АнглийскийМинимальные системные требования: Windows 7 и вышепроцессор с поддержкой SSE инструкций2Gb ОЗУ с подкачкойOpenCL-совместимая видеокарта ( NVIDIA, AMD, Intel HD Graphics ) Рекомендуемые системные требования:Windows 7 и вышепроцессор с поддержкой AVX инструкцийNVIDIA видеокарта с 6GB видео, 8Gb ОЗУДоступные сборки:DeepFaceLabCUDA9.2SSE для NVIDIA видеокарт вплоть до GTX1080 и любых 64-бит процессоров.DeepFaceLabCUDA10.1AVX для NVIDIA видеокарт вплоть до RTX и процессоров с поддержкой AVX инструкций.DeepFaceLabOpenCLSSE для AMD видеокарт и любых 64-бит процессоров.Зеркало со старыми версиями: https://mega.nz/#F!b9MzCK4B!zEAG9txu7uaRUjXz9PtBqgОсобенности DeepFaceLab :отсутствие любых предустановок, кроме драйверов на вашу видеокарту. Проверено на чистых Windows 7 и 10, а также в VMWare.работает на любых OpenCL-совместимых видеокартах с памятью от 256Mb и выше, даже довольно старых.автоматически выбирает «лучшую» видеокарту. Так можно работать с офисными приложениями на видеокарте послабее, а тренировка сети будет автоматически на лучшей.есть возможность тренировки полностью на CPU. 8-е поколение процессоров Intel способен выдать неплохой демонстрационный результат за 2 дня тренировки.все необходимые мета-данные лиц хранятся непосредственно в извлеченных JPG файлахесть режим ручного выделения лицесть сортировка извлеченных лиц для быстрого удаления ненужных лиц.быстрая работа с видео: извлечение, удаление шума, сборка финального видеоПриступая, поймите: эта программа не гарантирует идеальной замены лиц во всех случаях! Всё зависит от качества исходных данных, совместимости лиц, источников света, и т.д. и т.п. Да и сама технология появилась недавно (февраль 2018), она далека от идеала, т.к. заменяется только лицо, причём без лба и волос. Вы можете потратить кучу времени и сил, а в итоге ничего не получить! У вас есть невысокий шанс создания успешного фейка с первой попытки. Только когда вы сделаете много попыток создания фейков с разными лицами, тогда вы поймете все нюансы.DeepFaceLab создана на чистом энтузиазме одним человеком. Поэтому, если вы найдете какие-либо ошибки, то отнеситесь к этому с пониманием.Посмотрите вводную видео инструкцию по работе с программой, чтобы получить общее представление о рабочем процессе: https://www.youtube.com/watch?v=K98nTNjXkq8 Обновите драйвера на вашу видеокарту.Первый запуск программы в чистой папке из торрента будет происходить долго, т.к. компилируются GPU программы.Определим термины dst и src.src - это лицо, которое будет использоваться для замены.dst - это лицо, которое будет заменяться.DeepFaceLab\workspace – наша рабочая папка для хранения модели целиком (видео, фото, файлы самой программы). Вы можете переименовывать её, чтобы сохранять как резервную копию или работать с другой.1) clear workspace.batОчистит или создаст все папки внутри папки workspace. Помещаете в папку workspace ваше видео data_src.xxx формата максимум 1080р - это видео откуда брать лицо. Тестовое видео уже содержится в папке workspace.Помещаете в папку workspace ваше видео data_dst.xxx формата максимум 1080р - это видео где заменить лицо. Тестовое видео уже содержится в папке workspace.где xxx - любое расширение видео, например mkv, mp4, avi2) extract PNG from video data_src.batконвертирует видео откуда брать лицо в набор PNG в workspace\data_srcEnter FPS ( ?:help skip:fullfps ) : сколько кадров из каждой секунды видео извлечь, пропустить = все кадры. Здесь мы собираем кадры из которых будем извлекать src лица. Чем их больше тем лучше.3.1) cut video (drop video on me).batопционально. Обрезает видео где заменить лицо, на время которое вы укажите.Нужно перетянуть видео файл на этот .bat файл, при этом оригинальный файл сохраняется, а появляется новый с суффиксом _cutFrom time (skip: 00:00:00.000) : время начала обрезкиTo time (skip: 00:00:00.000) : время конца обрезкиSpecify audio track id. ( skip:0 ) : можно указать аудио дорожку. Полезно, если например вам нужен другой язык из фильма.Bitrate of output file in MB/s ? (default:25) : битрейт выходного файла, пропустить = 25.Тестовое видео, которое уже лежит в папке, обрезать не нужно.3.2) extract PNG from video data_dst FULL FPS.bat конвертирует видео где заменить лицо в набор PNG в workspace\data_dstЗдесь извлечение только с ПОЛНЫМ FPS, потому что каждый кадр должен быть обработан.3.other) denoise extracted data_dst.batDenoise factor? (1-20 default:5) :степень подавления шумаделается перед извлечением dst лиц! делает проход по извлеченным видео кадрам, убирая шум, сохраняя четкими грани.Позволяет тем самым сделать финальный фейк более правдоподобным, т.к. нейронная сеть не способна сделать детальную текстуру кожи, но грани делает вполне четкими.Поэтому, если весь кадр будет более "смазан", то и фейк будет казаться более правдоподобным. Особенно актуально для фильмовых сцен, которые обычно очень четкие.4) data_src extract faces ... .bat производит выборку конечного набора лиц из PNG в папку workspace\data_src\alignedОпции bat файлов:DLIB, MT, S3FD детекторы.Для src оптимально MT детектор.DLIB – наименее точный, лица получаются с некоторым дрожанием, работает только на NVIDIAMT - меньше дрожания лиц, но производит больше ложных лиц.S3FD медленнее других, требователен к ресурсам, но более точный, меньше ложных лиц.MANUAL - извлечение вручную, полезно для src только для переизвлечения уже извлеченных лиц, если найдены где-то ошибки с помощью 4.2.other) data_src util add landmarks debug images.bat Для этого нужно вручную сделать резервную копию data_src\aligned\ , переместить из этой папки лица в data_src\ , сделать ручное извлечение, затем объединить data_src\aligned с резервной копией.GPUЗдесь либо ALL (все), либо Best (лучший).Если у вас только один GPU, то нет разницы, что выбирать.Если вы работаете в офисных приложениях на слабом GPU, а имеется мощный, то выбираете Best.Для максимальной скорости на мульти-GPU выбираете ALL, но тогда офисная работа на основном GPU может подтормаживать.DEBUGЗаписывает в workspace\data_src\aligned_debug каждый кадр с выделенными лицами и лицевыми точками, тем самым можно смотреть работу детекторов.Опции при запуске извлечения:Use more accurate landmarks extraction? (y/n ?:help skip:n) :Позволяет извлечь лицевые точки точнее, но процесс занимает больше времени.4.1) data_src check result.batпросмотр результатов выборки лиц с помощью портативной программы XNViewMP.Здесь ваша цель - убрать ненужные лица.Сначала пролистываете скролом и убираете те ненужные лица, которые идут подряд большими группами. Не нужно удалять мелкие группы. Для этого есть сортировка.Если нужное лицо перемешано с другими, то запускаете сортировки следующих пунктах.Сортировку по резкости в любом случае делаете, потому что мутные лица src нужно удалять.4.2.1) data_src sort by blur.batСортировка по резкости. Запускаете и ждете сортировки. Затем смотрите результаты. Самые мутные лица будут в конце. Для src важно убрать мутные лица.4.2.2) data_src sort by similar histogram.batПосле этой сортировки лица будут сгруппированы по содержанию, так что отсеять ненужные лица теперь намного проще.Пролистываете скроллом и удаляете ненужные лица группами.4.2.4) data_src sort by dissimilar histogram.batЭта сортировка оставляет ближе к концу списка те изображения, у которых больше всего похожих.Обычно это лица в анфас, которых больше всего, потому что актёр чаще смотрит прямо на камеру либо куда-то в одном направлении в интервью.Часть с конца списка можете удалить по усмотрению.4.2.5) data_src sort by face pitch.batОпциональный пункт. Сортирует лица так, чтобы вначале списка лицо смотрело вниз, а к концу списка вверх.4.2.5) data_src sort by face yaw.batОпциональный пункт. Сортирует лица так, чтобы вначале списка лицо смотрело налево, а к концу списка - направо.4.2.6) data_src sort by final.batРекомендованный пункт.Target number of images? (default:2000) : ввести целевое количество изображенийАвтоматически делает лучшую финальную выборку лиц из любого количества в целевое количество.Применяйте только после очистки набора лиц другими пунктами, если у вас осталось более чем 2000 лиц.Отсеянные лица перемещаются в мусор (aligned_trash)4.2.other) data_src sort by black.batСортирует по количеству черных пикселей в конец списка. Позволяет отсеять лица вырезанные экраном.4.2.other) data_src sort by one face in image.batПеремещает в мусор (aligned_trash) все изображения, в которых нашлось более 1 лица4.2.other) data_src sort by original filename.batСортирует по оригинальному имени файла4.2.other) data_src util add landmarks debug images.batОпциональный пункт. добавляет к извлеченным data_src лицам изображения с нанесенными лицевыми точками с суффиксом к файлу _debug.jpgЭто позволяет вручную отсеять совсем плохие извлечения из вашего набора src лиц.Перед этим сделайте сортировку по yaw.Имеет смысл удалять только те лица, в которых нанесенные брови ниже чем реальные, или контур челюсти существенно заходит на лицо.После отсеивания удалите вручную все файлы по маске *_debug.jpg4.2.other) data_src util recover original filename.batВосстанавливает оригинальное имя файла извлеченного лица.Итог по извлечению лиц src.Мутные лица надо удалять.Лица закрывающиеся чем-то (рукой, волосами, и т.д.) - также нужно удалять.После приведения набора лиц в надлежащий вид делаем финальную сортировку sort by final.Опционально можете провести пункт 4.2.other) data_src util add landmarks debug images.batВы можете собрать несколько разных наборов лиц одного актёра и затем использовать их в зависимости от условий лица dst, помещая их в папку data_src\aligned5) data_dst extract faces ... .batТо же, что и п.4, с некоторыми отличиями.Здесь мы извлекаем лицо, которое будет заменяться.Детектор DLIB , MT, S3FD ?В большинстве случаев - S3FD.Если лицо не определилось в каком-то кадре, то для этого есть опция +manual fix - позволяет вручную указать лица на кадрах, где вообще не определилось никаких лиц.Подвох с MT+manual fix в том, что на кадре могут определиться ненужные лица кроме главного, поэтому программа не предложит указать лица на этом кадре. В таком случае можете проверить в папке data_dst\aligned_debug какие лица обнаружились вообще.Можете использовать DLIB+исправить, он генерирует меньше ложных лиц.В совсем крайнем случае или для экспериментов есть полностью ручная выборка (manual), т.е. по каждому исходному кадру dst вы вручную проходите и указываете лица.Окно ручного исправления лиц. здесь вам нужно совместить зеленые точки с лицом.Управление:Enter - подтвердить лицо и следующий кадр.Пробел - пропустить кадр., - вернуться на прошлые кадрыКолесо мыши - изменять прямоугольник.5) data_dst extract faces MANUAL FIX DELETED ALIGNED DEBUGОчень важный пункт. Напрямую влияет на качество итогового фейка.позволяет переизвлечь те кадры из dst, чьи results debug из п.5.1 были удалены вами.Для чего это нужно? Чтобы сделать фейк качественнее, нужно проверять dst кадры в папке aligned_debug, просмотреть их можно через п.5.1.Неправильно размеченное dst лицо может приводить к значительному ухудшению качества:Если где-то увидите, что контур лица существенно отличается от реального, например съехало на фон, то удаляете эти кадры из папки aligned_debug (п.5.1), и запускаете этот пункт.Произойдет ручное переизвлечение удалённых кадров. Видео поясняющее этот процесс: https://www.youtube.com/watch?v=7z1ykVVCHhM5.1) data_dst check results debug.batпросмотреть все dst кадры с наложенными поверх них предсказанными контурами лица5.1) data_dst check results.batАналогично смотрим результаты выборки лица dst, и удаляем другие не целевые лица. А целевое лицо, даже мутные - оставляем.5.2) data_dst sort by similar histogram.batЕсли в целевом видео содержатся другие ненужные лица, можете произвести эту сортировку, и затем удалить эти лица будет проще.5.3.other) data_dst sort by original filename.batСортирует по оригинальному имени файла5.3.other) data_dst util recover original filename.batВосстанавливает оригинальное имя файла извлеченного лица.Итог по извлечению лиц dst.Ваша цель извлечь только целевое лицо (даже мутное) из каждого кадра, удалив все другие лица.6) train ... .bat Тренировка.Отключаем любые программы, которые могут использовать видео память.Если в процессе запуска тренировки появилось много текста, содержащее одно из этих слов: Memory ErrorAllocationOOMзначит на вашем GPU модель не запустилась, и вам нужно урезать модель, для этого смотрите описание опций моделей.При первом запуске модели, программа спросит о различных опциях, которые сохранятся и будут использоваться при последующих запусках.Просто нажимая Enter - будут использоваться значения по-умолчанию.Which GPU idx to choose? ( skip: system choice ) : Имея мульти-GPU можно тренировать одну сцену на разных моделях или опциях одной модели без клонирования папок. Просто выбираете индекс GPU на старте тренировки/конвертации и тогда файлы модели в папке workspace\model будут содержать префикс этой GPU в имени.Если оставить выбор GPU по-умолчанию, то выберется лучшая GPU и файлы модели не будут содержать префикс.Write preview history? (y/n skip:n) : писать ли историю превью на дискTarget iteration (skip:unlimited) : целевая итерация, по достижению которой тренировка остановится.Batch_size (skip:model choice) : выбор размера батча - это то сколько картинок за раз кормится нейронной сети для обучения. По-умолчанию выбирается низкое значение, но вы можете подобрать это значение самому под свою видеокарту. Чем больше - тем лучше.Feed faces to network sorted by yaw? (y/n skip:n) : кормит модели src лица отсортированные по такому же направлению как и dst. Смысл в том, чтобы кормить только нужные лица. Однако пока до конца не протестировано хорошо это или плохо.Flip faces randomly? (y/n ?:help skip:y) : кормит модели все лица случайно перевернутые по горизонтали. При выключенной опции финальное лицо будет более естественным, но тогда src сборка лиц должна покрывать все углы поворота.Src face scale modifier % ( -30...30, ?:help skip:0) : модификатор масштабирования для src лиц. Если src лицо более широкое чем dst и фейк получился плохим, то имеет смысл немного уменьшить это значение.Если модель запускается уже второй раз:Press enter in 2 seconds to override some model settings.если вы нажмете Enter в течение 2х секунд, то появится возможность заменить некоторые опции модели.Список моделей для тренировки. Также указано минимальные требования к памяти GPU.H64 (2GB+)половина лица с разрешением 64 - это как оригинальная FakeApp или FaceSwap, только лучше за счёт тренировки маски нейросетью + исключающей фон вокруг лица + исправленного конвертора. Для видеокарт с видеопамятью 2 и 3Гб данная модель работает в сокращенном режиме, т.е. качество будет хуже чем с 4GB.H128 (3GB+)как H64 только с разрешением 128. Однако половина лица может плохо обучится на некоторых условиях света и поворота головы и т.д. Для видеокарт с видеопамятью 3 и 4Gb данная модель работает в сокращенном режиме, т.е. качество будет хуже чем с 5Gb.Опции для H64 и H128:Use lightweight autoencoder? (y/n, ?:help skip:n) :выбрать урезанную модель. Необходимо для видеокарт с <= 4Gb видео памяти.DF (5GB+)модель от dfaker. Полнолицевая модель с разрешением 128, умная функция тренировки лиц, исключающая фон вокруг лица.LIAEF128 (5GB+) как DF, только пытается морфировать исходное лицо в целевое лицо, сохраняя черты исходного лица. Морфирование не всегда хорошо, и может сделать вообще не узнаваемое лицо, в таком случае выбирайте DF.Опции H64, H128, DF, LIAEF128 моделей:Use pixel loss? (y/n, ?:help skip: n/default ) :позволяет быстрее улучшать мелкие детали и убрать дрожание. Включать только после 20к итераций.SAE (512MB+) Самая последняя лучшая и гибкая модель. Содержит все другие модели. Есть возможность переносить стиль лица и освещение, которое будет изучаться непосредственно нейронной сетью. При первом запуске можно настроить различные параметры. Эти параметры влияют на то, какого размера будет сеть и запустится ли на вашей видеокарте, так что можно подстроить модель на тренировку как на 512MB так и на 24GB. Конечно же, чем больше памяти, тем лучше качество получится в итоге.Пример фейка Cage-Trump: https://www.youtube.com/watch?v=2R_aqHBClUQПример фейка Elon Musk - Robert Downey jr: https://www.youtube.com/watch?v=OLWFnPwzgEYОпции только для SAE модели:Resolution ( 64-256 ?:help skip:128) : разрешение лица. Больше разрешение - больше требуется памяти, дольше тренируется модель. Вы можете выбрать любое значение от 64 до 256 кратное 16.Half or Full face? (h/f, ?:help skip:f) : половинный или полный размер лицаLearn mask? (y/n, ?:help skip:y) : учить ли маску. С изучением, маска будет более сглаженной и менее дрожащей, иначе будет использоваться грубая. Однако при стилизованной тренировки можно обойтись без изучения маски.Optimizer mode? ( 1,2,3 ?:help skip:%d) : Эта опция только NVIDIA видео-карт. Режим оптимизатора нейронной сети. 1по-умолчанию. 2 – позволяет тренировать сеть x2 большего размера, требует дополнительной ОЗУ памяти. 3 – позволяет тренировать сеть x3 большего размера, требует еще больше ОЗУ и на 30% медленнее.AE architecture (df, liae, vg ?:help skip:df) : тип архитектуры нейронной сети. AutoEncoder dims (128-1024 ?:help skip:%d) : количество размерностей сети, больше - лучше, но может не запуститься из-за нехватки памяти. Можно уменьшать для достижения работоспособности на вашей видеокарте.Encoder/Decoder dims per channel (21-85 ?:help skip:%d) количество размерностей енкодера/декодера сети, больше - лучше, но может не запуститься из-за нехватки памяти. Можно уменьшать для достижения работоспособности на вашей видеокарте.Use CA weights? (y/n, ?:help skip: %s ) :позволяет получить выше точность модели, но требует время для первого запуска 0-й итерации.Use lightweight encoder? (y/n, ?:help skip:n) : использовать ли облегченный энкодер, он быстрее на 35%, только не тестирован на различных сценах.Use multiscale decoder? (y/n, ?:help skip:n) : использовать ли многомасштабный декодер, позволяет добиться более высокой четкости. Use pixel loss? (y/n, ?:help skip: n/default ) позволяет быстрее улучшать мелкие детали и убрать дрожание. Включать только после 20к итераций.Face style power ( 0.0 .. 100.0 ?:help skip:%.1f) : скорость изучения переноса стиля лица, таких как освещение и цвет. Может вызывать артефакты при больших значениях. Число с плавающей точкой. 0 - не учитьBackground style power ( 0.0 .. 100.0 ?:help skip:%.1f) : скорость изучения фона вокруг лица. В большинстве случаев морфирует лицо в dst. Число с плавающей точкой. 0 - не учитьВ процессе тренировки можно выходить через Enter, нажав его в окне Training preview, и запускать в любое время, модель будет продолжать обсчитываться с той же точки.Тренируем от 24 часов и больше. Когда результат удовлетворяет - выходим также через Enter, нажав его в окне Training preview.Кнопка 'p'(на англ раскладке) в окне Training preview обновляет предпросмотр.В окне Training preview также мы видим кривую ошибки. Понижаясь, она показывает прогресс тренировки с течением времени.Итог по тренировке.Выбираете модель в зависимости от сцены и вашего личного опыта.7) convert ... .bat Наложение лиц.Выбираете ту модель и тот номер GPU (если у вас их несколько), с которым тренировали.Опция debug позволяет посмотреть процесс наложения лиц и некоторую техническую информацию по каждому кадру в консоли, нажимаете пробел в окне просмотра.Основная концепция наложения лиц.Далее при запуске программа спросит об опциях:Choose mode: (1) overlay, (2) hist match, (3) hist match bw, (4) seamless (default), (5) raw :Выбор режима наложения лиц.РежимыOverlayпрямое наложение предсказанного лица из нейросети без предварительной обработкиHist-matchналожение с уравниванием гистограммы.Histh-match-bwналожение с уравниванием гистограммы из чернобелого канала.Seamlessналожение методом Пуассо"Poisson image editing." ACM Transactions on Graphics (TOG). Vol. 22. No. 3. ACM, 2003.Rawполучить сырые слои для собственной обработки в видео редакторе, например After Effects.По-умолчанию, если нажать Enter - выберет seamless.Какую выбрать? Зависит от случая. Пробуете все и смотрите результат.ОпцииSuppress seamless jitter? [ y/n ] (?:help skip:n ) :Для режима seamless. Подавляет дрожание лица, возникающее только в seamless режиме. Включение этой опции сделает процесс конвертации в несколько раз дольше.Seamless hist match? (y/n skip:n) :Для режима seamless. Включить ли уравнивание гистограммы.Masked hist match? (y/n skip:y) :Для режимов hist match, hist match bw, seamless, указывает, уравнивать ли гистограмму по маске лица.Use predicted mask? (y/n skip:y) : Использовать ли маску, которая предсказана моделью (только если маска изучалась, например в SAE модели можно выключить изучение маски) - по умолчанию да. Либо использовать маску из dst лица.NoYesChoose erode mask modifier [-200..200] (default 0) :Указываете насколько уменьшить в размерах dst маску. Значение < 0 - расширить маску. Это адаптивное значение, а не абсолютное.-100+100Choose seamless erode mask modifier [-100..100] (default 0) : только для режима seamless - модификация размеров маски, использующейся для самой seamless функции. Значение < 0 - расширить маску. Эта маска задаёт непосредственно шов, по которому будет проходить адаптация цвета.0+40 Choose blur mask modifier [-200..200] (default 0) : Указываете насколько сгладить dst маску. Значение < 0 - уменьшает сглаживание по-умолчанию моделями H64 и H128. Это адаптивное значение, а не абсолютное.-200+200Hist match threshold. [0..255] (default - 255) :Уменьшение значения подавляет артефакты для режимов с уравниванием гистограммы.(по-умолчанию) 255231Choose output face scale modifier [-50..50] (default 0) : изменить масштаб выходного лица в пределах -50+50%. Полезно, когда предсказанное лицо несколько больше оригинала.-50+50Apply color transfer to predicted face? Choose mode ( rct/lct skip:None ) : дополнительно адаптировать цвет лица, используя rct или lct алгоритмDst лицоПредсказанное лицоrctlctDegrade color power of final image [0..100] (default 0) : Степень деградации цветности конечной картинки от 0 до 100. Уменьшая общее качество картинки, можно скрыть недостатки наложения лица.0100Export png with alpha channel? [0..1] (default 0) : экспортирует только лицо с альфа каналом для последующей работы в видео редакторе.Итог по наложению лиц.В начале запускаете с отладкой, пробуя различные параметры и смотрите результат.Запомнив подходящие значения, запускаете наложение без отладки.Результат картинок в workspace\data_dst\merged - можно использовать самому в видеоредакторе, либо склеить в видео в п.88)convertedbat Склейка в видео.Следующие .bat файлы склеивают картинки в видео с тем же FPS и звуком, что и data_dst.mp4 - поэтому не удаляйте data_dst.mp4 из workspace папки.to avi.batв формат avito mp4.batв формат mp4to mp4(lossless+alpha).batmp4 без потерь с использованием alpha канала.to mov(lossless+alpha).batmov без потерь с использованием alpha канала. Sony Vegas с использованием QuickTime сможет использовать alpha канал из mov файла.Всё. Результат в workspace\result.mp4Если результат не удовлетворил, можно пробовать разные опции наложения, либо продолжать тренировать для повышения четкости, либо пробовать другую модель, либо пробовать другое исходное лицо.Дополнительная информация:9) util convert aligned PNG to JPG (drop folder on me).batпозволяет конвертировать папку с извлеченными PNG лицами из старых версий DeepFaceLab в JPG. Для этого перетяните папку с набором лиц прямо на этот .bat файл. Известны случаи, когда Windows 10 резервирует % видеопамяти, даже если видеокарта не используется для вывода картинки. В таком случае придётся чем-то жертвовать, чтобы тренировка запустилась (batch size, размерности в SAE, итд).Советы и хитрости.Узкие лица лучше тренируются на широкие лица. Вот почему фейки с Кейджем так популярны.Иногда, если нейронная сеть будет получать dst лица только одного освещения, например, с затенённым носом, при этом src лица не содержат аналогичного лица с таким же освещением, то нейронная сеть может не понять, куда вообще смотрит лицо на некоторых ракурсах, в результате предсказанное лицо будет содержать неправильный поворот головы.В этом случае полезно добавить в тренировочный набор data_dst\aligned лица того же персонажа, но извлеченные из других сцен с другим освещением.Тем самым можно несколько улучшить результат. Но лучше всего, конечно, найти src лица с тем же освещением носа.Продвинутые советы от @GAN-er ( только на английском языке ):Tip 1:You may benefit by starting with a small batch size (within reason) and increasing it later. The reason is that a **large batch size will give you a more accurate descent direction but it will also be costlier to calculate**, and when you just start, you care mostly about the general direction; no need to sacrifice speed for precision at that point. There are plenty of sources discussing the batch size, as an example you can check this one:https://stats.stackexchange.com/questions/164876/tradeoff-batch-size-vs-number-of-iterations-to-train-a-neural-networkTip 2:Unlike the batch size that the only thing that does is affecting how accurate each step will be as far a the true gradient goes, the dimensions, actually, increase the complexity of your NN. As a rule, **the more complex a network the better the resulting model**, but since nothing comes for free, **the more complex the network the more time it will take to converge**.What you generally want is to **_figure out the max dimensions that you can use_** given your GPU's memory, and your desired max batch size.You can set the max batch size to something, say K, and then increase the dimensions until you get OOM errors. In the end, you will end up with a triplet, {batch size, ae_dims, ed_dims}Ideally, you would use 1024 and 85 for your autoencoder and encoder/decoder dimensions, but no card has enough memory for such a configuration even with batch size 1.Remember that unlike batch size that you can change at will, once you set up the dimensions you can not change them.Note that **if you use a complex - high number of dimensions NN, in combination with a small batch size, it will take _considerably_ longer for your model to converge**. So keep that in mind! You will simply have to wait longer, but also you will get a much much better result.For cards with 11Gb of memory, and for SAE you can try the following settings:For DF architecture: 12 698 51 For LIAEF architecture: 8 402 47Tip 3:If you end up being stuck, i.e. the loss does not go down but for no obvious reason or if you get weird artifacts in some previews before you discard and start from scratch, you may want to flip your DST and SRC for a while. This often is all you need to keep things going again.Tip 4:99.995% of your success or failure rate is due to bad SRC or DST sets. This means that 99.995% of your time should be spent in actually ensuring that your sets are well curated. Throwing together a hot podge of material and expecting a decent outcome is guaranteed to result in disappointment. Garbage in, garbage out.Дополнительное описание SAE.Эта модель по сути содержит все другие модели, если отключить тренировку стиля и multiscale decoder.SAE очень гибкая, можно подстроить либо под лучшее обобщение лиц сетью, либо под лучшую четкость изображения, либо просто чтобы заработало на вашей GPU.Если src сборка лиц содержит количество лиц больше чем dst, модель может не сойтись. В этом случае используйте опцию Feed faces to network sorted by yaw.Если src лицо шире чем dst, модель может не сойтись. В этом случае можете попробовать опцию Src face scale modifier в -5.Архитектура df делает лицо более похожее на src, но если модель не сходится, используйте liae.VG архитектура SAE пока что не показала каких-либо улучшений, нужно больше тестов.Если на вашей видеокарте много видеопамяти, вы можете выбрать между большим batch size, которое улучшает обобщение лиц, и Encoder/Decoder dims размерностями, которые улучшают качество картинки.Face стиль тренируется, чтобы перенести цвет лица, освещение, макияж. Если он уже хорошо перенесен, то продолжение тренировки с высоким значением может сделать артефакты.Background стиль тренируется, чтобы перенести контур лица и окружение. Благодаря контуру лица, подгоняется src лицо под контур dst.Как лучше всего тренировать SAE со стилем? Не существует лучшего решения, всё зависит от сцены. Экспериментируйте со style значениями по своему усмотрению. Включите write preview history и отслеживайте изменения. Делайте резервную копию файлов модели каждые 10к итераций. Вы можете откатывать файлы модели и менять значения, если что-то пошло не так в превью-истории.Работа на AMD/Старых NVIDIA/IntelHD видеокартах.DeepFaceLab поддерживает старые процессоры без AVX инструкций. Для этого используйте DeepFaceLabCUDA9.2SSE сборку.DeepFaceLab поддерживает AMD, IntelHD Graphics и любые старые GeForce видеокарты через использование OpenCL 1.2 движка.Для этого используйте DeepFaceLabOpenCLSSE сборку.Работа на OpenCL в сравнении с CUDA имеет некоторые недостатки:- извлечение лиц можно запускать только MT или S3FD, при этом первый проход (1st pass) на MT всё равно будет работать на CPU, но достаточно быстро! S3FD полностью работает на OpenCL и является предпочтительным методом. Второй проход работает на OpenCL без проблем.- чтобы запустилась SAE, её нужно урезать существенно как в ae_dims , ed_ch_dims так и в batch size по-сравнению с тем же количеством видеопамяти на CUDA версии. Можете поставить вообще самые минимальные значения, а также разрешение 64 и half face - в качестве демонстрации натренируете фейк худшего качества без проблем даже на IntelHD Graphics с 256МБ памяти !- каждый запуск тренировки и после сохранения в процессе тренировки, OpenCL будет перезагружать свои подпрограммы, что будет занимать некоторое время.Пожертвование разработке.Если вам нравится данная программа, вы можете пожертвовать денег для дальнейшего развития.Yandex.moneyhttps://money.yandex.ru/to/41001142318065Paypalhttps://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=KK5ZCH4JXWMQS&source=urlbitcoin:31mPd6DxPCzbpCMZk4k1koWAbErSyqkAXrПолезные ссылкиСтраница разработкиhttps://github.com/iperov/DeepFaceLabВводная видео инструкция по работе с программойhttps://www.youtube.com/watch?v=K98nTNjXkq8 Мой канал фейковhttps://www.youtube.com/channel/UCEtoVzBLuE-ni-54h7kYvsgПопулярный канал фейков https://www.youtube.com/channel/UCUix6Sk2MZkVOr5PWQrtH1g/videos Фейки на реддитеhttps://www.reddit.com/r/GifFakes Готовые src наборы лиц для DeepFaceLabhttps://mega.nz/#F!y1ERHDaL!PPwg01PQZk0FhWLVo5_MaQ поиск подходящей знаменитости по загруженному лицуhttp://www.pictriev.com поиск подходящей порнозвезды по загруженному лицуhttps://findface.sex/ruhttps://findpornface.comhttps://pornstarbyface.comhttp://www.didshedoporn.com/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcG BwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwM DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCACAAYADASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA @@ -46694,4 +46694,4 @@ AFzb+dfn3qP/AB8N/vGiivr8J/DifLYv4jQ8P9639I+81FFdByRE/wCW6/71P07/AI+R/vUUVUth z/yC5v8AcP8AKvx1/wCCmf8AyUD8/wCtFFc9TdmmX7r1PlWw/wCPdfxqRP8Aj7H0oorza2x9hT2P o79ib/kaV+o/rX35oH/Ityf7o/kaKK4aXxI5cV1PyV/4Lpf8lY0P/rh/Wvz5vv8AXN/vUUV9fhPg PmsVui/pv3G+lbml/wCs/CiiunqckjM1T/kJJ9TV7QP9cv8Av0UVc9icP8Z2Fj/qV+prgPHH/IWX -/fH8xRRUQ6ndiNkf/9k=ckpoonckpoon212019-03-07T16:50:00Z2019-03-08T16:05:00Z2019-03-16T16:52:00Z55323487927814Microsoft Office Word023165falseНазвание1false32628falsefalse12.0000 \ No newline at end of file +/fH8xRRUQ6ndiNkf/9k=ckpoonckpoon242019-03-07T16:50:00Z2019-03-08T16:05:00Z2019-03-18T07:48:00Z55823490627969Microsoft Office Word023365falseНазвание1false32810falsefalse12.0000 \ No newline at end of file