Nodes/H3 Multishot Advance/Multishot Advance Cartridge Loader (.riftcast)
ComfyUI Node

Multishot Advance Cartridge Loader (.riftcast)

Loading .riftcast cartridges

By KursatAs·Created 28 days ago·Updated 14 days ago· 5
Multishot Advance Cartridge Loader (.riftcast)
    • ref_1
    • ref_2
    • ref_3
    • ref_4
    • ref_5
    • ref_6
    • ref_7
    • ref_8
    • ref_9
    • voice
    • subject_block
    • dna_text
    • speaker_tag
    • accent_line
    • rooms_text
    • ref_count
    • report
    • cartridge_metadata
    cartridge
    max_refs9
    manual_path

    A .riftcast is a character in a zip file: identity prose, a speaker tag, a voice sample, and up to nine reference images, all packaged into one archive you can drop on another machine. This node unpacks it and hands the pieces to the rest of the Multishot Advance workflow. If you've never seen a .riftcast, you probably don't need this node - it's a convenience for people working with the RiftCast-style cartridge ecosystem that grew around the original ComfyUI-H3-Multishot pack, not a required step in the pipeline.

    What it saves you is setup time on multi-character work. Instead of dragging nine images into a batch loader, wiring one audio file, and hand-typing the subject block and speaker tag every session, you load one file and let the cartridge supply the raw material.

    How it works

    A .riftcast is a zip archive with a manifest.json inside that must contain at least these keys: riftcast, name, speaker_tag, voice, refs, and dna. The loader validates the archive (it rejects unsafe paths, which is nice for a format you're expected to download), then emits the contents on typed outputs.

    The important design detail: the cartridge supplies label-free identity prose. It never hard-codes <Picture N>, <Audio N>, or (S1) tags. The actual labels get assigned at render time by the sampler's central reference registry, based on which sockets you actually wired. That's deliberate - it means a cartridge isn't wedded to one slot position, so the same character can be <Picture 1> in one workflow and <Picture 3> in another without editing the file.

    The inputs and outputs that matter

    Three inputs. The cartridge dropdown lists every .riftcast sitting in ComfyUI/input/riftcast/ (until you add files, it just says "(no cartridges in input/riftcast/)"). max_refs controls how many of the nine image slots the loader fills - leave it at 9 unless you want to limit how many reference rows the sampler has to pay for. manual_path lets you bypass the dropdown and point at any .riftcast anywhere on disk.

    The outputs split into three groups:

    • ref_1 through ref_9 (IMAGE) - the character's reference images. Wire the ones you use into the sampler's reference_images socket.
    • voice (AUDIO) - the voice sample, wired to the sampler's voice_ref socket if you want the voice pinned across the chain.
    • The text/metadata group - subject_block, dna_text, speaker_tag, accent_line, rooms_text, ref_count, and report. The one you actually wire is cartridge_metadata (type MULTISHOT_ADVANCE_CARTRIDGE_METADATA), which plugs straight into the Prompt Builder's cartridge_metadata input.

    Don't treat the string outputs as ready-made prompts. They're fragments - identity prose and speaker hints - meant to be folded into the builder's editable fields, not pasted into a script.

    Installing it

    It ships in the ComfyUI-H3-Multishot-Advance pack, so the install is the pack install: ComfyUI Manager → search "H3 Multishot Advance", or clone it manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/KursatAs/ComfyUI-H3-Multishot-Advance
    

    Restart ComfyUI. Then make the input folder and drop your cartridges in:

    mkdir -p ComfyUI/input/riftcast
    

    No model files, no extra Python dependencies - the pack deliberately keeps dependencies = [] because ComfyUI already supplies everything it needs.

    Common issues

    The most common "problem" is just not having any .riftcast files, which is why the dropdown shows the empty-folder message. If you don't have cartridges, skip this node entirely - the H3 workflows run fine with plain image/audio loaders and the Prompt Builder's own fields. And if you hand-write a cartridge, make sure manifest.json has every required key or the loader throws a clear invalid cartridge: manifest.json missing-style error telling you exactly which key is absent.

    Categoryloaders/minimax

    Inputs (3)

    NameTypeDefaultDescription
    cartridgeCOMBO1 options: (no cartridges in input/riftcast/)
    max_refsINT91–9
    manual_pathoptSTRINGFull path to any .riftcast, bypassing the dropdown.

    Outputs (18)

    NameTypeDescription
    ref_1IMAGE
    ref_2IMAGE
    ref_3IMAGE
    ref_4IMAGE
    ref_5IMAGE
    ref_6IMAGE
    ref_7IMAGE
    ref_8IMAGE
    ref_9IMAGE
    voiceAUDIO
    subject_blockSTRING
    dna_textSTRING
    speaker_tagSTRING
    accent_lineSTRING
    rooms_textSTRING
    ref_countINT
    reportSTRING
    cartridge_metadataMULTISHOT_ADVANCE_CARTRIDGE_METADATA