System messages
The standing instructions wrapped around every run — the part that says how to treat the
images, what to preserve and what never to do. n8n had no separate field for this, so it
lived inside one long prompt string; here each one is named and versioned, and
{{placeholders}} mark where the run's own inputs go.
A run records which message and which version produced it, so editing one never changes
what history says about an earlier result.
These adapt themselves.
Any paragraph that refers to an input nobody supplied is dropped before sending —
whether it names it as a {{placeholder}} or in plain words like
"the uploaded end frame image". So you write one message covering everything and it
trims itself per run; you never have to say "only include this if…".
The preview under the editor shows exactly what gets sent for every combination.
If you want to substitute different wording rather than just omit some,
{{#endFrameImage}}…{{/endFrameImage}} keeps a block only when that input
exists and {{^endFrameImage}}…{{/endFrameImage}} only when it does not.