Bug: data-color-grading renders solid white (mp4) or black (prores) frames — both 0.7.109 and 0.8.2
Environment
- hyperframes CLI 0.7.109 and 0.8.2 (both tested, identical behavior)
- macOS arm64 (Darwin 25.4.0)
- Static
<img> with data-color-grading applied via hyperframes media-treatment --apply
Reproduction
- Create a composition with a full-frame
<img> (with id for strict lint):
<img id="media-frame" class="clip" src="frame.png" data-start="0" data-duration="1" data-track-index="1" style="left:50%;top:50%;width:1920px;height:1080px;object-fit:cover;">
- Apply a grading patch:
hyperframes media-treatment --project . --file index.html --selector "img#media-frame" --grading '{"effects":{"kuwahara":0.8}}' --apply
- Render:
hyperframes render . --format mp4 --output out.mp4 --fps 30 --quiet --strict-all
Results (4-condition matrix)
| Condition |
Output |
Luminance |
effects.kuwahara=0.8 + mp4 |
Solid white frame |
252/255 |
adjust.saturation=-0.3 + mp4 |
Solid white frame |
251/255 |
effects.kuwahara=0.8 + mov (prores) |
Solid black frame |
0/255 |
No data-color-grading + mp4 |
✅ Normal image |
96/255 (matches source) |
Expected
The graded image should render with the color treatment applied, not a solid color frame.
Key observations
- Any
data-color-grading attribute (regardless of effect type: effects.* or adjust.*) triggers the bug
- Removing the
data-color-grading attribute restores normal rendering
- Bug is identical across 0.7.109 and 0.8.2
- The CLI
--apply succeeds (ok: true) and writes a complete ~80-key data-color-grading JSON to the element
- The composition HTML skeleton uses
#stage with data-composition-id, data-no-timeline, data-start/duration/width/height/fps — worker-standard structure
Reproduction package
A tarball with the minimal project (HTML + frame + 4 rendered outputs) is available. The command sequence above reproduces it from scratch.
Impact
This blocks the "deterministic media treatment" pipeline for any project that renders graded media through the standard composition path.
Bug:
data-color-gradingrenders solid white (mp4) or black (prores) frames — both 0.7.109 and 0.8.2Environment
<img>withdata-color-gradingapplied viahyperframes media-treatment --applyReproduction
<img>(withidfor strict lint):hyperframes render . --format mp4 --output out.mp4 --fps 30 --quiet --strict-allResults (4-condition matrix)
effects.kuwahara=0.8+ mp4adjust.saturation=-0.3+ mp4effects.kuwahara=0.8+ mov (prores)data-color-grading+ mp4Expected
The graded image should render with the color treatment applied, not a solid color frame.
Key observations
data-color-gradingattribute (regardless of effect type:effects.*oradjust.*) triggers the bugdata-color-gradingattribute restores normal rendering--applysucceeds (ok: true) and writes a complete ~80-keydata-color-gradingJSON to the element#stagewithdata-composition-id,data-no-timeline,data-start/duration/width/height/fps— worker-standard structureReproduction package
A tarball with the minimal project (HTML + frame + 4 rendered outputs) is available. The command sequence above reproduces it from scratch.
Impact
This blocks the "deterministic media treatment" pipeline for any project that renders graded media through the standard composition path.