Nodes/tulut_comfyui_Gadget/Tulut Hand Detailer
ComfyUI Node

Tulut Hand Detailer

The dedicated pass for anime hands that never came out right

By Tulut114·Created 3 months ago·Updated about a month ago· 3
Tulut Hand Detailer
  • image
  • model
  • clip
  • vae
  • upscale_model
  • IMAGE
  • MODEL
  • CLIP
  • VAE
  • UPSCALE_MODEL
lllite_name
prompt
neg_prompt
guide_size512
steps35
cfg4.5
denoise0.50
character_index0
seed0

Hands are the part that breaks first and reads as broken most. In a full-body anime render the hands are maybe 40 pixels wide - barely enough latent budget to suggest a fist - so they come out as melted claws. The Tulut Hand Detailer is the pack's fix for exactly that: a YOLO detector that hunts hands specifically, then a crop, upscale, redraw, and paste-back loop that gives each one its own resolution budget.

How it works

Same machinery as the other Tulut detailers. A YOLOv8 detector (hand_yolov8s.pt) finds hands at 0.50 confidence, each detection gets a 25% padding crop for wrist-and-context, your upscale_model upscales the crop, it's resampled to guide_size (default 512, and that's the sweet spot for a hand crop), and a masked KSampler pass - dpmpp_2m_sde / sgm_uniform, hardcoded - re-renders at your denoise. An asymmetric feathered mask (extra padding at the top of the box) blends the result back so the seam doesn't slice through the wrist. Optional AnimaLLLite injection rides along if you pick a model in lllite_name.

The inputs that matter

  • image, model, clip, vae, upscale_model - the render, your checkpoint trio, and a real upscaler (CUGAN or any ESRGAN-family model).
  • prompt / neg_prompt - the redraw prompt. Hands are a shape problem more than a texture problem, so describe the pose if you can ("hands resting on hips", "gripping a sword"). Vague prompts give the sampler nothing to aim at.
  • denoise - default 0.5, the highest in the pack. Hands need a fairly heavy redraw to fix; start at the default and back off if fingers start looking re-drawn rather than repaired.
  • guide_size - default 512. Don't chase higher numbers; a hand doesn't need a 1024 crop and you'll pay for it in VRAM.
  • steps / cfg / seed - sampler settings; character_index picks which detected hand (0 = all, sorted left-to-right); lllite_name optional AnimaLLLite.

Outputs: the fixed IMAGE plus pass-through MODEL, CLIP, VAE, UPSCALE_MODEL, so you can stack a hand pass after a face pass without rerunning loaders.

Install and setup

cd ComfyUI/custom_nodes
git clone https://github.com/Tulut114/tulut_comfyui_Gadget

Restart ComfyUI. Then the pack's standing trap: ultralytics and opencv-python aren't in requirements.txt (only Pillow is), so install them in your ComfyUI environment or the detailer nodes don't register at all. The detector goes in ComfyUI/models/ultralytics/bbox/ under the exact name the code loads - here that's hand_yolov8s.pt, which the README and code agree on for once.

Troubleshooting

  • Image returns unchanged. Missing model file or wrong filename = a console warning and the original image back, no error. Check models/ultralytics/bbox/ first.
  • Some hands get fixed, others don't. Detections below the 0.50 confidence are silently skipped, and the node has no per-run preview. Run the pack's Tulut YOLO Preview to see what's actually detected and in what order - if a hand is being missed, that's a detector problem, not a sampler problem.
  • Wrong finger count after the pass. Denoise too high is regenerating, not repairing. Drop toward 0.4 and keep the prompt descriptive.
  • The "same seed" trap. All detected hands re-render on the same seed, which is fine for a single character but the classic auto-detailer behavior to know about if you're fixing a crowd (the KB's detailing doc has the full clone-problem rundown).

Honestly, this is the node from the pack most people will actually reach for - broken hands are the most visible anime failure after faces, and a dedicated hand detector with a decent denoise does a genuinely better job than trying to fold hand repair into a whole-frame pass.

CategoryTulut/Detailer

Inputs (14)

NameTypeDefaultDescription
imageIMAGE
modelMODEL
clipCLIP
vaeVAE
upscale_modelUPSCALE_MODEL
lllite_nameCOMBO1 options: none
promptSTRING
neg_promptSTRING
guide_sizeINT512256–1024
stepsINT351–100
cfgFLOAT4.51–12
denoiseFLOAT0.500.01–1
character_indexINT00–10
seedINT00–18446744073709550000

Outputs (5)

NameTypeDescription
IMAGEIMAGE
MODELMODEL
CLIPCLIP
VAEVAE
UPSCALE_MODELUPSCALE_MODEL