Built-in AI skills
Nova Creative ships trusted workflow skills that are shared by AI Chat and Nova Workflow MCP. AI Chat selects a matching skill from the current request and canvas; MCP clients can discover the same guidance with workflow_skill_reference. Skills never grant permission to run paid providers, overwrite unrelated graph data, or bypass normal validation.
Seamless multi-clip video continuity
ID: video-seam-continuity
Use when: generated or imported video segments must behave like one continuous shot, or a boundary shows a pause, repeated frame, pose reset, motion-speed jump, duration drift, or visible micro-seam.
Direct triggers: concatVideo; seamMode; video seam; seamless video; seamless stitch; stitch clips; join video clips; merge video segments; multi-clip continuity; micro-stutter; duplicate boundary frame; conditioning frame; pose reset; motion jump; last frame extraction; бесшовная склейка; склейка видео; стык видео; микросклейка; соединить клипы; объединить видео; лишний кадр; дублируется кадр; возврат позы; рывок движения; последний кадр; плавный стык; łączenie klipów; płynne łączenie wideo.
Canvas node types: concatVideo; extractFrame.
Follow-up triggers: fix it; make it smooth; make it seamless; improve the transition; exact duration; fix the duration; исправь; почини; сделай плавнее; сделай бесшовно; улучши стык; ровно секунд; точная длительность; проблема; рывок; дёргается; дергается; napraw; płynniej.
Build or repair the workflow
- Preserve existing successful generations. When exact saved clip assets are already available, reuse their canonical
assetId,url,mime, andnameinimportVideonodes. Do not regenerate upstream clips or call paid/GPU providers unless the user explicitly requested execution and accepted the cost. - Keep segment order explicit: connect the first clip to
concatVideo.video1, the second tovideo2, and an optional third tovideo3. Do not route multiple sources into one concrete input. - For a continuous generated shot, set the concatenator data to
{"seamMode":"continuity","targetDuration":N}. Use the exact requested duration in seconds forN; use0or omittargetDurationwhen length should remain automatic. For an ordinary intentional hard cut, retain the backward-compatible"cut"mode. - If building the generation chain itself, connect
extractFramefrom the preceding clip to the next image-to-video segment's first-frame input. The node extracts the true final decodable frame; never approximate it with a fixed timestamp. - On a non-empty canvas, update only the relevant nodes and edges. Do not replace the graph or recreate unrelated nodes. If a correctly wired
concatVideoalready exists, anupdateNodeforseamModeandtargetDurationis normally sufficient.
Why continuity mode is the preferred repair
- Every input is normalized to the first clip's geometry and frame rate, square pixels,
yuv420p, constant frame rate, a common timebase, and zero-based timestamps before filter-based concatenation. - Each later segment's repeated conditioning frame is removed. Its first 0.5 seconds are locally retimed to 0.75 seconds with motion-compensated interpolation, reducing the common burst of motion without a dissolve or ghosted double characters.
- If motion interpolation is unavailable, the engine falls back to a clean continuity cut and records a warning instead of failing the workflow.
- With
targetDuration > 0, only the final still tail is trimmed or extended to reach the exact frame count. Earlier action and boundaries remain untouched.
Do not add a crossfade/dissolve as a generic seam repair: overlapping independently generated people often creates double faces, limbs, or silhouettes.
Verification after an authorized run
- Confirm H.264 video with
yuv420p, the first clip's width/height and frame rate, constant frame cadence, and zero-based timestamps. - Confirm
frameCount = round(targetDuration × fps)and exact duration when a target was requested. - Inspect roughly 0.5 seconds before through 0.75 seconds after every boundary. Reject a pause, backward pose jump, duplicated frame, scale jump, doubled face/legs, or abrupt motion burst.
- If the output still looks wrong, first verify segment order and that the next segment was conditioned on the true last frame. Do not silently rerun paid generation.