Nodes/ComfyUI_agilly1989_motorway/WebcamCapture_motorway_edition
ComfyUI Node

WebcamCapture_motorway_edition

A webcam node that speaks Motorway β€” if you can still find it

By agilly1989Β·Created 2 years agoΒ·Updated about a year agoΒ· 7
WebcamCapture_motorway_edition
  • MOTORWAY πŸšŒπŸ’¨
  • MOTORWAY πŸšŒπŸ’¨
β—„INPUT_image_keyimageβ–Ί
β—„width0β–Ί
β—„height0β–Ί
β—„capture_on_queuetrueβ–Ί
β—„OUTPUT_IMAGE_keyIMAGEβ–Ί

Webcam Capture in ComfyUI already exists - it's a core node under image that snaps a frame from your camera instead of loading a file. So why would you want WebcamCapture_motorway_edition? Because it's the version that rides the MOTORWAY πŸšŒπŸ’¨ pipe: instead of passing the image in on a wire, it pulls it out of a shared key-value store and writes the captured frame back in, all by key. It's not a better webcam node. It's a webcam node that lives inside a workflow-organization experiment.

Let me be upfront about where this fits, because the whole pack is a niche of a niche. ComfyUI_agilly1989_motorway is one hobbyist's take on the "pipe" idea you already know from rgthree's Context nodes - bundle a pile of values down one connection instead of drawing forty wires. The difference is how: where Context is a fixed struct, the Motorway is a mutable dict that travels down the wire as a custom MOTORWAY πŸšŒπŸ’¨ object. Anything you want to carry, you store under a string key and read back later. In the whole r/comfyui corpus, "motorway" appears exactly five times, so this is squarely "the author's personal pipe," not a community standard. Know that going in.

How the Motorway-ed magic works

The pack has a generator (clone_nodes_in_the_dangerzone/nodes.py) that, at load time, walks every node registered in your ComfyUI and wraps each one in a _motorway_edition twin. For each non-primitive input it swaps the real socket for an INPUT_<name>_key string - the key you type in is where it looks the value up in the pipe. Primitive inputs (width, height, toggles) stay as normal widgets. Outputs become OUTPUT_<name>_key strings where results get written back. So WebcamCapture_motorway_edition is literally ComfyUI's WebcamCapture subclassed through that wrapper.

The inputs and outputs that matter

You get one required MOTORWAY πŸšŒπŸ’¨ in, and one MOTORWAY πŸšŒπŸ’¨ out - the node doesn't return the image directly, it drops it back into the pipe. The fields you actually set:

  • INPUT_image_key (default image) - the key in the pipe holding the webcam capture path. This is the fiddly part: a normal Webcam Capture uses a special frontend webcam widget, and that gadget doesn't survive the pipe conversion, so you need the capture path to already be stored under that key upstream.
  • width / height (default 0) - resize the capture; 0 keeps native resolution.
  • capture_on_queue (default true) - grab a fresh frame every time you run the queue. Turn it off to keep using the last captured frame.
  • OUTPUT_IMAGE_key (default IMAGE) - the key where the resulting IMAGE tensor lands in the pipe, so a later Motorway node can read it and feed a KSampler or VAE.

Installing it

No extra Python dependencies, no model downloads - the pack is pure node code. Either grab it through ComfyUI Manager (search "ComfyUI_agilly1989_motorway") or:

cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway

Then restart ComfyUI. You'll find Motorway nodes under agilly1989 Nodes, and this one under agilly1989 Nodes/Motorway-ed/image.

The gotcha that will actually hit you

The README's banner reads "BIG BROKEN WITH ASYNC WILL FIX WHEN I GET THE TIME/MOTIVATION." It's a beta, and the author is candid about that. The sharper problem: the current release (1.1.7, "HOTFIX - REMOVED MONKEYPATCH AND GENERATED NODES") ships with the clone generator commented out in __init__.py. That means today WebcamCapture_motorway_edition doesn't register at all - this page exists because an earlier version exposed it. If you install and can't find it, that's expected, not a botched install. To resurrect it you'd uncomment the ClonedNodeMapping lines in __init__.py and re-enable the pack's .disabled prestartup script (it sorted load order so clones loaded last). That's touching a pack whose own author calls it broken, so treat it as an adventure.

If you do get a Motorway running and see 'MotorwayClass' object has no attribute 'hash_', that's the author's own error message for "you read a key that was never written" - double-check your key strings. And remember keys overwrite: reuse one further down the pipe and it silently clobbers the earlier value. Given all that, the plain core Webcam Capture is what you'll actually reach for; this one is for people committed to running their whole graph through the Motorway, and willing to beta-test the ride.

Categoryagilly1989 Nodes/Motorway-ed/image

Inputs (6)

NameTypeDefaultDescription
MOTORWAY πŸšŒπŸ’¨MOTORWAY πŸšŒπŸ’¨β€”
INPUT_image_keySTRINGimageβ€”
widthINT00–16384β€”
heightINT00–16384β€”
capture_on_queueBOOLEANtrueβ€”
OUTPUT_IMAGE_keySTRINGIMAGEβ€”

Outputs (1)

NameTypeDescription
MOTORWAY πŸšŒπŸ’¨MOTORWAY πŸšŒπŸ’¨β€”