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.safetensorsKrea 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.safetensorsLLMs → models/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 prompts → models/LLM/prompts/
MinimaxH3_VideoAudio.txt video enhancer
Titler.txt filename slug generatorDownload 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 ─→ filenamesWrite 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.
Press Run. Krea 2 samples the still and the workflow stops at Preview & Approve.
Regenerate until happy, then Continue.
The approved still goes to the engine's
first_frame, to the video enhancer as visual context, and toinput/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 UnloadCredits
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
System prompts for my Galatea workflow, to be dropped in the models/LLM/prompts folder

