v0.2.16
-
--shotno longer submits a contradictoryduration_seconds, which was
400-ing every multi-shot job.duration_secondsis declareddefault: 5
in the OpenAPI spec — a description of what the server does when the field
is absent. The generated client materialized that default into a
non-Optionfield with noskip_serializing_if, so every request carried
duration_seconds: 5whether or not the caller asked for it, and the CLI had
no way to express "absent" at all. Any job whose--shotdurations summed to
something other than 5 was rejected:400 duration_seconds (5) must equal the sum of shot durations (10) — or omit itThat is every multi-shot job at the film pipeline's default 12s batch, so the
short-filmpreset — featured on the landing rail — could not run and had
never once completed.--cost-onlywas unaffected (it sums the shots
locally), which is why the defect never surfaced during estimation.The client now omits
duration_secondsentirely unless the caller passed
--duration-seconds, letting the server derive the length: the shot sum when
shots are given, its own 5s default when they are not. Passing
--duration-secondsalongside--shotis still allowed when it equals the
shot sum (the API accepts that, and the nolgia-agent film pipeline relies on
it); a value that contradicts the shots is now refused client-side, naming
both numbers, before any asset upload or API call happens (NOL-342). -
nolgia gen imagecan now request an aspect ratio.gen videohas had
--aspect-ratioall along;gen imagehad no way to ask for anything but
the model's native default, and putting "vertical 9:16" in the prompt does
not work (flux-pro returned 512x512, gpt-image-2 returned 1024x1024). The
three vertical UGC presets therefore had to generate square and crop in
ffmpeg, discarding ~44% of the frame, handing the composition to whoever
wrote the crop, and — on a 512x512 source — yielding a 288x512 image that
Kling rejects outright withImage pixel is invalid.--aspect-ratiomaps to the API'saspect_ratiofield, whose vocabulary is
ratios (9:16,16:9,1:1, …), not theimage_sizealiases
(portrait_16_9). The two are different knobs; the API prefers
aspect_ratioand validates it per-model, whileimage_sizeonly expresses
the 16:9/4:3/1:1 families.Bad values fail fast with a useful message instead of a server 400. A value
outside the enum lists every real ratio and points out the alias confusion; a
ratio the selected model does not publish is caught before the request is
sent and lists that model's actual options, taken fromimage.aspect_ratios
onGET /models— the same list the API validates against.nolgia models get <model>andmodels listnow show that list, which they previously
rendered nothing of for image models (NOL-345).