ComfyUI Node

🧠 Kanibus Master

The 'all-in-one' eye tracking node that's half real, half promise

By kanibusΒ·Created about a year agoΒ·Updated about a year agoΒ· 5
🧠 Kanibus Master
  • image
  • video_frames
  • video_metadata
  • kanibus_result
  • processed_image
  • eye_mask
  • depth_map
  • normal_map
  • pose_visualization
  • controlnet_conditioning
  • processing_report
β—„input_sourceimageβ–Ί
β—„pipeline_modereal_timeβ–Ί
β—„wan_versionauto_detectβ–Ί
β—„target_fps24.0β–Ί
β—„enable_eye_trackingtrueβ–Ί
β—„enable_face_trackingtrueβ–Ί
β—„enable_body_trackingfalseβ–Ί
β—„enable_object_trackingfalseβ–Ί
β—„enable_depth_estimationtrueβ–Ί
β—„enable_emotion_analysisfalseβ–Ί
β—„enable_hand_trackingfalseβ–Ί
β—„tracking_qualityhighβ–Ί
β—„depth_qualitymediumβ–Ί
β—„temporal_smoothing0.7β–Ί
β—„eye_mask_weight1.1β–Ί
β—„depth_weight0.9β–Ί
β—„canny_weight0.6β–Ί
β—„sketch_weight1.2β–Ί
β—„landmarks_weight0.8β–Ί
β—„pose_weight0.7β–Ί
β—„hands_weight0.5β–Ί
β—„model_preferencet2i_adapterβ–Ί
β—„batch_size1β–Ί
β—„enable_cachingtrueβ–Ί
β—„enable_gpu_optimizationtrueβ–Ί

Kanibus Master is the poster child for the kanibus/kanibus pack, and it's the node where you most need to know what you're actually getting. The README sells it as a "primary orchestrator" that fuses eye tracking, depth, normals, pose, emotion and object tracking into ControlNet-ready conditioning for WAN 2.1/2.2. The code is more honest: it genuinely runs real eye tracking, then fills most of the rest with placeholders.

Here's the deal in one line - the pack is a "vibecoded" Claude-generated repo (the source literally says "Generated by Claude Flow Hive Mind", last commit Aug 2025), and Master is the hub where the working parts meet the not-yet-working parts. Know which is which and you can still get value out of it.

What it actually does

You feed it a source and a bunch of feature toggles, it pushes each frame through a pipeline, and hands you back a kanibus_result, masks, maps and a controlnet_conditioning output. The real work:

  • Eye tracking is real. It calls NeuralPupilTracker (MediaPipe FaceMesh with iris landmarks), so eye_mask and the tracking inside kanibus_result are genuine.
  • Everything else is placeholder. Depth, normals, pose, emotions, hands and objects are generated by _generate_placeholder_* functions in the source - canned values that ignore your actual image. The depth "map" is a gradient ramp, not a MiDaS/Depth Anything output.
  • Webcam mode doesn't exist yet. Set input_source to webcam and the code logs "not yet implemented" and returns black frames. The README's realtime_webcam.json example is aspirational.
  • controlnet_conditioning is not real conditioning. It's a list of Python dicts describing what could be applied. It wires only into the pack's own MultiControlNetApply node, which - check the source - builds those dicts and then returns your model and conditioning unchanged. Nothing actually gets conditioned.

That last point is the one that bites. If you plug controlnet_conditioning straight into a KSampler you'll get a type error; the output is a custom CONDITIONING-shaped thing that isn't a CONDITIONING.

The inputs that matter

input_source (image, video, webcam) and pipeline_mode (real_time, batch, streaming, analysis) pick the path, but in practice only image with a wired image input, or video with video_frames + video_metadata from the pack's VideoFrameLoader, do anything today. The feature toggles are worth knowing: enable_eye_tracking (on) and enable_face_tracking (on) are the live ones; enable_depth_estimation is on but produces the placeholder ramp.

The weight sliders (eye_mask_weight, depth_weight, canny_weight, sketch_weight, landmarks_weight, pose_weight, hands_weight) feed _create_controlnet_conditioning's dicts. They're wired and real within the pack's own apply node - they just don't reach a sampler. tracking_quality and temporal_smoothing do affect the real eye tracking (smoothing is passed straight to the pupil tracker).

Installing it

Same as the rest of the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/kanibus/kanibus
cd kanibus          # note: lowercase. The README says "cd Kanibus" - wrong on Linux/Mac.
pip install -r requirements.txt
python install.py

Restart ComfyUI and look for the Kanibus category. ComfyUI Manager can install it too - search "Kanibus". The full requirements.txt is heavy (mediapipe, torch, transformers, diffusers, ultralytics, timm, numba…) and may collide with your ComfyUI environment; if the install throws, the repo ships requirements_minimal.txt as the fallback. The README insists you must download ~5.6GB of SD 1.5 ControlNet models before anything works - the shipped code never loads them, so don't let that scare you off the nodes that do work.

Troubleshooting

  • Black/blank outputs for depth or normals: that's the placeholder working as designed, not a bug. Use a real depth node instead.
  • Webcam returns nothing useful: not implemented yet, regardless of what the docs imply.
  • No Kanibus category after install: check the console for an import error (usually a missing mediapipe or torch dependency), fix, restart.

If your actual goal is eye-tracking-driven video control, Master is a convenient wrapper, but you'll get further wiring NeuralPupilTracker directly and feeding its masks to a real ControlNet setup. Master is the demo floor - the individual nodes are where the substance is.

CategoryKanibus/Master

Inputs (28)

NameTypeDefaultDescription
input_sourceCOMBOimage3 options: image, video, webcam
pipeline_modeCOMBOreal_time4 options: real_time, batch, streaming, analysis
wan_versionCOMBOauto_detect3 options: wan_2.1, wan_2.2, auto_detect
target_fpsFLOAT24.01–120β€”
imageoptIMAGEβ€”
video_framesoptIMAGEβ€”
video_metadataoptVIDEO_METADATAβ€”
enable_eye_trackingoptBOOLEANtrueβ€”
enable_face_trackingoptBOOLEANtrueβ€”
enable_body_trackingoptBOOLEANfalseβ€”
enable_object_trackingoptBOOLEANfalseβ€”
enable_depth_estimationoptBOOLEANtrueβ€”
enable_emotion_analysisoptBOOLEANfalseβ€”
enable_hand_trackingoptBOOLEANfalseβ€”
tracking_qualityoptCOMBOhigh4 options: low, medium, high, ultra
depth_qualityoptCOMBOmedium3 options: low, medium, high
temporal_smoothingoptFLOAT0.70–1β€”
eye_mask_weightoptFLOAT1.10–3β€”
depth_weightoptFLOAT0.90–3β€”
canny_weightoptFLOAT0.60–3β€”
sketch_weightoptFLOAT1.20–3β€”
landmarks_weightoptFLOAT0.80–3β€”
pose_weightoptFLOAT0.70–3β€”
hands_weightoptFLOAT0.50–3β€”
model_preferenceoptCOMBOt2i_adapter3 options: t2i_adapter, legacy_controlnet, auto
batch_sizeoptINT11–16β€”
enable_cachingoptBOOLEANtrueβ€”
enable_gpu_optimizationoptBOOLEANtrueβ€”

Outputs (8)

NameTypeDescription
kanibus_resultKANIBUS_RESULTβ€”
processed_imageIMAGEβ€”
eye_maskMASKβ€”
depth_mapIMAGEβ€”
normal_mapIMAGEβ€”
pose_visualizationIMAGEβ€”
controlnet_conditioningCONDITIONINGβ€”
processing_reportSTRINGβ€”