Nodes/MKRShift_Nodes/TouchDesigner Frame Plan
ComfyUI Node

TouchDesigner Frame Plan

Tell TouchDesigner what's arriving, before anything actually arrives

By criskb·Created 7 months ago·Updated 5 months ago· 0
TouchDesigner Frame Plan
    • td_frame_plan_json
    • manifest_line
    • summary_json
    asset_path
    transportfile
    top_namemkrshiftTOP
    operator_path/project1/mkrshift_bridge1
    asset_kindimage
    colorspacesRGB
    metadata_json
    transport_plan_json
    notes

    MKRTouchDesignerFramePlan is a plan-builder for getting frames out of ComfyUI and into TouchDesigner. Read the name carefully: it says Plan, and it means it. This node does not send a single pixel anywhere. It assembles a JSON contract describing how an asset should land in a TouchDesigner TOP - which file, which transport, which operator to target - and hands that contract to the addon side of the MKRShift bridge.

    ComfyUI + TouchDesigner is the live/audio-reactive visuals lane of this ecosystem: people feed generated frames into TD to map, modulate, and perform them in real time. The MKRShift pack approaches that as a handoff problem - a packet-first bridge where one DAT holds the JSON, an extension class (MKRShiftBridgeExt.py in addons/touchdesigner/) does the import/export, and ComfyUI-side nodes just build and parse the payloads. This node is the "what should TD do with my asset" half of that conversation. Pair it with MKRTouchDesignerImport for the roundtrip.

    The inputs that matter

    • asset_path - where the file lives. This is the one you'll actually set by hand.
    • transport - file, spout, ndi, shared_memory, or websocket. Ambition on display, but for a first integration pick file; it needs zero extra moving parts. Spout/NDI assume you already have those pipelines running.
    • top_name - the TOP the frame should hit (default mkrshiftTOP).
    • operator_path - where in the TD project the bridge lives (default /project1/mkrshift_bridge1).
    • asset_kind - image, image_sequence, video, or texture.
    • colorspace - sRGB, Linear, or Non-Color. Don't skip this for a texture asset; the wrong colorspace is how a perfectly good texture shows up too dark or double-corrected in TD.
    • Optional: metadata_json, transport_plan_json, and notes all ride along into the plan if you want to attach context.

    Outputs

    • td_frame_plan_json - the plan itself (schema mkrshift_touchdesigner_frame_plan_v1), the thing the TD addon consumes.
    • manifest_line - a comma-joined summary (transport, top_name, kind, colorspace, path), handy if you're logging a handoff to a manifest.
    • summary_json - what got set and what's missing, including whether a path was provided.

    Install

    It's part of MKRShift Nodes. ComfyUI Manager: search MKRShift_Nodes. Or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/criskb/MKRShift_Nodes
    

    Then restart. No pip deps for the node itself; the pack's only external requirement is system ffmpeg, and only if you're using its video nodes. To actually use the plan you need the TD side too - the scaffold lives in the repo at addons/touchdesigner/, shaped as a baseCOMP or .tox with a DAT for packet JSON, a DAT for the transport plan, and the extension class.

    Common issues

    The most common failure is expecting this node to do the transport. It won't - td_frame_plan_json is a contract, not a connection. If nothing appears in TD, check that the operator path and TOP name match what the addon actually listens on, and that your transport (file, spout, etc.) is set up outside this node. And if summary_json reports has_path: false, you forgot asset_path; the plan will happily build without one, and TD will have nothing to grab.

    CategoryMKRShift Nodes/Addons/TouchDesigner

    Inputs (9)

    NameTypeDefaultDescription
    asset_pathSTRING
    transportCOMBOfile5 options: file, spout, ndi, shared_memory, websocket
    top_nameSTRINGmkrshiftTOP
    operator_pathSTRING/project1/mkrshift_bridge1
    asset_kindCOMBOimage4 options: image, image_sequence, video, texture
    colorspaceCOMBOsRGB3 options: sRGB, Linear, Non-Color
    metadata_jsonoptSTRING
    transport_plan_jsonoptSTRING
    notesoptSTRING

    Outputs (3)

    NameTypeDescription
    td_frame_plan_jsonSTRING
    manifest_lineSTRING
    summary_jsonSTRING