re-light
Installation
SKILL.md
re-light Skill
Replicates the Higgsfield "change the light in any video" workflow on raw Fal.ai — no wrapper. Two model calls with a human approval gate between them:
- nano-banana-2/edit relights / re-scenes a single frame (cheap, ~$0.10). Subject identity stays locked — that's why NB2, not Seedream.
- Kling O3 Pro video edit transfers that exact look onto the whole clip, frame-to-frame, audio preserved. ~$0.168/sec.
Model note: O3 Pro is the default — it markedly beats O1 on lip-sync and face stability for the same per-second price. O1 stays available via
--model o1as a faster/cheaper draft.
Hard constraints
- Clip must be 3–10 seconds. Kling's edit endpoint caps at 10s.
preprejects anything outside this — tell the user to trim to a ≤10s segment first. (Auto-chunking long clips is a deliberate v2 non-feature.) Because thevideostep tail-pads ~0.5s before Kling, clips ≤ ~9.5s get full tail protection; a 9.5–10s clip still works but pads less (it warns). - Frame-exact output, any input fps (automatic). Kling always returns 24fps and quantizes the clip length, dropping the final ~0.1–0.2s — which would desync dialogue. The
videostep handles this end to end: it probes the source's exact fps + frame count, freeze-pads the tail before Kling, then conforms Kling's 24fps result back to the source's exact fps, frame count and length and remuxes the original audio. Works for any rate (23.976 / 24 / 25 / 29.97 / 30 / 50 / 59.94 / 60). The output matches the input frame-for-frame — never hand-trim or re-conform it. It printsexact_length_matchand the frame counts; if that's everfalse, surface it. - Audio is always kept (
keep_audio: trueon the Kling call; the deliverable then carries the pristine original audio, length-matched). Standing rule for this skill. - This is a short-clip / hero-shot / B-roll tool by nature. Relighting a full piece-to-camera monologue can still drift slightly on the mouth — set that expectation; it shines on B-roll and short hero shots.