In Nuke, whenever you have any nodes that have A and B input, usually the operation will involve processing A over B.
Therefore by disabling the node function, we allow input B to pass down through the pipeline operation as input A will be blocked from being processed by Nuke.
By configuring B to keep going down the pipeline, we can easily identify the purpose of the node by simply disabling it and see the result in viewer.
Below is a simple script example to demonstrate the B pipeline process. Just disable any of the merge node to observe how the B input will pass on to the next merge node operation in the viewer.
set cut_paste_input [stack 0] version 8.0 v5 StickyNote { inputs 0 name StickyNote2 label "By keeping A\nto the left of\nthe B pipe,\nyou can attach\nany alpha to\nthe mask input\nthat is found in\nthe right side of\na node." note_font_size 24 selected true xpos 145 ypos 72 } StickyNote { inputs 0 name StickyNote3 label "This is to ensure\na clean script\nlayout without\nhaving spider\nweb layout." note_font_size 24 selected true xpos 362 ypos 71 } StickyNote { inputs 0 name StickyNote1 label "Disabling any nodes that\nhave A over B will result\nin B piping in \nthe downstream." note_font_size 24 selected true xpos 5 ypos -281 } Roto { inputs 0 output alpha curves {{{v x3f99999a} {f 0} {n {layer Root {f 0} {t x44800000 x44428000} {a} {curvegroup Bezier1 512 bezier {{cc {f 8192} {px 1 {0 0} {x4452ffff x44bf0000} {0 0} {x40800000 0} {x444a0001 x44620000} {xc0800000 0} {0 0} {x43740000 x44320002} {0 0} {0 0} {x444d0000 x44000001} {0 0} {0 0} {x44530000 x41e00000} {0 0} {0 0} {x44908001 x43e80000} {0 0} {0 0} {x44ca7fff x4383fffe} {0 0} {0 0} {x44ac7ffe x441ffffe} {0 0} {0 0} {x44da8001 x44830000} {0 0} {0 0} {x44940001 x447afffd} {0 0}}} idem} {tx 1 x4489cccd x442db333} {a osw x41200000 osf 0 str 1 spx x44800000 spy x44428000 sb 1 tt x40800000}}}}}} toolbox {selectAll { { selectAll str 1 ssx 1 ssy 1 sf 1 } { createBezier str 1 ssx 1 ssy 1 sf 1 sb 1 tt 4 } { createBezierCusped str 1 ssx 1 ssy 1 sf 1 sb 1 } { createBSpline str 1 ssx 1 ssy 1 sf 1 sb 1 } { createEllipse str 1 ssx 1 ssy 1 sf 1 sb 1 } { createRectangle str 1 ssx 1 ssy 1 sf 1 sb 1 } { createRectangleCusped str 1 ssx 1 ssy 1 sf 1 sb 1 } { brush str 1 ssx 1 ssy 1 sf 1 sb 1 } { eraser src 2 str 1 ssx 1 ssy 1 sf 1 sb 1 } { clone src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { reveal src 3 str 1 ssx 1 ssy 1 sf 1 sb 1 } { dodge src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { burn src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { blur src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { sharpen src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { smear src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } } } toolbar_brush_hardness 0.200000003 toolbar_source_transform_scale {1 1} toolbar_source_transform_center {1024 778} colorOverlay {0 0 0 0} lifetime_type "all frames" motionblur_shutter_offset_type centred source_black_outside true createNewTrack {{-1} "-1\t(none)\t-1" "1000\tNew Track Layer\t1000"} name Roto1 selected true xpos 30 ypos 140 } CheckerBoard2 { inputs 0 name CheckerBoard1 selected true xpos -268 ypos 122 } ColorWheel { inputs 0 gamma 0.45 name ColorWheel1 selected true xpos -265 ypos -71 } push $cut_paste_input Ramp { p1 {100 796} type plinear color {1 0.131032 0.606682 1} color_panelDropped true name Ramp1 selected true xpos -263 ypos -212 } Premult { name Premult2 selected true xpos -263 ypos -161 } Constant { inputs 0 channels rgb color 1 name Constant1 selected true xpos -114 ypos -278 } Merge2 { inputs 2 name Merge2 selected true xpos -114 ypos -161 } Merge2 { inputs 2 name Merge1 selected true xpos -114 ypos -47 } Merge2 { inputs 2+1 name Merge3 selected true xpos -114 ypos 146 } Viewer { frame 1 input_process false name Viewer1 selected true xpos -114 ypos 422 }