Skip to content

Node Reference

Alég edited this page Sep 3, 2026 · 1 revision

This wiki page hosts the node reference. The complete interactive version is served from the repository at docs/NODES.html.

Quick access


Execution order

The reel pipeline runs in this sequence:

Set Narration → PROJECT → Align → ALIGNMENT → Shot Table → SHOTS → Subtitles → SUBS → Render Reel

Five nodes carry a reel from a project folder to an MP4. Sockets are typed, so the order is enforced by the graph rather than by convention.

Cost profile:

  • Align (~90 s) — the only slow step; Whisper-based forced alignment
  • Project, Shot Table, Subtitles — disk reads, <1 s each
  • Render Reel (~61 ms/frame at 1080×1920) — CPU-bound; a 142-second reel took 301 s including alignment

Categories

Voice (memoacts/audio)

Seven nodes, each takes AUDIOAUDIO. Chain them, cut anywhere, bypass any.

  • Pitch / Time — Independent tempo and pitch via Rubber Band; only node that changes length
  • Speech Denoise — Steady hiss/hum via spectral gating or noise gate
  • De-esser — Sibilance compression
  • Vocal Compressor — JUCE compressor with makeup gain
  • Auto-Tune — Pitch correction to a scale; formants preserved
  • Normalize — Scale to a peak level
  • Loudness Meter — ITU-R BS.1770 integrated loudness (LUFS)

Reel pipeline (memoacts)

Nine nodes: Set Narration, Project, Align, Shot Table, Subtitles, Render Reel, Preview Shot, Set Motion, Set Image.

Key constraints:

  • Align does not transcribe; it computes word timings against the known script via stable-ts
  • Shot Table combines timings with decisions from shots.csv and writes generated/shots.json
  • Render Reel streams crops from PIL per-frame and burns subtitles via libass; memory is constant in reel length

Sound (memoacts)

Four nodes around sfx.csv:

  • Sound Design — Reads/writes sfx.csv; resolves rows against the shot table
  • SFX Prompt — Sends one row to a text-to-audio model
  • Save SFX — Writes generated audio to sources/sfx/ and records the seed
  • SFX Bed — Mixes every cue into one track the length of the reel

Effects (memoacts/effects)

Eight nodes, each takes optional EFFECTSEFFECTS. Chain to stack.

  • Effect Preset — Named combination of six families
  • Grade — Colour grade via parametric controls or .cube LUT
  • Grain — Film grain
  • Texture — Blends a looping overlay
  • Frame Overlay — Composites an alpha PNG
  • Shake — Camera shake applied to the crop window
  • Sharpen — Unsharp mask; runs last to avoid amplifying grain
  • Apply Effects — Attach a stack to one scene or all of them

Page (memoacts/page)

Seven nodes producing a typed document plate. Typesetting is deterministic; the model is used only for paper and pencil hand.

  • Paper Mask — Separates paper from ink/pencil/stamps
  • Pencil Crop — Crops the corner where the pencilled number goes
  • Pencil Prompt — Builds the prompt for the number
  • Pencil Lift — Subtracts before-image from after to recover only the pigment
  • Pencil Graft — Re-tones and adjusts stroke thickness
  • Page File — Reads/writes the page's markdown source
  • Type Page — Sets verbatim text at the size and pitch directives specify

shots.csv columns

One row per scene; every column but shot is optional.

Column Decides
shot Scene number (1-based), S01, or cue timecode from script
media Bare filename, resolved across images · composites · maps · videos
in In-point for footage (2:14 or seconds)
motion One of nine presets; blank cycles a default by scene number
rate Zoom fraction; ignored if focus or path is set
anchor center or top
speed Footage playback rate; 0.4 = slow motion
focus cx cy w in source fractions — one destination window
path Several stops: t:cx,cy[,w] space-separated
label Corner tag, held label_hold seconds from scene start
credit Source line, held for whole scene
effects Preset name for this scene alone
notes Not read by the pack

Custom socket types

Socket Payload
MEMOACTS_PROJECT {project_dir} — only the path travels; every step re-reads the folder
MEMOACTS_ALIGNMENT {alignment, project_dir} — the expensive result on its own socket
MEMOACTS_SHOTS {doc, project_dir, effects} — doc is the shot table, effects keyed by scene id
MEMOACTS_SUBS Caption fields of RenderOptions; settings only, never files
MEMOACTS_EFFECTS An effects.EffectStack
MEMOACTS_SFX {project_dir, doc, csv, cues, placed}
MEMOACTS_SFX_CUE MEMOACTS_SFX plus {cue, seed, seconds}

Geometry constraints

A crop cannot leave its source. The window is a rectangle inside the picture, so a point closer to an edge than half the window cannot be centred — it is approached instead.

The widest window is the base 9:16 rectangle. Past it there is no more picture. This ceiling is arithmetic and is enforced.

Enlargement is allowed and never silent. A window narrower than the 1080 px output stretches the source. The panel prints the factor while the rectangle is drawn, the report names it per scene, and on_upscale decides whether the render warns, refuses or stays quiet.


For the full schema with all parameters, ranges, and notes: see the interactive reference at docs/NODES.html.