Нейроляпки: когда лень рисовать заставки к аудиокниге...
Автор: Евгений Задорожный...я поручу это скрипту.
Продолжаю эксперименты с автоматизацией создания медиа-контента.

Ранее я уже рассказывал, как озвучить книгу по ролям. Но для YouTube одной аудиодорожки мало — нужен видеоряд. Статичная картинка на 8 часов — скучно. Делать полноценную анимацию — долго и дорого.
Я нашел компромисс: комикс-сетка 3x3 для каждой главы, которая генерируется автоматически и отражает реальные события текста.
Шаг 1. Создаём озвучку поглавно.
Скрипт из предыдущей записи https://author.today/post/756755 разделяет текст на чанки по размеру и количеству голосов:
Read the following dialogue naturally.
Switch voices exactly as indicated by the speaker labels.
Apply the emotional tone specified in brackets (e.g., [tone: angry]), BUT DO NOT READ THE TEXT IN BRACKETS OUT LOUD. Just act it out.
Dialogue:
Male_Casual [tone: scared]: Ты… кто ты такой, чёрт возьми?
Male_Hero [tone: cold_assertive]: Твой новый кочегар.
Male_Casual [tone: resigned_grudging]: Хорошо. Место в кочегарке твоё. Твоя пайка и твой угол среди крыс. Работать будешь за двоих, ублюдок. Мы в расчёте.
И озвучивает их через Gemini API. На выходе - один mp3 на каждую главу.
Шаг 2. Создаём комиксы поглавно.
Вручную промптить 30 глав — это не мой метод, поэтому — скрипт https://pastes.io/generate-chapter-comics-with-gemini-api
Логика работы:
- Скрипт читает текст главы.
- Просит текстовую модель составить сценарий (раскадровку) из 9 ключевых сцен.
- Передает этот сценарий в графическую модель для отрисовки.
Промпт для сценариста (текстовой модели):
You are a Director of Photography.
Analyze Chapter {chapter_num} and create a visual breakdown for a 3x3 Comic Book Grid (9 panels).
Task:
1. Select 9 key moments that summarize the chapter chronologically.
2. Describe each panel visually (action, lighting, angle).
3. Identify which characters from this list are present: {CHARACTER_IMAGES}.
Output Format:
Return ONLY the visual description string that will be fed into an Image Generator.
Start with: "A 3x3 comic book grid showing..."
Combine the descriptions of 9 panels into one cohesive narrative prompt.Chapter Text (excerpt): {chapter_text}
Промпт для художника (генерация изображения):Здесь важно задать жесткий стиль, чтобы все главы выглядели как часть одного произведения. Я использую стиль "Мрачный русский брутализм + дизельпанк".
Generate a SINGLE image containing a 3x3 grid of panels (Comic Page).
FORMAT: Graphic Novel Page, strict 3x3 Grid Layout (9 panels total).
SETTING: 1888, Grim Russian brutalism meets dieselpunk dystopia (анти-попаданец).
STYLE: Hyper-realistic cinematic digital art, "Black Mirror" mixed with "Chernobyl".
ATMOSPHERE: Cold, gloomy, volumetric fog, dramatic lighting.
COLORS: Desaturated steel grey, deep blue, signal red accents.
NO speech bubbles, NO text, NO frames/borders between panels - just the images.
Aspect Ratio: 16:9.INSTRUCTIONS:
- Strictly follow the 3x3 grid layout.
- Use the provided character reference images to maintain facial consistency.
- If a character is looking at a screen, camera must be over-the-shoulder.
Пример, с обрамлением для видео:

Шаг 3. Склеиваем комиксы в один book-visual.mp4
Имея картинку chapter_01.png и озвучку chapter_01.mp3, теперь нужно создать видеофайл, где картинка висит ровно столько, сколько длится звук.
Я использую Bash-скрипт, который пробегается по всем файлам, считывает длительность MP3 и генерирует input.txt для FFmpeg:
# Concat list
file 'chapter000.png'
duration 22.344000
file 'chapter_00.png'
duration 424.440000
file 'chapter_01.png'
duration 968.160000
ffmpeg -f concat -safe 0 -i input.txt -vf "fps=10,format=yuv420p" \
-c:v libx264 -tune stillimage -preset ultrafast \
book.mp4
Бонусом скрипт сразу генерирует список таймкодов для YouTube:
00:00 Вступление
00:22 Пролог
07:26 Глава 1
23:34 Глава 2
39:04 Глава 3
Шаг 4. Сборка аудиокниги
Параллельно склеиваем все главы в один большой файл book.mp3. На этом этапе полезно сделать нормализацию громкости, чтобы главы не "скакали" по звуку.
# Two-pass loudness normalization
ffmpeg -i "$input" -af loudnorm=I=-16:TP=-1.5:LRA=11:print_format=summary -f null - 2>&1 | tee "$TEMP_DIR/pass1_$i.log"
# Extract measured values and apply normalization
ffmpeg -i "$input" -af loudnorm=I=-16:TP=-1.5:LRA=11 -ar 44100 -b:a 192k "$normalized" -y 2>&1 | grep -v "^frame="
Шаг 5. Используем Suno для создания фоновых мелодий.
Я взял за основу такой Suno Instrumental Style, и с различными вариациями создал 20 MP3. Жаль, у них нет официального API, пришлось вручную "Create/Download"
rhythmic, masterfully composed, grand scale, atmospheric noir, rhythmic ticking, electric, electric sparks sound design, cinematic sub-bass, dark ambient, dark ambient thriller, cello, heavy cello melodies, shadows and light, haunting, instrumental, light, ominous
Треки перемешал, склеил в один фоновый background.mp3.
Шаг 6: финальная сборка
Последний штрих — магия FFmpeg. Мы берем:
- Видеоряд из комиксов (
book_visual.mp4). - Озвучку (
book.mp3). - Фоновую музыку (
background.mp3).
Миксуем это вместе, понижая громкость музыки до 18%, чтобы она не перебивала голос чтеца:

ИТОГ
В результате получается полноценная видео-книга на 7.5 часов, 1.5GB mp4. Картинка меняется каждую главу, показывая ключевые события в виде стильного комикса. Звук плотный, с атмосферой и музыкой. И всё это — с минимальным ручным вмешательством.
Youtube:
Экономика проекта:
- Визуал: 30 глав = 30 генераций. При цене ~$0.04 за картинку — это $1.5.
- Озвучка: Около 450 вызовов API (модель
gemini-2.5-flash-preview-tts) на 10 а.л. текста — примерно $8.5. - Итого: Готовая аудиокнига с уникальным видеорядом за $10