Cine con IA · Escalar y Refinar
The Second Pass That Either Fits or Tells You Why It Won't
- model
- positivo
- latente
- latent
- info
First-pass video always has that soft, smeared look - fine detail is the first thing a video sampler gives up, and the fix is the same one images have used for years: upscale, then run a short low-denoise pass so the model re-invents detail it already has the structure for. Cine con IA · Escalar y Refinar (CineEscalarRefinar) is that second pass for H3, with the fiddly parts already wired and the memory failure modes named in plain language.
The mechanism
It takes the first-pass latent, splits the joined audio+video latent into its two halves, runs the video half through MinimaxH3LatentUpscaler3D in scale-by-multiplier mode with 32-pixel alignment and temporal chunking enabled, stitches the audio back on, and then samples again with a short, hand-measured sigma ladder.
That ladder is the interesting part. pasos isn't a step count you multiply - it's three named noise schedules: 3 pasos · rapido, 4 pasos · recomendado, 5 pasos · maxima calidad, with sigma values measured for H3's refinement pass (the 4-step ladder is 0.9035 → 0.8000 → 0.6316 → 0.3158 → 0). You're not guessing a denoise; the author already did the archaeology.
Inputs and outputs
model, positivo, latente come from Cargar modelo, Escena (the positive_escalar output - more on that below) and Render. modelo_escalador reads your models/latent_upscale_models folder. sampler defaults to er_sde; semilla has the usual control_after_generate dropdown, and yes, set it to fixed while you're comparing passes.
activar is a bypass with better manners than an actual bypass: turn it off and the latent passes straight through, no scaling, no second sample. Use it for quick tests.
escala is a multiplier on the side length, default 2.0. Here's the arithmetic that surprises people: refinement cost grows roughly with the square of the scale. x2 means four times the first-pass area. That's the whole reason the default advice is to try 1.7 or 1.5 rather than 2 before you start cutting the first pass's resolution.
Outputs are latent and info. The latent goes to Salida.
When it doesn't fit
Two failures have specific, useful messages.
No VRAM: the node stops deliberately rather than returning an unrefined upscale - its own reasoning is that a scaled-but-unrefined clip is blurry and soft in the face, which is worse than not doing it. The message walks you down the ladder: drop escala (1.7 → 1.5), drop the first-pass megapixels (0.50 → 0.40 MP), or turn activar off and keep the first pass.
shape mismatch or broadcast errors: the conditioning coming in carries the guide-image anchor, which is sized for the first pass. Connect positive_escalar from Escena, not positive. If that sentence just solved your problem, good - it's the most common way this node fails.
There's also a soft failure: if the MinimaxH3LatentUpscaler3D node isn't installed, you get your latent back unscaled with a note saying so. Nothing crashes. You just don't get a second pass, and info is the only place that says it.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/chaLords/ComfyUI-Cine-con-IA.git
This node is the one part of the pack with a real dependency beyond ComfyUI core. You also need Comfyui_Minimax_h3_latent_Upscaler by LBH-123-AI, and a 3D latent upscaler file in models/latent_upscale_models. The pack's Modelos node lists the right file for each family. Nothing else installs Python packages.
Traps
Refinement is where a workflow that "worked" falls over on a 12–16 GB card, because the upscaler holds its own model and intermediates in VRAM right at the handoff. If your first pass is fine and the second dies, that's not a bug - it's the honest shape of the problem, and the fix is a smaller scale, not a bigger machine.
Last thing: judge a second pass by looking at the face and the fine texture at 100%, not at thumbnail size. At thumbnail size a 4x unrefined upscale looks great.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| positivo | CONDITIONING | — | |
| latente | LATENT | — | |
| activar | BOOLEAN | true | Apagado, el latente pasa de largo sin escalar ni refinar. Util para probar solo el primer pase. |
| escala | FLOAT | 2.001–4 | Cuanto se multiplica el lado. 2.0 = el doble de ancho y alto. |
| modelo_escalador | COMBO | 0 options: | |
| pasos | COMBO | 4 pasos · recomendado | 3 options: 3 pasos · rapido, 4 pasos · recomendado, 5 pasos · maxima calidad |
| sampler | COMBO | er_sde | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 |
| semilla | INT | 8330–18446744073709550000 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |
| info | STRING | — |