Images

Decode once, apply your operations, encode once — no lossless intermediate between steps. Everything below is what the image transport reads, writes, and does.

Formats

Unrecognised extensions are refused before upload. The full matrix across media is on Compatible files.

DirectionFormats
Send uspng, jpg, jpeg, webp, gif, avif, tiff, tif
Get backpng, jpg, webp, gif, avif, tiff

JPEGs come out smaller at the same quality; EXIF orientation is baked in on decode; the ICC profile is preserved on output.

Nodes

  • image.resize — scale by percentage or into a pixel box, with a fit mode.
  • image.convert — re-encode to another format at a quality. Terminal encoder of a branch.

Linear transforms → Recipes. Fan-out to several sizes or formats → Pipelines.

Order of operations

Resize and convert collapse into a single pass — resize then encode, regardless of the order you list them. Two of the same step on one branch — the last one wins.

The transport never upscales

Percentage resize above 100% is a no-op, and fit: inside never enlarges. Details and config defaults → image.resize.

Next steps