Skip to content

Nodes ยท Masks

Crucible

Masksv1core

Overview

The matting engine, as a node. Click the subject; correct what is wrong. The correction vocabulary โ€” Fix, Guide, Refine, Exclude โ€” decides which control to reach for, and the tool says why when a correction has no effect.

How to

  1. View the node and click the subject.
  2. Wrong object โ†’ Fix. Wrong shape โ†’ Guide. Wrong softness โ†’ Refine. Should not have looked there โ†’ Exclude.
  3. Chain a CrucibleRefine when the edge wants separate treatment.

Inputs

InputWhat it takes
inthe image this node works on
shapeโ€”
masklimits the effect to this matte โ€” the engine's universal mask slot, applied for every node that declares it

Outputs

OutputType
outImage

Parameters

ParameterTypeDefaultWhat it does
viewChoiceimageimage passes RGB through with the matte in alpha (what you comp with); alpha shows the matte itself on black (what you judge it by).
band_opacityFloat0.65Not documented yet.
band_erodeFloat0Not documented yet.
band_dilateFloat0Not documented yet.
roleChoicecompositeWhat the matte is FOR โ€” and it is not cosmetic, it changes which stages run. composite: true float alpha, edge matting and background decontamination, for a matte going into a comp. occlusion: skips both, runs coarse and deliberately fat, for holding a mover out of a camera solve โ€” a conservative region beats a beautiful edge there. holdout / garbage: coarse and generous, for excluding an area.
detailChoicepartWhich nested subject you meant. One click is ambiguous โ€” the person, the jacket, or the collar โ€” so identification produces all three and this picks. If it grabbed too much, try 'part'; too little, 'whole'. Cheaper than adding a correction.
matteChoiceautoNot documented yet.
consistencyFloat0.6How hard the matte holds still where nothing is moving. High stops hair crawling frame to frame; the blend is region-adaptive, so a genuinely moving edge still tracks rather than smearing. 0 is a full bypass โ€” the right answer when the hair really is moving that fast.
garbage_shapesShapesVec::new(EXCLUDE regions โ€” "never look here". Draw over the thing in the corner of the plate that keeps getting picked up, once, instead of re-explaining it every frame. It CONSTRAINS identification rather than being cut out of the result, so you can draw the boundary straight through your subject: the edge still solves properly up to the line and simply finds nothing past it, with no aliased slice through hair. Screen-space and held still by default (a garbage matte is usually lens-fixed); per-shape lifetime bounds it to the frames it's needed. Not the same as role=garbage, which applies to a whole matte.
retain_shapesShapesVec::new(INCLUDE regions โ€” "always consider here". Ring a part of the subject that keeps getting dropped and it is kept, whatever identification decided. Where an Include and an Exclude overlap, Include wins, so a broad Exclude over a busy corner with the one real thing ringed inside it works. An Include says WHERE, not what the subject looks like โ€” it won't drag identification toward its colour and take everything else that shade.
guide_shapesShapesVec::new(Not documented yet.
guide_strengthFloat1Not documented yet.
guide_falloffFloat48Not documented yet.
promptsTextString::new(The corrections you have made, in order โ€” the ledger. The matte is a pure function of this list, so the same clicks always give the same matte, and removing one bad click from ten minutes ago keeps the nine good ones after it.
paint_strokesTextString::new(Not documented yet.
refine_strokesTextString::new(Not documented yet.
tracksTextString::new(The baked matte, packed run-length. Written by ๐Ÿœ› Analyze; read by the node every frame. Not meant to be edited by hand.
frame_startFloat0The project frame the bake starts at โ€” set by ๐Ÿœ› Analyze.
statusTextString::new(Not documented yet.
bake_dirTextString::new(Not documented yet.
bake_prefixText"crucible".into(Not documented yet.
bake_formatChoiceexr16Not documented yet.
bake_firstFloat-1Not documented yet.
bake_lastFloat-1Not documented yet.
bindingTextString::new(Not documented yet.
tracks_hiddenText"[]".into(Not documented yet.

Layers

  • crucible
  • crucibleCore
  • crucibleBand

Known edges

Two stages are still reference-* placeholders, so Crucible is not shippable yet โ€” see crucible.

See also

  • Crucible โ€” How to pull a matte on a shot that never saw a screen.