Nodes/ComfyUI-FeiHou-Easy-H3/FeiHou Easy H3 Production Pack Loader
ComfyUI Node

FeiHou Easy H3 Production Pack Loader

Render a whole music video shot-by-shot without touching the node between runs

By FX-FeiHou·Created 29 days ago·Updated 2 days ago· 44
FeiHou Easy H3 Production Pack Loader
    • production_shot
    source
    shotlist_file
    audio_file
    shot_index1
    prompt_languagezh
    package_id

    So you've got MiniMax H3 running in ComfyUI - 33B, omni-modal, clips with synced audio baked in - and you've discovered the FeiHou Easy H3 main node, which swallows a fixed 9-image / 3-video / 3-audio reference gallery so you stop juggling separate Load Image / Load Video / Load Audio nodes. Now the grind starts: a real music video or "digital human / MV" project is 30+ shots, each with its own reference frames, its own line of the song, its own finished prompt. Hand-editing the main node between every queue is the part that makes you quit.

    That's the gap the FeiHou Easy H3 Production Pack Loader exists for. It's the standard-edition batch arm of the pack: you hand it one prepared "production pack" - a folder or ZIP holding an HTML Shotlist, the reference images, and the song - and it hands your main node one shot at a time, queued N-up. It's experimental and only supports images plus one main soundtrack per shot, but it's exactly what you want once single clips turn into multi-shot production.

    How it works

    The trick is that "production pack" is a real thing with a defined shape, not a folder of loose prompts. You give the node a source - a path on the ComfyUI machine to a directory or ZIP - then hit the Load / refresh package button on the node. The backend finds the *Shotlist*.html (unambiguous or you tell it which via shotlist_file), snapshots it into a cache under ComfyUI/user/feihou_h3_production_packs, and has your browser render the page in an isolated iframe to read the shot cards. No package script ever runs on the server; the HTML has to match the sample's rendered-card structure (article.unit, .prompt-pane, .ref-chip …) or it errors out rather than guess.

    Each shot card resolves to: a per-shot prompt (zh or en), an ordered list of referenced images matched case-insensitively to local files (P1B finds P1b.png), a song segment with start/end, and optional aspect ratio, FPS, and resolution.

    The inputs that actually matter

    Most of the schema is set-and-forget after you've loaded a package:

    • source - the folder or ZIP path on the machine running ComfyUI. You also get an upload-ZIP button if the pack lives elsewhere.
    • shot_index - which shot to render next. Set it to 1 and put control_after_generate on increment, then set your ComfyUI queue count to the total shots reported.
    • prompt_language - zh or en, whichever your shotlist authors the final prompts in. Pick a missing language and it errors, deliberately - no silent substitution into the wrong language.
    • shotlist_file / audio_file - only filled in when your package has more than one Shotlist or more than one song. Otherwise leave empty.
    • package_id - filled in automatically when you load/refresh; you shouldn't type it.

    The single output, production_shot, carries a FEIHOU_H3_PRODUCTION_SHOT dict and wires into the main ComfyUI-FeiHou-Easy-H3 node's matching production_shot input. Keep your existing Loader → LoRA stack → sampler → save chain untouched. On each run the main node clears the whole gallery, loads only that shot's referenced images as <Picture 1..N> plus the song as <Audio 1> (trimmed to the shot's time range), forces reference mode and auto audio duration, and leaves your written prompt alone.

    Where people get burned

    Three things to internalize before you queue 36 jobs. First, the shot index advances on submission, not on success - a failed shot 12 still burns the increment, so when you fix it, set shot_index back to 12 with the mode on fixed for the rerun, then back to increment for the rest. Second, the cache is local and tamper-checked: if the HTML changes, the source path changes, or you move machines, you get a "load / refresh the package" error - that's the SHA-256 guard doing its job, not a bug. Third, keep the Duration Crop node in your chain, because H3 pads frames up and the crop is what trims the render back to exactly the song segment. Queueing past shot N errors loudly rather than looping, and a single shot with over 9 references is rejected outright - good behavior, but plan your packs around it.

    Install

    Install the pack like any other: ComfyUI Manager → search "ComfyUI-FeiHou-Easy-H3", or cd ComfyUI/custom_nodes && git clone https://github.com/FX-FeiHou/ComfyUI-FeiHou-Easy-H3, then restart. No pip dependencies in the pyproject - the real requirement is a ComfyUI build new enough to include the official MiniMax H3 nodes, plus the H3 weights themselves, which land through ComfyUI's model manager. Worth knowing: the folder/ZIP import route is deliberately locked to your local browser, so you can't drive it from a remote ComfyUI box - and you shouldn't import packs you don't trust.

    CategoryFeiHou Easy H3

    Inputs (6)

    NameTypeDefaultDescription
    sourceSTRING
    shotlist_fileSTRINGOptional relative HTML path when multiple Shotlists exist
    audio_fileSTRINGOptional relative soundtrack path when multiple audio files exist
    shot_indexINT11–1000000
    prompt_languageCOMBOzh2 options: zh, en
    package_idSTRING

    Outputs (1)

    NameTypeDescription
    production_shotFEIHOU_H3_PRODUCTION_SHOT