feat(video): add MiniMax H3 Max Turbo family (fal post-train, 480P-1080P)

fal launched H3 Max Turbo on Sep 3 (minimax/h3-max-turbo/{text,image}-to-video):
a throughput-tuned post-train of H3 Max with a 1080P tier Max lacks, at
$0.025/s 480p / $0.04/s 768p / $0.08/s 1080p list ($0.00625-0.02/s promo until
Sep 14). Schema matches Max's shape — required prompt_expansion_mode static
key, int duration 5-15, seed on both endpoints, i2v drops aspect_ratio — plus
the new 1080P resolution enum, so it reuses the existing family capability
flags with a Turbo-specific resolution alias map.

Schema verified against the FAL queue OpenAPI for both endpoints. Live E2E
blocked by the FAL account balance lock (403 "Exhausted balance"); portal
allowlist/pricing needed for managed users on the 2 new endpoints.
This commit is contained in:
Teknium
2026-09-09 02:23:34 -07:00
parent e21a6fb159
commit 63584da036
2 changed files with 32 additions and 0 deletions
@@ -81,6 +81,30 @@ def test_minimax_h3_int_duration_and_resolution_alias():
assert hi["resolution"] == "2K"
def test_h3_max_turbo_static_key_and_1080p_alias():
"""H3 Max Turbo requires prompt_expansion_mode on both endpoints, adds a real
1080P tier (unlike Max, which caps at 768P), and its i2v drops aspect_ratio."""
from plugins.video_gen.fal import FAL_FAMILIES, _build_payload
meta = FAL_FAMILIES["minimax-h3-max-turbo"]
t2v = _build_payload(
meta, prompt="x", image_url=None, duration=7, aspect_ratio="16:9",
resolution="1080p", negative_prompt=None, audio=None, seed=11,
)
assert t2v["prompt_expansion_mode"] == "balanced"
assert t2v["resolution"] == "1080P"
assert t2v["duration"] == 7 and isinstance(t2v["duration"], int)
assert t2v["seed"] == 11
i2v = _build_payload(
meta, prompt="x", image_url="https://example.com/i.png", duration=5,
aspect_ratio="16:9", resolution="480p", negative_prompt=None, audio=None, seed=None,
)
assert i2v["prompt_expansion_mode"] == "balanced"
assert "aspect_ratio" not in i2v
assert i2v["image_url"] == "https://example.com/i.png"
def test_image_drop_keys_strips_aspect_ratio_on_i2v():
"""Seedance 2.5 / MiniMax H3 / Grok 1.5 i2v endpoints derive the
aspect ratio from the input image; sending the key is rejected."""