ComfyUI Node

Data_basic

Unpack (and override) the Apt_Preset context bus

By cardenluo·Created 2 years ago·Updated 17 days ago· 309
Data_basic
  • context
  • model
  • positive
  • negative
  • latent
  • vae
  • clip
  • latent_image
  • latent_mask
  • context
  • model
  • positive
  • negative
  • latent
  • vae
  • clip
  • latent_image
  • latent_mask

If you've built more than a couple of ComfyUI workflows, you know the spaghetti problem: model here, clip there, vae over there, positive and negative conditioning each needing their own wire, latent threading through six nodes - and every time you insert something new in the middle, half of it needs rewiring. Apt_Preset's whole pitch (it says so in its own README) is fixing that by bundling everything into one wire, a context - and Data_basic is the node that lets you reach into that bundle.

It's the same idea as rgthree-comfy's Context node or the "efficiency" bus pattern from other packs - one wire in, the individual pieces available wherever you need them, instead of eight separate noodles crossing your canvas.

How it works

Feed it a context and it does two things at once. First, it unpacks that bundle into individual named outputs - model, positive, negative, latent, vae, clip, image, mask - so you can tap any one of them without breaking the single-wire flow through the rest of your graph. Second, every one of those same fields is also available as an optional input: wire a fresh value into model or positive, for instance, and Data_basic swaps it into the context before passing the (now updated) bundle back out through its own context output. It's a read-and-optionally-overwrite node in one.

The inputs and outputs that matter

  • context (required, RUN_CONTEXT) - the bus coming from one of the pack's loaders or controller stacks.
  • Optional overrides: model, positive, negative, latent, vae, clip, latent_image, latent_mask - leave any of these unwired and the value already inside the context passes through untouched; wire one in and it replaces what was there.
  • Outputs mirror the same set: context (the possibly-updated bundle, for continuing the chain) plus each individual field broken out on its own - grab just model for a model-only node, or latent to peek at what's in the bus before it hits a sampler.

How to install it

Comes with the full pack - no standalone install. Via ComfyUI Manager: search "ComfyUI-Apt_Preset" → Install → restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset.git

Windows: run install.bat from the cloned folder using ComfyUI's own embedded Python. Linux/Mac: activate your ComfyUI venv and install the pack's dependencies from that folder manually. Restart ComfyUI. Data_basic itself needs nothing beyond what the base pack requires - it's pure ComfyUI data plumbing.

Common issues & troubleshooting

context input is empty or throws an error. This node doesn't build a context, it only reads and edits one - it needs to be downstream of one of the pack's loader or controller-stack nodes first. If you're starting from scratch, build the bus with a loader before reaching for Data_basic.

Overriding a field doesn't seem to take effect. Check you wired the override into the input socket with the matching name, not just left it wired only to some other node - the override sockets are optional and silently pass the original value through when left empty, which looks identical to "not overridden" if you're not watching for it.

Not sure whether you need this or Data_select. Data_basic unpacks the whole bundle at once, which is convenient when you need several fields off the same context. If you only need one specific value and don't want eight unused output sockets cluttering the node, Data_select picks a single field via a dropdown instead.

CategoryApt_Preset/chx_load

Inputs (9)

NameTypeDefaultDescription
contextRUN_CONTEXT
modeloptMODEL
positiveoptCONDITIONING
negativeoptCONDITIONING
latentoptLATENT
vaeoptVAE
clipoptCLIP
latent_imageoptIMAGE
latent_maskoptMASK

Outputs (9)

NameTypeDescription
contextRUN_CONTEXT
modelMODEL
positiveCONDITIONING
negativeCONDITIONING
latentLATENT
vaeVAE
clipCLIP
latent_imageIMAGE
latent_maskMASK