Ещё не успело ИИ-сообщество оправится от набега ЛЛаМ и высвобождения GPT-4, подоспела новая напасть — 19го марта была выпущена китайская нейросеть ModelScope text2video от Alibaba, создающая короткие видеоролики по текстовому описанию.

Галерея примеров
Галерея примеров

Каковы её предшественники?

Видеоролики создаются подобно Imagen, Phenaki и Make-a-Video. Берётся существующая архитектура text2image модели (например, диффузионного типа), которая строит 2-мерные картинки по описанию, и переделывается в модель, строящую 2+1 мерные картинки, где новое измерение отвечает за связанность во времени. Модель от Alibaba не первая опенсорсная text2video модель, до этого такой была CogVideo (опять же, от китайцев).

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

В чём ключевое отличие этой модели?

В её минималистичности. Тогда как CogVideo требовала для запуска как минимум A100 с 40 гб видеопамяти, эту модель можно вполне себе комфортно запустить с 12 гб видеопамяти, с 6-8 чуть менее комфортно, но терпимо. Хотя энтузиасты уже умудрились уместить её всего лишь в 4 гб.

Ролик длительностью в 24 кадра и разрешением 192x192, созданный на видеокарте с 4 гб видеопамяти. Вспоминается та хабр-статья "4.2 гигабайта или как нарисовать всё, что угодно", но только теперь применимо к видео
Ролик длительностью в 24 кадра и разрешением 192x192, созданный на видеокарте с 4 гб видеопамяти. Вспоминается та хабр-статья "4.2 гигабайта или как нарисовать всё, что угодно", но только теперь применимо к видео

Как же эта модель устроена изнутри?

Как и описано выше, модель в своей основе полагается на латентные диффузионные модели, а конкретно, Stable Diffusion. В начале текст запроса при помощи предобученной нейросети OpenCLIP кодируется в вектор, отвечающий за его визуальные особенности; видеозапись сжимается и переводится в латентное пространство сетью VQGAN. Далее, в то время, пока идёт процесс обучения, к видеозаписи сначала последовательно подбирается такой шум, который полностью её сотрёт в нормальное распределение цветов пикселей (Гауссова диффузия), а затем подбирается 'контр-шум', чтобы её восстановить. Не буду здесь вдаваться в детали, о том, как работают диффузионные модели, на Хабре можно прочитать, например, здесь https://habr.com/ru/post/713076/. Тем не менее, у этой модели процесс шумоподавления модифицирован: вводится зависимость для шума, прилагаемого к одному из кадров, от состояния остальных кадров видео. По окончании процесса видео возвращается до исходного разрешения при помощи VQGAN.

Иллюстрация процесса сэмплирования
Иллюстрация процесса сэмплирования

Как её запустить?

Сами разработчики представили веса и демо своей модели на сайте Huggingface и ноутбук Google Colab. Кроме того, благодаря тому, что эта модель лишь слегка модифицированный Unet (Unet2d->Unet3d), в течении дня после выпуска статьи и первых твитов появился плагин для StableDiffusion WebUI от AUTOMATIC1111. Давайте им и воспользуемся.

Шаг 1.

Загружаем веса с официального репозитория https://huggingface.co/damo-vilab/modelscope-damo-text-to-video-synthesis. Не забудьте удостовериться, что Вы загрузили configuration.json в его текстовой форме через кнопку raw, а не его html-страницу. Помещаем их в папку 'stable-diffusion-webui/models/ModelScope/t2v'.

Модели на странице репозитория
Модели на странице репозитория

Шаг 2.

Загружаем StableDiffusion WebUI, если он у Вас ещё не установлен https://github.com/AUTOMATIC1111/stable-diffusion-webui, в нём проходим во вкладку Extensions и выбираем в списке ModelScope text2video.

Шаг 3.

Вводим текстовый запрос (здесь tiny cute green monster and the big flying UFO, чтобы соответсвтовать духу Хабра) и устанавливаем параметры генерации, нажимаем Generate. Ждём какое-то время (пока в командной строке не заполнится прогрессбар и не выведится зелёная надпись done)

Интерфейс плагина
Интерфейс плагина
Вывод командной строки
Вывод командной строки

Нажимаем на кнопку 'Click here....' и радуемся результатом.

Вот наш пришелец в формате mp4, осталось только на него нажать (и сконвертировать в gif, чтобы вставить в хабр, аргх)
Вот наш пришелец в формате mp4, осталось только на него нажать (и сконвертировать в gif, чтобы вставить в хабр, аргх)
Хабр-НЛО в представлении видео-нейросети!
Хабр-НЛО в представлении видео-нейросети!

Такие дела. Нас ждут безграничные видеомемы!

Напоследок

Видеомемы уже начались, например, на Реддите с помощью этой программы люди сделали нейросетевой ситком с Джо Байденом и Дональдом Трампом, где сценарий писала ChatGPT-4 https://www.reddit.com/r/StableDiffusion/comments/11xzh08/presenting_joe_and_the_don_100_ai_generated_sitcom/

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


  1. onyxmaster
    00.00.0000 00:00

    Интересно, водяные знаки shutterstock это потому что её обучали на стоковых фото? =)


    1. kabachuha Автор
      00.00.0000 00:00
      +2

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

      Если я правильно помню, в своей статье авторы упоминали датасет от LAION, а также Webvid. Shutterstock, скорее всего, попал в Лайоновский, так как уже был казус со Stable Diffusion-ом, выдающим ватермарки Шаттерстока и Getty Images (последние даже собирались с ними судиться). А парсить Ютуб для исследователей, как мне кажется, было бы ещё более сомнительной практикой


      1. onyxmaster
        00.00.0000 00:00

        Спасибо за разъяснение.


    1. eliseisSmiRnov2
      00.00.0000 00:00

      точно подмечено))


  1. usernotfound_yet
    00.00.0000 00:00
    -1

    пользуюсь Easy Diffusion, которая, что очевидно, в ModelScope text2video не смогла. Просто не определяет ни папку, ни все остальное.

    Пришлось "поставить" StableDiffusion WebUI, который, как это не удивительно, даже не смог стартануть вообще.

    Все по мануалу: питон и ГИТ поставлены со всеми нужными галочками. При команде "git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git" с Гитхабоского мануала просто ругается "не знаю никаких гитов", батники всяческих "вэб-уи" в строгом анабиозе (Couldn't launch python. exit code: 9009). При запуске питоносвкого скрипта launch стартует, подгружает 2 гига чего-то там и досвидосики.

    Работает железно, подумаешь не запускается(С)


    1. Zrgk
      00.00.0000 00:00

      не знаю никаких гитов

      Так у вас вообще git в системе не стоит? Начните с того чтобы поставить его


      1. kabachuha Автор
        00.00.0000 00:00

        Или же он стоит, но не добавлен в PATH (см. переменные среды в Windows), как, вероятно, и питон