✅ Fixed: - Added required 'version': '0.4' field to all workflow JSONs - Fixed Zod validation errors for ComfyUI compatibility - All 3 workflows now pass JSON validation ✨ Added: - simple_eye_tracking.json - Basic workflow for testing installation - examples/README.md - Complete guide for using workflows - Detailed parameter explanations and customization options - Performance requirements for each workflow - Troubleshooting guide for workflow issues 🎯 Workflow Collection: - simple_eye_tracking.json - Testing and debugging (minimal GPU) - wan21_basic_tracking.json - Standard WAN 2.1 pipeline (480p, 6GB+ GPU) - wan22_advanced_full.json - Full WAN 2.2 pipeline (720p, 8GB+ GPU) All workflows are now ComfyUI-compliant and ready to use\! 🚀
281 lines
7.5 KiB
JSON
281 lines
7.5 KiB
JSON
{
|
|
"version": "0.4",
|
|
"last_node_id": 8,
|
|
"last_link_id": 12,
|
|
"nodes": [
|
|
{
|
|
"id": 1,
|
|
"type": "VideoFrameLoader",
|
|
"pos": [100, 100],
|
|
"size": {"0": 315, "1": 334},
|
|
"flags": {},
|
|
"order": 0,
|
|
"mode": 0,
|
|
"inputs": [],
|
|
"outputs": [
|
|
{"name": "frames", "type": "IMAGE", "links": [1], "shape": 3},
|
|
{"name": "metadata", "type": "VIDEO_METADATA", "links": [2], "shape": 3},
|
|
{"name": "total_frames", "type": "INT", "links": null},
|
|
{"name": "actual_fps", "type": "FLOAT", "links": null}
|
|
],
|
|
"properties": {"Node name for S&R": "VideoFrameLoader"},
|
|
"widgets_values": [
|
|
"input_video.mp4",
|
|
0,
|
|
-1,
|
|
1,
|
|
24.0,
|
|
854,
|
|
480,
|
|
"high",
|
|
true,
|
|
8,
|
|
32,
|
|
"RGB"
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653",
|
|
"title": "📹 Video Loader (WAN 2.1)"
|
|
},
|
|
{
|
|
"id": 2,
|
|
"type": "NeuralPupilTracker",
|
|
"pos": [500, 100],
|
|
"size": {"0": 315, "1": 334},
|
|
"flags": {},
|
|
"order": 1,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{"name": "image", "type": "IMAGE", "link": 1}
|
|
],
|
|
"outputs": [
|
|
{"name": "tracking_result", "type": "EYE_TRACKING_RESULT", "links": [3], "shape": 3},
|
|
{"name": "annotated_image", "type": "IMAGE", "links": [4], "shape": 3},
|
|
{"name": "gaze_visualization", "type": "IMAGE", "links": null},
|
|
{"name": "left_eye_mask", "type": "MASK", "links": [5], "shape": 3},
|
|
{"name": "right_eye_mask", "type": "MASK", "links": [6], "shape": 3}
|
|
],
|
|
"properties": {"Node name for S&R": "NeuralPupilTracker"},
|
|
"widgets_values": [
|
|
1.0,
|
|
0.7,
|
|
0.25,
|
|
300.0,
|
|
true,
|
|
true,
|
|
true,
|
|
true
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653",
|
|
"title": "👁️ Neural Pupil Tracker"
|
|
},
|
|
{
|
|
"id": 3,
|
|
"type": "AIDepthControl",
|
|
"pos": [900, 100],
|
|
"size": {"0": 315, "1": 334},
|
|
"flags": {},
|
|
"order": 2,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{"name": "image", "type": "IMAGE", "link": 1}
|
|
],
|
|
"outputs": [
|
|
{"name": "depth_map", "type": "IMAGE", "links": [7], "shape": 3},
|
|
{"name": "depth_mask", "type": "MASK", "links": null},
|
|
{"name": "confidence", "type": "FLOAT", "links": null}
|
|
],
|
|
"properties": {"Node name for S&R": "AIDepthControl"},
|
|
"widgets_values": [
|
|
"midas",
|
|
"medium",
|
|
10.0,
|
|
true,
|
|
true,
|
|
true
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653",
|
|
"title": "🌊 AI Depth Control"
|
|
},
|
|
{
|
|
"id": 4,
|
|
"type": "SmartFacialMasking",
|
|
"pos": [100, 500],
|
|
"size": {"0": 315, "1": 334},
|
|
"flags": {},
|
|
"order": 3,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{"name": "image", "type": "IMAGE", "link": 1}
|
|
],
|
|
"outputs": [
|
|
{"name": "face_mask", "type": "MASK", "links": [8], "shape": 3},
|
|
{"name": "masked_image", "type": "IMAGE", "links": null},
|
|
{"name": "exclusion_mask", "type": "MASK", "links": null},
|
|
{"name": "coverage_ratio", "type": "FLOAT", "links": null}
|
|
],
|
|
"properties": {"Node name for S&R": "SmartFacialMasking"},
|
|
"widgets_values": [
|
|
"full_face",
|
|
5.0,
|
|
false,
|
|
false,
|
|
false,
|
|
2,
|
|
true
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653",
|
|
"title": "😷 Smart Facial Masking"
|
|
},
|
|
{
|
|
"id": 5,
|
|
"type": "MultiControlNetApply",
|
|
"pos": [500, 500],
|
|
"size": {"0": 400, "1": 600},
|
|
"flags": {},
|
|
"order": 4,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{"name": "model", "type": "MODEL", "link": null},
|
|
{"name": "positive", "type": "CONDITIONING", "link": null},
|
|
{"name": "negative", "type": "CONDITIONING", "link": null},
|
|
{"name": "eye_mask", "type": "MASK", "link": 5},
|
|
{"name": "depth_map", "type": "IMAGE", "link": 7},
|
|
{"name": "face_landmarks", "type": "LANDMARKS_468", "link": null}
|
|
],
|
|
"outputs": [
|
|
{"name": "conditioned_model", "type": "MODEL", "links": null},
|
|
{"name": "positive_conditioned", "type": "CONDITIONING", "links": null},
|
|
{"name": "negative_conditioned", "type": "CONDITIONING", "links": null},
|
|
{"name": "control_info", "type": "STRING", "links": [9]}
|
|
],
|
|
"properties": {"Node name for S&R": "MultiControlNetApply"},
|
|
"widgets_values": [
|
|
1.2,
|
|
0.9,
|
|
0.6,
|
|
0.8,
|
|
0.4,
|
|
0.7,
|
|
"wan_2.1",
|
|
0.0,
|
|
1.0,
|
|
7.0
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653",
|
|
"title": "🎛️ Multi-ControlNet (WAN 2.1)"
|
|
},
|
|
{
|
|
"id": 6,
|
|
"type": "TemporalSmoother",
|
|
"pos": [100, 900],
|
|
"size": {"0": 315, "1": 334},
|
|
"flags": {},
|
|
"order": 5,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{"name": "current_frame", "type": "IMAGE", "link": 4}
|
|
],
|
|
"outputs": [
|
|
{"name": "smoothed_frame", "type": "IMAGE", "links": [10], "shape": 3},
|
|
{"name": "motion_visualization", "type": "IMAGE", "links": null},
|
|
{"name": "motion_amount", "type": "FLOAT", "links": null},
|
|
{"name": "smoothing_applied", "type": "FLOAT", "links": null}
|
|
],
|
|
"properties": {"Node name for S&R": "TemporalSmoother"},
|
|
"widgets_values": [
|
|
0.6,
|
|
5,
|
|
"exponential",
|
|
true,
|
|
true,
|
|
true
|
|
],
|
|
"color": "#432",
|
|
"bgcolor": "#653",
|
|
"title": "🔄 Temporal Smoother"
|
|
},
|
|
{
|
|
"id": 7,
|
|
"type": "PreviewImage",
|
|
"pos": [1300, 100],
|
|
"size": {"0": 315, "1": 334},
|
|
"flags": {},
|
|
"order": 6,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{"name": "images", "type": "IMAGE", "link": 10}
|
|
],
|
|
"properties": {"Node name for S&R": "PreviewImage"},
|
|
"title": "🖼️ Final Output Preview"
|
|
},
|
|
{
|
|
"id": 8,
|
|
"type": "ShowText",
|
|
"pos": [1000, 500],
|
|
"size": {"0": 315, "1": 200},
|
|
"flags": {},
|
|
"order": 7,
|
|
"mode": 0,
|
|
"inputs": [
|
|
{"name": "text", "type": "STRING", "link": 9}
|
|
],
|
|
"properties": {"Node name for S&R": "ShowText"},
|
|
"title": "📊 Control Info"
|
|
}
|
|
],
|
|
"links": [
|
|
[1, 1, 0, 2, 0, "IMAGE"],
|
|
[2, 1, 1, null, null, "VIDEO_METADATA"],
|
|
[3, 2, 0, null, null, "EYE_TRACKING_RESULT"],
|
|
[4, 2, 1, 6, 0, "IMAGE"],
|
|
[5, 2, 3, 5, 3, "MASK"],
|
|
[6, 2, 4, null, null, "MASK"],
|
|
[7, 3, 0, 5, 4, "IMAGE"],
|
|
[8, 4, 0, null, null, "MASK"],
|
|
[9, 5, 3, 8, 0, "STRING"],
|
|
[10, 6, 0, 7, 0, "IMAGE"],
|
|
[11, 1, 0, 3, 0, "IMAGE"],
|
|
[12, 1, 0, 4, 0, "IMAGE"]
|
|
],
|
|
"groups": [
|
|
{
|
|
"title": "Input Processing",
|
|
"bounding": [50, 50, 400, 400],
|
|
"color": "#3f789e"
|
|
},
|
|
{
|
|
"title": "Eye Tracking & Analysis",
|
|
"bounding": [450, 50, 500, 400],
|
|
"color": "#a1309b"
|
|
},
|
|
{
|
|
"title": "ControlNet Processing",
|
|
"bounding": [450, 450, 500, 600],
|
|
"color": "#88a1d4"
|
|
},
|
|
{
|
|
"title": "Output & Visualization",
|
|
"bounding": [1250, 50, 400, 1000],
|
|
"color": "#8a8d24"
|
|
}
|
|
],
|
|
"config": {},
|
|
"extra": {
|
|
"title": "Kanibus WAN 2.1 Basic Eye Tracking",
|
|
"description": "Basic eye tracking workflow optimized for WAN 2.1 (480p, 24fps)",
|
|
"version": "1.0.0",
|
|
"author": "Kanibus System",
|
|
"tags": ["eye-tracking", "wan-2.1", "controlnet", "basic"],
|
|
"compatibility": {
|
|
"wan_version": "2.1",
|
|
"resolution": "854x480",
|
|
"fps": 24,
|
|
"controls": ["eye_mask", "depth", "face_mask"]
|
|
}
|
|
}
|
|
} |