Руководство по использованию
Рецепты промптов для генерации видео из текста MiniMax H3 Max (для разработчиков)
Готовые к копированию шаблоны промптов: управление длительностью, уровни разрешения и формулировки камеры
Из чего состоит хороший промпт для генерации видео из текста
Промпт для генерации видео из текста — это не одно предложение. Это небольшой конфигурационный файл, написанный на естественном языке. Когда результат получается неверным, по-настоящему полезный вопрос никогда не звучит как «хороший ли промпт?», а звучит как «какая часть промпта не сработала?». Ответить на этот вопрос можно только тогда, когда у написанного вами промпта есть части, на которые можно указать.
Рассматривайте каждый промпт как шесть независимых блоков:
- Субъект (Subject) — кто или что находится в кадре, достаточно конкретно, чтобы оставаться неизменным между генерациями (вид, материал, одежда, возрастная группа, отличительные признаки).
- Действие (Action) — что субъект делает, в порядке происходящего. Это раскадровка, а не атмосфера.
- Сцена (Scene) — место, время, погода, фоновая активность и источники света.
- Камера (Camera) — где находится камера, как она движется и с какой скоростью. Это не то же самое, что сцена, и должно быть отдельной строкой.
- Длительность (Duration) — сколько должен длиться фрагмент, что косвенно определяет, сколько действий в него поместится.
- Разрешение (Resolution) — целевой уровень вывода для данной генерации.
Разделять эти блоки физически — каждая часть на отдельной строке или каждый блок отдельным фрагментом с меткой — нужно потому, что генерация видео является задачей многомерной оптимизации, а в каждом эксперименте вы можете изменять только одну переменную. Если субъект, камера и длительность переплетены в одном плавном тексте, то, меняя камеру, вы одновременно меняете формулировку субъекта и ритм предложения, и больше не можете сказать, какое именно изменение привело к другому результату.
Разделённые блоки также лучше выдерживают повторное редактирование. Блок субъекта можно повторно использовать в десяти кадрах одной и той же сцены. Блок камеры можно заменить так же, как меняют объектив. Блок длительности можно увеличить или уменьшить, не переписывая действие. Промпты, написанные прозой, приходится переписывать с нуля каждый раз; промпты, написанные блоками, можно сравнивать пункт за пунктом.
Стоит запомнить ещё одну вещь: сила этих блоков неодинакова. Изменения субъекта и действия обычно видны невооружённым глазом и интуитивно понятны. Именно изменения формулировок камеры и длительности являются источником большинства неожиданных результатов, причём в обе стороны — один предлог может перевернуть кадрирование, а изменение длительности может незаметно удалить последний такт действия. Распределяйте внимание соответственно и оставляйте для камеры и длительности отдельные настраиваемые места, а не погребайте их в прилагательных.
Всё нижеследующее строится на этой структуре. Рецепт — это не что иное, как набор хорошо структурированных блоков, которые можно копировать и редактировать.
Из чего состоит готовый к копированию рецепт
Рецепт — это шаблон промпта с помеченными слотами. Скопируйте его, заполните слоты, отправьте — и вы получите результат, который можно сравнить со следующей версией, потому что структура никогда не менялась.
Возьмите следующий каркас за основу каждого эксперимента:
SUBJECT: <who/what, with 2–3 identifying details>
ACTION: <beat 1> -> <beat 2> -> <beat 3>
SCENE: <location>, <time of day>, <light source>, <background activity>
CAMERA: <position>, <movement>, <pace>
DURATION: <target length>
RESOLUTION: <tier for this pass>
Есть два правила, которые делают этот шаблон действительно полезным, а не просто формальностью.
Отделяйте изменяемые слоты от фиксированных
В типичном проекте SUBJECT и SCENE — ваша стабильная база: вы снимаете одного и того же персонажа в одном и том же месте во множестве кадров. ACTION, CAMERA, DURATION и RESOLUTION — переменные для каждого отдельного кадра. Мысленно пометьте их как «фиксированные» и «плавающие» и при экспериментах трогайте только плавающие. Если результат оказался неожиданным, а вы в тот раз заодно изменили описание субъекта, вы потратили тест впустую.
Пишите ACTION как такты, а не как прилагательные
Список тактов даёт вам то, что можно пересчитать по длительности. walks in -> sets down a box -> looks up — это три такта; если фрагмент вернулся только с двумя из них, вы знаете, что кадр перегружен или длительность слишком мала. a busy, dynamic scene — это то, что невозможно проверить. Прилагательные принадлежат ритму SCENE и CAMERA, они описывают текстуру, а не последовательность.
Сохраняйте метки в промпте
Эти заглавные метки служат как модели, так и вашей собственной бухгалтерии. Они делают различия более читаемыми в журнале изменений, делают пропущенные поля очевидными и не дают промпту деградировать в прозу при последовательных правках. Если модель хорошо обрабатывает фрагменты с метками, сохраняйте их; если она предпочитает плавные предложения, уберите метки на финальном проходе, но оставьте их в своих записях, чтобы записи оставались структурированными.
Полностью заполненный пример:
SUBJECT: ceramicist in her 40s, clay-dusted apron, hair tied back
ACTION: lifts a wet bowl off the wheel -> turns it to inspect -> sets it on the shelf
SCENE: small studio, late afternoon, single window light from the left, dust in the air
CAMERA: medium close-up at wheel height, slow push in, unhurried pace
DURATION: short pass
RESOLUTION: draft tier
Вот и весь формат. Каждый следующий рецепт — это этот каркас плюс один слот в качестве объекта тестирования.
Рецепт: управление длительностью
Длительность — это не ползунок, растягивающий сцену. Она меняет то, что может вместить сцена. Короткий фрагмент — это одно действие; более длинный фрагмент — это последовательность с началом, серединой и концом, и если вы не напишете эту последовательность, модель сама придумает наполнение или потеряет такт.
Поэтому согласуйте ACTION с запрошенной длительностью и указывайте длительность явно, а не оставляйте её по умолчанию.
Рецепт короткого фрагмента (одно явное действие)
SUBJECT: <consistent subject block>
ACTION: single continuous gesture — <the one thing that happens>
SCENE: <stable scene block>
CAMERA: <fixed position, minimal movement>
DURATION: brief clip, one action beat
RESOLUTION: <current test tier>
Короткий фрагмент вознаграждает сдержанность. Одно действие, одна идея камеры, никаких фоновых побочных линий. Если субъект должен войти в кадр, это вхождение и есть действие; не требуйте одновременно ещё и поворота, и жеста.
Рецепт более длинного фрагмента (упорядоченные такты)
SUBJECT: <consistent subject block>
ACTION: beat 1 -> beat 2 -> beat 3 (in this order)
SCENE: <stable scene block, plus any change over time>
CAMERA: <movement that supports the beats>
DURATION: extended clip, three beats
RESOLUTION: <current test tier>
Более длинные фрагменты требуют явного порядка и ограниченного числа тактов. Для одного непрерывного кадра три такта — разумная цель; если вам нужно пять, сначала подумайте, не описываете ли вы на самом деле два кадра. Также решите, какой такт заслуживает дополнительного времени — обычно средний, потому что первый такт служит для установления, а последний для завершения.
Как формулировка длительности меняет ритм
Два практических наблюдения, полученных после запуска этих рецептов:
- Слова, описывающие темп, не менее важны, чем сама длина.
unhurried,continuous,in one takeиquicklyменяют распределение одного и того же списка тактов по фрагменту. Один и тот же список из трёх тактов, помеченный какunhurriedи какquickly, — это два разных кадра, а не две разные длины. - Когда такт теряется, сначала увеличьте время, а потом думайте о сокращении действия. Если ваш последний такт всегда обрезается, обычное исправление — дать ему больше места, а не уменьшать число тактов — при условии, что все три такта необходимы.
Держите длительность фиксированной при тестировании всего остального
Именно эта дисциплина делает рецепты стоящими использования. Длительность меняет ритм, ритм меняет восприятие движения камеры, а камера влияет на то, как разворачивается действие. Если при тестировании камеры оставить длительность плавающей, вы ошибётесь в атрибуции. Зафиксируйте её, запишите и только потом меняйте следующий слот.
Та же логика применима к разрешению — теме следующего рецепта.
Рецепт: выбор уровня разрешения
Разрешение — это в первую очередь решение о стоимости и скорости итераций, и только во вторую — решение о качестве изображения. Промпт между уровнями меняется незначительно; меняется то, сколько попыток вы можете себе позволить и как быстро сможете увидеть, работает ли идея промпта вообще.
Думайте в двух уровнях: черновой уровень для исследования и финальный уровень для сдачи. Конкретные значения есть в документации параметров модели — здесь важен рабочий процесс, а не числа.
Рецепт чернового уровня
SUBJECT: <subject block>
ACTION: <beat list>
SCENE: <scene block>
CAMERA: <camera block>
DURATION: <short test length>
RESOLUTION: draft tier
Черновой запуск отвечает на вопросы уровня композиции: узнаваем ли субъект? читается ли движение камеры? все ли такты на месте? На низком уровне вы можете прогнать несколько вариантов за время, необходимое для одного финального рендера, а это именно то, что вам нужно, пока промпт ещё меняется.
Рецепт финального уровня
SUBJECT: <locked subject block>
ACTION: <locked beat list>
SCENE: <locked scene block>
CAMERA: <locked camera block>
DURATION: <delivery length>
RESOLUTION: final tier
Обратите внимание на слово заблокированный. Переход на финальный уровень — это повышение уже проверенного промпта, а не очередной эксперимент. Не меняйте ничего, кроме разрешения и длительности; если композиция финального рендера отличается от вашего черновика, вы узнаёте, что что-то в промпте чувствительно к разрешению, и это стоит записать.
Выбор уровня по варианту использования
- Исследование и внутренняя проверка — черновой уровень. Вы проверяете структуру, а не изысканность.
- Проверка регрессии промпта — черновой уровень. Достаточно дёшево, чтобы прогонять при каждом изменении.
- Для клиента или встраивания в поставку — финальный уровень, и только после того, как черновик прошёл проверку на соответствие замыслу.
- Фон или сильно обрезанные элементы в композитном кадре — если элемент занимает лишь малую часть кадра, чернового уровня может быть достаточно.
Почему тестирование на низком уровне на самом деле экономит время
Дорогостоящий режим отказа в генерации видео из текста — это красиво отрендеренный в высоком разрешении неверный кадр. Каждая минута, потраченная на полировку композиции, которая будет выброшена, — это трата, и на более высоком уровне эта трата умножается, потому что попытки медленнее. Итерации на черновом уровне выносят дешёвые решения вперёд — чёткость субъекта, количество тактов, направление камеры — а дорогой уровень оставляют для подтверждения.
Одно предостережение: не делайте черновики на уровне настолько низком, что мелкие детали невозможно оценить. Если ваш кадр зависит от небольшого реквизита или выражения лица, эта деталь может быть оценима только на более высоком уровне, и такие конкретные проверки должны раньше повышать уровень.
Рецепт: формулировки камеры, которые действительно меняют кадр
Если вы вынесете из этого руководства только одну вещь, пусть это будет она: формулировки камеры влияют на результат почти сильнее, чем любое прилагательное, которое вы можете добавить к субъекту. Два промпта с полностью одинаковыми субъектом, действием и сценой, но разными блоками камеры — это два разных кадра. А два промпта, отличающиеся только кучей атмосферных прилагательных, часто остаются одним и тем же кадром.
Это делает блок камеры слотом с наибольшим рычагом — и слотом, который стоит тестировать по одной фразе за раз.
Режимы движения
CAMERA: static, locked off
CAMERA: slow push in
CAMERA: slow pull out
CAMERA: lateral tracking left to right
CAMERA: handheld follow behind the subject
CAMERA: orbit around the subject, quarter turn
Каждая из строк выше — это полный, готовый к копированию блок камеры. Они намеренно короткие. Длинные предложения о камере часто содержат две конкурирующие инструкции (push in while orbiting), и когда они конфликтуют, вывод полу-случайно выбирает одну из них.
Режимы угла
CAMERA: eye level, medium shot
CAMERA: low angle, close on hands
CAMERA: high angle, wide, subject small in frame
CAMERA: over-the-shoulder from behind the subject
Угол — это и есть намерение кадрирования. «Close on hands» и «subject small in frame» — не атмосфера, а решения о том, что увидит зритель, и они меняют кадр гораздо сильнее, чем cinematic.
Режимы темпа
CAMERA: unhurried, deliberate movement
CAMERA: brisk, follows the action closely
CAMERA: settles and holds on the final beat
Темп принадлежит блоку камеры, а не блоку действия. Он описывает, как проявляет себя камера, и является самым чистым способом сделать длинный кадр организованным, а не блуждающим.
Заменяйте по одной фразе за раз
Способ сделать формулировки камеры читаемыми:
- Напишите базовый промпт, зафиксировав субъект, действие, сцену и длительность.
- Запустите этот базовый промпт с
CAMERA: static, locked off. - Меняйте только строку камеры — по одному изменению за запуск.
- Сохраняйте фрагмент каждого запуска и помечайте его использованной фразой камеры.
После четырёх-пяти запусков у вас появится личный справочник фраз: вы знаете, что slow push in сделает с вашим субъектом в вашей сцене, а это ценнее любого универсального списка. Сделайте это один раз для каждого проекта, и такой справочник можно будет использовать для каждого последующего кадра.
Два режима отказа
- Нагромождение инструкций. Писать в коротком фрагменте
push in, then orbit, then pull out— значит требовать три движения камеры, которые не помещаются в длительность. Одно движение на кадр. - Замена прилагательным. Замена движения камеры атмосферным словом (
dramatic,dynamic,epic) не задаёт камеру. Если в блоке камеры нет ничего о том, где находится камера и что она делает, вы оставили самый важный слот пустым.
Встраивайте и сравнивайте реальные результаты
Рецепт полезен только тогда, когда вы можете судить, превосходит ли версия B версию A. Для этого нужна испытательная установка — небольшой и скучный рутинный процесс для создания параллельных результатов, чтобы сравнение было механическим, а не основанным на ощущениях.
Вам нужны не инструменты, а дисциплина и папка.
Испытательная установка в пять шагов
- Зафиксируйте всё, что вы не тестируете. Напишите
baseline.mdс блоками субъекта, действия, сцены и длительности, которые остаются неизменными в этом эксперименте. Каждый запуск в партии дословно копирует эти блоки. - Укажите переменную. Меняйте только один слот за запуск. Если вы тестируете формулировку камеры, единственное различие между файлами — строка камеры.
- Сгенерируйте партию. Все варианты запускаются на одном черновом уровне с одной длительностью, чтобы сравнение было честным.
- Выстройте их в ряд. Воспроизводите фрагменты последовательно в одном и том же порядке каждый раз или размещайте их рядом в простой сетке. Порядок важен — глазам легче сравнивать, когда положение остаётся стабильным между просмотрами.
- Запишите вывод для каждого варианта. Одно предложение на вариант: что изменилось, было ли это желаемым изменением, оставите ли вы его.
На что смотреть при сравнении
- Полнота тактов — появились ли все такты из списка действий в нужном порядке?
- Читаемость камеры — может ли зритель, не читая описания, описать движение камеры?
- Согласованность субъекта — остаётся ли субъект узнаваемым как один и тот же блок субъекта между запусками?
- Непредвиденные изменения — не изменилась ли сцена незаметно при замене фразы камеры? Это признак взаимного проникновения блоков.
Именно эта последняя проверка и есть настоящая отдача от испытательной установки. Когда блоки чисты, изменение одного слота меняет только одну вещь. Когда они проникают друг в друга, вы получаете перекрёстные помехи, которые никогда не заметите при одиночном просмотре, — а именно из-за перекрёстных помех итерация промпта ощущается как игра в угадайку.
Держите испытательную установку небольшой
Четырёх-пяти вариантов достаточно для принятия решения. Более крупные партии размывают внимание и соблазняют вас просматривать их поверхностно. Если первая партия не дала вывода, ответ обычно в том, что выбранная переменная слишком тонка, а не в том, что нужно прогнать ещё двадцать раз.
Наконец, возвращайте выводы в свои файлы рецептов. Победившая фраза камеры должна быть повышена до базового шаблона, чтобы вам не приходилось открывать её заново.
Воспроизводимый рабочий процесс итерации промптов
Ниже приведён полный цикл, собранный из предыдущих рецептов. Он намеренно лишён блеска, и именно он определяет, продолжает ли ваша библиотека промптов развиваться или постепенно дрейфует.
Шаг 1 — набросайте блоки
Заполните шаблон один раз: субъект, такты действия, сцена, камера, длительность, разрешение. Не полируйте. Первая версия существует для того, чтобы её изменили.
Шаг 2 — запускайте дёшево и коротко
Сгенерируйте на черновом уровне с короткой длительностью. Вы получаете информацию о композиции, количестве тактов и читаемости камеры — и только. Прогоните два-три варианта, каждый отличающийся только одним плавающим слотом.
Шаг 3 — выберите победителя и заблокируйте
Когда вариант сделал то, что вы хотели, скопируйте его точный текст в файл в locked/. Блокировка означает, что вы больше не редактируете этот файл; последующие эксперименты ответвляются от него, а не изменяют его на месте. Эта маленькая привычка предотвращает наиболее распространённую деградацию: потерю хорошей версии из-за постоянной локальной подстройки.
Шаг 4 — повысьте до финальных настроек
Измените только длительность и разрешение на значения для сдачи, затем рендерите. Если финальный результат имеет значимое отличие от черновика, запишите это отличие — это означает, что промпт чувствителен к разрешению или длительности, и вы хотите знать, какие слоты хрупки, ещё до следующего проекта.
Шаг 5 — записывайте всё
Каждый запуск получает запись. Журнал — это продукт, который заставляет этот рабочий процесс давать сложный процент. Минимальные поля:
id: shot03_v2
template: studio-ceramics
variable_tested: camera
prompt: <full prompt text, verbatim>
duration: <value used>
resolution: <tier used>
verdict: <one sentence — what changed, keep or discard>
artifact: <clip path>
Три правила делают журнал надёжным. Записывайте только дословный текст промпта — пересказ не воспроизводит. В каждой записи только одна переменная — иначе журнал не сможет ответить на вопрос «почему это сработало?». Каждая запись содержит путь к фрагменту — вывод без артефакта остаётся лишь мнением.
Шаг 6 — извлеките в справочник фраз
Раз в несколько проектов перечитайте журнал и извлеките то, что побеждало снова и снова — фразы камеры, формы списков тактов, блоки сцены — в общий файл справочника фраз. Справочник — это ваше многоразовое знание; журнал — доказательства за ним.
Почему важен порядок
Сначала дёшево итерируйте, затем блокируйте, затем повышайте, затем записывайте: каждый шаг зависит от дисциплины предыдущего. Без блокировки повышение тестирует движущуюся цель. Без записи блокировка не имеет основания. Без дешёвых черновиков вы не можете позволить себе достаточно запусков, чтобы получить что-то, стоящее блокировки.
Запускайте этот цикл для генерации видео из текста MiniMax H3 Max через единый API HiAPI.ai и храните текст промптов и значения параметров в своём собственном репозитории, чтобы каждый успех оставался воспроизводимым.
Похожие статьи
Все статьи →-
Руководство по использованию
Руководство по началу работы с seedream-5.0-pro/image-to-image: возможности, цены и ключевые моменты интеграции
Границы возможностей модели редактирования изображений ByteDance, принципы тарификации и практика инженерной интеграции
-
Руководство по использованию
Руководство по использованию seedream-5.0-pro text-to-image: границы возможностей, интеграция API и контроль затрат
Практический взгляд для разработчиков: от ключевых параметров до оценки стоимости $0.05 за изображение
-
Руководство по использованию
Руководство по началу работы с Hailuo 2.3 Fast для генерации видео из изображений: границы возможностей, цены и практика интеграции
Ключевые моменты выбора и интеграции модели MiniMax для генерации видео из изображений для разработчиков