AI Content Generator - n8n автоматизация создания ASMR видео

AI Content Generator - n8n автоматизация создания ASMR видео

Необходимые API ключи и настройки

Основные сервисы:

  1. OpenAI API ключ - для генерации идей и сценариев (2 модели) https://platform.openai.com/docs/overview 
  2. Fal.ai API ключ - для доступа к seedance, MMAudio-v2, FFmpeg API https://fal.ai/dashboard/keys 
  3. Google Sheets OAuth2 - для сохранения промежуточных данных и результатов

Структура Google Sheets:

Создайте таблицу с колонками:

  • Идея - краткое описание действия (ключевое поле для update)
  • Заголовок - вирусный заголовок с хештегами
  • Окружение - описание среды съемки
  • Звук - описание ASMR звуков
  • Статус - статус производства
  • Результат - URL готового видео

Настройка Fal.ai:

В одном API ключе доступны все необходимые модели:

  • ByteDance/Seedance - для генерации видео
  • MMAudio-v2 - для создания ASMR звуков
  • FFmpeg API - для монтажа и композитинга

Особенности работы

Асинхронная обработка:

  • Генерация видео: 4 минуты ожидания (сложные ASMR сцены)
  • Создание аудио: 1 минута ожидания (синхронизация с видео)
  • Монтаж: 1 минута ожидания (композитинг и кодирование)

Качество контента:

  • Детальные промпты: 1000-2000 символов на сцену
  • Кинематографическая съемка: макро-детали, профессиональное освещение
  • ASMR фокус: акцент на тактильных и звуковых ощущениях
  • Вирусный потенциал: трендовые хештеги и эмоциональные заголовки

Структурированность:

  • 3-6 сцен на видео в зависимости от сложности
  • 30 секунд общая длительность (10 сек на сцену)
  • Логическая прогрессия: от начала резки до финального результата

Отслеживание процесса:

  • Все этапы логируются в Google Sheets
  • Можно отследить идею, заголовок и готовое видео
  • История всех созданных ASMR роликов

Описание процесса

Данная автоматизация представляет собой полноценную фабрику по созданию вирусного ASMR контента. Система автоматически генерирует идеи для видео о резке различных материалов острым ножом, создает детальные сценарии из 3-6 сцен, генерирует видео через AI модели ByteDance - seedance, добавляет соответствующие ASMR звуки и монтирует финальное видео длительностью 30 секунд.

Детальная архитектура автоматизации

ЭТАП 1: ЗАПУСК И ГЕНЕРАЦИЯ ИДЕИ

1.1 Ручной запуск - When clicking 'Test workflow' (Замените под свои задачи)

Назначение: Точка входа для запуска производства контента

Настройки:

  • Type: Manual Trigger
  • Назначение: Запускает весь конвейер создания ASMR видео

1.2 Генерация идеи - AI Agent

Назначение: AI создает вирусную идею для ASMR видео о резке материалов

Подключенные компоненты:

  • OpenAI Chat Model1 (gpt-4o-mini)
  • Parser (Structured Output Parser)
  • Think (инструмент для самопроверки)

Основной промпт:

Give me an idea about

[[

a random hard material or element being sliced with a sharp knife - have your idea be in this format: "(color) (material) shaped like a (random object)". Examples for your inspiration: glass shaped like a strawberry, crystal shaped like a bear, dry ice shaped like a snowflake, diamond shaped like a hat, etc. 

]]

Use the Think tool to review your output

Системный промпт:

Role: You are an AI designed to generate 1 immersive, realistic idea based on a user-provided topic. Your output must be formatted as a JSON array (single line) and follow all the rules below exactly.

RULES:

Only return 1 idea at a time.

The user will provide a key topic (e.g. "glass cutting ASMR," "wood carving sounds," "satisfying rock splits").

The Idea must:

- Be under 13 words.

- Describe an interesting and viral-worthy moment, action, or event related to the provided topic.

- Can be as surreal as you can get, doesn't have to be real-world!

The Caption must be:

- Short, punchy, and viral-friendly.

- Include one relevant emoji.

- Include exactly 12 hashtags in this order:

  ** 4 topic-relevant hashtags

  ** 4 all-time most popular hashtags

  ** 4 currently trending hashtags (based on live research)

- All hashtags must be lowercase.

- Set Status to "for production" (always).

The Environment must:

- Be under 20 words.

- Match the action in the Idea exactly.

- Clearly describe:

  Where the event is happening (e.g. clean studio table, rough natural terrain, laboratory bench)

  Key visuals or background details (e.g. dust particles, polished surface, subtle light reflections)

  Style of scene (e.g. macro close-up, cinematic slow-motion, minimalist, abstract)

- Ok with fictional settings.

The Sound must:

- Be under 15 words.

- Describe the primary sound that makes sense to happen in the video. This will be fed to a sound model later on.

OUTPUT FORMAT (single-line JSON array):

[

  {

    "Caption": "Short viral title with emoji #4_topic_hashtags #4_all_time_popular_hashtags #4_trending_hashtags",

    "Idea": "Short idea under 13 words",

    "Environment": "Brief vivid setting under 20 words matching the action",

    "Sound": "Primary sound description under 15 words",

    "Status": "for production"

  }

]

Structured Output Parser Schema "Parser":

[

  {

    "Caption": "Diver Removes Nets Off Whale 🐋 #whalerescue #marinelife #oceanrescue #seahelpers #love #nature #instagood #explore #viral #savenature #oceanguardians #cleanoceans",

    "Idea": "Diver carefully cuts tangled net from distressed whale in open sea",

    "Environment": "Open ocean, sunlight beams through water, diver and whale, cinematic realism",

    "Sound": "Primary sound description under 15 words",

    "Status": "for production"

  }

]

ЧТО ТАКОЕ Structured Output Parser Schema: Это инструмент, который заставляет AI возвращать данные в точно определенном JSON формате массива. Без него AI мог бы вернуть объект или текст в любом виде.

ЗАЧЕМ ЭТО НУЖНО ЗДЕСЬ:

  1. Гарантирует получение всех 5 полей: Caption, Idea, Environment, Sound, Status
  2. Обеспечивает формат массива для совместимости с Google Sheets
  3. Позволяет обращаться к данным через $json.output[0].Idea
  4. Исключает ошибки парсинга при передаче данных дальше

КАК ЭТО РАБОТАЕТ:

  • AI получает схему и обязан вернуть JSON массив с объектом внутри
  • Каждое поле имеет строгие ограничения по длине и содержанию
  • Следующие ноды могут точно извлечь нужные данные

Think Tool: Специальный инструмент для самопроверки AI, который позволяет модели проанализировать свой ответ перед выводом.

ЭТАП 2: СОХРАНЕНИЕ ИДЕИ

2.1 Сохранение в таблицу - Записываем идею

Назначение: Сохраняет сгенерированную идею в Google Sheets для отслеживания

Google Sheets настройки:

  • Operation: Append
  • Document ID: 19-XvsvMGqB_6OAggh-Pv3OTmj_M5m9EDLvkw-cd_zJ4
  • Sheet Name: Лист1
  • Columns Mapping:
    • Идея: {{ $json.output[0].Idea }}
    • Заголовок: {{ $json.output[0].Caption }}
    • Окружение: {{ $json.output[0].Environment }}
    • Звук: {{ $json.output[0].Sound }}
    • Статус: {{ $json.output[0].Status }}

Структура таблицы:

Идея

Заголовок

Окружение

Звук

Статус

Результат

[AI идея]

[Caption + хештеги]

[Описание среды]

[ASMR звук]

for production

[пусто]

ЭТАП 3: СОЗДАНИЕ ДЕТАЛЬНЫХ СЦЕНАРИЕВ

3.1 Генерация сценариев - AI Agent1

Назначение: AI создает 3-6 детальных сцен для видео на основе идеи

Подключенные компоненты:

  • OpenAI Chat Model (gpt-4o-mini)
  • Parser2 (Structured Output Parser)

Основной промпт:

Give me 3 video scenes prompts based on the idea

Системный промпт:

Role: You are a prompt-generation AI specializing in cinematic, ASMR-style video prompts. Your task is to generate a multi-scene video sequence that vividly shows a sharp knife actively cutting through a specific object in a clean, high-detail setting.

Your writing must follow this style:

- Sharp, precise cinematic realism.

- Macro-level detail with tight focus on the blade interacting with the object.

- The knife must always be in motion – slicing, splitting, or gliding through the material. Never idle or static.

- Camera terms are allowed (e.g. macro view, tight angle, over-the-blade shot).

Each scene must contain all of the following, expressed through detailed visual language:

- The main object or subject (from the Idea)

- The cutting environment or surface (from the Environment)

- The texture, structure, and behavior of the material as it's being cut

- A visible, sharp blade actively cutting

Descriptions should show:

- The physical makeup of the material - is it translucent, brittle, dense, reflective, granular, fibrous, layered, or fluid-filled?

- How the material responds to the blade - resistance, cracking, tearing, smooth separation, tension, vibration.

- The interaction between the blade and the surface - light reflection, buildup of particles, contact points, residue or dust.

- Any ASMR-relevant sensory cues like particle release, shimmer, or subtle movement, but always shown visually - not narrated.

Tone:

- Clean, clinical, visual.

- No poetic metaphors, emotion, or storytelling.

- Avoid fantasy or surreal imagery.

- All description must feel physically grounded and logically accurate.

Length:

- Each scene must be between 1,000 and 2,000 characters.

- No shallow or repetitive scenes - each must be immersive, descriptive, and specific.

- Each scene should explore a distinct phase of the cutting process, a different camera perspective, or a new behavior of the material under the blade.

Inputs:

Idea: "{{ $json['Идея'] }}"

Environment: "{{ $json['Окружение'] }}" 

Sound: "{{ $json['Звук'] }}"

Format:

Idea: "..."

Environment: "..."

Sound: "..."

Scene 1: "..."

Scene 2: "..."

Scene 3: "..."

Scene 4: "..."

Scene 5: "..."

Scene 6: "..."

Structured Output Parser Schema "Parser2":

{

  "Idea": "An obsidian rock being sliced with a shimmering knife",

  "Environment": "Clean studio table, subtle light reflections",

  "Sound": "Crisp slicing, deep grinding, and delicate crumbling",

  "Scene 1": "Extreme macro shot: a razor-sharp, polished knife blade presses into the dark, granular surface of an obsidian rock, just beginning to indent.",

  "Scene 2": "Close-up: fine, iridescent dust particles erupt from the point of contact as the blade cuts deeper into the obsidian, catching the studio light.",

  "Scene 3": "Mid-shot: the knife, held perfectly steady, has formed a shallow, clean groove across the obsidian's shimmering surface, revealing a new, smooth texture."

}

ЧТО ТАКОЕ Structured Output Parser Schema: Здесь схема обеспечивает получение структурированных сценариев в формате объекта с отдельными полями для каждой сцены.

ЗАЧЕМ ЭТО НУЖНО ЗДЕСЬ:

  1. Разделяет сценарии на отдельные поля Scene 1, Scene 2, Scene 3, и т.д.
  2. Позволяет извлечь каждую сцену отдельно для создания видео
  3. Гарантирует получение от 3 до 6 сцен (зависит от сложности)
  4. Сохраняет исходные данные (Idea, Environment, Sound) для контекста

КАК ЭТО РАБОТАЕТ:

  • AI получает схему и обязан вернуть объект с полями Scene 1, Scene 2, и т.д.
  • Каждая сцена содержит 1000-2000 символов детального описания
  • Следующая нода может извлечь все сцены для создания промптов

3.2 Подготовка промптов - Подготовка промптов

Назначение: JavaScript извлекает все сцены из ответа AI и подготавливает их для генерации видео

JavaScript код:

function findSceneEntries(obj) {

  const scenes = [];

  for (const [key, value] of Object.entries(obj)) {

    if (key.toLowerCase().startsWith("scene") && typeof value === "string") {

      scenes.push(value);

    } else if (typeof value === "object" && value !== null) {

      scenes.push(...findSceneEntries(value));

    }

  }

  return scenes;

}

let output = [];

try {

  const inputData = items[0].json;

  const scenes = findSceneEntries(inputData);

  if (scenes.length === 0) {

    throw new Error("No scene keys found at any level.");

  }

  output = scenes.map(scene => ({ description: scene }));

} catch (e) {

  throw new Error("Could not extract scenes properly. Details: " + e.message);

}

return output;

Что происходит:

  1. Поиск сцен: Рекурсивно ищет все ключи, начинающиеся с "scene"
  2. Извлечение: Собирает все найденные сцены в массив
  3. Форматирование: Создает объекты с полем description для каждой сцены
  4. Проверка: Выдает ошибку, если сцены не найдены

Результат: Массив объектов вида [{description: "Scene 1 text"}, {description: "Scene 2 text"}, ...]

ЭТАП 4: СОЗДАНИЕ ВИДЕОКЛИПОВ

4.1 Генерация видео - Создание клипов

Назначение: Создает видеоклипы для каждой сцены через ByteDance AI

HTTP Request настройки:

  • Method: POST
  • URL: https://queue.fal.run/fal-ai/bytedance/seedance/v1/lite/text-to-video
  • Authentication: Fal API key
  • Body Parameters:
    • prompt: {{ $json.description }}

Что происходит:

  1. Каждая сцена отправляется отдельно в ByteDance/Seedance
  2. Модель создает 10-секундный видеоклип на основе детального промпта
  3. Возвращается request_id для асинхронного получения результата

Результат:

{

  "status": "IN_QUEUE",

  "request_id": "unique-id-123",

  "response_url": "...",

  "status_url": "..."

}

4.2 Ожидание генерации - Ожидание

Назначение: Пауза для генерации видео

Настройки:

  • Amount: 240 секунд (4 минуты)
  • Зачем: ByteDance - seedance требует время для качественной генерации видео

4.3 Получение видео - Получение клипов

Назначение: Скачивает готовые видеоклипы

HTTP Request настройки:

  • Method: GET
  • URL: https://queue.fal.run/fal-ai/bytedance/requests/{{ $json.request_id }}
  • Authentication: Fal API key

Результат:

{

  "video": {

    "url": "https://fal.media/files/video123.mp4",

    "content_type": "video/mp4",

    "file_name": "output.mp4",

    "file_size": 2500000

  }

}

ЭТАП 5: СОЗДАНИЕ АУДИО

5.1 Генерация звуков - Создание звуков

Назначение: Создает ASMR звуки для видео через MMAudio-v2

HTTP Request настройки:

  • Method: POST
  • URL: https://queue.fal.run/fal-ai/mmaudio-v2
  • Authentication: Fal API key
  • Content-Type: application/json

JSON Body:

{

  "prompt": "ASMR Soothing sound effects, {{ $('AI Agent').first().json.output[0].Sound }}",

  "duration": 10,

  "video_url": "{{ $json.video.url }}"

}

Параметры:

  • prompt: Комбинирует "ASMR Soothing sound effects" + описание звука из первого этапа
  • duration: 10 секунд (соответствует длине видео)
  • video_url: URL первого видеоклипа для синхронизации

Batching настройки:

  • Batch Size: 1 (по одному запросу)
  • Batch Interval: 2000ms (пауза между запросами)

5.2 Ожидание аудио - Ожидание1

Назначение: Пауза для генерации звука

Настройки:

  • Amount: 60 секунд
  • Зачем: MMAudio требует время для создания качественного ASMR звука

5.3 Получение звуков - Получение звуков

Назначение: Скачивает готовые аудиофайлы

HTTP Request настройки:

  • Method: GET
  • URL: https://queue.fal.run/fal-ai/mmaudio-v2/requests/{{ $json.request_id }}
  • Authentication: Fal API key

ЭТАП 6: МОНТАЖ ФИНАЛЬНОГО ВИДЕО

6.1 Подготовка URL - List Elements

Назначение: Собирает URL всех видеоклипов в один массив

JavaScript код:

return [

  {

    video_urls: items.map(item => item.json.video.url)

  }

];

Что происходит:

  1. Получает все элементы от "Получение звуков"
  2. Извлекает URL видео из каждого элемента
  3. Создает массив video_urls для монтажа

Результат: {video_urls: ["url1.mp4", "url2.mp4", "url3.mp4"]}

6.2 Создание финального видео - Создание финального видео

Назначение: Монтирует все клипы в одно 30-секундное видео через FFmpeg

HTTP Request настройки:

  • Method: POST
  • URL: https://queue.fal.run/fal-ai/ffmpeg-api/compose
  • Authentication: Fal API key
  • Content-Type: application/json

JSON Body:

{

  "tracks": [

    {

      "id": "1",

      "type": "video",

      "keyframes": [

        { "url": "{{ $json.video_urls[0] }}", "timestamp": 0, "duration": 10 },

        { "url": "{{ $json.video_urls[1] }}", "timestamp": 10, "duration": 10 },

        { "url": "{{ $json.video_urls[2] }}", "timestamp": 20, "duration": 10 }

      ]

    }

  ]

}

Структура монтажа:

  • Track 1: Видеодорожка
  • Keyframe 1: Сцена 1 (0-10 секунд)
  • Keyframe 2: Сцена 2 (10-20 секунд)
  • Keyframe 3: Сцена 3 (20-30 секунд)

Batching настройки:

  • Batch Size: 1
  • Batch Interval: 2000ms

6.3 Ожидание монтажа - Ожидание2

Назначение: Пауза для обработки видео

Настройки:

  • Amount: 60 секунд
  • Зачем: FFmpeg требует время для монтажа и кодирования

6.4 Получение результата - Получение финального видео

Назначение: Скачивает готовое смонтированное видео

HTTP Request настройки:

  • Method: GET
  • URL: https://queue.fal.run/fal-ai/ffmpeg-api/requests/{{ $json.request_id }}
  • Authentication: Fal API key

Результат:

{

  "video_url": "https://fal.media/files/final_video.mp4",

  "duration": 30,

  "format": "mp4"

}

ЭТАП 7: СОХРАНЕНИЕ РЕЗУЛЬТАТА

7.1 Обновление таблицы - Запись результата

Назначение: Обновляет Google Sheets с URL готового видео

Google Sheets настройки:

  • Operation: Update
  • Matching Column: Идея
  • Columns Mapping:
    • Результат: {{ $json.video_url }}
    • Идея: {{ $('Записываем идею').first().json['Идея'] }}

Результат в таблице:

Идея

Заголовок

Окружение

Звук

Статус

Результат

[AI идея]

[Caption + хештеги]

[Описание среды]

[ASMR звук]

for production

[URL видео]

Схема подключений нод

Основной поток:

  1. When clicking 'Test workflow'AI Agent
  2. AI AgentЗаписываем идею
  3. Записываем идеюAI Agent1
  4. AI Agent1Подготовка промптов

Создание видео (параллельно для каждой сцены): 5. Подготовка промптовСоздание клипов 6. Создание клиповОжидание (240s) 7. ОжиданиеПолучение клипов

Создание аудио: 8. Получение клиповСоздание звуков 9. Создание звуковОжидание1 (60s) 10. Ожидание1Получение звуков

Монтаж: 11. Получение звуковList Elements 12. List ElementsСоздание финального видео 13. Создание финального видеоОжидание2 (60s) 14. Ожидание2Получение финального видео 15. Получение финального видеоЗапись результата

AI Подключения:

  • OpenAI Chat Model1 (gpt-4o-mini) → AI Agent (генерация идеи)
  • OpenAI Chat Model (gpt-4o-mini) → AI Agent1 (создание сценариев)
  • ThinkAI Agent (самопроверка)
  • ParserAI Agent (структурированный вывод идеи)
  • Parser2AI Agent1 (структурированный вывод сценариев)

Результат работы автоматизации

Что получается:

  • 30-секундное ASMR видео с 3 сценами резки материалов
  • Кинематографическое качество
  • Синхронизированный ASMR звук от MMAudio-v2
  • Вирусный заголовок с 12 трендовыми хештегами
  • Монтаж через FFmpeg

Характеристики качества:

  • Длительность: Точно 30 секунд
  • Звук: Стерео ASMR аудио синхронизированное с видео
  • Формат: MP4 для максимальной совместимости

Применение:

  • ASMR каналы - автоматическое создание контента
  • Социальные сети - вирусные ролики для TikTok, Instagram
  • Релаксационный контент - видео для медитации и расслабления
  • Образовательные каналы - демонстрация свойств материалов

Масштабирование:

  • Можно запускать несколько раз для разных материалов
  • Легко адаптировать под другие ASMR ниши
  • Добавить больше сцен для длинных видео
  • Интегрировать с системами публикации

Готово. Эта автоматизация превращает простую идею в готовое профессиональное ASMR видео за 7-10 минут!