Nodes/ComfyUI-WanAnimatePreprocessV2/Depth + Pose + Canny Combined (V2)
ComfyUI Node

Depth + Pose + Canny Combined (V2)

Self-contained ControlNet preprocessor producing depth, pose, canny, normal, layout-combined preview, AND a weighted blended map. DEPTH backends (set via `depth_backend`): - auto : prefer external_depth_map -> any wired loader -> built_in_midas - external : require external_depth_map IMAGE input - built_in_midas : MiDaS small via torch.hub (downloads ~80MB to torch hub cache, no extra node pack needed) - damodel_v2 : kijai/ComfyUI-DepthAnythingV2 (models/depthanything/) - da3 : PozzettiAndrea/ComfyUI-DepthAnythingV3 (models/depthanything3/) - delegates to V3 pack - depthcrafter : akatz-ai/ComfyUI-DepthCrafter-Nodes (models/depthcrafter/) - depth_pro : spacepxl/ComfyUI-Depth-Pro (models/depth/ml-depth-pro/) POSE source priority: external_pose_map > posemodel. NORMAL map: Sobel-from-depth (Lambertian-style RGB). No extra model. BLEND modes (research-backed, Wikipedia/W3C Compositing 1.0): - none : returns the depth_map - weighted_avg : per-channel sum normalised by total weight (perceptually balanced) - screen : 1 - prod(1 - layer_i*w_i) (avoids highlight clipping, good for stacking depth+canny gradients) - linear_dodge : min(1, sum(layer_i*w_i)) (additive; sharpens edges; preferred for pose+canny per Fooocus/SDXL controlnet community) - max : per-pixel maximum across weighted layers (preserves strongest cue per pixel) - multiply : prod(layer_i^w_i) (darkening; emphasises overlap) - overlay : combined multiply/screen S-curve on weighted_avg base - channel_split : R=depth, G=canny, B=pose (Fun-Control / IP-Adapter style multi-condition packing) OUTPUTS: depth_map, pose_map, canny_map, normal_map, combined_map (layout), blended_map (per blend_mode).

By Code2Collapse·Created 7 months ago·Updated 12 days ago· 17
Depth + Pose + Canny Combined (V2)
  • images
  • external_depth_map
  • damodel_v2
  • da3_model
  • depthcrafter_model
  • depth_pro_model
  • posemodel
  • external_pose_map
  • depth_map
  • pose_map
  • canny_map
  • normal_map
  • combined_map
  • blended_map
width832
height480
enable_depthtrue
enable_posetrue
enable_cannytrue
canny_threshold1100
canny_threshold2200
canny_aperture3
depth_colorizefalse
depth_invertfalse
pose_detection_threshold0.05
pose_draw_threshold0.30
combined_layouthorizontal_3
depth_backendauto
enable_normaltrue
normal_strength1.0
blend_modeweighted_avg
depth_weight1.00
pose_weight1.00
canny_weight1.00
normal_weight0.50
depthcrafter_steps5
depthcrafter_guidance1.0
depthcrafter_window110
depthcrafter_overlap25
CategoryWanAnimatePreprocess_V2

Inputs (33)

NameTypeDefaultDescription
imagesIMAGEInput video frames (B,H,W,3) float32 [0,1].
widthINT83264–4096Output canvas width.
heightINT48064–4096Output canvas height.
enable_depthBOOLEANtrueRun the depth pass. Requires at least ONE depth source wired.
enable_poseBOOLEANtrueRun the pose pass.
enable_cannyBOOLEANtrueRun the canny pass.
canny_threshold1INT1000–500Canny lower hysteresis threshold.
canny_threshold2INT2000–500Canny upper hysteresis threshold.
canny_apertureCOMBO3Sobel aperture for Canny (odd: 3/5/7).
depth_colorizeBOOLEANfalseIf true, colorize grayscale depth with INFERNO colormap. Skipped when external_depth_map is already RGB.
depth_invertBOOLEANfalseInvert depth (1 - depth). Use when source produces 'far = bright' but you want 'near = bright' (typical ControlNet expectation).
pose_detection_thresholdFLOAT0.050–1YOLO confidence threshold (only used when posemodel is wired).
pose_draw_thresholdFLOAT0.300–1Per-keypoint score threshold for drawing the skeleton.
combined_layoutCOMBOhorizontal_3Layout for the combined output. grid_2x2 = depth | pose // canny | original.
depth_backendCOMBOautoWhich depth backend to use. 'auto' tries: external_depth_map -> any wired loader -> built_in_midas. 'built_in_midas' makes the node fully self-contained (downloads MiDaS small via torch.hub on first use, ~80MB).
enable_normalBOOLEANtrueCompute Sobel-from-depth NORMAL map. No model required (uses depth pass output).
normal_strengthFLOAT1.00.1–10Scales the Sobel gradients before normalisation. Higher = stronger normal contrast.
blend_modeCOMBOweighted_avgHow to combine depth+pose+canny+normal into blended_map. linear_dodge=additive (sharp), screen=highlight-safe, channel_split=Fun-Control (R=depth/G=canny/B=pose).
depth_weightFLOAT1.000–4Weight of depth in blended_map.
pose_weightFLOAT1.000–4Weight of pose in blended_map.
canny_weightFLOAT1.000–4Weight of canny in blended_map.
normal_weightFLOAT0.500–4Weight of normal map in blended_map.
external_depth_mapoptIMAGEPre-computed depth IMAGE batch from ANY upstream node. Highest priority.
damodel_v2optDAMODELDepthAnything V2 model bundle from kijai/ComfyUI-DepthAnythingV2 (DownloadAndLoadDepthAnythingV2Model). Models: ComfyUI/models/depthanything/.
da3_modeloptDA3MODELDepthAnything V3 config bundle from PozzettiAndrea/ComfyUI-DepthAnythingV3. Use the V3 pack's Inference node and feed its IMAGE output into external_depth_map. Models: ComfyUI/models/depthanything3/.
depthcrafter_modeloptDEPTHCRAFTER_MODELDepthCrafter bundle from akatz-ai/ComfyUI-DepthCrafter-Nodes. Temporally consistent video depth. Models: ComfyUI/models/depthcrafter/.
depth_pro_modeloptDEPTH_PRO_MODELDepth-Pro bundle from spacepxl/ComfyUI-Depth-Pro. Metric depth. Models: ComfyUI/models/depth/ml-depth-pro/.
posemodeloptPOSEMODELFrom ONNX Detection Model Loader (V2) or animal-pose loader. Used if enable_pose=True AND no external_pose_map wired.
external_pose_mapoptIMAGEPre-rendered pose map from any upstream node (e.g. Fannovel16/comfyui_controlnet_aux DWPose / OpenPose / AnimalPose). Highest priority for pose.
depthcrafter_stepsoptINT51–100DepthCrafter only: diffusion inference steps.
depthcrafter_guidanceoptFLOAT1.00.1–10DepthCrafter only: classifier-free guidance.
depthcrafter_windowoptINT1101–200DepthCrafter only: temporal window size.
depthcrafter_overlapoptINT250–100DepthCrafter only: window overlap.

Outputs (6)

NameTypeDescription
depth_mapIMAGEPer-frame depth IMAGE batch (3-channel, height x width).
pose_mapIMAGEPer-frame pose IMAGE batch (3-channel, on black canvas).
canny_mapIMAGEPer-frame canny edge IMAGE batch (3-channel grayscale).
normal_mapIMAGEPer-frame normal map (RGB-encoded surface normals from Sobel-of-depth).
combined_mapIMAGESide-by-side combined preview per `combined_layout`.
blended_mapIMAGEWeighted blend of {depth, pose, canny, normal} per `blend_mode` and per-channel weights.