CivArchive
    MacMax - MiniMax H3 on Apple Silicon (local video + audio) - v1.1
    NSFW

    Two ComfyUI workflows that run MiniMax H3 locally on a Mac. Video and stereo audio come out of the same pass, so foley and dialogue are generated with the picture, not layered on after.

    MacMax is the default: text to video, image to video and first/last frame in one graph. Foxydit port is the full rig, reference to video with four reference slots (credit and terms in NOTICE.md, redistributed with permission).

    Measured on a 48 GB M5 Pro, ComfyUI 0.30.0. Full docs, every measurement: https://github.com/Bambushu/minimax-h3-mac

    Render times

    0.5 MP vertical, 20 steps, Spectrum on, chunked VAE, ClipProj encoder.

    3s  image to video                            ~14 min
    5s  text to video                             ~24 min
    3s  reference to video, with a spoken line    ~29 min
    5s  reference to video, chained link          ~39 min

    References cost more than duration: a 3s render with two references is slower than a 5s one with none. Budget by megapixels x seconds x references.

    Sizing: about 22k tokens is comfortable on 48 GB. That is 0.6 MP at 5s, or 1.03 MP at 3s.

    Chaining

    Clips continue each other: motion carries across the cut, the scene holds, and so does the audio bed. Un-bypass Save Latent on a clip you may want to continue and it writes a small latent; to continue it, un-bypass three more nodes, set two clip indexes, queue.

    The continuation comes back exactly 22 frames shorter, because those frames are the pinned context and they get trimmed so the files concatenate cleanly. If yours is not 22 frames shorter, chaining did not engage. That is the check worth doing.

    Nine links ran as one sequence, 39s of continuous scene. The 25s video in the gallery is the front of it, hard concatenated, no crossfades and no level matching, so every join is visible as rendered.

    Two rules that cost me renders:

    • Write each beat to fill the whole clip. If the action finishes early, the model can fill the rest by cutting to an animated version of one of your reference images. Reseeding does not fix it.

    • Clip 1's framing is inherited by everything after it. Lock it before you start.

    Smaller text encoder

    An optional swap replaces the 14.6 GB GGUF encoder with Qwen3-VL-8B fp8 plus a small projection matrix, roughly 4 GB lighter. That is what makes 5s clips fit on 48 GB. It buys length, not speed: same-seed reruns held identity, wardrobe and a spoken line at the same wall clock. Sampling dominates either way.

    The projection is an approximation and proper nouns are where it shows. Same seed, same prompt, only the encoder changed: ClipProj gave "Apple, Andrian or your dakes top at home", GGUF gave "Apple, Android, or your desktop at home". Keep the shipped GGUF loader for anything with brand names or proper nouns, and swap to ClipProj when you need the length. GGUF is also lighter in practice than its size suggests, since ComfyUI frees it after encoding; ClipProj ships mode: resident, which pins its weights for the whole render.

    Settings

    Spectrum ships on, worth about a quarter of the clock, and faces hold. EasyCache is faster still but smears mouths, so it ships off; fine for faceless b-roll, never alongside Spectrum. 20 steps, sampler euler rather than the stock templates' res_multistep. On unified memory leave history_storage on system_ram.

    Setup

    Four model files, about 41 GB, all linked in the README. Use the GGUF text encoder, the stock one is CUDA only.

    ComfyUI 0.30.0 in its own checkout, launched with:

    ASFP8_INT8_EXT=1 python main.py --port 8288 --reserve-vram 10 --cache-none --disable-smart-memory

    Three node packs are required and two more are optional, for chaining and the smaller encoder. ./install_node_packs.sh all clones the lot. Everything the optional packs add ships bypassed, so neither is needed to render.

    48 GB is what this was measured on. 32 GB works too, reported by users rather than tested here; expect to stay at the shorter durations.

    Limits

    One machine, one config. Chaining is validated at 5s links; longer links are reported elsewhere to fall apart around 15s. Audio carried across ambience beds, not tested on a musical build. No metric here judges audio beyond whether Whisper recovered the words.

    Description

    v1.1 adds clip chaining and an optional smaller text encoder, and corrects one claim from v1.0.

    Chaining. Both workflows now carry a Motion Context block. Un-bypass Save Latent on a clip you may want to continue and it writes a small latent; to continue it, un-bypass three more nodes, set two clip indexes and queue. The continuation comes back exactly 22 frames shorter, which is the free proof it engaged. Nine links ran as one sequence, 39s of continuous scene. The 25s video in the gallery is the front of it, hard concatenated, no crossfades and no level matching.

    Two rules that cost me renders. Write each beat to fill the whole clip: if the action finishes early, the model can fill the rest by cutting to an animated version of one of your reference images, and reseeding does not fix it. And clip 1's framing is inherited by everything after it, so lock it before you start.

    Smaller text encoder. An optional swap replaces the 14.6 GB GGUF encoder with Qwen3-VL-8B fp8 plus a small projection matrix, roughly 4 GB lighter. That is what makes 5s clips fit on 48 GB. It buys length, not speed: same-seed reruns held identity, wardrobe and a spoken line at the same wall clock.

    The correction. v1.0 said latent-space chaining was impossible. The measurement behind that stands, a causal VAE cannot have one latent sliced into a keyframe slot, but the conclusion was wrong: H3 pins a run of frames at their own time coordinates and re-injects them while sampling, which is a different mechanism.

    Both workflows ship sampler euler rather than the stock templates' res_multistep, and both optional packs ship fully bypassed, so neither is needed to render. Both were rendered end to end from the shipped files before posting.

    48 GB tested, ComfyUI 0.30.0, Spectrum pinned v0.2.3.

    FAQ

    Comments (8)

    boobkake22Aug 7, 2026
    CivitAI

    So that's ~50 minutes for a 5 second 0.6 MP generation?

    bambushu
    Author
    Aug 7, 2026

    40-45m 20 steps no EasyCache.
    <30m 20s EasyCache on

    working on the spectrum speedups now

    bambushu
    Author
    Aug 11, 2026

    Hey come back! great gains have been made. You're looking at about 20-25 minutes now for that.

    boobkake22Aug 11, 2026

    @bambushu If you're counting the Turbo LoRA, I don't really count that. It's a benefit across hardware. It cannot be overstated how much Nvidia has been optimized for. You can reduce that time much further by renting a fast GPU. But I appreciate the notice.

    bambushu
    Author
    Aug 11, 2026

    @boobkake22 No either 15 or 20 step, euler sampler, spectrum node. No turbo lora.

    82sound668Aug 8, 2026
    CivitAI

    m3 ultra 96g ,47分钟 太慢了

    bambushu
    Author
    Aug 8, 2026

    I understand, please try with Spectrum on. I just pushed v1.1 with Spectrum enabled at degree 1, which takes the same 0.6 MP / 5s / 20 steps render to about 34 min on my machine, 8 of 20 steps forecast, and unlike EasyCache it does not smear faces. Re-download and it should be on by default. What canvas and step count were you running?

    bambushu
    Author
    Aug 8, 2026

    此外,M3 Ultra 应该能轻松胜过我的 M5 Pro。如果你得到的运行时间和我一样,请确认你在运行时是否设置了 ASFP8_INT8_EXT=1,并且处于已精简的 int8_convrot 检查点。如果没有这些设置,int8 内核会被绕过,你就无法发挥更宽 GPU 的优势。

    ComfyWorkflows
    MiniMax H3

    Details

    Downloads
    161
    Platform
    CivitAI
    Platform Status
    Available
    Created
    8/7/2026
    Updated
    8/14/2026
    Deleted
    -

    Files

    macmaxMinimaxH3OnApple_v10.zip

    Mirrors

    macmaxMinimaxH3OnApple_v10.zip

    Mirrors

    macmaxMinimaxH3OnApple_v10.zip

    Mirrors

    macmaxMinimaxH3OnApple_v11.zip

    Mirrors