Nodes/ComfyTV/Cutout
ComfyUI Node

Cutout

One-click background removal on the ComfyTV canvas

By jtydhr88·Created 3 months ago·Updated about 15 hours ago· 725
Cutout
  • image
  • image
force_run_token0
project_id
parent_output_id0
workflowBiRefNet Cutout
custom_params{}

Cutout is ComfyTV's AI background remover: wire an image, hit ▶ Run, and get back a COMFYTV_IMAGE with real alpha transparency - the subject isolated, background gone, no prompt, no mask. It's the whole-image matting counterpart to Erase (painted local removal), and it's the first step of the product-shot and compositing pipelines: cut the subject out, then Relight, Upscale, or drop it onto a new background.

The KB's background-removal essay is the right context here: this is the most commoditized operation in the ecosystem, and BiRefNet is the default recommendation - ComfyUI even shipped it in core. This node rides exactly that. The honest caveat the KB drills home is which failure you can tolerate: hair, fur, and semi-transparency are where these models still fight, and BiRefNet is good but not magic on fine edges.

How it works

Under the hood it runs a real ComfyUI workflow - the pack ships workflows/cutout/birefnet-cutout.json - via the same stage-workflow runner the generative stages use. The workflow combo input picks the segmentation backend; the only option that ships is BiRefNet Cutout, which is what the default points at. On Run, BiRefNet segments the subject and the stage emits a transparent-PNG snapshot into the project. The other input, custom_params, is the hidden JSON bag of user-defined parameter overrides from the sidebar - leave it alone unless you're deliberately overriding model params.

Input: image (COMFYTV_IMAGE). Output: image (COMFYTV_IMAGE, with alpha).

Before the first run you need the model - BiRefNet's birefnet.safetensors in ComfyUI/models/background_removal/:

# put birefnet.safetensors into ComfyUI/models/background_removal/
# download: https://huggingface.co/Comfy-Org/BiRefNet

It's the one node in this batch with a real model dependency, and the pack's docs call it out explicitly.

Installing it

cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV

Restart the ComfyUI backend (a real restart, not a tab refresh); nodes appear under the ComfyTV category. ComfyUI Manager finds the pack by searching "ComfyTV". The README's two recurring gotchas: on Desktop/macOS/multi-install setups the relative cd can clone into the wrong instance - read the startup log for the base path it loaded and clone into that absolute path, quoted - and the first level of custom_nodes/ComfyTV/ must contain __init__.py, not a nested ComfyTV/ComfyTV/ folder. No Python dependencies to install - the segmentation rides on the bundled workflow and ComfyUI's own BiRefNet support.

Troubleshooting and tips

  • Halos on edges. The pack's FAQ is blunt: upscale first, or clean edges with Inpaint. Flyaway hair is exactly where the KB says these models still stumble.
  • Nothing runs / error about the model. Check background_removal/birefnet.safetensors exists. That file is the difference between a cutout and a no-op.
  • Cutout vs Erase. Cutout = automatic whole-image matting; Erase = painted local removal. If you only want the background gone, Cutout; if you want to surgically remove part of the subject too, start with Erase.
  • Where it shines. Product/person isolation before compositing or Relight. That's the workflow this node exists to start.
CategoryComfyTV/Image

Inputs (6)

NameTypeDefaultDescription
force_run_tokenINT00–2147483647Internal — bumped on Run to invalidate ComfyUI's input cache.
project_idSTRINGInternal — populated by the projectStore on the frontend.
parent_output_idINT00–2147483647Internal — lineage parent set by spawn handlers on the frontend.
workflowCOMBOBiRefNet CutoutWhich segmentation backend to run.
custom_paramsSTRING{}Internal — JSON of user-defined parameter attachments/values for this node.
imageoptCOMFYTV_IMAGE

Outputs (1)

NameTypeDescription
imageCOMFYTV_IMAGE