ComfyUI Node

toobusy Keyframe Maker

From one-line idea to a full storyboard's keyframe prompts

By nicekriss·Created about a year ago·Updated 3 days ago· 16
toobusy Keyframe Maker
  • clip
  • product_image
  • product_brief
  • shot_beats
  • visual_anchor
  • keyframe_prompts
  • keyframe_prompt_line
  • korean_story
  • transition_prompts
  • prompt_relay_block
  • shot_table_json
  • validation_report
modeProduct Commercial
output_modestandard
idea한 여성이 집안에서 향수를 공중에 뿌리자, 집이 갑자기 궁전으로 변하며 여자의 모습도 화려한 공주로 변하게된다.
stylecinematic, 고급 향수 광고, elegant composition
fixed_elements금빛 조명,웜톤
shot_count6
seed1
product_image_modedesign reference only
product_brief_override
shot_beats_override

The pre-production gap in ComfyUI is real: the tools for thinking about a video are barely there, so people plan ad campaigns in Google Docs and storyboard in Photoshop, then drag the results into the graph. toobusy Keyframe Maker drags the planning step into ComfyUI itself. You give it a one-line idea, a style note, and a shot count; it returns a full planning package - product brief, shot beats, a visual anchor, keyframe prompts, transition prompts, even a Korean story interpretation. It's the node that turns "Idea → storyboard → shoot" from a document chore into a graph.

How it works

It's a staged LLM pipeline over ComfyUI's TextGenerate node (so it needs a text-generation-capable clip): first a product brief from your idea + product image, then shot beats, then a visual anchor, then the per-keyframe image prompts, then transition prompts between keyframes. output_mode controls how deep the pipeline goes - fast stops at keyframe image prompts (fastest), standard adds transitions (for video production), full adds the Korean story interpretation (for review/explaining to a client). Each stage has its own output socket, so you can grab the pipeline at any depth.

The product_image input is worth understanding because of its three modes: exact product identity (the image defines what the product is), design reference only (the idea defines the product, the image supplies shape/material/color - the default), and packaging/form reference. There's also a product_brief_override and shot_beats_override - paste a brief or beats you already wrote and the node skips straight past that stage, which is handy when you have a real client brief you don't want the LLM re-deriving.

The inputs that matter

  • clip - the LLM. The README says it plainly: output quality is entirely downstream of what you connect here.
  • idea - the core event/transformation/product usage. This is your whole creative input; make it specific.
  • style - tone, shooting style, lighting, composition.
  • fixed_elements - what must survive every cut (product, characters, palette, background rules). Anything that should change goes in idea, not here.
  • mode - Product Commercial / Music Video / Short Drama; picks the framing templates.
  • shot_count (6) - how many keyframes/shots. 1–24.
  • output_mode - fast / standard / full as above.

Outputs and where they go

  • product_brief, shot_beats, visual_anchor, keyframe_prompts, transition_prompts - the planning text, stage by stage.
  • keyframe_prompt_line - a LIST output of individual keyframe prompts, which is the one that feeds batch generation.
  • korean_story - the full-mode narrative interpretation.
  • prompt_relay_block, shot_table_json, validation_report - structured/aggregated forms for other nodes or review.

Wire keyframe_prompt_line into a batch or a TextGenerate-driven image node, or feed keyframe_prompts into the pack's Storyboard Board. The output is text; the point is that it's the right text, structured for generation.

Install and gotchas

Standard pack install (Manager "toobusy", or clone + restart); no optional deps. The clip is the real prerequisite, and the pack's own warning applies hardest here: for ComfyUI's TextGenerate wrapper, Gemma-family models are the safe choice - a model that loads fine but can't actually run generate() will fail silently-ish, and that's a clip problem, not a Keyframe Maker bug.

Two notes from using it. First, garbage in, garbage out - the node turns a specific idea into a consistent plan, but a vague idea ("make something cool") produces six vague keyframes. The fixed_elements field is where you stop concept drift across cuts; use it. Second, the LLM's imagination is a feature until it isn't - it will happily add details you didn't specify (the subject-drift failure mode from the prompt-enhancer world). If a shot comes back wrong, tighten fixed_elements and style, not the output mode.

Categorytoobusy/Plan

Inputs (12)

NameTypeDefaultDescription
clipCLIP
modeCOMBOProduct Commercial3 options: Product Commercial, Music Video, Short Drama
output_modeCOMBOstandardfast: 가장 빠름. 키프레임 이미지 프롬프트까지만 생성 / standard: 영상 제작용. 전환 프롬프트까지 생성 / full: 설명/검수용. 한국어 스토리 해석까지 생성
ideaSTRING한 여성이 집안에서 향수를 공중에 뿌리자, 집이 갑자기 궁전으로 변하며 여자의 모습도 화려한 공주로 변하게된다.광고의 핵심 사건, 변신, 제품 사용 상황을 적습니다.
styleSTRINGcinematic, 고급 향수 광고, elegant composition광고 톤, 촬영 스타일, 조명, 구도, 장르 느낌을 적습니다.
fixed_elementsSTRING금빛 조명,웜톤모든 컷에서 반드시 유지할 제품, 인물, 색감, 배경 규칙을 적습니다. 변신해야 하는 요소는 idea에 적어주세요.
shot_countINT61–24생성할 키프레임/샷 개수입니다.
seedINT10–18446744073709550000
product_imageoptIMAGEOptional product/reference image. By default this image is used as a visual design reference for shape, material, color, and packaging tone. The core idea still decides what the product is and how it is used. To let the image define product identity, set product_image_mode to exact product identity.
product_image_modeoptCOMBOdesign reference onlyexact product identity: image defines product/category. design reference only: idea defines product/use; image supplies shape/material/color. packaging/form reference: idea defines product/use, image form is borrowed more strongly.
product_brief_overrideoptSTRING제품/주제 분석 결과를 직접 넣으면 이미지/텍스트 분석 단계를 건너뜁니다.
shot_beats_overrideoptSTRING샷 비트를 직접 넣으면 샷 비트 생성 단계를 건너뜁니다.

Outputs (10)

NameTypeDescription
product_briefSTRING
shot_beatsSTRING
visual_anchorSTRING
keyframe_promptsSTRING
keyframe_prompt_lineSTRING
korean_storySTRING
transition_promptsSTRING
prompt_relay_blockSTRING
shot_table_jsonSTRING
validation_reportSTRING