DOGMA Nodes
Custom ComfyUI nodes for DOGMA AI video workflows.
Nodes (191)
DOGMA's v31 local prompt builder
The prompt that changes shape depending on what you're repairing
Crop once, upscale once, keep the object whole — DOGMA v39 Adaptive Crops
DOGMA v40 Multi-Instance Crops
The adapter node that turns planner output into the old family cropper
The no-op fix that keeps a crop graph from dying on an empty sector
Period lock, kind awareness, and one line that says 'do nothing'
Turning a VLM's four scene fixes into six SAM slots, in the right order
One node, eight numbers, different tuning for cars, facades and asphalt
The stage barrier that evicts SAM before Klein moves in
Tiling a 2x upscale so the Flux latent grid never lands off-centre
Check four tiles before you commit to the whole grid
One noise field for every tile — why your seams were never a mask problem
One 4B audit, three sectors, and fallback masks when SAM finds nothing
The node that stops your VLM auditing nothing
Crops by family, straight from a mask and a dropdown
A one-line node that stops an unused sector from editing your image
Per-category detail settings, looked up from a table instead of guessed
Full 4-step denoise for everyone, and a blend alpha per surface
Same interface, retuned numbers — v13 lets architecture actually get fixed
V21 hands you the edit prompt and drops SAM from the job
Type a category, get a hand-tuned edit policy
Full-noise local rebuild, but only for objects
The settings node that finally respects your mask
The node that removes the context padding it insisted you add
Stop averaging your overlaps into mush
Deleting half your VLM's caption on purpose
Turn a mask dump into grouped 2K tiles
A rehearsal stage so your 40-tile run doesn't surprise you
An alpha that decides itself, and never trusts a crop
The version that throws the failed tile away
One node holding both halves of a Klein run
The caption contract your crops get held to
Take the texture, keep your geometry
A wide mask to sample through, a tight one to paste with
DOGMA DualMask v56.6 and the 12-pixel difference that matters
Don't let the model invent detail where the source is flat
Vetoing the bus the model invented
When the generated image quietly restages the scene
Full-strength core, dialled-back feather
Pure geometry, no colour matching, no cleverness
One mask in, two masks out (and one of them must be opaque)
The mask padding is chosen by what the object is
The node that refuses to hand you an empty mask
Six hard-coded category slots and the SAM prompts that find them
DOGMA v37 Fixed Category Prompt
DOGMA Semantic Plan v23
DOGMAGenerativeCategoryPromptV54
DOGMA v39 Global Controls
DOGMA Global Low-Frequency Lock FAST v24
DOGMA Global Refine Mask v14
DOGMA v35.1 Global Test Controls
DOGMA v39 Global Detail Donor
DOGMA Harmonized Stitch Crops
A node that does nothing, and why you need it
DOGMA Image After Text
DOGMA Mapped Image List → Batch v25
DOGMA Image VRAM Cleanup v14
DOGMA Inpaint Mask v54.3
Building the evidence sheet your VLM needs to judge a mask
DOGMA Instance Chunk Crops v54.1
DOGMA v54.2 Native-HD Spatial Chunks
DOGMA Instance Chunk Crops v54.5
One verdict per mask, or nothing at all
DOGMA v38 Inventory Resize
DOGMA v35.1 Latent By Denoise
The switch that saves you the entire diffusion pass
Don't caption a slot with no masks
DOGMA Local Prompt v26
DOGMA Local Prompt v26.1 — Text Safe
The DOGMA prompt node that stops Klein redecorating your car
The shorter local prompt, and why shorter wins here
Stop telling the model what's broken — give it a target instead
DOGMA's canned per-category repair prompt
One denoise number for a whole scene is how you wreck the sky
The local prompt node you can stop tuning
Keep the local repair pass off your sky, grass and storefronts
The one-line gate that throws away a bad local edit
The gate that keeps your original crop
When Klein rewrites your crop, this node rations the damage
Unload the VLM before Klein, or watch your second pass OOM
A PASS/FAIL audit that can only ever make your masks safer
The fussiest PASS in ComfyUI
Build the contact sheet that lets a VLM actually audit your masks
The 2x2 sheet that decides whether your mask survives
Encode the crop with the mask already attached
The soft version, and when soft is what you want
The mask was see-through
The one-line fix for 'Expected all tensors to be on the same device'
Who owns pixel 512 when two categories both want it
See the mask before you burn a GPU pass on it
The mask sanity check that shows you the image underneath
When SAM misses the broken part, let the audit box rescue it
Cutting a 4K frame into crops that actually line up when you paste them back
A prompt that deliberately says nothing about the picture
Catching the building your upscaler invented
Cut the car out whole instead of tiling it
Same whole-object rule, fewer and denser crops
The crop node with nothing left to configure
One category in, every dial out
Fewer, denser groups and no VLM call at all
The 18-word limit that fixes local prompts
Ask the VLM for a 14-word defect, nothing else
Never describe the damage
The paste-back node that respects no-op crops
Paste repaired crops back without a translucent halo
Unload the big models before SAM eats your VRAM
Stop the road pass from eating your cars
Same protections, fewer surprises
Splitting road people from pavement people
Text is protection-only, and everything gets out of its way
Give edge objects some pixel context to lean on
Object, structure and surface get different rules
Same node, tuned to miss nothing
Feather everything, hide the seams
Paste at native resolution, resample nothing twice
Pasting the repair back without a halo
The two-wire fix for mask size mismatches
Pin your working master to an exact 2x
One text box your whole pipeline reads from
One boolean to flip a whole workflow between test and full run
Paste the repair back with an opaque core
Stop feeding your 5K master to the segmenter
Your SAM mask is lying about what it owns
Park the mask on CPU, unload before the next pass
DOGMA Sampler Select
Sweep the whole frame, then stare at the corners
Turn a VLM's rambling into six labels
The strict parser for your VLM's GROUP lines
Four groups, plus kinds and confidence thresholds
A fixed vocabulary instead of the VLM's own words
When your VLM ignores the format, this still plans
Tuned to find the tiny stuff
If the model didn't see it, it doesn't get planned
The planner that reserves a slot to protect your signage
Few big crops, cut at full resolution
Same cleanup, one more slot
Normalize three masks, delete nothing
Three local targets, and a slot layout that says don't touch the rest
The planner that refuses to let AI redraw your signage
Finite object caps, and a prompt that guarantees zero detections
The same planner, four live slots
The planner that turns the detection recall up
One category in, twelve knobs out — and a Milan 1970s surprise
The text identity lock, explained
Tune the settings on four tiles instead of four hundred
One union mask, a handful of big crops, no per-instance loop
The same region crop, plus the original as an identity witness
Look at your masks before you spend an hour sampling
The original five-slot planner, and its forbidden-word list
Six slots, family dedupe, and a priority order you should understand
Turning a scene inventory into five wired categories
Park the clean source at a fixed size and stop guessing
Move every tile seam by half a stride and watch the grid disappear
Feather inward only, so nothing outside the mask can move
Pasting the repair back without a visible rectangle
The plain paste-back, and the seam controls that actually matter
The five-line node that changes how your graph runs
DOGMA TileBundle v56.7 Generates Nothing — It Just Refuses to Let Your Tile Captions Slip Out of Order
Keep the source's colour, keep the model's detail
The slow one that v23.1 replaced — and when it's still right
Throw away the generated low frequencies on purpose
InpaintModelConditioning for 4K crops without a VAE that eats your VRAM
Kill the tile seam by nailing each tile's border back to the source
Turning a chatty VLM tile report into a prompt that can't invent anything
Put the noun first, because the model only reads the start
The repair-pass prompt writer that can say 'do nothing'
Strip the VLM report down to nouns, then protect the rest
When the VLM calls a car four different things — canonicalise the terms first
Say what era this is before you say what to restore
No dehazing, no silhouette outlines, no bright rings
Only mention the period if the tile actually contains the thing
If the VLM says 'nothing to fix', keep the source pixel-for-pixel
Five masks in, one noise mask and a prompt out — the template tile pass
Colour-matching each tile without painting halos — non-spatial stats only
Get the Tiles Back, In Order, With Every Caption on One Page
Unload the VLM before Klein starts, or watch 8GB of weights fight for the same card
How to feed 2K-4K tiles instead of a hundred little boxes
The undo button for a shifted tile grid (and why it needs the meta, not a number)
Stripping a VLM answer down to one usable phrase
Every instance crop the same 2K before Klein sees it — that's the V50 trick
Stop running SAM on categories that don't exist — the 64-pixel bypass
The prompt you write for the VLM, not the model — and it's the one that decides everything
Your VLM writes the inventory, this node turns it into six SAM jobs
The prompt that stops your tile refiner inventing windows
Your SAM 'road' mask ate the cars — this node gives them back
The VLM prompt that makes SAM find the tiny stuff
The node that picks which masks your SAM pass hunts for
Your VLM doesn't need a 4000px photo — this node is the bouncer
Lock Frames for WAN VACE Without Fighting the 4n+1 Wall
Give Your WAN VACE Clip Its Original Frame Count Back
DOGMA Nodes 1.0.7 — one VLM load per image list
Use workflow V56.19. DOGMAVLMListV568 owns one ModernVLM worker per ordered image list, reuses its model sequentially, and clears its private model handle in a finally block. This removes the repeated reload/quantization caused by ordinary Comfy list mapping with unload_after=True. It does not retain a separate model cache per graph node. Empty lists load nothing; mismatched prompts fail before loading. Progress and per-image elapsed times are logged. Cancellation is checked before/after each image; an already-running ModernVLM generation must return before the next check.
All 16 list-fed audit/caption nodes use the adapter. The single-image planner retains its ordinary unload behavior. Audit reasons are capped at 32 tokens and requested in six words. File selectors, diffusion settings, candidate counts and segmentation parameters are preserved. Requires the existing comfyui_vlm_nodes ModernVLM with clear_model API; no additional models. Publish this release, update DOGMA via Manager, restart ComfyUI, and load V56.19.
59 CPU regression tests passed. Frontend import/export and graph wiring validated offline. No GPU benchmark or visual generation has been performed on the pod; further hardware/quantization bottlenecks remain possible.
DOGMA Nodes 1.0.6 — instance review and local recovery
Workflow V56.18 keeps the supplied SimplePod model filenames and uses KJNodes for explicit memory cleanup. ModernVLM retains its own private-model lifecycle. Update through ComfyUI-Manager after this release is available in the Registry.
Phase 3 detects raw SAM masks with paired boxes, removes speckles without growing ownership, reviews each candidate separately, and searches four overlapping local views to recover missed targets. Valid detections survive rejection of unrelated candidates. Duplicate detections and cross-category overlaps are removed. Captions describe actual crops. Inactive slots do not execute caption or diffusion; a selected visible category with no verified masks after both searches raises an explicit diagnostic instead of silently returning an empty result.
This adds CPU-tested processing and workflow wiring; actual segmentation quality and GPU runtime still require validation on the user's pod. SAM/Qwen can fail. Instance-level review and local search require more analysis than a single category-wide verdict.
DOGMA Nodes 1.0.5 — Phase 3 mask and caption correction
New opt-in V566 nodes provide per-crop declarative prompts, SAM box ownership cleanup, per-category visual audits, masked img2img latent encoding, and distance-feathered compositing with low-frequency color protection. Existing node IDs retain their behaviour. Use the DOGMA V56.17 workflow. CPU regression tests: python tests/run.py (requires pytest).
DOGMA Nodes
Custom ComfyUI nodes for DOGMA AI video workflows.
Nodes
WAN VACE Keyframe Control Prep
Category:
video/WAN VACE
This node prepares a WAN VACE control video and control mask video from:
video IMAGE batch
mask_video IMAGE batch
reference_frames IMAGE batch
keyframe_indices STRING
It replaces selected video frames with the corresponding reference frames, turns the mask fully black at those same frames, and pads the result to a WAN VACE-compatible frame count.
WAN VACE expects frame counts in the form:
4n + 1
So the node pads the sequence by duplicating frames at the beginning and end, symmetrically, with preference for the beginning when the padding count is odd.
keyframe_indices supports comma, space, or semicolon separated values.
Examples:
start, 25, end
0 24 48
first; 32; last
Indexing is 0-based.
0 = first frame
24 = 25th frame
end = last frame
Outputs:
control_video IMAGE batch
control_mask_video IMAGE batch
frame_count INT
padding_info WANVACE_PAD_INFO
WAN VACE Remove Added Padding
Category:
video/WAN VACE
This node removes the replicated start/end frames that were added by WAN VACE Keyframe Control Prep.
Use it after WAN VACE generation when a later crop-and-stitch step needs the generated video to return to the original unpadded frame count.
Inputs:
video IMAGE batch
padding_info WANVACE_PAD_INFO
Output:
video IMAGE batch
frame_count INT
Typical use:
WAN VACE Keyframe Control Prep → padding_info
WAN generated video → WAN VACE Remove Added Padding
DOGMA Sampler Select
Category:
sampling/custom_sampling/samplers
This node returns a DOGMA sampler as a SAMPLER object. Use it with SamplerCustomAdvanced and any SIGMAS source, including custom hand-drawn sigma curves.
The same DOGMA samplers are also registered into normal ComfyUI sampler menus after restart, so they can appear in ordinary KSampler, KSampler Advanced, and KSamplerSelect dropdowns.
Available samplers:
| Sampler | Intended use | Approximate model calls |
|---|---|---:|
| DOGMA_klein_distilled_REBUILD | T2I, strong edit, heavily damaged upscale tile | 2 × non-final steps + 1 |
| DOGMA_klein_distilled_BALANCED | General T2I / i2i / edit | 2 × non-final steps + 1 |
| DOGMA_klein_distilled_DETAIL | Soft edit, good upscale tile, fine reconstruction | 3 × non-final steps + 1 |
| DOGMA_klein_basemodel_REBUILD | Fast strong reconstruction, bad source anatomy or structure | 1 × steps |
| DOGMA_klein_basemodel_BALANCED | General base-model work with selective correction | Usually 1.2-1.35 × steps |
| DOGMA_klein_basemodel_DETAIL | Soft edit and upscale refinement; extra work at low sigma | Usually 1.4-1.5 × steps |
These are experimental ODE samplers designed around FLUX.2 Klein 9B workflows: three for the 4-6 step distilled model and three for the 20-50 step base model. No LoRA is included or required.
Install
Install through ComfyUI Manager as DOGMA Nodes, or with:
comfy node install comfyui-dogma-nodes
Notes
The nodes use only PyTorch and ComfyUI's built-in sampler APIs. No extra Python dependencies are required.