CivArchive
    GALATEA — MiniMax H3 video + native audio, with a Krea 2 reference generator - v1.1 (Movie Maker)
    NSFW

    Pygmalion carved a statue and it came to life. This workflow does the same thing in one queue: Krea 2 sculpts the still, MiniMax H3 animates it and gives it a voice.

    What this is

    A single-run ComfyUI workflow that generates video with synchronised native audio using MiniMax H3, optionally starting from a reference still that Krea 2 generates in the same run.

    H3 produces picture and sound from one sampler pass. There is no separate TTS stage, no lipsync pass, no audio stitching — dialogue, singing and effects all come out of the same denoise. GALATEA is built around that, and most of its design exists to stop the two halves fighting each other.

    One toggle switches between image-to-video and text-to-video. A second toggle chooses whether the reference still comes from disk or gets generated fresh by Krea 2. Everything downstream adapts.


    What makes it worth downloading

    Two purpose-built prompt enhancers, not one generic one. Both are local GGUF models driven by system prompt files included with the workflow.

    • The video enhancer rewrites your rough idea into MiniMax H3's official three-section format (integrated_multimodal_description / overall_soundscape / non_diegetic_music), fences all speech in <d>[English] … </d> tags, assigns stable speaker IDs, and routes diegetic vs non-diegetic sound to the correct section.

    • The image enhancer writes for Krea 2's Qwen3-VL encoder specifically, which wraps every prompt in a fixed instruction to describe colour, shape, size, texture, quantity, text and spatial relationships. It answers that instruction, and it refuses to write negative phrasing because this pipeline has no working negative prompt.

    Speech and lyrics survive. The enhancer's top-priority rule enumerates every spoken and sung line in your input and verifies each one reaches the output inside a <d> tag, verbatim. It repairs malformed tags rather than dropping them. Sung vocals use the same tag as dialogue, with beat anchoring and an instruction to mouth the words in time.

    Motion is protected too. Left alone, a vision-capable enhancer handed a reference image will describe the picture and you get a ten-second photograph. The system prompt caps static description at a fifth of the output, requires a verb of change in every sentence, requires an explicit end state that differs from the start, and demands at least two of three moving layers (subject, camera, environment).

    Approve-before-you-render gate. Krea 2 samples the still, then stops the workflow and shows it. Regenerate until you like it, then Continue — which reloads the exact image you approved and prunes Krea 2 out of the submitted prompt, so the still is not resampled. You pay for one image, not two.

    Auto-titled outputs. A small second LLM slugs the final prompt into a short filename, which feeds the %input% token of both save nodes. Video and first-frame still land side by side with matching, readable names.


    Requirements

    ComfyUI 0.33.1 or newer (needs native MiniMaxH3ImageToVideo), frontend 1.41.13+.

    Custom node packs

    PackUsed forComfyUI-PixaromaSliders, Sizes, Duration, Seed, Text, Pause Text/Image, Save Video/Image, Show Text, Switch, Switch Source, Switch WH, Group Switch, LoRA Loader, Run Timer/LogComfyUI-LLM-text-processorboth prompt enhancers (llama.cpp GGUF)comfyui-kjnodesModel Preview Override, Sage Attention patch, Torch settings patch, VRAM Debugrgthree-comfyPower Lora Loader, BookmarksComfyUI-MediaMixerFirst Frame Selectorwas-node-suite-comfyuiImage Save (writes the approved still to input/)ComfyUI-DaSiWa-NodesNode Status Switch (boolean-driven mute/bypass inside the engine subgraph)ComfyUI-MiniMax-H3-TurboH3 memory-efficient Sage Attention patch, Turbo samplerComfyUI-Spectrum-MiniMax-H3optional Spectrum accelerator (off by default)

    EasyCache, MiniMaxH3SigmaShift and MiniMaxH3ImageToVideo are ComfyUI core — no install needed.

    Models

    MiniMax H3 (video + audio)

    diffusion_models/  minimax_h3_fl2va_pruned_int8_convrot.safetensors
    text_encoders/     qwen3vl_32b_minimax_h3_nvfp4_awq.safetensors
    vae/               minimax_h3_video_vae_fp16.safetensors
    vae/               minimax_h3_audio_vae_fp32.safetensors
    vae_approx/        taeh3.safetensors          (live preview only, optional)
    loras/             minimax_h3_turbo_v4_step600_ema_pruned_comfyui.safetensors

    Krea 2 (reference still)

    diffusion_models/  a Krea 2 checkpoint  (I use redcraft23INT8INT4FP8_30Krea2)
    text_encoders/     qwen3vl_4b_bf16.safetensors      — CLIPLoader type must be "krea2"
    vae/               qwen_image_vae.safetensors

    LLMsmodels/LLM/

    Huihui-Qwen3.5-9B-abliterated.Q8_0.gguf
    Huihui-Qwen3.5-9B-abliterated.mmproj-Q8_0.gguf     (vision projector, required)
    Qwen3.5-4B-Q4_K_M.gguf                              (titler)

    System promptsmodels/LLM/prompts/

    MinimaxH3_VideoAudio.txt     video enhancer
    Titler.txt                   filename slug generator

    Download the system prompts separately and drop them in your models/LLM/prompts folder

    Character LoRAs in both LoRA loaders are mine — swap in your own or switch them off.


    How a run works

    Krea 2 module ─→ Reference Image Source ─→ MODE switch ─┬─→ H3 engine ─→ Save Video (mp4)
                                                            │            └─→ First Frame ─→ Save Image
    Video Prompt ─→ Prompt Enhancer ─→ Review/Edit ─→ LLM Prompt switch ─┘
                                                            └─→ Titler ─→ filenames
    1. Write two prompts. The Image Prompt describes what the opening frame looks like. The Video Prompt describes what happens — action, dialogue, lyrics. They are separate on purpose.

    2. Press Run. Krea 2 samples the still and the workflow stops at Preview & Approve.

    3. Regenerate until happy, then Continue.

    4. The approved still goes to the engine's first_frame, to the video enhancer as visual context, and to input/Krea2_Reference.png. The video renders and both outputs save with generated filenames.

    Set the Pause gate to Pass to run end to end without stopping.


    The four controls

    MODE (A / B) A = image-to-video. B = text-to-video — bank B's image rows are deliberately unwired, so first_frame and the enhancer's image both arrive empty and H3 runs t2va. The entire image branch is skipped: nothing loads, Krea 2 doesn't sample.

    Reference Image Source (1 / 2) 1 = Load Image from disk. 2 = the Krea 2 still. Only relevant in MODE A.

    Video Resolution Source (A / B) A = native size of the active reference image. B = the size set in Sizes. Ignored in MODE B. If the image branch is muted it falls back to B by itself.

    LLM Prompt (bool) true = engine gets the enhanced prompt. false = your raw text goes straight through, unenhanced.

    Plus a Module Switch that mutes whole groups — use it to disable the Krea 2 module without rewiring.


    Defaults as shipped

    sampler   euler / beta, 8 steps  (turbo LoRA @ 1.0)
    size      768 x 1056 portrait
    duration  10 s @ 24 fps = 243 frames
    output    H.265 mp4, 10-bit, audio muxed
    on        Sage Attention
    off       MemCache, Spectrum, RTX Upscale, VRAM Unload


    Credits

    MiniMax H3 by MiniMaxAI. Krea 2 by Krea. ComfyUI native H3 support by comfyanonymous and contributors. Node packs by pixaroma, kijai, rgthree, DaSiWa, WASasquatch, and the MediaMixer, LLM-text-processor, H3-Turbo and Spectrum authors. The system prompt files are mine and free to reuse.

    Description

    GALATEA v1.1 — Movie Maker

    MiniMax H3 video with native audio, a Krea 2 still generator, and three LLM modules that turn one clip into a film

    Pygmalion carved a statue and it came to life. v1.0 did that in one queue. v1.1 gives it a script, a memory, and a face it keeps.

    What changed since v1.0

    v1.0 made one clip: Krea 2 sculpts the opening still, MiniMax H3 animates it and gives it a voice, all in a single run. That engine is untouched. Open v1.1, press Run, and you get exactly what v1.0 gave you.

    What is new is everything around it — three optional modules that make the clip part of something longer:

    1 · Movie script generatorOne line of premise → an N-part shooting script, with a Krea 2 image prompt and a video prompt already written in the right house style for every part2 · Character sheetA reference photo → a locked identity paragraph you reuse verbatim, so the face stops drifting between parts3 · Continuity writerThe previous clip's last frame + the prompt it actually used + the script → the next part's prompt, written to start from the exact pose in that frame4 · Reference-to-videoThe photo goes into the H3 conditioning as <Picture 1>, pinning identity independently of the first frame5 · Last frameThe chaining plumbing, entirely automatic

    Continuing a clip is one number. Every render writes Last_Frame.png and Last_Prompt.txt into your input folder; planning a movie writes Movie_Script.txt. The continuity writer is pointed at all three permanently. To make part 3, you type PART TO WRITE: 3, flip two switches, and Run. Nothing is copied, pasted or re-picked.

    All three modules ship muted. They each load a 9B model, and you only want them when you are using them. One Module Switch panel turns them on and off.

    Why the continuity module exists

    Feeding the last frame back in as a first frame is easy and it is not enough. Write a fresh prompt over it and the model re-stages the scene: new pose, new angle, subtly new face. The clip starts, rather than continues.

    So the continuity writer is a vision model with one job. It reads the frame before it writes a word — wardrobe and its exact state, hands and what they hold, the eyeline, the light's direction and colour temperature, the lens feel, the camera height — and reports what it saw in a CONTINUES FROM: header you can check. Then it writes the next part with the first movement starting from the pose actually in the picture, no cut and no re-establishing shot at frame 0, and the previous part's camera-and-grade wording carried through word for word.

    It also gets Last_Prompt.txt, which is what actually rendered, not what the script said would render. Where the two disagree, the render wins.

    Its output is a specification, not a finished prompt, so it still passes through the v1.0 video enhancer and comes out in H3's three-section format like everything else.

    Why the script generator exists

    Multi-part consistency is mostly a prose problem. Parts drift because each one describes the same person, place and camera in fresh words, and fresh words render as a different person.

    So the script writer emits a STORY BIBLE — locked character descriptions, a wardrobe lock, a location lock, and one camera-and-grade sentence — and then repeats that sentence verbatim inside every part's video prompt. The repetition looks redundant on the page. It is the thing that makes N clips look like one film.

    It also budgets against the medium rather than against vibes: beats per part from your clip length, spoken words from ~2.5 words/second, one location and one lighting state per part unless a change is performed on screen, and every part's opening state matched to the previous part's stated end frame.

    Why there are two ways to lock a face

    The text lock costs nothing at render time. A vision model reads your reference photo once and returns a SHORT TAG, a FULL DESCRIPTION, WARDROBE AS SEEN and five DO NOT DRIFT checkpoints. Paste it into the script settings and every part describes the same person in the same words. This alone fixes most drift.

    The engine lock is real reference-to-video. The H3 subgraph now holds two conditioning nodes behind one switch:

    ENGINE COND   A = MiniMaxH3ImageToVideo          (default, v1.0 behaviour)
                  B = MiniMaxH3HybridRefAndKeyframe  (R2V + I2V in one payload)

    On B, your photo becomes <Picture 1> alongside the normal first-frame keyframe. They do different jobs — the first frame pins composition and opening pose, the reference pins identity: face, colour, wardrobe, proportions. Point the prompt at it (<Picture 1> is the authoritative source for her face and wardrobe; preserve her identity exactly) or it will be ignored.

    The switch is lazy, so the unselected conditioning node never executes and costs nothing. A spare ref_image_2 slot is wired through for a <Picture 2> — a second character, a prop, a style plate.

    Long chains soften faces because each clip re-encodes the one before it. Turning ENGINE COND to B re-anchors identity to the original photograph instead of to the previous clip, which is the cure.

    FAQ

    Comments (2)

    denolim465778Aug 21, 2026
    CivitAI

    wanna test your WF, but no matter which downlaod button i click i can only downlad

    galateaMinimaxH3VideoNative_systemPrompts.txt

    can't download Titler.txt.

    Civit shows different file names and sizes, but somehow it doesn't switch to Titler

    bionovafood863Aug 25, 2026
    CivitAI

    What are your computer specifications that you make such long videos?

    Workflows
    MiniMax H3

    Details

    Downloads
    351
    Platform
    CivitAI
    Platform Status
    Available
    Created
    8/20/2026
    Updated
    9/1/2026
    Deleted
    -

    Files

    galateaMinimaxH3VideoNative_v11MovieMaker.zip