Nodes/DA_Nodes/DA Input
ComfyUI Node

DA Input

Every knob of your workflow on one front panel

By dauncle2026·Created 30 days ago·Updated 20 days 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►
    ◄reference_prompt_modekeep►
    ◄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_1–image_10, audio_1–audio_5, and video_1–video_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 (28)

    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.
    reference_prompt_modeCOMBOkeepHow the API caller rewrites [reference] tags in the prompt. Does not change this node's prompt output.
    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