IAMCCS Cine H3 Vision Info - Local VLM
A local VLM that reads your reference frames like a script supervisor
- cine_linx
- clip
- image_1
- image_2
- image_3
- image_4
- cine_linx
The name is a lie in the best possible way: "Vision Info" doesn't call any API and needs no key. This node runs a local vision-language model - a generative Qwen3-VL loaded through ComfyUI's CLIPLoader - over up to four reference images, and writes prompt-ready continuity notes into your cine_linx bus for the MiniMax H3 prompter. Instead of you squinting at an opening frame and hand-transcribing "subject stands camera-left, warm key, shallow DOF" into the prompt, the VLM does it, phrased the way H3 likes it, with role-specific instructions telling it what to extract and what to leave alone.
It's the difference between "describe this image" and "tell me what the opening-frame authority requires at 0.00 seconds." Each of the four image slots gets a role - opening_frame, closing_frame, subject_identity, subject_performance, wardrobe_prop, environment, composition_camera, style_lighting, generic_reference, or disabled - and an injection target (global, or one of local_1..3 / local_auto) deciding where in the shotboard prompt its findings land. The analysis_mode preset (h3_prompt_ready, identity_continuity, subject_performance, scene_geography, camera_light_composition, wardrobe_props, custom) swaps in a rule block. Pick identity_continuity and the VLM is told to extract only stable visible identity evidence and not invent biography; pick scene_geography and it becomes a continuity-tracking pass on screen direction and set geography. Same images, completely different analysis, all through prompt engineering on the VLM's side.
The inputs you'll actually touch:
image_1..image_4plus their role/target pairs - defaults are opening frame, closing frame, subject identity, style/lighting. Setdisabledon any slot you don't need.clip- connect your Qwen3-VL generative CLIP here. The pack recommendsqwen3vl_4b_fp8_scaled.safetensors; it validates the CLIP exposes Qwen3-VL family markers and errors loudly with the exact filename if you load something else.temperature/max_tokens/seed- generation knobs. Defaults (0.2 / 768) are already conservative; crank temperature only if the output reads too stiff.release_vlm_after_analysis(default on) - frees the VLM after the pass so it isn't hogging VRAM when the H3 sampler needs it. Leave it on.prepared_analysis- the escape hatch. Connect pre-written analysis text and the node skips running the VLM entirely. Great for iterating on prompt phrasing without paying the vision-model tax, and it's your only option if you don't want to install a Qwen3-VL repack at all.
Output is a single cine_linx - the analysis travels inside the bus and the images are deliberately not retained after the pass, which keeps the envelope lean.
Installation is the pack story (search IAMCCS in ComfyUI Manager, or git clone https://github.com/IAMCCS/IAMCCS-nodes.git into custom_nodes, restart). The model story is separate: you need a Qwen3-VL instruct text-encoder repack on disk, loadable by ComfyUI's standard text-encoder loaders. The MiniMax H3 workflow requirements doc also expects ComfyUI-GGUF if you load Qwen3-VL from GGUF.
Where people get burned: connecting a non-Qwen3-VL CLIP and getting a hard validation error (the fix is in the error message), forgetting that release_vlm_after_analysis exists and wondering why a 22B H3 run OOMs on a warm cache, and treating h3_prompt_ready output as a literal final prompt - it's input material for the prompter, not a finished shot description. Read it, fix it, then let H3 cook.
Inputs (27)
| Name | Type | Default | Description |
|---|---|---|---|
| analysis_mode | COMBO | h3_prompt_ready | 7 options: h3_prompt_ready, identity_continuity, subject_performance, scene_geography, camera_light_composition, wardrobe_props, +1 |
| analysis_target | COMBO | global | 5 options: global, local_auto, local_1, local_2, local_3 |
| context_merge_policy | COMBO | append | 2 options: append, replace |
| template_mode | COMBO | qwen3_vl_labeled | 2 options: qwen3_vl_labeled, model_default |
| image_role_1 | COMBO | opening_frame | 10 options: opening_frame, closing_frame, subject_identity, subject_performance, wardrobe_prop, environment, +4 |
| image_target_1 | COMBO | analysis_target | 7 options: analysis_target, global, local_auto, local_1, local_2, local_3, +1 |
| image_role_2 | COMBO | closing_frame | 10 options: opening_frame, closing_frame, subject_identity, subject_performance, wardrobe_prop, environment, +4 |
| image_target_2 | COMBO | analysis_target | 7 options: analysis_target, global, local_auto, local_1, local_2, local_3, +1 |
| image_role_3 | COMBO | subject_identity | 10 options: opening_frame, closing_frame, subject_identity, subject_performance, wardrobe_prop, environment, +4 |
| image_target_3 | COMBO | analysis_target | 7 options: analysis_target, global, local_auto, local_1, local_2, local_3, +1 |
| image_role_4 | COMBO | style_lighting | 10 options: opening_frame, closing_frame, subject_identity, subject_performance, wardrobe_prop, environment, +4 |
| image_target_4 | COMBO | analysis_target | 7 options: analysis_target, global, local_auto, local_1, local_2, local_3, +1 |
| analysis_max_side | INT | 768256–1536 | — |
| seed | INT | 00–4294967295 | — |
| temperature | FLOAT | 0.200–1.5 | — |
| max_tokens | INT | 768128–4096 | — |
| prompt_enhance_mode | COMBO | context_only | 2 options: context_only, enhance_visual_context |
| release_vlm_after_analysis | BOOLEAN | true | — |
| cine_linxopt | IAMCCS_SUPERNODE_LINX | — | |
| clipopt | CLIP | — | |
| image_1opt | IMAGE | — | |
| image_2opt | IMAGE | — | |
| image_3opt | IMAGE | — | |
| image_4opt | IMAGE | — | |
| custom_analysis_promptopt | STRING | — | |
| user_directionopt | STRING | Used only when prompt_enhance_mode=enhance_visual_context. | |
| prepared_analysisopt | STRING | Optional pre-generated vision description. When connected, it is used instead of running the local VLM. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| cine_linx | IAMCCS_SUPERNODE_LINX | — |