Nodes/KIE.ai Nodes Next/KIE • Music Brief from Video
ComfyUI Node

KIE • Music Brief from Video

A score prompt built around where your cuts are

By felipederosilva·Created 2 months ago·Updated 3 days ago· 3
KIE • Music Brief from Video
    • music_prompt
    • music_style
    • suno_custom_mode
    • instrumental
    • cue_sheet_json
    ◄events_json—►
    ◄moodhopeful, restrained►
    ◄music_stylecinematic ambient►
    ◄tempo_bpm90►
    ◄editor_cues_json►

    What it is

    A brief-writer, not a generator. KIE • Music Brief from Video takes the timing analysis of your clip, plus optional cues you wrote yourself, and produces a music prompt shaped around your picture: duration, mood, style, tempo, and a list of reviewed moments the arrangement should hit.

    It exists because the generic music prompt - "cinematic ambient, hopeful" - gets you a track, not a score. Adding "the character sees the letter at 0:04" is the difference between music that plays under your video and music that responds to it.

    How it works

    events_json is required and is a forceInput socket, so it has to be wired - it expects the timeline object that KIE • Video Event Analysis emits, containing at least a duration_seconds and a list of detected visual markers. The node reads that duration as the brief's length.

    Then it looks for editor-verified moments, in this order: your editor_cues_json (an array of {time_seconds, description}, each description capped at 250 characters and each time required to fall inside the video), otherwise any editor_verified_event entries already in the timeline. If it finds neither, it falls back to the raw visual-change markers and labels them as guesses - a "possible scene transition" or "visual activity rises" at a timestamp.

    The prompt it assembles reads like a note to a composer: instrumental score for N seconds, the mood, the musical style, an approximate tempo, explicitly no vocals, explicit instruction to leave space for dialogue and key effects, then up to twelve timed picture moments, then "begin and end cleanly for editing."

    The cue_sheet_json output records which path was taken - the source field says editor annotations, editor-reviewed vision notes, or the fallback - plus each moment. Worth reading once, because it tells you whether your brief is grounded in reality or in pixel-difference guesses.

    Inputs and outputs

    • events_json - required, from KIE • Video Event Analysis.
    • mood and music_style - free text, defaults hopeful, restrained and cinematic ambient.
    • tempo_bpm - 40 to 240.
    • editor_cues_json - optional, and the single most valuable field. Write down what actually happens.

    Outputs: music_prompt (the STRING), music_style (passed through so you can wire it to a style field separately), suno_custom_mode (always false), instrumental (always true), and cue_sheet_json.

    Those two booleans are the tell that this was built against KIE's Suno API: custom_mode=false means the model treats your prompt as a description and writes its own lyrics - which is what you want for instrumental score - and instrumental=true keeps vocals out of it. Wire them into a Suno generation node's matching inputs.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
    python -m pip install -r ComfyUI-KIE-Nodes-Next/requirements.txt
    

    Nothing here calls KIE. No key, no credits, no wait - it's string assembly. The pack's templates/video-to-music-and-sound-brief.json wires this alongside Sound Cue Sheet and Review Text if you want to see the intended shape.

    Where people get burned

    • Feeding it hand-written JSON. It validates the timeline structure. Easiest answer: always come from Video Event Analysis.
    • Skipping the cue-writing step. With no editor cues you get a brief built on "visual activity rises at 6s", which is noise dressed as insight. Watch the clip, write six cues, then run it.
    • Expecting it to match beats to frames. It produces prose with timestamps. Nothing aligns the returned track to those timestamps - that's the assembly and ducking step.
    • Reading the booleans as decoration. They're the difference between a bed and a song with someone singing over your dialogue.
    CategoryKIE Next/Studio/Audio

    Inputs (5)

    NameTypeDefaultDescription
    events_jsonSTRING—
    moodSTRINGhopeful, restrained—
    music_styleSTRINGcinematic ambient—
    tempo_bpmINT9040–240—
    editor_cues_jsonoptSTRINGOptional [{"time_seconds": 4, "description": "character sees the letter"}]

    Outputs (5)

    NameTypeDescription
    music_promptSTRING—
    music_styleSTRING—
    suno_custom_modeBOOLEAN—
    instrumentalBOOLEAN—
    cue_sheet_jsonSTRING—