Nodes/DA_Nodes/DA Input
ComfyUI Node

DA Input

Every knob of your workflow on one front panel

By dauncle2026·Created 10 days ago·Updated a day ago· 0
DA Input
    • prompt
    • seed
    • aspect_ratio
    • resolution
    • duration
    • first_frame
    • last_frame
    • image_1
    • image_2
    • image_3
    • image_4
    • image_5
    • image_6
    • image_7
    • image_8
    • image_9
    • image_10
    • audio_1
    • audio_2
    • audio_3
    • audio_4
    • audio_5
    • video_1
    • video_2
    • video_3
    • video_4
    • video_5
    • video_audio_1
    • video_audio_2
    • video_audio_3
    • video_audio_4
    • video_audio_5
    prompt
    seed0
    aspect_ratio1:1 (Square)
    resolution1.0
    duration5.00
    first_frame
    last_frame
    image_1
    image_2
    image_3
    image_4
    image_5
    image_6
    image_7
    image_8
    image_9
    image_10
    audio_1
    audio_2
    audio_3
    audio_4
    audio_5
    video_1
    video_2
    video_3
    video_4
    video_5

    If your workflow is a mess of prompt boxes buried next to samplers and seeds typed into six different widgets, DA Input drags all the knobs onto one panel at the top. It's the entry-point node of DA_Nodes, a small and very new pack from dauncle2026 - one commit at the time of writing, plus an LTX-2 attention-guidance node and reference-latent helpers. Its whole job: hold your prompt, seed, aspect ratio, target resolution, duration, and optional image/audio/video filenames in one place, and hand each value out on its own typed wire. Fill the panel once, and you stop editing half a dozen scattered widgets per run.

    The pattern this leans on is the same one behind ComfyUI's primitive/value nodes and Efficiency-style loaders: a value that lives in exactly one place can't silently drift out of sync in the other four. DA Input is the "one authoritative source" idea applied to a whole run's settings. One honest caveat before you expect magic: it is not a context bus. It doesn't fuse everything into one pipe object - prompt comes out as STRING, seed as INT, and so on, and you still drag each wire to where it belongs. What it saves you is the editing surface, not the wire count. For a one-screen workflow that's fine and actually easier to debug; if your real problem is forty noodles, you want a context pack instead.

    The inputs that matter

    The five scalar fields are the ones you'll touch every run:

    • prompt - plain multiline text; the tooltip says it plainly, wire it to a CLIP Text Encode.
    • seed - an INT with the control_after_generate dropdown built in, so it can randomize or lock after each run. Wire it to your KSampler.
    • aspect_ratio - a combo, default 1:1 (Square), and it's literally ComfyUI core's AspectRatio enum under the hood.
    • resolution - a target in megapixels, not pixels: 1.0 ≈ 1024x1024 for square. That's the modern convention where models are specced by a megapixel band rather than fixed ratios - worth internalizing before you start typing 768s and 512s.
    • duration - seconds, default 5, clearly aimed at video runs.

    The pair that trips people up: aspect_ratio and resolution are meant to be wired together into a Resolution Selector node, which converts ratio + megapixel budget into concrete width/height for your latent. Send one without the other and you're missing half the picture.

    The file slots are optional loaders in disguise

    Below the scalars is a grid of filename fields: first_frame, last_frame, image_1image_10, audio_1audio_5, and video_1video_5. Each takes a filename that must exist in your ComfyUI input folder (subfolders like input/clips/thing.mp4 work). Empty means "skip" - the node outputs nothing on that slot and downstream just doesn't get fed.

    Under the hood it's not doing anything exotic: each name is handed to ComfyUI's own LoadImage, LoadAudio, or LoadVideo. The neat bit is video: a single video_1 field produces two outputs - video_1 (the frames, as IMAGE) and video_audio_1 (the decoded soundtrack, as AUDIO) - so one reference clip becomes both visual conditioning and audio in a single field. That plus first_frame/last_frame/duration makes this clearly shaped for image-to-video and audio-synced video workflows.

    Installing it

    No README in the repo yet and no requirements.txt or model downloads - it only imports core ComfyUI modules, so install is the boring standard:

    cd ComfyUI/custom_nodes
    git clone https://github.com/dauncle2026/DA_Nodes
    

    Then restart ComfyUI. Manager users can search "DA_Nodes"; it declares registry metadata in pyproject.toml, but with a same-day first commit it may not be listed yet - the git-clone route above always works.

    One real prerequisite: this is written against ComfyUI's newer backend authoring API (io.ComfyNode / io.Schema, no NODE_CLASS_MAPPINGS). On a current ComfyUI that's just "how nodes are written now." On an install you haven't updated in a while, the node may fail to appear - update ComfyUI core first and check again.

    Gotchas

    • "Invalid file: xxx" on run means the filename isn't in your input folder. It's a validation check, not a mystery - check the path, including the subfolder spelling.
    • The seed trap is alive here: because the seed widget has control_after_generate, the number in the box after a run is the next seed, not the one that just rendered. Flip it to fixed, or set widget control mode to "Before" once in settings, or you'll keep chasing ghosts.
    • It's day one. One commit, zero community reports, nothing on the usual forums as of this writing. The code is a thin, readable wrapper over core loaders so the risk is low - but treat it as fresh territory: keep an eye on the repo, and don't be shocked if slots shift in the next commit.
    CategoryDA_Nodes

    Inputs (27)

    NameTypeDefaultDescription
    promptSTRINGText prompt. Connect to CLIP Text Encode.
    seedINT00–18446744073709550000Random seed. Connect to KSampler.
    aspect_ratioCOMBO1:1 (Square)Connect to Resolution Selector.
    resolutionFLOAT1.00.1–16Target megapixels. Connect to Resolution Selector. 1.0 ≈ 1024x1024 for square.
    durationFLOAT5.00Duration in seconds.
    first_frameoptSTRINGFilename in the input folder. Leave empty to skip.
    last_frameoptSTRINGFilename in the input folder. Leave empty to skip.
    image_1optSTRINGFilename in the input folder. Leave empty to skip.
    image_2optSTRINGFilename in the input folder. Leave empty to skip.
    image_3optSTRINGFilename in the input folder. Leave empty to skip.
    image_4optSTRINGFilename in the input folder. Leave empty to skip.
    image_5optSTRINGFilename in the input folder. Leave empty to skip.
    image_6optSTRINGFilename in the input folder. Leave empty to skip.
    image_7optSTRINGFilename in the input folder. Leave empty to skip.
    image_8optSTRINGFilename in the input folder. Leave empty to skip.
    image_9optSTRINGFilename in the input folder. Leave empty to skip.
    image_10optSTRINGFilename in the input folder. Leave empty to skip.
    audio_1optSTRINGFilename in the input folder. Leave empty to skip.
    audio_2optSTRINGFilename in the input folder. Leave empty to skip.
    audio_3optSTRINGFilename in the input folder. Leave empty to skip.
    audio_4optSTRINGFilename in the input folder. Leave empty to skip.
    audio_5optSTRINGFilename in the input folder. Leave empty to skip.
    video_1optSTRINGFilename in the input folder. Decoded to frames and soundtrack. Leave empty to skip.
    video_2optSTRINGFilename in the input folder. Decoded to frames and soundtrack. Leave empty to skip.
    video_3optSTRINGFilename in the input folder. Decoded to frames and soundtrack. Leave empty to skip.
    video_4optSTRINGFilename in the input folder. Decoded to frames and soundtrack. Leave empty to skip.
    video_5optSTRINGFilename in the input folder. Decoded to frames and soundtrack. Leave empty to skip.

    Outputs (32)

    NameTypeDescription
    promptSTRING
    seedINT
    aspect_ratioCOMBO
    resolutionFLOAT
    durationFLOAT
    first_frameIMAGE
    last_frameIMAGE
    image_1IMAGE
    image_2IMAGE
    image_3IMAGE
    image_4IMAGE
    image_5IMAGE
    image_6IMAGE
    image_7IMAGE
    image_8IMAGE
    image_9IMAGE
    image_10IMAGE
    audio_1AUDIO
    audio_2AUDIO
    audio_3AUDIO
    audio_4AUDIO
    audio_5AUDIO
    video_1IMAGEVideo frames
    video_2IMAGEVideo frames
    video_3IMAGEVideo frames
    video_4IMAGEVideo frames
    video_5IMAGEVideo frames
    video_audio_1AUDIOSoundtrack of the same-numbered video
    video_audio_2AUDIOSoundtrack of the same-numbered video
    video_audio_3AUDIOSoundtrack of the same-numbered video
    video_audio_4AUDIOSoundtrack of the same-numbered video
    video_audio_5AUDIOSoundtrack of the same-numbered video