Formats and colour space

This pack records. It does not make media. Frames are written by ComfyUI's image encoder in the format the operator picked, clips by VideoInput.save_to(), and both are read back by ComfyUI's decoder.

Frame formats

formatwhat it is for
8-bit PNGThe plain case. Review media is 8-bit whatever the frames are.
16-bit PNGSG Load reads it back at full precision.
EXR 32-bit floatPixels are written unchanged.

The format widget on SG Publish picks one. The extension follows the files, not the path template.

SG Publish before a Run with the format widget set to EXR 32-bit float
The panel says what this Run will publish, and in what format, before the Run.

Video

  • A VIDEO read from a file is uploaded as that file, byte for byte.
  • Anything else is written by ComfyUI's VideoInput.save_to(), with its colour space, bit depth and audio.
  • ComfyUI's IMAGE is a float32 tensor with no file behind it, so a still is encoded before upload.

Review media

Review media is 8-bit and is derived, so it may be transcoded. A deliverable file is never transformed. Pillow writes the 8-bit review still and nothing else.

A Version has one uploaded media file (probe 022). sg_path_to_frames and sg_path_to_movie are path references, and RV reads them to switch between the transcode and the source.

Colour space

  • Colour space is recorded, never applied.
  • The declared value goes in the PublishedFile's description.
  • SG Load returns it as the colour_space output.
  • Core ComfyUI has no colour management. Install says what to add for a colour-managed pipeline.
SG Load on an EXR Version in ComfyUI, showing the format line and the colour space output
SG Load reports the format before a run and returns the colour space it was told.