Skip to content

v0.2.16

Choose a tag to compare

@github-actions github-actions released this 02 Aug 19:15
2ff4de0
  • --shot no longer submits a contradictory duration_seconds, which was
    400-ing every multi-shot job.
    duration_seconds is declared default: 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-Option field with no skip_serializing_if, so every request carried
    duration_seconds: 5 whether or not the caller asked for it, and the CLI had
    no way to express "absent" at all. Any job whose --shot durations summed to
    something other than 5 was rejected:

    400 duration_seconds (5) must equal the sum of shot durations (10) — or omit it
    

    That is every multi-shot job at the film pipeline's default 12s batch, so the
    short-film preset — featured on the landing rail — could not run and had
    never once completed. --cost-only was unaffected (it sums the shots
    locally), which is why the defect never surfaced during estimation.

    The client now omits duration_seconds entirely 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-seconds alongside --shot is 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 image can now request an aspect ratio. gen video has had
    --aspect-ratio all along; gen image had 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 with Image pixel is invalid.

    --aspect-ratio maps to the API's aspect_ratio field, whose vocabulary is
    ratios (9:16, 16:9, 1:1, …), not the image_size aliases
    (portrait_16_9). The two are different knobs; the API prefers
    aspect_ratio and validates it per-model, while image_size only 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 from image.aspect_ratios
    on GET /models — the same list the API validates against. nolgia models get <model> and models list now show that list, which they previously
    rendered nothing of for image models (NOL-345).