Автоматическая генерация комиксов с озвучкой через GPT-4

от автора

Мультимодальный telegram-бот, который я недавно сделал, получил оглушительный успех ? Я был удивлен, сколько людей воспользовались им и форкнули/лайкнули на гитхабе. Но захотелось чего-то большего.

Я решил создать сервис, где люди могут создавать свои собственные комиксы, сказки, да и вообще любые истории. Желательно одним нажатием кнопки.

Моя идея заключалась в том, чтобы создать программу, которая бы могла генерировать истории на основе небольшого числа параметров. Это был язык, затравка для генерации текста, визуальный сеттинг, и т.д. Я знал, что для этого мне нужно использовать GPT-4, какое то API для картинок, переводчик, и синтезатор речи. После быстрой проверки, оказалось что все это доступно и не так уж дорого!

В голове родилась следующая картинка:

Прототип UI

Прототип UI

На реализацию ушло чуть меньше двух недель. Но прошу не судить слишком строго — ведь я в одном лице разработчик backenda, frontenda, devops-инженер, дизайнер, product manager и маркетолог. И еще кое-кто.

Некоторые технические моменты опишу ниже.

Картинки

Решил использовать старый добрый Stable Diffusion, ведь он дешевый (даже опенсорсный, но я использую API) и довольно неплохо рисует, а MidJourney все равно закрыт.

Генерирую изображение, соответствующее описанию каждого шага сцены. Кроме того, я добавил различные визуальные стили и сеттинг, чтобы сделать изображения более привлекательными и соответствующими контексту сцены. Например, я использовал стилизацию изображений в стиле Star Wars, Disney, Marvel и т.д. Все это на выбор пользователя.

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

Недавно в одном сообществе подбросили почти гениальную идею — не создавать картинки, а гуглить их на Google Pictures. Это бесплатно, быстро, и в некоторых случаях даже лучше работает, например для новостей. Определенно реализую.

Звук

Когда я только начал работать над проектом, я столкнулся с проблемой – как сделать так, чтобы пользователи могли не только читать, но и слушать созданные истории?

И тут мне пришла в голову идея озвучивать кусочки текста через Google Text-to-Speech. Он позволяет создавать реалистичное голосовое сопровождение на разных языках и с различными голосами.

Нужно лишь разбить текст, сгенерированный GPT-4 на абзацы, и отправить каждый абзац на озвучивание. Таким образом, пользователи могут читать историю и одновременно слушать ее озвученную версию. Это делает процесс чтения более интересным и увлекательным, а также помогает людям, которые предпочитают слушать текст, а не читать его.

Видео

Самым сложным оказалась сборка истории через videoshow.js.

Для создания видео я создал объекты, которые будут содержать информацию о каждом кадре видео. Для этого я использовал примерно такой код:

const videoOptions = {   fps: 25,   loop: 5,   transition: true,   transitionDuration: 1,   videoBitrate: 1024,   videoCodec: "libx264",   size: "640x?",   audioBitrate: "128k",   audioChannels: 2,   format: "mp4",   pixelFormat: "yuv420p", };  const imageDescriptions = [   { path: "path/to/image1.jpg", caption: "Caption 1" },   { path: "path/to/image2.jpg", caption: "Caption 2" },   { path: "path/to/image3.jpg", caption: "Caption 3" }, ];  const audio = "path/to/combined/audio.mp3"; 

В этом коде я определил параметры видео, такие как частота кадров, длительность цикла, битрейт видео и аудио, а также размер видео и формат файла. Также создается массив объектов, каждый из которых содержит путь к картинке и ее описание, а также путь к одному большому аудио файлу.

Далее я создал массив объектов, каждый из которых будет представлять собой кадр видео:

const frames = [];  for (let i = 0; i < imageDescriptions.length; i++) {   const image = imageDescriptions[i];    const frame = {     path: image.path,     caption: image.caption,     loop: 5,   };    frames.push(frame); } 

В этом коде я прохожу по каждой картинке и создаю объект кадра, который содержит путь к картинке, ее описание и длительность кадра.

Наконец, собирается видео, используя созданные ранее объекты:

videoshow(frames, videoOptions)   .audio(audio)   .save("path/to/output.mp4")   .on("start", function (command) {     console.log("ffmpeg process started:", command);   })   .on("error", function (err, stdout, stderr) {     console.error("Error:", err);   })   .on("end", function (output) {     console.log("Video created in:", output);   }); 

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

Глобализация

Генератор историй не привязан к языку, является полностью глобальным. На самом деле, на любом языке из списка Google Text-2-Speech.

Так что в моих планах запуск в том числе и на американский рынок, ProductHunt, Y Combinator и все такое ? Буду рад любой поддержке в этом направлении.

Философские вопросы

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

Но я решил сначала сделать, а потом уже думать об этом ?

Будет ли автоматический контент достаточно высокого качества?

Сегодня существуют алгоритмы, которые способны создавать достаточно качественный тексты, звук, изображения. Однако, пока что они не могут заменить творческий потенциал человека и создать нечто совершенно новое и оригинальное.

Функция редактирования истории может помочь в том чтобы сделать контент более качественным и интересным. Редактирование позволяет улучшить и доработать отдельные слайды, исправить ошибки, добавить новые элементы, расставить ударения наконец. Кроме того, редактор всегда может внести свой творческий вклад.

А что думаете вы? Интересный ли проект? Стали бы пользоваться? Какие способы монетизации посоветуете?

UPD: ознакомиться с проектом можно по этой ссылке

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Что вам больше всего не нравится в сгенерированном контенте?

26.67% Текст4
40% Графика6
33.33% Звук5

Проголосовали 15 пользователей. Воздержались 10 пользователей.

ссылка на оригинал статьи https://habr.com/ru/articles/723290/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *