From comfyui-node-dev
Use when asking about core node types, category conventions, tensor formats, ensuring custom nodes are compatible with ComfyUI's core ecosystem, IMAGE/MASK/LATENT type formats, or how built-in nodes work. Triggers on "what format is IMAGE", "compatible with core nodes", "standard type", "기본 노드 호환", "타입 포맷".
How this skill is triggered — by the user, by Claude, or both
Slash command
/comfyui-node-dev:comfyui-core-compatibilityThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
| Type | Shape | Value Range | V3 Type |
| Type | Shape | Value Range | V3 Type |
|---|---|---|---|
| IMAGE | [B,H,W,C] | [0.0, 1.0] | io.Image |
| MASK | [B,H,W] | [0.0, 1.0] | io.Mask |
| LATENT | {"samples": [B,C,H,W]} | - | io.Latent |
| AUDIO | {"waveform": [B,C,T], "sample_rate": int} | - | io.Audio |
| Type | Purpose | V3 Type |
|---|---|---|
| MODEL | Diffusion model (U-Net, DiT) | io.Model |
| CLIP | Text encoder model | io.Clip |
| VAE | Variational Autoencoder | io.Vae |
| CONTROL_NET | ControlNet model | io.ControlNet |
| Type | Purpose | V3 Type |
|---|---|---|
| CONDITIONING | CLIP conditioning data | io.Conditioning |
| SAMPLER | Sampling algorithm | io.Sampler |
| SIGMAS | Noise schedule [steps+1] | io.Sigmas |
| NOISE | Noise generator | io.Noise |
| GUIDER | Sampling guide (CFG) | io.Guider |
io.String, io.Int, io.Float, io.Boolean
image/preprocessors - Canny, depth, poseimage/postprocessing - Upscaling, enhancementimage/transform - Resize, crop, rotateutils/string, utils/primitive, utils/logic, utils/mathadvanced/model, advanced/sampling, advanced/latentconditioning, loaders, samplingcustom/yourname, tools/specific, integration/service
# ComfyUI: [B,H,W,C] (channels last)
# PyTorch: [B,C,H,W] (channels first)
# Conversion
pytorch_image = comfy_image.movedim(-1, 1) # ComfyUI -> PyTorch
comfy_image = pytorch_image.movedim(1, -1) # PyTorch -> ComfyUI
[B,C,H,W] inside {"samples": tensor} dict
import comfy.model_management
device = comfy.model_management.get_torch_device()
intermediate = comfy.model_management.intermediate_device()
# Usage
tensor_gpu = tensor.to(device) # Move to GPU
result = process(tensor_gpu) # Process
result_cpu = result.to(intermediate) # Move back to free GPU
# WRONG: [B,C,H,W]
image_wrong = torch.randn(1, 3, 512, 512)
# CORRECT: [B,H,W,C]
image_correct = torch.randn(1, 512, 512, 3)
# WRONG
def process(model):
model.something = new_value
return model
# CORRECT
def process(model):
m = model.clone()
m.something = new_value
return m
# WRONG: Keep on GPU
result = process_on_gpu(image.to(device))
return io.NodeOutput(result)
# CORRECT: Move back
result = process_on_gpu(image.to(device))
return io.NodeOutput(result.to(intermediate_device()))
npx claudepluginhub juyeongyi/jylee_claude_marketplace --plugin comfyui-node-devCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.