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

Для создания исторически обоснованного диалога были собраны 54 тома сочинений Ленина, которые были загружены в специальный модуль системы ChatGpt для обработки больших массивов данных. Следом за ними сервису были скормлены дневники Николая II и сборники его речей. Эти материалы были в дореволюционной орфографии, но после оцифровки проблем с их обработкой у нейросети не возникло.

Оригинальный отрывок из сборника речей императора
Оригинальный отрывок из сборника речей императора

На основе исходных данных нейросеть по моему запросу попыталась воссоздать лингвистического двойника со всеми нюансами личности Ленина, и в манере его речей и записей составила список вопросов Николаю. После серии промптов удалось даже повторить нюансы его произношения, ведь известно что Ленин не выговаривал некоторые буквы. Затем система воссоздала личность Императора.

Генерация и создание слепка голоса
Генерация и создание слепка голоса

Для воссоздания голоса использовалась система ElevenLabs. Туда я загрузил две сохранившиеся оригинальные аудиозаписи - речь императора на французском языке, а также речь на параде. Удивительно, но несмотря на плохое качество исходников, после загрузки старых записей удалось получить годные для дальнейшей работы слепки голоса. Подобная работа была проделана и с записями речей вождя революции.

После обработки, эти голоса через API можно задействовать в сторонних AI-сервисах. Единственная проверка - пришлось галочкой подтвердить, что данные голоса принадлежат именно мне (зуб даю!).

Для визуализации диалога сперва планировал применять HeyGen, но сразу возник ряд трудностей. Во-первых, создатели сервиса добавили умную проверку, где нужно с веб-камерой доказать, что это ты.

Проверка личности
Проверка личности

Без данной проверки разрешено создавать только видеоряд, где статичная фотография шевелит губами. Но даже с этим была сложность: оказалось, что при загрузке фотографий Heygen хорошо распознает знаменитостей - и не позволяет добавлять фото Ленина и Николая.

К слову, сейчас такая проверка есть и в сервисах генерации изображений, в том числе отечественных. Она не позволяет генерировать фотографии знаменитости почти везде, от Шедеврума до Dall-e - за исключением Кандинского от Сбера, который рисует настолько непохожих на исходный запрос людей, что подобная проверка там бесполезна.

После ряда настойчивых попыток удалось достичь определенного успеха - прокатила загрузка состаренного императора, а также редкая фотография Ленина.

Так мог бы выглядеть Император, если бы дожил до старости. Автор изображения неизвестен.
Так мог бы выглядеть Император, если бы дожил до старости. Автор изображения неизвестен.

Но результат генерации разочаровал. Губы шевелились на статичной фотографии, и это, мягко говоря не тот результат, который хотелось получить - как в баянистых роликах про надоедливый апельсин на Ютубе.

Ну и губы
Ну и губы

Пришлось идти другим путем. Попробовал взять фрагменты оригинальных роликов и заставить Н2 и Ленина говорить текст. Но оригинальные видео были в очень плохом качестве, и даже инструменты по типу CodeFormer RealEsrGan не смогли исправить ситуацию:

Пример работы CodeFormer
Пример работы CodeFormer

Хотя в описании они дают потрясающие результаты.

Пример работы из документации одного из сервисов улучшения изображений
Пример работы из документации одного из сервисов улучшения изображений

Поэтому пришлось мыслить творчески. Я взял за основу хорошие фрагменты из фильмов и заменил лица, используя процедуру FaceSwap через утилиту Roop, после чего наложил звуковую дорожку из IIlevenlabs и анимировал движения губ с помощью скрипта Wav2Lip.

Фильмов про Николая Второго не так много, до 1960х годов его показ был под строжайшим запретом, но все же нашлась кинокартина “Пролог”, которую и взяли за основу. С Лениным же проблем не возникло.

Был вырезан подходящий фрагмент, затем в дело пошли инструменты Roop и Wav2Lip. Удобно, что гугл предоставляет условно-бесплатную среду Colab, позволяющую запускать разные скрипты - таким образом процедуры преобразования видео можно и делать на компьютерах со слабыми видеокартами.

Запуск Wav2Lip в GoogleColab
Запуск Wav2Lip в GoogleColab

Для лучшего результата было сделано несколько прогонов, получилась такая схема:

FaceSwap (замена лиц на видео)  -> Wav2Lip (озвучка и шевеление губ)  -> Faceswap (улучшение результата). 

В начале казалось, что на весь эксперимент уйдет пара часов - но ушло гораздо больше времени. В ходе данной работы я убедился, что эпоха Дикого Запада в нейросетях проходит - крупные сервисы уже достаточно жестко регулируются, и там довольно много проверок, хотя на локальных компьютерах пока еще можно запускать какие угодно скрипты. Плюс некоторое пространство для экспериментов предоставляют такие площадки как Goggle Colab, Runpod.io и их аналоги.

Если было интересно, буду рад вашей подписке на телеграм-канал про нейросети от создателя этого ролика.

Комментарии (20)


  1. PikPok77
    09.06.2024 13:36
    +1

    Очень интересно и хорошая актуальная работа. Поздравляю. Так не хватает ещё и Сталина.


    1. SanSeich_78
      09.06.2024 13:36
      +12

      Сталин - он как Google: ты ему слово - он тебе ссылку.


      1. MAXH0
        09.06.2024 13:36
        +1

        Главное, чтобы Гугл не стал как Сталин.


        1. SanSeich_78
          09.06.2024 13:36
          +1

          Есть в лингвистике термин, означающий невозможность убрать/заменить мат, из-за изменения смысла всей фразы //термин, конечно же, я не помню ))

          Так вот: Нам, татарам, всё равно: Что наступать - бежать, что отступать - бежать.


          Мне как-то всё равно, кто меня нагнёт: товарищ из яндекса или господин из гугла. Пока чаще нагибал яндекс и я максимально, ручками, выпиливаю его из своего окружения. А если и использую, то для незначительных дел. Например, регистрация на форумах


          1. MAXH0
            09.06.2024 13:36
            +1

            всё равно, кто меня нагнёт: товарищ из яндекса или господин из гугла.

            Тут просто две палочки Твикс. А альтернативного, но работоспособного поиска не контролируемого крупными корпорациями - НЕТ. Эффект размера. В результате и там и там цензура.


        1. garwall
          09.06.2024 13:36
          +1

          Googlag


          1. MAXH0
            09.06.2024 13:36

            О!!! Прям стоит патентовать слово, насколько оно точно отражает сущность цифрового концлагеря.


  1. excoder
    09.06.2024 13:36
    +2

    Так а как попробовать?


  1. Sly_tom_cat
    09.06.2024 13:36
    +1

    По смыслу получился какой-то допрос с пристрастием. Однако это получилось довольно интересно и довольно связно. Было бы интересно и других видных деятелей там воспроизвести. Разговор старого Брежнева со Сталиным прям так и просится :)


    1. Javian
      09.06.2024 13:36
      +1

      Это надо в звуке.


    1. PereslavlFoto
      09.06.2024 13:36
      +1

      Или хотя бы воспроизвести знаменитую речь генералиссимуса Сталина, в которой он требует перекрасить Мавзолей в белый цвет и расстрелять всё хрущёвское Политбюро.


    1. Volodichev
      09.06.2024 13:36
      +2

      Больше похоже на пустопорожнее сотрясание воздуха в политических пабликах.
      И да, реальный разговор Николая и Ильича был бы похож на допрос. Всё таки Ильич - юрист, и ставил целью осуждение Николая. Жаль, что Николай не дожил до того суда.


  1. jackcrane
    09.06.2024 13:36

    дневники Николая II

    где он ворон стрелял ? фейк, GIGO.


  1. ImagineTables
    09.06.2024 13:36
    +1

    Пришлось идти другим путем

    Вылитый Ильич!


  1. Lizdroz
    09.06.2024 13:36

    Лишь бы в суд не подали)))


  1. NinaNina89
    09.06.2024 13:36
    +1

    Двойник Николая II у нас и так уже есть.


    1. exTvr
      09.06.2024 13:36

      Двойник Николая II

      Мелковат-с.