← Блог

Создайте творческий AI-конвейер с GLM-5 + WaveSpeed

Создайте полноценный AI-конвейер: GLM-5 пишет промпты, WaveSpeed генерирует изображения и видео — всё управляется через API.

By Dora 9 min read
Создайте творческий AI-конвейер с GLM-5 + WaveSpeed

Привет, я Дора. Я постоянно переключалась между инструментами, чтобы сделать короткий рекламный ролик. Бриф — в одном месте. Изображения — в другом. Видео — ещё где-то. Заметки разбросаны. Ничего сложного, но… шумно. Поэтому я попробовала кое-что попроще: устойчивый сквозной путь от простого брифа до готового ролика без постоянного переключения. Я называю это творческим пайплайном GLM-5. Я тестировала его две недели — на трёх коротких концептах и нескольких разрозненных кусках из клиентских проектов. Ничего эффектного. Но работа ощутимо полегчала.

Доступно на WaveSpeedAI — прозрачная цена за токен, OpenAI-совместимый endpoint. GLM 5.1 API → · Открыть Playground →

Что мы строим (обзор от начала до конца)

Мне нужен был один путь от короткого брифа до 6–10-секундного видео — с возможностью небольших итераций, но без охоты за функциями. Схема выглядит так:

  • Я пишу простой бриф (два-три предложения). Тон, тема, ограничения.
  • GLM-5 превращает его в чёткие описания сцен.
  • FLUX или Seedream генерирует стоп-кадры через WaveSpeed — для предсказуемого инференса.
  • WAN 2.5 или Seedance добавляет движение к одобренным стоп-кадрам.
  • GLM-5 проверяет результаты и предлагает точечные правки, а не переработку.

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

  • Короткие структурированные промпты. Я использую одни и те же поля каждый раз: Subject (тема), Setting (обстановка), Style (стиль), Motion notes (заметки о движении), Constraints (ограничения).
  • Небольшие батчи. Максимум три концепта за один прогон. Это помогало сохранять ясность мышления и упрощало сравнение.
  • Фиксировать сиды, когда нравится результат. Вариации — потом, не в процессе.

На практике пайплайн сократил количество кликов и сомнений больше, чем чистое время работы. На третьем прогоне я сэкономила около 15 минут от типичного 90-минутного цикла «концепт → ролик». Главный выигрыш был mental: меньше развилок, меньше отвлечений в духе «а что, если попробовать X». Именно это мне и было нужно.

Шаг 1 — GLM-5 генерирует описания сцен из брифа

Я начала с крошечного брифа: «Тёплый утренний свет на керамической кружке у окна. Лёгкий пар. Минималистичное, спокойное настроение. Для вертикальной истории 9:16. Цвета бренда: приглушённый бирюзовый акцент.»

GLM-5 отлично справляется с творческим письмом и обладает стилистической гибкостью — так заявлено в официальной документации Zhipu AI. Мне от GLM-5 не нужна была находчивость. Мне нужна была структура: последовательные карточки сцен, которым мог бы следовать рендерер. Вот формат, который я запросила и которого придерживалась:

  • Название сцены
  • Тип кадра (например, средний крупный план)
  • Композиция (правило третей, заметки о негативном пространстве)
  • Освещение
  • Палитра
  • Текстуры/материалы
  • Заметки о движении (если есть)
  • Жёсткие ограничения (нет лиц, нет текста в кадре, размеры выходного изображения)

Первый вариант оказался многословным. GLM-5 слишком подробно описывал настроение. Я скорректировала: «Каждое поле — одно предложение. Используй конкретные существительные и операторские термины.» Это исправило большую часть проблем. Уже со второго прогона карточки получались чёткими и хорошо транслировались в промпты для изображений.

Маленький лайфхак: я попросила GLM-5 добавить список «запрещённых» элементов, на которые я раньше натыкалась (лишние руки, случайные логотипы, отражения с лицами). Это сократило последующую доработку. Не идеально, но меньше неожиданностей.

Этот шаг не экономил время сразу — он экономил усталость от принятия решений позже. Мне не приходилось выбирать между пятью разными стилями промптов. У меня был один.

Шаг 2 — FLUX / Seedream генерирует изображения через WaveSpeed

Я запускала и FLUX, и Seedream, потому что у них разный характер. FLUX давал чистые, дизайнерски выверенные стоп-кадры. Seedream немного блуждал, но иногда находил красивую текстуру в керамике и дереве. Оба я запускала через WaveSpeed, чтобы стандартизировать шаги, сиды и планировщики без необходимости вручную управлять десятком параметров.

Полевые заметки:

  • Воспроизводимость в WaveSpeed имела значение. Когда кадр нравился, я фиксировала сид и меняла только guidance и количество шагов. Это делало «счастливые случайности» воспроизводимыми.
  • Соотношение сторон я задавала равным целевому формату (9:16) с самого начала. Обрезка потом всегда делала пар странным.
  • Промпты я оставляла теми, что получила от GLM-5. Никаких поэтических украшений. Стерильно, но это сокращало странные артефакты по краям.

Сложности: руки и окна. Отражения обожают «изобретать» людей. Я добавила «no figures, no silhouettes, no human reflections» в ограничения и немного повысила negative guidance. Это убрало лишний шум.

Время генерации одного стоп-кадра варьировалось от быстрого до «пора за кофе», в зависимости от моей машины. Я генерировала 8–12 кандидатов на сцену, затем жёстко отбирала 2. Если не удавалось быстро выбрать — значит, промпт был недостаточно чётким. Возврат к GLM-5 с небольшой правкой, а не поиск нужного изображения наугад.

Шаг 3 — WAN 2.5 / Seedance генерирует видео из стоп-кадров

На этом этапе я обычно теряю нить: слишком много вариантов движения. Я ограничила себя двумя режимами: лёгкий параллакс и плавное движение камеры. WAN 2.5 убедительно справлялся с параллаксом. Seedance лучше работал с микродвижениями — вроде пара и мягкого сдвига фокуса.

Мой чеклист передачи от стоп-кадра к анимации:

  • Экспортировать чистый PNG в целевом разрешении (1080x1920 для тестов).
  • Дать чёткую заметку о движении (например, «dolly-in на 2–3°, ручка кружки остаётся в трети кадра, пар дрейфует, подходит для зацикливания»).
  • Ограничить длительность 6–8 секундами. Длинные клипы становились размытыми и обнажали артефакты модели.

Неожиданности:

  • Мерцание текстур. Зернистая глазурь отлично выглядит на стоп-кадрах и шумит в движении. На шаге 2 я снижала интенсивность текстуры, если знала, что буду анимировать.
  • Деформация краёв у углов. Центрированные композиции держались лучше. Кружки не по оси гнулись, как резиновые.

Лучшие прогоны ощущались незаметно. Когда всё работало, я переставала думать о модели и просто наблюдала, как дышит свет. Когда не работало — разваливалось быстро, обычно потому что я просила слишком много движения.

Шаг 4 — GLM-5 проверяет результаты и предлагает итерации

Я снова привлекла GLM-5 — как спокойный второй взгляд. Я попросила его:

  • Сравнить финальные клипы с исходным брифом.
  • Отметить несоответствия (палитра, настроение, ограничения).
  • Предложить одно небольшое изменение на клип, а не пять.

Это оказалось полезнее, чем я ожидала. GLM-5 стабильно замечал смещение цвета. В одном прогоне он отметил, что бирюзовый акцент кажется холодным на фоне тёплого света: небольшое изменение оттенка фона исправило ситуацию.

Но иногда он заходил слишком далеко, предлагая новые реквизиты или текстовые оверлеи. Я возражала, установив правило: «Никаких новых существительных. Корректировать только освещение, цвет или интенсивность движения.» Это удерживало итерации в рамках.

Цикл здесь был быстрым: один проход заметок, один проход правок. Если результат всё ещё не устраивал — я откладывала концепт вместо того, чтобы застревать. Такая сдержанность не давала пайплайну раздуться.

Полный код (Python, WaveSpeed SDK)

Оркестрацию я намеренно оставила простой. Один Python-скрипт связывает шаги воедино с помощью нескольких небольших хелперов:

  • Класс Brief, хранящий Subject, Setting, Style, Motion, Constraints.
  • Хелпер glm5(), который форматирует промпт и парсит карточки сцен в словари.
  • Хелпер images(), вызывающий WaveSpeed с FLUX или Seedream и передающий сиды, шаги и негативные промпты.
  • Хелпер video(), передающий стоп-кадры в WAN 2.5 или Seedance с заметками о движении.
  • Хелпер review(), отправляющий миниатюры или короткие gif’ы обратно в GLM-5 для проверки соответствия.

Два момента обеспечивали стабильность:

  • Я записывала результаты на диск с детерминированными путями: run_id/scene_01/flux_seed1234.png. Это упрощало возврат к предыдущим результатам.
  • Я логировала параметры рядом с результатами в небольшой YAML-файл. Когда клип получался правильным — я точно знала, почему.

Я не привожу здесь полный код, чтобы не превращать это в свалку вставок. Описанная выше структура достаточна для воссоздания с вашим стеком. Если вы уже используете WaveSpeed — речь в основном о том, где зафиксировать случайность, а где позволить ей гулять.

Разбивка затрат на 10 ассетов

Стоимость сильно зависит от провайдера и настроек модели, поэтому воспринимайте это как практический диапазон из моих тестов, а не как обещание. Десять ассетов здесь — это 10 коротких вертикальных клипов (по одной сцене каждый), с 8–12 кандидатами стоп-кадров на сцену.

  • Промптинг и ревью GLM-5: небольшие расходы. Цена GLM-5 API составляет $1,00/млн входных токенов и $3,20/млн выходных — заметно дешевле Claude Opus 4.6 ($5/млн входных, $25/млн выходных). В моих прогонах на каждый ассет приходилось ~2–3 коротких взаимодействия плюс одно ревью. На тарифах по использованию для 10 ассетов это обычно несколько долларов.
  • Генерация изображений: главный переменный фактор. При средних шагах и 8–12 кандидатах на сцену на тарифах pay-per-inference я видела затраты в диапазоне средних-высоких однозначных чисел долларов на ассет. Меньше, если батчить на собственном GPU.
  • Генерация видео: тоже переменная. Простые клипы с параллаксом стоят дешевле, физически сложное движение — дороже. По моим заметкам, это выходило примерно как стоп-кадры на ассет, иногда чуть дороже.

Грубый итог на 10 ассетов, смешанные модели, консервативные настройки: низкие сотни долларов при полностью облачном решении с щедрой вариативностью; заметно меньше, если вы самостоятельно хостите шаги генерации изображений и платите только за движение. Если быть строгой: 6 кандидатов вместо 12, один проход motion — можно срезать треть. Если гнаться за вариациями, сумма удваивается быстро. Сиды и небольшие правила итераций помогают держать счёт под контролем.

Расширение: LoRA, апскейлинг, пакетная обработка

Когда основа устоялась, я попробовала несколько расширений.

  • LoRA для текстуры бренда: я обучила небольшой пакет акцентов для глазури керамики и бумажного фона. Это помогло сохранить единообразие материалов между сценами. Секрет — в умеренном весе. Тяжёлые LoRA тянули всё к одному виду.
  • Лёгкий апскейлинг: я применяю его только после motion, не до. Апскейлинг до анимации усиливал артефакты. Апскейлинг после с лёгкой, деталесохраняющей моделью держал края чистыми без выдумывания пор на кружке.
  • Пакетная обработка: я добавила очередь, где каждый концепт движется как единое целое. Никакого смешения шагов из разных брифов. Звучит жёстко, но это спасало меня от спирали «ещё один разок».

Кое-что я в итоге отказалась использовать:

  • Автоматические подписи внутри пайплайна. Они тянули визуал в сторону «контента» вместо «движущихся изображений». Подписи я делаю снаружи, ближе к публикации.
  • Агрессивное смешение стилей. Хорошо смотрелось в сетке и утомляло в движении.

Кому подойдёт: тем, кто любит предсказуемые пути и небольшой, стабильный прогресс. Кого не впечатлит: тех, кто гонится за зрелищностью или высоковариативным арт-стилем. Это нормально.

Я стремилась сделать творческий пайплайн GLM-5 тише, а не умнее. В хорошие дни он именно таким и ощущается: кружка, немного света и меньше открытых вкладок, чем обычно. Меня это устраивает.

Поделиться