ComfyUI Node

MiniMax H3 Aicg资源库

Drag your refs into one panel, then cite them as @图片1

By JGRFW·Created about a month ago·Updated about 13 hours ago· 261
MiniMax H3 Aicg资源库
    • media_bundle
    ◄media_state►

    H3's reference modes want a pile of inputs: a face, a costume, a room, a voice, a bit of motion. In core ComfyUI that's five Load Image nodes, a Load Video and a Load Audio fanned across the canvas, all feeding a fifteen-slot node. MiniMax H3 Aicg资源库 (the resource library) replaces that with a single panel where you drop files, order them, and click them into your prompt as references.

    Its one input, media_state, is a string. Don't be fooled - you're not meant to type in it. The frontend manages it; you use the panel.

    What the panel actually is

    Three groups - image, audio, video - with upload buttons and a list. Click an item and the pack writes a reference token into the prompt box of the connected H3 node at your cursor position, so @图片1 lands where you were typing instead of being appended to the end. That last bit got fixed in v1.1.7 and it's the difference between a feature and a nuisance.

    Behind the panel, media_state is JSON: three lists of filenames. The loader parses it defensively - relative POSIX paths only, no absolute paths, no .., no NUL bytes, duplicates dropped - then resolves each against ComfyUI's input directory, which does the final containment check. So a workflow JSON stays portable (relative paths) and can't be used to read arbitrary files. If you hand-edit media_state and it silently ignores entries, that's why.

    Output is one media_bundle, which is a MINIMAX_H3_MEDIA_BUNDLE - an ordered list of (index, type, value) items. Wire it into the media input of an H3 node, or into 媒体拆分 if you want the individual images/audio/video back out as standard types.

    The ordering rule nobody tells you

    Items are numbered by group, in fixed order: all images first, then audio, then video - not in the order you added them to the panel across types. Within a group, panel order holds. So if you drop one image, then one audio clip, then a second image, your second image is not item 3 - it's item 2, and @图片2 finds it fine, but @音频1 also resolves from the audio group. Worth knowing before you spend an hour wondering why @视频1 is pointing at the wrong thing.

    Decoding is cached per file: videos get decoded once through ComfyUI's video input handling and reused, and IS_CHANGED fingerprints each file's mtime and size, so replacing a file on disk re-runs the node instead of reusing a stale decode.

    Where it fits

    The normal pattern, straight out of the pack's changelog: one resource library into the first segment node, and the segment chain propagates the media state downstream so later segments inherit it - until a segment opens its own library, at which point that segment becomes independent and syncs its own set onward. That gives you a whole episode sharing a character sheet while segment five gets one extra prop.

    Installing

    It's in the pack, so:

    cd ComfyUI/custom_nodes
    git clone https://github.com/JGRFW/comfyui-AICG3D
    

    Or Manager → AICG3D / 短剧工作台. Restart, right-click → AICG3D. Files go in ComfyUI/input/ (or subfolders under it) - the panel's upload does that for you.

    Where people get burned

    • A blank/white panel. This exact node, twice. v1.1.9 fixed the measurement code that left it hidden, along with re-syncing hidden, type and the canvas options on reload, and bumped the frontend entry to minimax_h3_easy_ui_v4.js so browsers would stop serving the broken module. If you see a white box, you're on an old frontend - hard-refresh the browser, then update.
    • Installing the upstream ComfyUI-MiniMaxH3-Easy expecting to need it. You don't. v1.1.10 removed that dependency outright: the library's upload area and image/audio/video panels register on their own now. Having both installed is how you get overlapping nodes.
    • Missing files after you move a project. v1.1.12 added a batch check that flags missing images, audio and video when you open a workflow, names the video segment the file belonged to, and offers one-click cleanup. If your panel looks emptier than you remember, run that check before re-uploading everything by hand.
    • Expecting standard IMAGE tensors out. You get a media_bundle. Use 媒体拆分 to get pixels.
    CategoryAICG3D/提示词与 Skill

    Inputs (1)

    NameTypeDefaultDescription
    media_stateSTRING—

    Outputs (1)

    NameTypeDescription
    media_bundleMINIMAX_H3_MEDIA_BUNDLE—