You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Minor Changes
1686b80: New LLM_TEXT_INPUT_MAX (100,000) — the input ceiling for LLM text-generation nodes (Generate Text / llm-chat, AI Writer, Generate Script). Their systemPrompt / userInput / prompt fields were capped at a flat 10,000 chars, which falsely blocked pasting a long document to summarize or rewrite; LLM contexts are far larger (Claude 200K / GPT 128K+ / Gemini 1M tokens), so the routes now accept up to 100K input chars (output stays bounded by each route's maxTokens).
f23dd98: New structuredOutputMode: "responses-json-schema" — KIE's codex/v1/responses endpoint natively enforces text.format JSON schemas (live-verified 2026-07-14, text and vision inputs). Applied to gpt-5.4, gpt-5.5, and the GPT-5.6 family (gpt-5.6-luna / gpt-5.6-terra / gpt-5.6-sol), which therefore now appear in STRUCTURED_VISION_MODELS (guaranteed-structured vision models, e.g. the describe-to-picker model gate).
Quality tiers — new VIDEO_ANALYSIS_TIERS (fast/pro), resolveVideoAnalysisModel, VIDEO_ANALYSIS_TIER_LABELS/ORDER, and DEFAULT_VIDEO_ANALYSIS_* (default pro). Users select a tier; the underlying model is never surfaced. resolveVideoAnalysisModel accepts a tier or a raw model id (back-compat) and falls back to the default.
Layered audio (breaking shape change to WindowAnalysis/VideoAnalysisResult) — a scene's audio is now an ARRAY of concurrent layers (AudioLayer[]) instead of a single {mode,content,voice} object, so simultaneous music + speech + sfx are all captured; an empty array means silence and the silence mode is removed. All in-repo consumers are updated; external consumers of VideoAnalysisResult.audio must read it as an array.
Patch Changes
44cc24d: Seedance 2 continuation references are now 2 seconds — KIE rejects r2v reference videos shorter than 1.8s for the seedance-2 family ("video duration … must be greater than or equal to 1.8 … in r2v"), which made every 1-second continuation tail fail deterministically.
New exports: SEEDANCE_2_CONTINUATION_REF_SEC (2 — the reference length every Seedance-2 chaining feature cuts and bills) and SEEDANCE_2_R2V_MIN_REF_VIDEO_SEC (1.8 — the verified provider floor).
SEEDANCE_2_EXTEND_STITCH.referenceTailSeconds is now SEEDANCE_2_CONTINUATION_REF_SEC (was 1).
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Minor Changes
774aa2d: Add reasoning-effort control and 6 new KIE LLM models (gpt-5.6-luna/terra/sol, gpt-5.5, claude-sonnet-5, claude-opus-4.8) end-to-end.
@nodaro/shared: new LLM_REASONING_EFFORTS (none/low/medium/high/xhigh/max) + LlmReasoningEffort type, EFFORT_TIER_BUMP set, and effectiveReasoningEffort() helper (clamps a requested effort down to the highest level the target model actually supports). LLM_MODELS gains 6 new entries plus per-model reasoningEfforts, supportsTemperature, and preferKie capability fields. buildLlmCreditIdentifier() / resolveLlmCreditId() take an optional reasoningEffort third argument — xhigh/max (after clamping) bill one credit tier up (economy→standard, standard→premium, premium stays premium); high is the Claude-family server default and never bumps.
@nodaro/sdk: prompt-helper wizard resources' CommonInput gains an optional reasoningEffort field, forwarded automatically by the existing request-builder spread.
@nodaro/cli: nodaro prompt wizard subcommands gain a --reasoning-effort <level> flag (model-dependent; accepts none|low|medium|high|xhigh|max).
grok-4.5 was evaluated but deferred — its KIE chat endpoint is not yet live, so no registry entry, rate row, or docs were added for it in this release.
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Minor Changes
774aa2d: Add reasoning-effort control and 6 new KIE LLM models (gpt-5.6-luna/terra/sol, gpt-5.5, claude-sonnet-5, claude-opus-4.8) end-to-end.
@nodaro/shared: new LLM_REASONING_EFFORTS (none/low/medium/high/xhigh/max) + LlmReasoningEffort type, EFFORT_TIER_BUMP set, and effectiveReasoningEffort() helper (clamps a requested effort down to the highest level the target model actually supports). LLM_MODELS gains 6 new entries plus per-model reasoningEfforts, supportsTemperature, and preferKie capability fields. buildLlmCreditIdentifier() / resolveLlmCreditId() take an optional reasoningEffort third argument — xhigh/max (after clamping) bill one credit tier up (economy→standard, standard→premium, premium stays premium); high is the Claude-family server default and never bumps.
@nodaro/sdk: prompt-helper wizard resources' CommonInput gains an optional reasoningEffort field, forwarded automatically by the existing request-builder spread.
@nodaro/cli: nodaro prompt wizard subcommands gain a --reasoning-effort <level> flag (model-dependent; accepts none|low|medium|high|xhigh|max).
grok-4.5 was evaluated but deferred — its KIE chat endpoint is not yet live, so no registry entry, rate row, or docs were added for it in this release.
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Minor Changes
774aa2d: Add reasoning-effort control and 6 new KIE LLM models (gpt-5.6-luna/terra/sol, gpt-5.5, claude-sonnet-5, claude-opus-4.8) end-to-end.
@nodaro/shared: new LLM_REASONING_EFFORTS (none/low/medium/high/xhigh/max) + LlmReasoningEffort type, EFFORT_TIER_BUMP set, and effectiveReasoningEffort() helper (clamps a requested effort down to the highest level the target model actually supports). LLM_MODELS gains 6 new entries plus per-model reasoningEfforts, supportsTemperature, and preferKie capability fields. buildLlmCreditIdentifier() / resolveLlmCreditId() take an optional reasoningEffort third argument — xhigh/max (after clamping) bill one credit tier up (economy→standard, standard→premium, premium stays premium); high is the Claude-family server default and never bumps.
@nodaro/sdk: prompt-helper wizard resources' CommonInput gains an optional reasoningEffort field, forwarded automatically by the existing request-builder spread.
@nodaro/cli: nodaro prompt wizard subcommands gain a --reasoning-effort <level> flag (model-dependent; accepts none|low|medium|high|xhigh|max).
grok-4.5 was evaluated but deferred — its KIE chat endpoint is not yet live, so no registry entry, rate row, or docs were added for it in this release.
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Minor Changes
4e9f1b2: Add boards to CHARACTER_ATTACH_COLUMNS (worker auto-attach of identity boards), the CHARACTER_PICKER_DISPLAY_ORDER display constant + characterBucketDisplayRank / sortCharacterEntriesForDisplay helpers (boards-first picker menus), and an optional display-only bucket field on ConnectedReference.
254e7ef: Add a ref-only reference role that injects only the bare reference pointer — reference image A on image nodes, @image_1 / @video_1 / @audio_1 on video nodes — with no the {label} from … phrase.
roleToPhrase("ref-only", binding) returns the bare binding; ref-only is now the first curated preset for wired-character / wired-location.
Plain image / video / audio references now default to ref-only (DEFAULT_LABEL_BY_SOURCE manual/wired-image → empty label). Character / location / object / animal asset defaults are unchanged.
Video/audio label-less body tokens resolve to the bare @kind_N (was the subject in @kind_N).
7ea3412: Variant + Role Separation for mention tokens: a non-mode 4th segment now parses as a per-mention role coexisting with the variant — @kira:1:walking:clothes attaches the walking image and injects "the clothes from …" (image and video resolvers; @lib:1:weather/rain:lighting for locations). Any role works, curated, custom, or ref-only. Every pre-existing token shape parses byte-identically; CharacterMentionTokenInfo gains an optional role field (mirroring the location parser's).
da90853: Migrate to zod 4 (4.4.x). No API changes — schema exports and their parse
behavior are unchanged. @nodaro/shared now declares zod: ^4.4.0; @nodaro/prompts's bundled zod moves 3.25 → 4.4 and its schema-builder
types use zod-4 generics (z.ZodType<Output, Input>).
Patch Changes
269d1b6: Fix reference chips when an entity node feeds one generate node via both its identity handle and its plain image handle. New sourceRefKey() scopes an entity's image-handle ref to ${nodeId}::image so the identity ref and the plain-image ref no longer collide on the node-id-keyed assembly maps (which previously dropped one non-deterministically — a literal @name:N token + lost character, or the image missing from the picker).
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Minor Changes
de3f995: Voice Changer Pro: VoiceChangerProInput.orderedVoices now accepts null entries (keep-slots). A null at position i means "keep speaker i's original voice" instead of recasting it. Additive — existing non-null callers are unaffected.
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Minor Changes
254e7ef: Add a ref-only reference role that injects only the bare reference pointer — reference image A on image nodes, @image_1 / @video_1 / @audio_1 on video nodes — with no the {label} from … phrase.
roleToPhrase("ref-only", binding) returns the bare binding; ref-only is now the first curated preset for wired-character / wired-location.
Plain image / video / audio references now default to ref-only (DEFAULT_LABEL_BY_SOURCE manual/wired-image → empty label). Character / location / object / animal asset defaults are unchanged.
Video/audio label-less body tokens resolve to the bare @kind_N (was the subject in @kind_N).
7ea3412: Variant + Role Separation for mention tokens: a non-mode 4th segment now parses as a per-mention role coexisting with the variant — @kira:1:walking:clothes attaches the walking image and injects "the clothes from …" (image and video resolvers; @lib:1:weather/rain:lighting for locations). Any role works, curated, custom, or ref-only. Every pre-existing token shape parses byte-identically; CharacterMentionTokenInfo gains an optional role field (mirroring the location parser's).
da90853: Migrate to zod 4 (4.4.x). No API changes — schema exports and their parse
behavior are unchanged. @nodaro/shared now declares zod: ^4.4.0; @nodaro/prompts's bundled zod moves 3.25 → 4.4 and its schema-builder
types use zod-4 generics (z.ZodType<Output, Input>).