Order the detail stage so the repair runs before the enhancements

Capture sharpening and noise reduction were written in parallel and both
claimed `order: 110`; the codegen refuses that, which is the guard working —
two nodes at one order is an ambiguous pipeline and operation order changes
the result.

Resolved in noise reduction's favour, for the reason its own `placement:`
block already gives: denoising is a repair and everything else in this stage
is an enhancement. Sharpening or adding clarity to a noisy frame amplifies the
grain along with the detail, and no later pass can separate them again. So the
detail stage now runs noise reduction, capture sharpening, clarity, texture,
and the other three shift up a slot to keep the multiple-of-ten convention the
rest of the chain uses.

Noise reduction was also missing the required `attributes:` key. The order
collision aborted the build before the attribute check could report it, so it
arrived looking like one fault and was two.
This commit is contained in:
2026-08-22 19:32:59 +02:00
parent 5d15b753f7
commit 35b126449b
4 changed files with 4 additions and 3 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
# from the type; this file exists so that `ops/` remains the one place the
# pipeline's order is written down.
id: capture_sharpen
order: 110
order: 120
attributes: [detail]
rust: CaptureSharpen
+1 -1
View File
@@ -4,7 +4,7 @@
# where the pipeline's order is written down, and an order kept half in YAML
# and half in Rust would be worse than either alone.
id: clarity
order: 120
order: 130
attributes: [detail]
rust: Clarity
@@ -8,6 +8,7 @@
id: noise_reduction
order: 110
attributes: [detail]
rust: NoiseReduction
why_rust: |
+1 -1
View File
@@ -1,6 +1,6 @@
# A hand-written node — see `clarity.yaml`, whose implementation this shares.
id: texture
order: 130
order: 140
attributes: [detail]
rust: Texture