DreamX Causal Refine Video
The 2x Pass That Won't Rescue a Bad Base
- refiner
- vae
- positive
- images
- images
DreamX-Creator's headline claim is 2K output, and it gets there in two steps: the 7B generator produces a low-resolution clip with synchronised audio, then a 5B autoregressive SR-DiT refines the picture while the audio is left alone. DreamX Causal Refine Video is that second step. Eleven inputs, one output - images, the refined frame sequence, at exactly the length it came in.
The honest framing up front: this is a polish stage, not a rescue. The pack's own docs are unusually direct about it - don't expect 2x refinement to repair an overexposed, structurally collapsed, or flickering 256×256 base sample. Fix the base first (more spatial tokens, a different seed) or you're paying 5B-model electricity to sharpen a mess.
Inputs
Wire the refiner from DreamX Causal Refiner Loader, a Wan 2.2 vae, positive conditioning (from UMT5 through a CLIP Text Encode), and images - your decoded Creator frames, or any frame sequence you want to push through it. Negative conditioning isn't an input here; it raises if the positive is empty, and that's the only prompt input it wants.
Then the knobs. The released defaults are mostly right already:
- scale - fixed at 2. Minimum 2, maximum 2. There is no 4x and no choosing.
- seed - set it. Default 0 is reproducible; leave it there while you're comparing other settings.
- sigma_start - 0.6251 by default, and that's the released value. It controls where on the trajectory the refinement starts; higher means more of the model's own invention, lower means more fidelity to the base.
- use_lq_anchor - on by default. This is the low-quality anchor: the base frame sequence is fed in as a soft condition so the refiner stays attached to the original content instead of dreaming something new.
- lq_guidance_scale - 1.0, how hard that anchor pulls.
- anchor_context_noise - 0. Noise injected into the anchor context.
- anchor_keep_prefix - -1, and the tooltip explains the special value: -1 applies the LQ anchor to every trained layer. Set it to a number and the anchor only reaches the first N layers.
If you change nothing but seed and sigma_start you will have covered 95% of the experimentation anyone does here.
What it does to your frames
The refiner is causal and works in blocks, reporting progress as it goes and honouring ComfyUI's cancel signal between them - which matters, because a 5-second clip is not a two-second operation.
Two behaviours keep your timeline honest. First, it pads: inputs that aren't 4N+1 frames get extended by repeating the last frame so the Wan VAE can encode them, then cropped after decode, so you get exactly the frame count you put in. That's why the output is plain IMAGE and not a LATENT - the internal padded latent isn't exposed, so nobody can accidentally decode it into extra frames. Second, it enforces height and width divisible by 16, and errors out with a clear message if they aren't. Round your dimensions up before you start.
The Wan VAE encode and final decode are tiled internally at the same conservative defaults ComfyUI's native tiled nodes use.
Install
ComfyUI Manager → DreamX Creator T8, or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-DreamX-Creator-T8.git
cd Comfyui-DreamX-Creator-T8
python -m pip install -r requirements.txt
Weights are the usual separate ~54 GB bundle - this node needs refiner/ and wan2.2_ti2v_5b/:
python -m pip install -U huggingface_hub
hf download t8star/DreamX-Creator-Comfy --local-dir ComfyUI/models/dreamx_creator
python scripts\verify_models.py
The pack ships examples/dreamx_refiner_ui.json as a standalone workflow. Drag it in, pick your Creator MP4 in Load Video, and let GetVideoComponents split it - audio and FPS carry through automatically.
Common issues
It isn't fixing the flicker. It won't. If the base is flickering, raising Creator spatial tokens or changing the seed is the fix - the pack's own readme says to inspect the Creator output before refining it.
Refiner requires image height and width divisible by 16. Resize first. This is a hard precondition, not a warning.
Choppy, weird-slow refinement. WDDM spilling CUDA allocations into shared RAM on a 24 GB Windows box. Lower kv_history_frames and window_chunk on the loader before you blame the node's own settings.
Out of memory with the refiner loaded. Keep the two phases in two workflows so ComfyUI can unload one model before the other arrives.
Audio sounds unchanged, because it is. That's by design - the refiner is pictures only, and timing is preserved so the original track still lines up when you mux the returned frames back with Create Video.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| refiner | DREAMX_REFINER | — | |
| vae | VAE | — | |
| positive | CONDITIONING | — | |
| images | IMAGE | — | |
| scale | INT | 22–2 | — |
| seed | INT | 00–18446744073709550000 | — |
| sigma_start | FLOAT | 0.62510–1 | — |
| use_lq_anchor | BOOLEAN | true | — |
| lq_guidance_scale | FLOAT | 1.000–4 | — |
| anchor_context_noise | INT | 00–1000 | — |
| anchor_keep_prefix | INT | -1-1–30 | -1 applies the LQ anchor to every trained layer. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |