TiXL Frame Plan
Telling a Tooll graph what to expect
- tixl_frame_plan_json
- manifest_line
- summary_json
TiXL is Tooll - the open-source, node-based live visuals tool, formerly Tooll 2, now Tooll 3, and the pack's alias "tooll bridge" gives the game away. If you're routing ComfyUI frames into a Tooll composition, you need two sides to agree: this node writes down what you're sending, and its partner MKRTiXLImport reads what Tooll sends back. MKRTiXLFramePlan is the outbound spec.
Everything about it is a description, not a transmission. You declare which asset, which transport, and which layer of which graph it belongs to, and the node emits a tixl_frame_plan_json plus a manifest_line that a Tooll-side add-on (in the repo's addons/tixl/ scaffold) is expected to consume. Think of it as the packing slip for a frame handoff.
What you set
- asset_path - the file or folder to push.
- transport -
file,ndi,spout, orosc. Note the real-world split again: Spout is Windows, NDI is network, OSC is control data not video. Pick what your Tooll instance actually listens on. - source_kind -
texture,image_sequence,video, ormask. - layer_name and graph_name - which Tooll layer and composition this frame belongs to. Get the names right or the frame lands in the wrong place.
- blend_mode -
Alpha,Add,Screen, orMultiply, matching how Tooll should composite it.
Optional extras: metadata_json (arbitrary payload), transport_plan_json (feed a plan from the network plan nodes so transport details stay in sync), and notes.
Outputs
tixl_frame_plan_json (the full spec), manifest_line (compact handoff), and summary_json. Wire the plan into whatever consumes it on the Tooll side, or keep it alongside the TCP/Spout plans as part of one transport corner of your graph.
Installing it
In criskb/MKRShift_Nodes from Cris K B. ComfyUI Manager search "MKRShift_Nodes", or:
cd ComfyUI/custom_nodes
git clone https://github.com/criskb/MKRShift_Nodes
Restart. No pip requirements, no models - the node just assembles JSON.
The reality check
Like the Spout and Syphon plan nodes, this is a contract, not a sender. There's no runtime Tooll upload node in the pack - the actual frame delivery is meant to go through the TiXL add-on scaffold that ships alongside. It's genuinely useful as the single source of truth for "which frame goes where," and it pairs cleanly with MKRTiXLImport for a round-trip. Just don't queue the graph expecting pixels to fly into Tooll; wire the plan to the add-on that does the flying.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| asset_path | STRING | — | |
| transport | COMBO | file | 4 options: file, ndi, spout, osc |
| source_kind | COMBO | texture | 4 options: texture, image_sequence, video, mask |
| layer_name | STRING | MKRShift Layer | — |
| graph_name | STRING | MKRShiftBridge | — |
| blend_mode | COMBO | Alpha | 4 options: Alpha, Add, Screen, Multiply |
| metadata_jsonopt | STRING | — | |
| transport_plan_jsonopt | STRING | — | |
| notesopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| tixl_frame_plan_json | STRING | — |
| manifest_line | STRING | — |
| summary_json | STRING | — |