Skip to content

Bug: data-color-grading renders solid white (mp4) / black (prores) frames — any grading, 0.7.109 & 0.8.2 #3329

Description

@xinzhuzi

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

  1. 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;">
  1. Apply a grading patch:
hyperframes media-treatment --project . --file index.html --selector "img#media-frame" --grading '{"effects":{"kuwahara":0.8}}' --apply
  1. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions