Generator node
Image
Loads a picture from disk — PNG, JPEG, TIFF, BMP, GIF, HEIC/HEIF, WebP, PSD, TGA, OpenEXR, ICO, or SVG — and serves it as a GPU texture with position, scale, rotation, mirroring, and opacity controls. Two sizing modes cover both worlds: aspect-fit to the viewport for backdrops, or true 1:1 pixel size for pixel-accurate overlays. Composite the result with a Canvas node.
Inputs
| Port | Type | Default |
|---|---|---|
| EnableOff clears this generator's texture, so anything downstream sees an empty frame. | bool | true |
| PathThe image file to load — PNG, JPEG, TIFF, HEIC, WebP, PSD, TGA, EXR, SVG and more. An empty or missing path draws nothing. | string | — |
| True SizeOn shows the file at its native pixel size mapped into Grafit units; off aspect-fits it to the viewport rectangle. | bool | false |
| XHorizontal position in Grafit units, 0 being screen centre. Not clamped; past the viewport edge the picture simply leaves the frame. | float | 0 |
| YVertical position in Grafit units, 0 being screen centre and positive going up. Not clamped. | float | 0 |
| ScaleUniform size multiplier. Not clamped: 0 collapses the picture, negative values mirror it on both axes. | float | 1.0 |
| RotationTurns the picture, in degrees clockwise. Any value works — it just keeps spinning past 360. | float | 0 |
| FlipMirrors the picture vertically, top to bottom. | bool | false |
| FlopMirrors the picture horizontally, left to right. | bool | false |
| OpacityFades the picture out. Not clamped, but only 0…1 is meaningful — above 1 it is already fully opaque. | float | 1.0 |
Outputs
| Port | Type |
|---|---|
| Image | image |
| Width | float |
| Height | float |
Live Preview
How It Works
The file is decoded once and cached as a Metal texture (the cache is keyed by path, so many nodes can share one file at no extra cost). Each frame the GPU draws that texture onto a quad in the node's offscreen output texture, applying all transforms in Grafit space — origin (0,0) at the viewport center, shorter viewport edge mapped to [-1, +1], positive Rotation clockwise. The transform order is: size the quad (per the mode below) → Scale → Rotation → translate by X/Y.
Sizing modes:
True Size | Quad size | Use for |
|---|---|---|
| false (Fit, default) | The image aspect-fits the full viewport rectangle: it is enlarged until it touches two opposite viewport edges while keeping its aspect ratio. | Backdrops, full-screen photos, VJ footage stills |
| true | Native pixel dimensions converted to Grafit units (shortest render-viewport edge = 2.0 units), i.e. one image pixel = one output pixel at Scale 1.0. | Pixel-perfect logos, sprites, UI mockups |
In the fragment stage, Flop mirrors the image horizontally (left ↔ right) and Flip mirrors it vertically (top ↔ bottom); both can combine. Opacity multiplies the alpha, the quad's outer edge gets an antialiased fade driven by the global AA multiplier, and the final color is premultiplied (rgb *= a) as required for generator textures. Transparent PNGs and other alpha formats keep their transparency.
Choosing the file: the Path port has no default. With nothing connected, use the Browse… button on the Path row of the inspector — it opens a file picker, shows the chosen file's pixel dimensions, and stores a security-scoped bookmark so the sandboxed app can still open the file after the project is saved and reloaded. Alternatively connect any string (e.g. from Constant or String Combine) to Path for dynamic switching; a new path swaps the texture on the fly.
The Width/Height outputs report the quad's size in Grafit units for the current mode — Fit mode returns the viewport-fit size, True Size mode the pixel-converted native size. Scale is deliberately excluded from these outputs so that wiring them into a Canvas node's Width/Height doesn't double-apply the scale. With no file loaded, both report 2.0. When Enable is false, the output texture is cleared to transparent.
Parameters in Depth
| Port | Default | Meaning |
|---|---|---|
Enable | true | Master switch. Off clears the output texture. |
Path | — | Absolute file path to the image. Set via the inspector's file picker or a connected string. Empty path renders nothing. |
True Size | false | false = aspect-fit the full viewport; true = native 1:1 pixel size (see table above). |
X, Y | 0, 0 | Center position offset in Grafit units. |
Scale | 1.0 | Uniform scale multiplier applied after sizing. In True Size mode, 2.0 = pixel-doubled. |
Rotation | 0 | Rotation in degrees, positive = clockwise, around the image center. |
Flip | false | Vertical mirror (top ↔ bottom). |
Flop | false | Horizontal mirror (left ↔ right). |
Opacity | 1.0 | Multiplies the image alpha, 0 = invisible, 1 = source alpha unchanged. |
Interactions: in Fit mode a landscape image on a landscape viewport typically covers it fully; a portrait image on a landscape viewport touches top and bottom and leaves transparent pillars — position the gaps with X or cover them with a layer below. Opacity combines with the source's own alpha channel rather than replacing it.
Use Cases
- Background plate — Image (Fit mode) on Canvas layer 1, with generative layers (
Particle System,L-System,Magic Storm) composited above. - Logo bug / watermark —
True Sizeon for pixel-crisp rendering, positioned into a corner withX/Y,Opacityaround 0.5. - Slideshow —
CounterorTimer→Switchselecting between path strings →Pathfor timed or manually punched image changes. - Audio-reactive artwork —
Audio FFT→Remap→Scalefor cover art that breathes with the music; addLFO→Rotationfor slow drift. - Texture source for filters —
Imageoutput → Invert Image, Gaussian Blur, Image Adjustment, or Image Transform to build a processing chain before the Canvas. - Photo as mask — feed a high-contrast image into a Canvas node's
Maskinput (luminance mode) to reveal another layer through the picture's bright areas. - Crossfade between two images — two Image nodes on separate Canvas layers, with one
LFO(or a fader value) driving oneOpacitydirectly and the other throughMath(1 − x).
Tips
- A generator alone shows nothing: connect
Imageto a Canvas node. Blend modes, masking, and 3D placement happen there. - Wire this node's
Width/Heightoutputs into the Canvas node'sWidth/Heightto make the canvas quad match the picture exactly — they intentionally excludeScale, so no double-scaling. - After save/load, disk access relies on the stored security-scoped bookmark; if you move or rename the file on disk, re-pick it with Browse….
- Dynamic
Pathswitching is instant for cached files, but the first load of a new file decodes on demand — preload big files by switching to them once off-air. - Very large sources (multi-thousand-pixel photos) consume GPU memory at full resolution; downscale assets to roughly the output size for lean projects.
- The edge antialiasing on the quad border follows the global AA multiplier; with AA off, edges (especially rotated ones) will alias.
- Related nodes: Video Player (moving footage), Camera Input (live sources), Image Adjustment / Image Transform / Invert Image (processing), Text as Image (typography).
Open Image in the interactive catalog →
Image is one of 381 nodes in Grafit Pro.
Free download. Every feature for 7 days, no card. Then €99.99 once — or keep playing your projects as a Player.