Главным отличием является скорость и относительная простота работы. Не нужно возиться выборкой и тратить несколько суток, а то и недель на обучение!
Для создания дипфейка требуется лишь фотография и видеоролик, в который нужно вставить лицо с фотографии. Обучение не требуется, используется готовая универсальная модель, которая сразу лепит лицо на кадры.
В требованиях заявляют 8GB VRAM. Сама нагрузка на видеокарту минимальная (если не считать использование кодировщика видео и занимаемую видеопамять), а процессор потеет. Время создания дипфейка в 10-11 раз превышает продолжительность оригинального ролика (при 30 fps; для 60 fps множитель увеличивается до 22).
Туториал по установке и созданию роликов: https://www.youtube.com/watch?v=1NWJz_rFMq0 Если вылезет ошибка UnicodeEncodeError, то решение тут https://qiita.com/satamame/items/fdee302943b097a063de Если вкратце, то нужно изменить строку 635 в файле serialization.py В моем случае он находился по пути D:\ProgramData\Anaconda3\envs\simswap\Lib\site-packages\torch\serialization.py Было: with open(file_name, 'a+') as f: Стало: with open(file_name, 'a+', encoding='utf-8') as f:
Для удаления водяного знака сначала отредактируйте файл simswaplogo.png из папки simswaplogo, удалите все символы в любом графическом редакторе, не забудьте сохранить прозрачность. Но даже если сделать файл прозрачным, остается синева. Поэтому откройте файл add_watermark.py из папки util и замените 23 строку. Должно получиться: def __init__(self, logo_path, size=0.3, oritation="DR", margin=(5,20,20,20), angle=15, rgb_weight=(0,0,0), input_frame_shape=None) -> None:
То есть вам нужно просто обнулить значения rgb_weight
>>537324 > >>249917101 Запускаешь все в первый раз, ждешь. Потом грузишь картинку и ролик в папку demo_file, меняешь имена файлов на пикрелейтеде на свои.
Запускаешь последний фрагмент кода, ждешь.
Когда все закончилось, заходишь в папку output и качаешь файл demo.mp4
А у меня такая ошибка... Traceback (most recent call last): File "test_video_swapsingle.py", line 50, in <module> img_a_align_crop, _ = app.get(img_a_whole,crop_size) TypeError: 'NoneType' object is not iterable
>>537324 Ты же в курсе что это немного не так работает. 10 или 20 или около того скачиваний и будет писать ошибку что пользователь не открыл доступ к файлу, что то типо лимита на скачивания. А еще загрузка файла на диск колаба крайне долгая, быстрее подгружать с диска, тем более можно подгружать файл через запуск ячейки. Если хочешь могу причесать колаб. мимо-анон-с-нейронкой-генерирующей-по-фразе-от-сюда https://2ch.pm/pr/res/2003482.html да, тот тред мертв
До конца проверить не смог так как гугол ебанул лимиты на каждый акк по 5 минут но вся установка и начало генерации работает. Алсо те файлы подкачивает с меги самым васянским из возможных путей.
>>537407 Не совсем понял. Там уже при загрузке через ячейку при нажатии кнопки загрузить файл открывается проводник для выбора файла с компа. Или ты про ручное перетаскивание в среду колаба и ввод пути?
>>537417 Я не прям профи среди профи и мне нужно сразу тестить работает ли код или нет. А лимит колаба почему то почти сразу исчерпывается сегодня. Когда лимиты на акках сбросятся прикручу проверку.
>>537242 (OP) >В требованиях заявляют 8GB VRAM. Сама нагрузка на видеокарту минимальная (если не считать использование кодировщика видео и занимаемую видеопамять), а процессор потеет. Время создания дипфейка в 10-11 раз превышает продолжительность оригинального ролика (при 30 fps; для 60 fps множитель увеличивается до 22). Блядь, если по русски написать для крестьян, то вам нужна как минимум КЕЧ 3060 (самый дешевый варик - на пике), и хотя бы какой нить всратенький i5-10400. Заебись, хуль, чтоб творить всратую хуйню, на которую даже у 14 лвл сперматоксикозника не станет.
>>537468 На изи создаю фейки с 2070s и ксеоном, у которого частота 2,6 ГГц. Также аноны писали, что у них работало на gtx1650, но я не могу это проверить.
8gb - это официальные требования, по факту хз на чем она еще запустится.
>>537469 >2070s Ну их сейчас нет в продаже, да и по цене она равна 3060 брать с лохито отожжёнки после манянга не предлагать. Я к тому, что если у тебя УЖЕ нет такого конплюктера, то это довольно дорогое хобби получаеца
>>537510 Если вылезет ошибка UnicodeEncodeError, то решение тут https://qiita.com/satamame/items/fdee302943b097a063de Если вкратце, то нужно изменить строку 635 в файле serialization.py В моем случае он находился по пути D:\ProgramData\Anaconda3\envs\simswap\Lib\site-packages\torch\serialization.py Было: with open(file_name, 'a+') as f: Стало: with open(file_name, 'a+', encoding='utf-8') as f:
короче тема сырая и постоянно что то слетает и вылезают новые косяки после закрытия анаконды. исправляешь их, вылезают еще новые косяки. ПРОДУКТ КИТАЙСКИЙ ОДНИМ СЛОВОМ)))
>>537532 Соболь и путина вот в Мелиссу плс >>537517 . Уже всё что можно сделали, а самое смешное еще нет Я сам не могу, аноны, а то бы нахуярил годноты пиздец!
>>537591 Ну у меня все работает на компе. Просто нужно видосы искать, чтобы контент делать. Хотя есть идея попроьовать сделать Навального и Путина, спорящих про симпл димпл.
>>537640 В батнике просто команды из образца, чтобы запустить рендеринг видео. Я его использую, когда нужно создать по 10 видео и пойти пить чай. Или просто изменить батник, а в консоли набрать start
>>537723 Проц - слабый двуядерник intel седьмого поколения с 2,3ГГц в пике и HT. Я положил ноут с пассивным охлаждением на охлаждающую подставку и температура была норм, даже лучше чем на пеке. Просто скорость обработки была 1,61 кадр в секунду. Для сравнения: на пеке с намного мощной видеокартой (пикрелейтед) 2,44 кадра в секунду. Разница не такая уж и большая. Тут скорее процессорозависимость с упором в частоту, но не сильно увеличивается разница с возрастанием частоты.
Двухъядерный процессор с HT 2.3 ГГц 8Gb ОЗУ Ноутбучная видеокарта GeForce GTX MX150 2Gb с поддержкой CUDA (красные в пролете) Windows 10 (на семерке просто не тестировал)
Все, что сильнее, по идее должно потянуть.
Но если заработает на еще более медленных ведрах, то можно будет легко эти системки обновить.
>>537756 АЛАРМ Нашёл ебучее и тупое решение проблемы с UnicodeEncodeError Замена Serialization не подошла т.к. эта срань не ставилась в окружение симсвап, подключиться к ней тоже не могу в связи хуй знает с чем. Крч в анаконде тупо в ебучем anaconda/lib/encodings/cp1251.py меняем содержимое на содержимое в этой же папке в файле UTF-8.py После этого спокойно подключаемся к окружению симсвапа и продолжаем мастурбацию китайской срани. хуй знает, но мб кому-то поможет.
Итак, альтернативный колаб полностью допилен, установка занимает 5 минут. Вотемарки нет. Гайд все так же планирую запилить вечером. прона не было зато были шебемки и фотка макаки
>>537770 Сложно сделать прозрачным изображение и увидеть результат? Не заметил никакого синего квадрата. Раве что вокруг лица немного, но то артефакты, полагаю.
>>537774 >>537242 (OP) > Но даже если сделать файл прозрачным, остается синева. Поэтому откройте файл add_watermark.py из папки util и замените 23 строку. Же
>>537782 Сейчас проверю. Так то я заменил метод загрузки с меги, скорость там около 3 мб/сек вместо 50. Но ячейку перезапускать не надо как и фиксить вотемарку. Но сам уже понял, сейчас буду снова фиксить, сделаю два пути, один медленный который сейчас, и другой по тому же принципу что и был. Заодно и запишу гайд.
>>537796 Вот теперь точно все, только видео записать осталось но ебаный колаб снова отрубил акк спустя 4 минуты а три старых так и не воскресил. Запишите кто нить, потом добавлю, иначе на это уйдет вечность.
>>537782 Алсо с загрузкой файлов вроде все в порядке, специально сделал замену пробелов на дефисы и она работает, мб в имени файла были спецсимволы которые тоже лучше бы заменить но уже в ручную.
установил, всё завелось збсь на ноуте с i5-4210U, 8gb и видео geforce 840m . после повторного запуска выдает ошибку: > file "test_video_swapsingle.py", line 2, in <module> > import cv2 >ModuleNotFoundError: No module named 'cv2'
Каггл пока тестирую полностью работает, однако я понимаю все меньше и меньше. Можно увеличить разрешение изменив в последней ячейке (640,640) на например (1024,1024), но тогда лицо все равно будет в 224р и результат видеорилейты. Заточка под запуск на проце есть но ее просрали говнокодом и скорее всего это не пофиксить. Любые параметры практически не влияют на видеопамять/использование видеокарты, тот параметр how many при 1 занимал 2.3 гб, при 500 занимал 3 гб. К тому же большая часть опций попросту игнорируется при выполнении из за того, что, судя по всему, ссылки на них добавили лишь в код тренировки который еще не заопенсорсили. Ну и само собой каггл вроде еще сильнее не причесать, маркдовн код не завезли. Сейчас проверял раз 5 и все работает как надо и пока не встретил ни одной ошибки.
>>537938 Ну, справедливости ради, для начала, учитывая простоту, всё довольно круто, но да потенциал огромен, есть куда расти. Сейчас слишком много условностей, чтобы вышло как надо.
>>537995 Оптимизаторами вроде адама целенаправленно перебираешь тысячи-миллиарды переменных для своей архитектуры виляя жопой чтобы не упасть в локальный минимум крайне ебанутейшей функции потерь с тысячами-миллиардами осей. у них код тренировки не выложен, обещают через месяц, там будет что то вроде py train.py --dataset ./dickonface
>>537940 Ебал твою мать, говно! Вот вообще не шарил в теме. Купился на твой пост, пидарюга, думал, ты знаешь что говоришь. Скачал эту хуиту из под ногтей "хуле она вас не устроила". Петух! Она блжад меня не устроила тем, что там надо 2 видоса иметь, видос с ЕОТ для замены и видос с шлюхой. Дебил, блядь. А у меня только фотка. Кретин ебаный, если не знаешь, хуле лезешь?!
>>538073 Советую вкатиться через тред в программаче https://2ch.pm/pr/res/2078573.htmlи изучение змеинного на уровне беру этот код, меняю это под себя и код работает. А дальше можно уже и самому писать.
>>538164 > Это на процессоре или видеокарте? Мне интересно сколько на гпу занимает. Процессор находит и заменяет лица на кадрах, а видюха хранит кадры. Занимается почти весь доступный объем видеопамяти.
Теперь есть возможность использовать тулзу на любом ПК и ноутбуке! Все считается на процессоре! CUDA теперь необязателен! Кодирует намного дольше, чем видеокарта, но это достойная альтернатива для всех, у кого красные или бюджетные видеокарты или их нет вовсе.
Согласно идее отсюда >>538175 я внес изменения, только для этого пришлось создавать отдельное окружение и устанавливать другие зависимости. Также я переписал код везде, где увидел привязку к CUDA на CPU.
Я сейчас тестирую отдельную версию, которая считает только на CPU и она работает, GPU и память не используется скриптами, хотя раньше она была забита под завязку.
Я тут маленько интерфейса себе набросал, может ещё кому пригодится. А то лично меня оч заебало каждый раз вручную прописывать имена файлам. Работает только с методом "Swap only one face within the video". Потом может другие добавлю.
>выбрал видео >выбрал фото с лицом >нажал кнопку "готово/сброс" >копируешь сгенерированную команду вручную из строки ниже или просто жми кнопку "скопировать" >вставляешь в консоль нейросетки
Да как победить эту сраную ошибку, разные фотки перепробовал Путь верный video_path = "kaggle/input/data1/w1300.jpg" image_path = "kaggle/input/test1/7398.mp4
>>538198 Спасибо тебе. Всё огонь. Поставил на ноут. На i3 10 поколения с 8 Гб памяти минутный ролик запиливает за минут 40. Было бы неплохо запилить версию с поддержкой Intel UHD Graphics, но и так не плохо. Лучше чем нихуя
Что если собрать какой-то каталог порнухи, а когда ананасы пытаются увидеть голую еот, прогонять ее лицо по каталогу и находить такие, где лицо максимально сходится и уже туда приделывать?
>>538311 Имеет смысл просто брать один кадр из порнухи с помощью ffmpeg. И запускать в режиме отсеивания картинки. Если не похожа, то либо менять фотку, либо порнуху.
Но нужно изначально отсеять плохую порнуху. Не подойдут минетчицы, шлюхи которые стоят боком, заппокидывают голову и часто крутят башкой. Подойдёт анал, соло, ебля раком и любая ебля, где шлюха смотрит в камеру. Челка все портит, разные формы еблетов тоже, фон, освещение, контрастность влияют на результат.
Кстати довольно интересно, в каггле на блокноте 326 просмотров и 26 приватных копий (то есть всего 7% смогли скопировать для запуска). А еще лол, мне повысили лимит на 5 часов и теперь их 35 в сумме.
>>538318 Кстати сейчас через час примерно выкачу обновление каггла с функцией отдельных лиц. Пока жду работу другой нейронки которая должна превратить гололя в яблоко а потом протестю чтобы был сразу аутпут в ячейке.
>>538333 > Kaggle-версия (не работает, только для гиков и мазохистов): Работает же, сколько раз тесты не прогонял все в норме. Хотя хотя то что для гиков и мазохистов от части правда.
>>538357 Оно работает только с картинками. Если кто-то запилит как дополнительный инструмент в виде постобработки, будет неплохо. С другой стороны, неизвестно, насколько сильно увеличится время обработки.
>>538369 Судя по видео там все не идеально, хотя вполне возможно его прикрутить между процессом замены лиц и склейки лиц, завтра-послезавтра посмотрю что можно сделать если это уже кто то не сделает.
>>538371 Так симсвап же меняет ебало на основе ряда кадров, вмешательство может поломать всё. Если и делать, то как вариант обработки уже собранного видео.
>>538367 >>538366 Бинарные зависимости что, по-твоему? Тот же код, только в виде команд, операндов и прочих подобных штук для машины или для интерпретатора. И если в коде для человека используются длинные читабельные названия команд и операндов, то там они зачастую очень короткие. 9Гб это почти 100 миллионов строк текста по 100 символов в каждой, к слову.
>>538374 Можно попробовать вначале апскейлить и прогнать фотку, а потом уже покадрово видео. Но тут загвоздка в том, что каждый отдельный кадр может дать разный результат.
>>538375 > то там они зачастую очень короткие Машинный код короче, но его больше. Поэтому одна строчка на языке высокого уровня, это дохера строчек на машинном коде, особенно если это сложная функция.
>>538378 Сложная функция состоит из нескольких проще, которые так же состоят из других: с очень большой вероятностью эти функции будут повторяться, то есть вести в одни и те же места. Как, например, перемножение матриц, которое просто складывает и умножает числа несколько раз. Посмотри сколько весят бинарники игр и прикинь сколько уникального кода влазит в 9ГБ.
>>538382 > Сложная функция состоит из нескольких проще, которые так же состоят из других: с очень большой вероятностью эти функции будут повторяться, то есть вести в одни и те же места. Чувак, прочитай, как компилятор генерирует исходники в машинный код. Разные компиляторы могут сгенерировать бинарник для одного и того же кода совершенно различных размеров. Бинарники весят намного больше исходников, это факт. Если только ты не пишешь демосцены, но вряд ли еще кто-нибудь такой хуйней будет заниматься.
>>538374 Не совсем, он конечно меняет в ряде, но кадры записывает в папку темп, а потом из видео извлекает аудио и записывает аудио и кадры из папки темп в видео. Если до записи в видео эти кадры скормить гпену, записать в папку например темп2, удалить папку темп и переименовать темп2 в темп, то разницы для алгоритма склейки не будет. Это же просто но нужно менять скрипты которые разрабы постоянно обновляют.
>>538383 > Бинарники весят намного больше исходников, это факт Лол, и игры без сжатия весят меньше,а если распаковать архивы так каждая игра будет весить под 1гб. А эти ваши 116 гб в рдр2 это наебка маркетологов чтобы продавать жесткие диски.
>>538383 Я работал и с асмом, и с высокоуровневыми компилируемыми и интерпретируемыми языками, поэтому и пишу. Если ты говоришь про исходник в одну строку, но с кучей зависимостей, то ясен хуй если их подтянуть в один бинарник, он будет гораздо больше и похуй, что 99.9% оттуда и не используется.
Все, каггл версия полностью рабочая, ссылка на гайд в облаке гугла в первой ячейке. В блокнот ее не вклинить потому что при полном разрешении у меня крашит хром, при порезанном в два раза видео загружается минут 10 и лишь при урезанном до 360р оно работает нормально в выходе ячейки.
>>538333 Убирай заметку о неработоспособности и припиши что есть видеогайд >>538400. Про мазохизм можешь оставить.
>>538422 Лучшей залей анона исходников коротких, как пик рил 2, что бы меньше резать людям
от 10 до 30 сек. Лучше коротки до 40 сек. 10-20 идеально, что бы протестировать и посмотреть как ложится, если результат хороший, значит можно еще брать отрезки из соуса. Если нет, не тратить зря время
я уже не много по юзал, и до этого использовал еще faceswap
vмогу сказать что тут нужно хорошо выбирать кадры, в идеале это где персонаж которому мы хотим заменить лицо, должен смотреть в камеру, и желательно как можно меньше крутить башкой и тп так как все происходит на основе одой пикчи
научить бы его скармливать пару фото, сбоку и тп, с разных ракурсов
Там уже два поста подряд, где просят сделать ролики с девушками с фотографий, но я не могу не попросить сделать тоже. Сделайте любой соло видосик, если не в кому лом.
Как блять фиксить я заебался уже. В первый раз просто выдал ошибку UnicodeEncodeError, но я даже не фиксил, просто пеку перезагрузил. Теперь эта ебота. Хули делать?
>>538533 Вообще большую часть ошибок можно пофиксить просто пересобрав среду, либо проверить действительно ли ты скопировал все перечисленные в гайде папки.
>>537551 От такой тематики просто тащусь, вообще я считаю fpov заслуживает отдельного треда. Кстати я мечтал о ней ещё до того как она стала популярной.
GUI не пользовался. Но судя по жалобам пользователей, путь к анаконде жестко прибит к диску C. Нужно доработать приложение, добавив возможность указать произвольный путь. Благо исходники есть.
Отвечаю на вопрос, почему Sim Swap и прочий машоб не работает на AMD. Если вкратце, то амуде считают, что для винды достаточно OpenCL, ROCm на винде не планируется, потому что винда для игр. Ничего не получится даже с WSL2. Но на линухе тоже все не так просто, ограниченная поддержка в плане фреймворков машинного обучения. Причем даже в случае успеха, производительность видеокарты будет равна 50, а то и 30 процентам от производительности аналогичной видеокарты зеленых.
А уж если совсем кратко: AMD - пидарасы, которые считают своих клиентов дебилами.
Перенести Sim Swap на CPU намного проще, чем портировать её на AMD. Даже шансы портирования на встройки Intel выше, хоть и не являются простой задачей.
>>538636 Тут не все совсем верно. Есть возможность запускать нейронки с помощью vulkan (что то вроде dx и opengl но пиздатее) который заведется практически на любом цп/гп, любой операционке и даже на телефонах. Сам проект от тенцентов (те которые из большой Хi и те которые пабге) но это не должно смущать https://github.com/Tencent/ncnn
Вообще у https://github.com/nihui нихуя так репозиториев с ncnn. И сок в том что практически любую нейронку так можно запихать в vulkan, и это запустится везде и пойдет быстрее.
Но вот сам в это не влезал слишком глубоко, и судя по всему там нужен не только питон а я знаю только его и немного с. Если тут есть гении красноглазия, советую изучить эту хуйню.
>>538643 Забыл добавить, саму нейронку необходимо конвертировать под вулкан. В этом основная сложность. В принципе питонский код разрабов переписать даже я смогу.
>>538656 Потому что код писали питонисты, а питонисты знают только питон и в основном обходят стороной фронтенд так как боятся на интуитивном уровне css и html с жабой скриптовой. Язык С же пугает тем что есть решетки, решетка, плюс и плюсы и поэтому он так же избегаем всеми труъ питонистами даже не смотря на то что на нем пишут большинство экзешников спермы. мимо-питонист
>>538663 та даже 5 летние дети trainer для игр делают. любой упаковщик за 1 доллар проблема? ну ладно пусть я не прав.
но почему просто всё в 1 архиве не скидывать? а если половину ссылок забанят а выйдет обновление? это ещё версия хуйня не универсальная. мне разраб в стим игру написал за 3 дня. за 30 рублей улетает. вопрос был в 10000 рублей.
ну я хз. спорно толсто. твою идею не поддержат просто потому что всё сыро ещё и через жопу работает.
Слушайте, я не понимаю, как пользоваться скриптом для автонарезки. Я закидываю все файлы из FAQ (bat и основной py) в папку, добавляю туда фото и видео. Запускаю через консоль py-файл, перетаскиваю в окно фото, потом видео, он пишет пути к фото и видео и на этом все заканчивается. Ошибки никакой нет, в папке появляются еще папки output и temp_files. Какого хуя?
Для создания дипфейка требуется лишь фотография и видеоролик, в который нужно вставить лицо с фотографии. Обучение не требуется, используется готовая универсальная модель, которая сразу лепит лицо на кадры.
В требованиях заявляют 8GB VRAM. Сама нагрузка на видеокарту минимальная (если не считать использование кодировщика видео и занимаемую видеопамять), а процессор потеет. Время создания дипфейка в 10-11 раз превышает продолжительность оригинального ролика (при 30 fps; для 60 fps множитель увеличивается до 22).
Если подходящего железа нет, то можно использовать Colab. Но там иногда могут быть ошибки.
Colab: https://colab.research.google.com/github/neuralchen/SimSwap/blob/main/SimSwap%20colab.ipynb
Github: https://github.com/neuralchen/SimSwap
Туториал по установке и созданию роликов: https://www.youtube.com/watch?v=1NWJz_rFMq0
Если вылезет ошибка UnicodeEncodeError, то решение тут https://qiita.com/satamame/items/fdee302943b097a063de
Если вкратце, то нужно изменить строку 635 в файле serialization.py
В моем случае он находился по пути D:\ProgramData\Anaconda3\envs\simswap\Lib\site-packages\torch\serialization.py
Было:
with open(file_name, 'a+') as f:
Стало:
with open(file_name, 'a+', encoding='utf-8') as f:
Для удаления водяного знака сначала отредактируйте файл simswaplogo.png из папки simswaplogo, удалите все символы в любом графическом редакторе, не забудьте сохранить прозрачность. Но даже если сделать файл прозрачным, остается синева. Поэтому откройте файл add_watermark.py из папки util и замените 23 строку. Должно получиться:
def __init__(self, logo_path, size=0.3, oritation="DR", margin=(5,20,20,20), angle=15, rgb_weight=(0,0,0), input_frame_shape=None) -> None:
То есть вам нужно просто обнулить значения rgb_weight