Курс

Фабрика POV видео (v1.1)

🎥 СОЗДАНИЕ ВИДЕО • Шаблон 1 из 25

Фабрика POV видео (v1.1) Workflow

🎥 СОЗДАНИЕ ВИДЕО • Шаблон 1 из 25

Фабрика POV видео (v1.1)

🔍 Что делает:

Этот шаблон создает вирусные исторические POV видео (от первого лица), которые собирают миллионы просмотров в TikTok, Inst и YouTube Shorts. Он берет каждую идею из Google Таблицы –> генерирует последовательный сюжет "дня из жизни" -> а затем для каждой сцены выполняет конвейер задач: создание изображений, анимация, наложение звуков, монтаж.

💻 Сервисы и интеграции:

Фабрика POV видео (v1.1)

N8N — конструктор

Google Sheets — для хранения идей и сохранения финальных ссылок

Google Drive — для временного хранения аудиофайлов (OAuth2)

Фабрика POV видео (v1.1)

OpenAI — для сценариев и промптов

PiAPI.ai — для изображений Flux, а для видео Kling

ElevenLabs — для генерации звуковых эффектов

Фабрика POV видео (v1.1)

Creatomate — для финального видео-монтажа

YouTube — Для публикации видео

⚙️ Установка и настройка

Фабрика POV видео (v1.1)

Подключаем сервисы Google

Создаём таблицу

Регаемся на PiAPI.AI

Фабрика POV видео (v1.1)

Соединяемся с ElevenLabsё

Настраиваем Creatomate

Финалим таблицу

Фабрика POV видео (v1.1)

Дополнительные детали

1️⃣ Подключаем сервисы Google

Таблицы (Sheets):

Фабрика POV видео (v1.1)

Тут всё слишком просто. Можно даже не комментировать.

Диск (Drive):

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

Фабрика POV видео (v1.1)

Скопируй OAuth Redirect URL –> и зайди на сайт Google Cloude Console.

Там найди Google Drive API –> жми Enable / Manage.

И перейди в Credentials –> чтобы создать новое подключение.

Фабрика POV видео (v1.1)

Нам нужно OAuth 2.0. Тыкни на + Create credentials.

Здёсь всё стандартно.

А в поле ниже воткни URL, скопированный в N8N.

Фабрика POV видео (v1.1)

После нажатия Create –> увидишь это:

Копируем Client ID и Сlient Secret.

И вставляем их в Credential N8N.

Фабрика POV видео (v1.1)

После чего тыкаем Sign in with Google и ставим галочки.

Готово :)

Теперь можно перейти в свой Google Drive и создать отдельную папку для аудиозаписей. После того как сделаешь это, вернись в N8N и выбери её название в узле Upload Mp3.

Фабрика POV видео (v1.1)
  • ✅ С Гуглом почти разобрались.
  • ️⃣ Создаём таблицу

Она нужна для прописывания идей (первый раз для теста мы заполним их вручную, а потом можно подключить на эту задачу отдельного агента) + сохранения итоговых результатов. Перейди в мою таблицу и жми –> Создать копию.

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

Фабрика POV видео (v1.1)

Описание таблицы:

idea - содержит описание POV-сцены.

caption - описание деталей (если нужно).

Фабрика POV видео (v1.1)

enviroment_prompt - задаёт год, место, визуальные детали.

production - статус готовности, чтобы агент помечал видео.

publishing - статус публикации, чтобы проверять залит ли видос.

Фабрика POV видео (v1.1)

final_output - здесь будет ссылка на итоговый результат.

  • ✅ Идём дальше.
  • ️⃣ Регаемся на PiAPI.AI

Что тут есть – можно увидеть на скрине. Сервис даёт бесплатные токены для теста. Когда потребуется оплатить, это можно будет сделать с помощью карты или крипты.

Фабрика POV видео (v1.1)

Я за секунду вошел через GitHub.

А далее –> перешел в Settings –> API Keys.

Придумай название и сделай новый ключ.

Фабрика POV видео (v1.1)

Скопируй его и пошли настраивать узлы в N8N.

Создание изображений:Text to image + Get Image

Начнём отсюда. На данном шаге мы отправляем сгенерированные промты в Kling чтобы он сгенерировал для нас пикчи, которые позже будут анимированы.

Фабрика POV видео (v1.1)

Листаем немного вниз и ищем поле для ключа.

Втыкай его в –> Value.

Здесь повторяем те же действия. Данный шаг получает готовые изображения после паузы (у меня стоит 2 минуты, при желании можно увеличить).

Фабрика POV видео (v1.1)

Ну и готово, получается.

С изображениями разобрались.

Генерация видео: Image to video + Get Video

Фабрика POV видео (v1.1)

На этом шаге мы отправляем запрос в Kling.

Затем пауза. Немного больше, чем на предыдущем шаге, потому что видео генерятся дольше изображений (я оставил 10 мин).

Ну и здесь API ключ не забываем.

Фабрика POV видео (v1.1)
  • ✅ Самое сложное сделали!
  • ️⃣ Соединяемся с ElevenLabs

Этот прекрасный сервис умеет не только озвучивать агентов, но и создавать звуки для наших POV видео. Поэтому мы быстро регаемся, если еще не сделали этого –> получаем бесплатные токены –> и идём в API Keys.

Тут придумываем название нового ключа и копируем его.

Фабрика POV видео (v1.1)

Возвращаемся в N8N и втыкаем ключ в узел –> Text to sound.

В поле Value.

  • ✅ Для звуков всё готово :)
  • ️⃣ Настраиваем Creatomate

Это сервис для автоматизированных склеек. Он не единственный и даже не самый удобный. Кроме того, он требует оплаты тарифа для генерации в хорошем качестве (для теста хватит бесплатной версии).

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

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

Фабрика POV видео (v1.1)

И заходим в Project Settings.

Здесь нас интересует API Key.

Копируем его.

Фабрика POV видео (v1.1)

Возвращаемся в N8N –> открываем узел Render Video. И вставляем ключ вот так: Bearer ключ (между ними пробел).

Узел подключили (ノ◕ヮ◕)ノ*:

Теперь возвращаемся в Creatomate.

Фабрика POV видео (v1.1)

Нам нужно создать шаблон для будущих видео.

Tempates –> + New

Далее жми –> Start from scratch

Фабрика POV видео (v1.1)

И выбери формат 9:16 Vertical (потому что щас всё делаем под него).

Затем –> Create Template.

Теперь нам нужна кнопка {..} в верхнем меню.

Фабрика POV видео (v1.1)

Этот раздел также открывается через F12 на клавиатуре.

Вставь туда этот код:

Он расчитан на 5 отрезков в видео. Тебе этого может быть мало, поэтому в конце я оставлю код для 12 фрагментов. Изучив оба, ты поймешь как настраивать этот дело под свои задачи. Ну или ChatGPT тебе обьснит :)

Фабрика POV видео (v1.1)
{
  "output_format": "mp4",
  "width": 1080,
  "height": 1920,
  "elements": [
{
  "id": "476fbf11-185a-4842-bb54-8fbe5ede8f45",
  "name": "Audio-1",
  "type": "audio",
  "track": 1,
  "time": 0,
  "source": "b61010d4-adcf-4d93-8546-934e5a4b448a",
  "trim_duration": 5,
  "dynamic": true
},
{
  "id": "50d079ac-a1cb-4169-a720-9148d05845f1",
  "name": "Audio-2",
  "type": "audio",
  "track": 1,
  "time": 5,
  "source": "0109fa02-239b-4baa-ab5c-1e0445276cb7",
  "trim_duration": 5,
  "dynamic": true
},
{
  "id": "78edca64-24af-47f3-9496-a3d03afa4038",
  "name": "Audio-3",
  "type": "audio",
  "track": 1,
  "time": 10,
  "source": "8e323742-21f3-437d-a163-01a05154b216",
  "trim_duration": 5,
  "dynamic": true
},
{
  "id": "97b1258a-a398-4824-afaf-c87ae87048f4",
  "name": "Audio-4",
  "type": "audio",
  "track": 1,
  "time": 15,
  "source": "458c2f63-6abf-4058-8f99-3d11efdf3ce5",
  "trim_duration": 5,
  "dynamic": true
},
{
  "id": "2a6b8dcf-2b2d-4739-9389-2fd4edee02d1",
  "name": "Audio-5",
  "type": "audio",
  "track": 1,
  "time": 20,
  "source": "38eeb087-d6a5-41ae-b3d8-67ae8345ab85",
  "trim_duration": 5,
  "dynamic": true
},
{
  "id": "db018ee8-4530-4cc4-9fb4-4cc034a7985f",
  "name": "Video-1",
  "type": "video",
  "track": 2,
  "time": 0,
  "duration": 5,
  "source": "4d90054a-61a7-4d8e-8fcf-a0418e473cca",
  "clip": true,
  "dynamic": true
},
{
  "id": "07c6aa87-c882-4307-a49d-0fad9507fc80",
  "name": "Video-2",
  "type": "video",
  "track": 2,
  "time": 5,
  "duration": 5,
  "source": "4d90054a-61a7-4d8e-8fcf-a0418e473cca",
  "clip": true,
  "dynamic": true
},
{
  "id": "f4526c6e-fe95-4bb9-99d3-284faaea3832",
  "name": "Video-3",
  "type": "video",
  "track": 2,
  "time": 10,
  "duration": 5,
  "source": "4d90054a-61a7-4d8e-8fcf-a0418e473cca",
  "clip": true,
  "dynamic": true
},
{
  "id": "5153165c-8630-4488-a1e0-5afdfbec6225",
  "name": "Video-4",
  "type": "video",
  "track": 2,
  "time": 15,
  "duration": 5,
  "source": "4d90054a-61a7-4d8e-8fcf-a0418e473cca",
  "clip": true,
  "dynamic": true
},
{
  "id": "28c2600a-f255-4d1c-aab7-c02801ae5d4f",
  "name": "Video-5",
  "type": "video",
  "track": 2,
  "time": 20,
  "duration": 5,
  "source": "4d90054a-61a7-4d8e-8fcf-a0418e473cca",
  "clip": true,
  "dynamic": true
},
{
  "id": "04bb636f-0b96-4a0f-9125-d662eb7204bd",
  "name": "Text-1",
  "type": "text",
  "track": 3,
  "time": 0,
  "duration": 5,
  "x": "2.7527%",
  "y": "17.1734%",
  "width": "94.4945%",
  "height": "7.8841%",
  "x_anchor": "0%",
  "y_anchor": "0%",
  "x_alignment": "50%",
  "y_alignment": "50%",
  "text": "Lifting a heavy tapestry to reveal sunlight streaming in",
  "font_family": "Oswald",
  "font_weight": "700",
  "font_size": "7 vmin",
  "background_color": "#1d1d1d",
  "fill_color": "#ffffff",
  "animations": [
    {
      "time": 0,
      "duration": 1,
      "easing": "quadratic-out",
      "type": "text-appear",
      "split": "letter"
    },
    {
      "time": "end",
      "duration": 1,
      "easing": "quadratic-out",
      "reversed": true,
      "type": "text-appear",
      "split": "letter"
    }
  ]
},
{
  "id": "04bb636f-0b96-4a0f-9125-d662eb7204bd",
  "name": "Text-2",
  "type": "text",
  "track": 3,
  "time": 5,
  "duration": 5,
  "x": "2.7527%",
  "y": "17.1734%",
  "width": "94.4945%",
  "height": "7.8841%",
  "x_anchor": "0%",
  "y_anchor": "0%",
  "x_alignment": "50%",
  "y_alignment": "50%",
  "text": "Lifting a heavy tapestry to reveal sunlight streaming in",
  "font_family": "Oswald",
  "font_weight": "700",
  "font_size": "7 vmin",
  "background_color": "#1d1d1d",
  "fill_color": "#ffffff",
  "animations": [
    {
      "time": 0,
      "duration": 1,
      "easing": "quadratic-out",
      "type": "text-appear",
      "split": "letter"
    },
    {
      "time": "end",
      "duration": 1,
      "easing": "quadratic-out",
      "reversed": true,
      "type": "text-appear",
      "split": "letter"
    }
  ]
},
 {
  "id": "04bb636f-0b96-4a0f-9125-d662eb7204bd",
  "name": "Text-3",
  "type": "text",
  "track": 3,
  "time": 10,
  "duration": 5,
  "x": "2.7527%",
  "y": "17.1734%",
  "width": "94.4945%",
  "height": "7.8841%",
  "x_anchor": "0%",
  "y_anchor": "0%",
  "x_alignment": "50%",
  "y_alignment": "50%",
  "text": "Lifting a heavy tapestry to reveal sunlight streaming in",
  "font_family": "Oswald",
  "font_weight": "700",
  "font_size": "7 vmin",
  "background_color": "#1d1d1d",
  "fill_color": "#ffffff",
  "animations": [
    {
      "time": 0,
      "duration": 1,
      "easing": "quadratic-out",
      "type": "text-appear",
      "split": "letter"
    },
    {
      "time": "end",
      "duration": 1,
      "easing": "quadratic-out",
      "reversed": true,
      "type": "text-appear",
      "split": "letter"
    }
  ]
},
{
  "id": "04bb636f-0b96-4a0f-9125-d662eb7204bd",
  "name": "Text-4",
  "type": "text",
  "track": 3,
  "time": 15,
  "duration": 5,
  "x": "2.7527%",
  "y": "17.1734%",
  "width": "94.4945%",
  "height": "7.8841%",
  "x_anchor": "0%",
  "y_anchor": "0%",
  "x_alignment": "50%",
  "y_alignment": "50%",
  "text": "Lifting a heavy tapestry to reveal sunlight streaming in",
  "font_family": "Oswald",
  "font_weight": "700",
  "font_size": "7 vmin",
  "background_color": "#1d1d1d",
  "fill_color": "#ffffff",
  "animations": [
    {
      "time": 0,
      "duration": 1,
      "easing": "quadratic-out",
      "type": "text-appear",
      "split": "letter"
    },
    {
      "time": "end",
      "duration": 1,
      "easing": "quadratic-out",
      "reversed": true,
      "type": "text-appear",
      "split": "letter"
    }
  ]
},
{
  "id": "04bb636f-0b96-4a0f-9125-d662eb7204bd",
  "name": "Text-5",
  "type": "text",
  "track": 3,
  "time": 20,
  "duration": 5,
  "x": "2.7527%",
  "y": "17.1734%",
  "width": "94.4945%",
  "height": "7.8841%",
  "x_anchor": "0%",
  "y_anchor": "0%",
  "x_alignment": "50%",
  "y_alignment": "50%",
  "text": "Lifting a heavy tapestry to reveal sunlight streaming in",
  "font_family": "Oswald",
  "font_weight": "700",
  "font_size": "7 vmin",
  "background_color": "#1d1d1d",
  "fill_color": "#ffffff",
  "animations": [
    {
      "time": 0,
      "duration": 1,
      "easing": "quadratic-out",
      "type": "text-appear",
      "split": "letter"
    },
    {
      "time": "end",
      "duration": 1,
      "easing": "quadratic-out",
      "reversed": true,
      "type": "text-appear",
      "split": "letter"
    }
  ]
}
  ]
}

Получится так:

Фабрика POV видео (v1.1)

Теперь жми Use Template в правом верхнем углу.

И выбери в меню API Integration.

Тут нам нужно скопировать "template_id".

Фабрика POV видео (v1.1)

Возвращаемся в N8N –> в узел Render Video.

И вставляем скопированный ID в Body (я выделил на скрине).

⚠️ ВАЖНО: если будешь увеличивать количество отрезков, то нужно обновлять не только код в Cratomate, но и в узле Render Video. Ниже я дам код для 12 отрезков.

Фабрика POV видео (v1.1)
  • ✅ С "монтажом" разобрались.
  • ️⃣ Финалим таблицу

После того, как все сгенерируется, агент должен обновить таблицу. Для этого открываем узел Update google sheet. И проверяем чтобы тут у нас.

id (using to match) –> втыкается АйДи из таблицы (по сути это просто цифра, которой помечен номер идеи). Это нужно чтобы обновить поля.

Фабрика POV видео (v1.1)

production –> проставляется Done

publishing –> проставляется Ready

  • Я сам щас прогнал шаблон
  • ✅ и вижу, что мы всё настроили!

Таблица обновилась и я уже поставил оценку полученному видео.

7️⃣ Дополнительные детали

Быстро о том, что не затронул выше:

Фабрика POV видео (v1.1)

А. Генерация идей

Данный узел переделывает идеи из нашей таблицы в сцены.

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

Фабрика POV видео (v1.1)

Item List Otput Parser отвечает за количество отрезков в будущих видео. Если поставить 5 –> значит идея превратится в последовательный сценарий из 5 частей.

⚠️ ВАЖНО: чтобы у тебя при тестировании не сожрались все токены за несколько минут, в шаблоне по умолчанию стоит 2 Number Of Items.

Б. Генерация звуков

Фабрика POV видео (v1.1)

Здесь название отрезков передается в 11Labs для озвучки.

Описание для инструмента выглядит так:

Это HTTP запрос к сервису (грубо говоря, мы отправляем в 11Labs письмо со словами: "вот такой вот звук сделай мне и потом получаем ответ".) В N8N не всегда есть нужные нам ноды/узлы, а таким образом можно позволить себе намнооого больше.

Фабрика POV видео (v1.1)

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

В. Публикация результата

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

Фабрика POV видео (v1.1)

▶️ Можно тестировать Инструкция для тестового запуска:

Подготовь данные в таблице Убедись, что в Google Таблице есть строка с полями idea, enviroment_prompt, production = for production.

Запусти workflow вручную Нажми "Test workflow" в N8N.

Проверь узел Titles и идеи (сценарист) Убедись, что он возвращает короткие сцены в text.

Проверь узел OpenAI (промтовик) На выходе должен быть один англоязычный prompt в message.content, соответствующий сцене.

Проверь Text to image Убедись, что используется правильный prompt и что image_url получен после Get Image. Работоспособность модельки можно также проверить на сайте PiAPI в разделе Task History.

Проверь Image to video Проверь, что prompt и image_url передаются правильно. Убедись, что видео сгенерировано. При наличии ошибок дополнительно проверь Task History.

Проверь Text to sound Убедись, что звук сгенерирован по соответствующему promptу и что получен mp3-файл.

Проверь Merge1 и Code1 Убедись, что все массивы (text, video, sound) одной длины и в правильном порядке. Если они группируются вместе без ошибок – значит все четко.

Проверь Render Video Убедись, что scene_titles, video_urls, sound_urls подставляются правильно.

Проверь результат Открой ссылку final_output из таблицы и убедись, что в видео: - сцена соответствует описанию - есть звук - есть надпись

УРА!!!!

Ты только что запустил автоматизацию для создания (исторических POV) видео от канала ИИздец. Она берёт идеи из таблицы, превращает их в сценарии, создает по ним изображения, анимирует их, добавляет звуки и склеивает вместе.

🚨 Частые вопросы

❓ Что делать при ошибках?

➡️ Использовать ChatGPT:

В подписке на ChatGPT за $20 и $200 есть модельки, которые хорошо справляются с подобными задачами (на апрель 2025 это 4о).

Отправь ей JSON файл. Затем четко сформулируй свой вопрос и прикрепи скриншот / скопируй описание ошибки (N8N всегда справа присылает output с результатом и если че-т не работает, там почти всегда написано почему).

Чем больше вводных, тем лучше. Но не забывай про ограничения контекста моделки, с которой ты общаешься. Спустя какое-то время после начала диалога, общение будет становиться менее эффективным. Тогда можно будет начать новый диалог, заново объяснить происходящее, сформулировать новые вопросы и продолжить.

❓ Как изменить стиль видео?

➡️ Главный инструмент – это промты, а именно:

Идеи в Google Таблице и описание деталей.

Системный промт агента сценариста.

Инструкция для агента промтовика.

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

❓ Можно ли изменить количество сцен?

➡️ Да, для этого нужно:

В узле Item List Output Parser измени цифру Number Of Items.

В узле Code (List Elements) измени код JavaScript, чтобы он обрабатывал нужное количество элементов (щас прописано под 5).

Адаптируй свой шаблон в Creatomate под новое количество сцен.

Код для узла Render Video (12 узлов): { "template_id": "5aafffa3-6adc-4a2f-90dc-c91a80d2136a", "modifications": { "Audio-1.source": "{{ $json.sound_urls[0] }}", "Audio-2.source": "{{ $json.sound_urls[1] }}", "Audio-3.source": "{{ $json.sound_urls[2] }}", "Audio-4.source": "{{ $json.sound_urls[3] }}", "Audio-5.source": "{{ $json.sound_urls[4] }}", "Audio-6.source": "{{ $json.sound_urls[5] }}", "Audio-7.source": "{{ $json.sound_urls[6] }}", "Audio-8.source": "{{ $json.sound_urls[7] }}", "Audio-9.source": "{{ $json.sound_urls[8] }}", "Audio-10.source": "{{ $json.sound_urls[9] }}", "Audio-11.source": "{{ $json.sound_urls[10] }}", "Audio-12.source": "{{ $json.sound_urls[11] }}",

"Video-1.source": "{{ $json.video_urls[0] }}",
"Video-2.source": "{{ $json.video_urls[1] }}",
"Video-3.source": "{{ $json.video_urls[2] }}",
"Video-4.source": "{{ $json.video_urls[3] }}",
"Video-5.source": "{{ $json.video_urls[4] }}",
"Video-6.source": "{{ $json.video_urls[5] }}",
"Video-7.source": "{{ $json.video_urls[6] }}",
"Video-8.source": "{{ $json.video_urls[7] }}",
"Video-9.source": "{{ $json.video_urls[8] }}",
"Video-10.source": "{{ $json.video_urls[9] }}",
"Video-11.source": "{{ $json.video_urls[10] }}",
"Video-12.source": "{{ $json.video_urls[11] }}",
"Text-1.text": "{{ $json.scene_titles[0] }}",
"Text-2.text": "{{ $json.scene_titles[1] }}",
"Text-3.text": "{{ $json.scene_titles[2] }}",
"Text-4.text": "{{ $json.scene_titles[3] }}",
"Text-5.text": "{{ $json.scene_titles[4] }}",
"Text-6.text": "{{ $json.scene_titles[5] }}",
"Text-7.text": "{{ $json.scene_titles[6] }}",
"Text-8.text": "{{ $json.scene_titles[7] }}",
"Text-9.text": "{{ $json.scene_titles[8] }}",
"Text-10.text": "{{ $json.scene_titles[9] }}",
"Text-11.text": "{{ $json.scene_titles[10] }}",
"Text-12.text": "{{ $json.scene_titles[11] }}"
  }
}

НАЗАД К УРОКАМ

Философия работы с агентом