[06] ZOPS

ZOPs

ZOPs (Zero Operators) run generative models inside TouchDesigner. Image and video ZOPs output a TOP. Text ZOPs output a DAT.

A chat ZOP wired into an imageAi ZOP

Above: a chat ZOP (openai/gpt-5.5) wired into an imageAi ZOP (nano-banana-2/text-to-image-fast). The chat ZOP wrote an image-prompt; its output (a DAT) feeds the image ZOP, which produced a 2048×2048 PNG. Connect any ZOP's output into another ZOP's input the same way you wire any TD operator.

Examples

Example patches in the Hub: twozero.ai/hub/repo_ffac94d9….

Top bar

Left to right:

Status dot Colored indicator: gray idle, yellow queued, blue uploading, green running/done, red error. Click to start (Run) or stop (Stop) the current generation.
Model name Shows family/model. Click to swap the model — opens the ZOPs panel scoped to this ZOP; picking a new model replaces this one's family/model in place.
Cost preview ~$X.XX — estimated price for the next Run based on the current model.
Get prompt Copies the current prompt to clipboard AND drops a textDAT with it into the current network — useful for archiving prompts or feeding them into other ops.
Bring into network Drops the generated output (generatedImage TOP for image/video, generated textDAT for text) as a new operator at the cursor — wire it into the rest of your patch as a static, non-regenerating op.
Open in file manager Opens the output file in Finder (macOS) or Explorer (Windows) with the file pre-selected.
Parameters Opens the TD parameter dialog for this ZOP — same as RMB → Parameters.

Chat ZOPs have a shorter toolbar: no Post / Like buttons (those apply only to image and video).

Body

Image and video ZOPs render the generated frame. Text ZOPs show the input prompt on top and the generated response below. Image ZOPs also reserve a narrow column on the left for input previews — wired-in TOPs are shown there as thumbnails. On error, a clickable overlay covers the body (e.g. "Add credits" → opens billing, "twozero.ai required" → opens the install page).

Bottom bar

After a successful run: actual charge in USD on the left, output resolution in the middle, output filename on the right. Image and video ZOPs show all three; text ZOPs show only the cost.

Parameters

Right-click the ZOP, or click the gear button in the top bar — opens the full parameter dialog. Common to every ZOP:

  • Run / Stop / Reset — pulse parameters; same as clicking the status dot (Run/Stop) or RMB → Reset.
  • Prompt — the input text. Most ZOPs also accept a prompt DAT wired into the input, which takes precedence over par.Prompt when connected.
  • Family / Model — set by the ZOPs panel when you pick a model. You can also override manually.
  • Autorunnext — when on, after a successful Run pulses Run on every ZOP wired to this one's output. Daisy-chain ZOPs to build live pipelines (output of A triggers B, B triggers C, ...).
  • Callbackdat — optional DAT with onSuccess(comp, result) / onError(comp, error) handlers for custom post-run logic.

Chat ZOPs add:

  • Runonprompt — when on, re-runs automatically every time the prompt input (par.Prompt or the wired prompt DAT) changes.

Image and video ZOPs add:

  • Resolutionpreset — pick an output size from the model's allowed list. Aspect, Resolution1, Resolution2 override manually.
  • Seed + Randseed — control determinism. With Randseed on, every Run uses a new random seed.
  • Autoselectmodel — when the family changes, auto-picks the family's default model instead of leaving the previous Model value.
  • Duration — for video ZOPs, output length in seconds.

Opening the panel

Open the ZOPs panel from the tool list, or via the hotkey assigned in Settings.

Selecting a model

Browse model families and individual variants. [ENTER] or LMB on a family creates a ZOP with the family-default model auto-selected. [ENTER] or LMB on a specific variant (listed indented under its family) pins that exact model. Families with one model are rendered flat.

Inspecting a model

RMB on any row opens model metadata and pricing.

Cost and balance

Generations are pay-per-use. Estimated price per model is shown in the ZOPs panel next to each row; the actual charge appears in the status bar after a run completes. Failed generations are not charged. Top up your balance at app.twozero.ai/billing.

Notes

Requires a TWOZERO account with balance. Models are sorted by usage history. ZOPs auto-update to the latest template version on next panel open. The model list is fetched live from twozero.ai on first panel open and cached for the session.