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
- View the node and click the subject.
- Wrong object โ Fix. Wrong shape โ Guide. Wrong softness โ Refine. Should not have looked there โ Exclude.
- Chain a CrucibleRefine when the edge wants separate treatment.
Inputs
| Input | What it takes |
|---|---|
| in | the image this node works on |
| shape | โ |
| mask | limits the effect to this matte โ the engine's universal mask slot, applied for every node that declares it |
Outputs
| Output | Type |
|---|---|
| out | Image |
Parameters
| Parameter | Type | Default | What it does |
|---|---|---|---|
| view | Choice | image | image 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_opacity | Float | 0.65 | Not documented yet. |
| band_erode | Float | 0 | Not documented yet. |
| band_dilate | Float | 0 | Not documented yet. |
| role | Choice | composite | What 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. |
| detail | Choice | part | Which 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. |
| matte | Choice | auto | Not documented yet. |
| consistency | Float | 0.6 | How 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_shapes | Shapes | Vec::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_shapes | Shapes | Vec::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_shapes | Shapes | Vec::new( | Not documented yet. |
| guide_strength | Float | 1 | Not documented yet. |
| guide_falloff | Float | 48 | Not documented yet. |
| prompts | Text | String::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_strokes | Text | String::new( | Not documented yet. |
| refine_strokes | Text | String::new( | Not documented yet. |
| tracks | Text | String::new( | The baked matte, packed run-length. Written by ๐ Analyze; read by the node every frame. Not meant to be edited by hand. |
| frame_start | Float | 0 | The project frame the bake starts at โ set by ๐ Analyze. |
| status | Text | String::new( | Not documented yet. |
| bake_dir | Text | String::new( | Not documented yet. |
| bake_prefix | Text | "crucible".into( | Not documented yet. |
| bake_format | Choice | exr16 | Not documented yet. |
| bake_first | Float | -1 | Not documented yet. |
| bake_last | Float | -1 | Not documented yet. |
| binding | Text | String::new( | Not documented yet. |
| tracks_hidden | Text | "[]".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.