Перейти к основному контенту

Руководство по API LoRA MiniMax H3: выберите режим и проверьте веса

Загрузите свою LoRA в видео MiniMax H3: выберите задачу, подключите веса, задайте силу и рассчитайте стоимость, с запускаемым примером.

Автор
Lydia
Опубликовано
Время чтения
14 мин чтения
Обновлено
Женщина на железнодорожной станции рядом с тремя портретами в разных визуальных трактовках и фотографом

Собственную LoRA стоит загружать только тогда, когда она выдерживает нужный кадр: персонаж, движение и звук вместе. MiniMax H3 LoRA на SpicyAPI (spicyapi.ai) — это видеомодель H3 с открытыми весами и полем loras: до трёх ваших собственных файлов .safetensors в одном запросе, у каждого сила от 0 до 4.

Выбирайте задачу по исходному материалу и подключайте прямую ссылку на файл, обученный под H3. Начинайте с силы 1 для стилевой LoRA и с 0.6 до 0.8 для LoRA концепта, и сравнивайте черновик на 3 секунды в 480p ($0.15) с тем же запросом с пустым loras. По нашим тестам сентября 2026 года все три задачи отработали запросы со взрослым контентом, и SpicyAPI не добавляет дополнительных фильтров к весам, которые вы загружаете.

Выбирайте задачу по исходному материалу

Исходный материалЗадачаЧто делает там LoRA
Написанная сценаТекст в видеоЗадаёт внешний вид, поэтому это самый понятный первый тест для любого файла. Семь соотношений сторон.
Одобренный кадрИзображение в видеоКлип открывается на вашем кадре и сохраняет его форму (поля соотношения сторон нет). Необязательный last_image_url задаёт финальный кадр. Сильная LoRA может увести клип от кадра, а стилевая LoRA бледнеет на фотографическом.
Изображения, клипы и звукРеференс в видеоДо 9 изображений, 3 клипа и 3 аудиоклипа, у каждого своя роль в промпте. LoRA персонажа вместе со стоп-кадрами того же человека лучше всего держит идентичность.

Все три возвращают MP4 от 3 до 15 секунд со стереозвуком из того же прохода, в 480p, 540p, 768p или 1080p, и загрузка LoRA ничего не добавляет к цене. Если LoRA не нужна, базовый H3 дешевле. Чтобы утвердить персонажа или внешний вид до оплаты секунд видео, сначала сделайте стоп-кадры в H3 Image LoRA; тот же массив loras переносится (стоп-кадры против видео).

Схема трёх задач LoRA в H3: написанная сцена идёт в «текст в видео», открывающий кадр — в «изображение в видео», а набор референсов — в «референс в видео», и у каждой указано, что проверять первым
Что проверять первым в каждой задаче.

Выбирайте LoRA, подходящую H3

Файл должен быть обучен под MiniMax H3. LoRA для другой базовой модели несовместима; даже для адаптеров H3 нужны задача и раскладка весов, которые поддерживает загрузчик. LoRA для H3 новые, и качество у них разное, поэтому ищите карточку модели, где указаны база, триггерное слово и рабочая сила. Вот два файла, которые это делают и загружаются через этот API:

LoRAЭффектЗадачиТриггерСила от автораРазмер
vh5tapeПотёртый VHS-вид 1980-х: шум плёнки, наплывы цвета, приглушённый звукТекст, изображениеvh5tape, первым в промпте1.0 для полного вида, от 0.7 до 0.9 для более мягкого износа131 MB
H3 Realism PeopleРеалистичная кожа и лица, лёгкое ощущение камеры в рукахОдин файл для текста, изображения и референсаr34l1sm1.0 задумано, от 0.6 до 0.8 для более лёгкого воздействия131 MB

Обе используют H3 Community License, где есть ограничения по территории и использованию; прочитайте её до коммерческой работы.

Из карточки модели берите только триггер и силу. Рецепты для локального ComfyUI или других хостов содержат настройки, которых у этой задачи нет (prompt_expansion_mode, число шагов, сэмплеры, weight_name, имя репозитория вместо ссылки), а LoRA с ускоренной дистилляцией (Turbo) существуют, чтобы сократить локальные шаги сэмплирования, поэтому пропустите их.

Подключите файл

path должен быть прямой HTTPS-ссылкой, которая отдаёт файл .safetensors без входа. На Hugging Face это ссылка /resolve/, а не страница /blob/ из адресной строки. В запросе нет поля с учётными данными, поэтому для приватного файла нужна предподписанная ссылка, которая останется действительной, пока задание не отработает. Замените main на хеш коммита, чтобы тот же запрос в следующем месяце загрузил тот же файл. Страница /blob/, отсутствующий файл или приватный репозиторий отклоняются с 400, до того как задание вообще появится. Если задание падает уже после принятия, отправьте тот же запрос с "loras": []: если он пройдёт, дело в файле (доступ, совместимость или его действие); если тоже нет, смотрите промпт или входные данные.

Сначала попробуйте в Playground

  1. Откройте страницу «текст в видео», останьтесь на вкладке Playground в режиме Form и войдите с пополненным счётом, чтобы запустить. У «изображение в видео» и «референс в видео» есть собственные страницы (ссылки в таблице выше).
  2. Поставьте триггерное слово в начало Prompt, а затем опишите кадр как короткую временную шкалу (кто в кадре, что делает, как движется камера), а звук вынесите в отдельную строку Audio:. Подробное описание того, что LoRA уже делает, обычно спорит с весами.
  3. В разделе Style LoRAs вставьте прямую ссылку на файл в LoRA file и задайте Strength. Кнопка Add item даёт до трёх файлов.
  4. Выберите 480p в Resolution и 3 в Duration для недорогого первого взгляда, задайте Seed и запустите.
  5. Нажмите Remove item, запустите снова с тем же промптом и тем же seed и сравните два клипа. Если они похожи, LoRA ничего не сделала (см. таблицу сбоев ниже).
Playground «текст в видео» MiniMax H3 в режиме Form с полем Prompt и примером результата

Playground «текст в видео» MiniMax H3 в режиме Form, с полем Prompt и кнопкой Run. Страница LoRA добавляет в ту же форму раздел Style LoRAs.

Тело запроса в Playground — это тот же JSON, который принимает API, поэтому рабочую здесь настройку можно перенести прямо в код. У двух других задач свои входные данные:

  • Изображение в видео добавляет Input image (открывающий кадр) и необязательный Closing frame. Опишите, что происходит дальше внутри кадра, а не новую сцену: с LoRA концепта на 1 промпт, который переносил героя в другую комнату, подменял открывающий кадр, тогда как тот же кадр сохранялся, когда промпт описывал движение внутри него. Поля соотношения сторон нет, поэтому сначала обрежьте кадр до нужной формы и оставьте место под движение.
  • Референс в видео добавляет Reference images (до 9), Reference videos (до 3) и Reference audio (до 3). Откройте промпт одним коротким предложением на каждый вход, у каждого своя роль: Picture 1 is the woman, Picture 2 is the room, Video 1 is the camera move, Audio 1 is her voice. Если вы берёте движение из клипа, прямо скажите, что человек приходит из картинки, а только движение — из клипа; без этой фразы танцовщица из клипа приходит вместе с движением. Три хороших стоп-кадра держат идентичность лучше, чем девять наложенных.
Схема четырёх ролей референса: персонаж, место, жест и звук
Одна роль на референс: кто, где, какое движение, какой звук.

Playground каждой страницы модели открывается на готовом примере, а его панель Request body показывает точный JSON. Три запуска этих примеров:

Текст в видео по этому запросу: 5 секунд в 480p и 4:3 с vh5tape на силе 1, с шумом плёнки, наплывами цвета и приглушёнными дождём и звуком джукбокса.
Изображение в видео по этому запросу: 5 секунд в 768p, начиная со стоп-кадра мужчины у окна отеля и заканчивая его лицом к камере, с LoRA Realism People на 0.8.
Референс в видео по этому запросу: 6 секунд в 540p и 9:16, женщина с Изображения 1 входит в гостиничный номер с Изображения 2 и поворачивается к зеркалу.

Референсные клипы тарифицируются по своим секундам поверх выходных секунд, всего до 15 секунд клипа, поэтому держите их короткими.

Затем запустите из кода

Установите Python SDK (pip install spicyapi), задайте SPICY_API_KEY в окружении сервера и выполните запрос «текст в видео» ниже. Для других задач: в «изображение в видео» поменяйте model, уберите aspect_ratio и добавьте image_url; для «референс в видео» поменяйте model и добавьте reference_image_urls (aspect_ratio остаётся).

python
import uuid
from spicyapi import SpicyClient, output_assets

client = SpicyClient()  # reads SPICY_API_KEY from the environment

task = client.create_task(
    model="minimax/h3-lora/text-to-video",
    input_data={
        "prompt": "vh5tape, worn VHS tape with light tracking noise. A woman in a red satin dress sits alone in a late-night diner booth, turns toward the camera and slowly smiles, neon light flickering in the rain-streaked window behind her. Slow push-in. Audio: rain on glass, a jukebox ballad muffled through the tape, quiet room hum.",
        "aspect_ratio": "4:3",
        "resolution": "480p",
        "duration_seconds": 5,
        "seed": 42,
        "loras": [{
            "path": "https://huggingface.co/KennethFal/vh5tape-vhs-lora-minimax-h3/resolve/d25a4ab75aba899aa508220321525c8465ac11af/vh5tape.safetensors",
            "scale": 1.0,
        }],
    },
    idempotency_key=str(uuid.uuid4()),
)

final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
    raise RuntimeError(f"{task['taskId']} ended as {final['state']}: {final.get('errorCode')}")
print(output_assets(final)[0]["url"])  # copy the video to your own storage now

Создание, ожидание, скачивание, повторы и коды ошибок разобраны в руководстве по заданиям и в справочнике Python SDK. Созданные файлы хранятся не более 14 дней, поэтому прочитайте хранение и выдачу, прежде чем строить систему на полученной ссылке; для продакшена сравнение опроса и вебхуков поможет выбрать вариант.

Или поручите запуск Agent

Когда генерации должен запускать ассистент, все три официальных инструмента показывают цену и спрашивают подтверждение перед платным вызовом.

  • CLI. Положите тот же объект input в t2v.json, затем:

``bash spicyapi tasks create --model minimax/h3-lora/text-to-video --input-file t2v.json --wait ``

Смотрите документацию по CLI; npx @spicyapi/cli работает без установки.

  • Сервер MCP. Добавьте сервер MCP к своему ассистенту, а затем спросите: "Run MiniMax H3 LoRA text-to-video with this prompt and this weights link at strength 1, 480p, 3 seconds." Он вызывает spicyapi_task_create, который останавливается для подтверждения цены, а затем spicyapi_task_wait.
  • Skill. npx skills add spicyapi-ai/spicy-skill устанавливает Agent Skill, благодаря чему ассистент для программирования читает актуальную схему модели, а не угадывает названия полей.

Задайте силу

scale работает от 0 до 4, причём 1 — нейтральное значение. Стилевые LoRA начинайте с 1, LoRA концепта — с 0.6 до 0.8. Затем пройдите лестницу: тот же промпт и тот же seed в 480p и 3 секунды, с силой 0.5, 0.8 и 1.1, плюс один запуск с пустым loras. Меняйте по одному параметру за запуск. Фиксированный seed делает запуски сопоставимыми, а не одинаковыми, поэтому оценивайте внешний вид и действие, а не пиксели.

Иллюстрация, а не результат H3: работник станции в цвете рядом с состаренной монохромной версией того же кадра
Иллюстрация, а не результат H3: удачная пара «база плюс адаптация» сохраняет героя, кадрирование и действие и меняет только внешний вид.

Оставьте ту ступень, которая читается правильно, или возьмите среднее между двумя. Перестайте повышать силу, когда герой, действие или звук начинают ломаться; если базовый вариант уже не даёт нужного кадра, никакая сила это не исправит. Смотрите клип целиком, а не первый кадр, и слушайте, потому что LoRA может изменить и звук (vh5tape заглушает его намеренно). В карточке vh5tape перечислены формулировки промпта для лёгкого, среднего и сильного износа; поменяйте их прежде, чем поднимать силу выше 1.

Иллюстрация, а не результат H3: тот же работник станции в четырёх ступенях всё более состаренной плёночной текстуры
Иллюстрация, а не результат H3: удачная лестница силы меняет внешний вид шаг за шагом, а герой остаётся на месте.

Собирайте до трёх

Проверьте каждый файл отдельно, прежде чем соединять. LoRA персонажа, обученная на глянцевых портретах, может спорить с тяжёлым плёночным видом, а LoRA движения может развернуть героя от кадра. Когда стек получается неудачным, держите seed и промпт и убирайте по одной записи: восстановившийся запуск указывает на этот адаптер или на его взаимодействие с остальным стеком. Сначала снижайте самый сильный вес. Заранее решите, какое требование побеждает при конфликте (скажем, идентичность важнее текстуры), и заново проверьте стек, который сработал на тексте, прежде чем применять его к фотографическому кадру или референсу.

Сколько это стоит

Задача480p540p768p1080pДоплаты
Текст в видео и изображение в видео$0.05/s$0.075/s$0.10/s$0.20/sНет; загрузка LoRA бесплатна
Референс в видео$0.06/s$0.09/s$0.135/s$0.27/s$0.02 за референсное изображение или аудиоклип; секунды клипа тарифицируются как выходные секунды
  • 3 секунды в 480p: $0.15. 5 секунд в 480p: $0.25. 5 секунд в 1080p: $1.00.
  • Три запроса выше: $0.25 / $0.50 / $0.58.
  • База плюс лестница из трёх ступеней, четыре клипа по 3 секунды в 480p: $0.60.
  • Референс в видео, 5 секунд в 480p: $0.32 с одним изображением, $0.34 с двумя, $1.37 в 1080p с одним изображением.
  • Упавшее или истёкшее задание обычно не тарифицируется; готовый клип, который вам не нравится, — тарифицируется.
  • Расчёт с референсным клипом резервирует все 15 секунд клипа: $1.20 за выход 5 секунд в 480p. Списание рассчитывается по фактической длине клипа.

Сделайте черновик в 480p и 3 секунды, потом отправьте удачный вариант один раз в 768p или 1080p с тем же seed. Ожидайте близкий вариант, а не копию.

Схема бюджета: одна база плюс три кандидата по силе при 3 секундах и 480p, четыре раза по 3 секунды по $0.05 в секунду, всего $0.60
База плюс лестница силы из трёх ступеней при 3 секундах и 480p.

Когда LoRA ничего не делает или клип получается неверным

СимптомВероятная причинаЧто делать
Клип выглядит как обычный H3Файл обучен под другую базу, нет триггерного слова или фотографический кадр либо референс ведёт стилевую LoRAПроверьте базу в карточке, поставьте триггер первым, попробуйте тот же файл в «текст в видео», затем поднимите силу
Клип уходит от открывающего кадраLoRA концепта слишком сильна, или промпт описывает новую сценуСнизьте до 0.6 и опишите только то, что происходит дальше
Внешний вид подавляет сценуСамый сильный вес слишком велик, или стек перегруженСнизьте самый сильный вес, затем убирайте записи по одной
В кадре появляется исполнительница из референсного клипаВ промпте не сказано, зачем нужен клипСкажите, что человек приходит из картинки, а только движение — из клипа
Идентичность колеблетсяСлишком много наложенных друг на друга референсовОставьте два-три удачных стоп-кадра
Отклонено с 400Это не прямая ссылка на файлИспользуйте ссылку на файл /resolve/
Задание падает после принятияСсылка истекла или репозиторий стал приватнымОтправьте снова с "loras": []; сделайте так, чтобы предподписанная ссылка пережила задание
Шаги диагностики: сопоставьте файл и базу, проверьте триггер и режим ввода, измените одну силу, а затем оцените кадр целиком
Сначала проверьте обычный кадр, а не обвиняйте адаптер.

Использование без цензуры

SpicyAPI не добавляет фильтр контента ни к промпту, ни к весам, ни к результату. В этих тестах на нашей шкале контента ничего не отклонялось: шкала идёт от L1 Намёк и L2 Зрелые темы и L3 Сильный до L4 Интенсивный, плюс проверки L5a сковывания и L5b крови, и всё это без загруженных LoRA. Одно слабое место: без LoRA «изображение в видео» смягчало L4 Интенсивный (интимная сцена между двумя взрослыми) в двух запусках из трёх, тогда как текстовый и референсный вход отрисовывал все уровни. С загруженной LoRA для взрослых от сообщества все три задачи отрисовали L4. Полные результаты — в обзоре H3 LoRA.

То, что SpicyAPI не добавляет дополнительного фильтра контента, не даёт прав на сходство с человеком: все показанные должны быть взрослыми, а для LoRA реального человека нужно его согласие и ваши права на его образ.

Попробуйте в playground MiniMax H3 LoRA, там видны актуальные цены.

FAQ

Можно ли вставить имя репозитория Hugging Face или ссылку /blob/?

Нет. path принимает прямую HTTPS-ссылку на файл; страница /blob/ или просто имя owner/repo отклоняются с 400, а поля weight_name, которое принимают некоторые хосты, здесь нет аналога. Используйте ссылку /resolve/.

Можно ли загрузить LoRA, которую я обучил сам?

Да, если она обучена на H3 с открытыми весами, сохранена как .safetensors и доступна по HTTPS.

Другие языки English · 日本語 · 한국어 · Deutsch · Français · Español · Português (Brasil) · Italiano · Polski