Add H3 latent upscale refinement stage

This commit is contained in:
2026-09-03 12:53:57 +00:00
parent 306816534b
commit c1d937e0e2
7 changed files with 761 additions and 253 deletions
+19 -66
View File
@@ -1149,81 +1149,34 @@ These two belong together.
If you change `shift_video`, you usually need to change `shift_audio` in proportion.
## Group 8: Detail Pass
## Group 8: Latent Upscale
This is the optional second pass.
This is the optional latent refinement stage, used before decode.
### `detail_pass`
Enables the refinement pass.
The long-video node now expects a separate `Dumas H3 Latent Upscale Params` node for this stage.
Wire that node into the `latent_upscale_param` input when you want the shot to be upscaled and lightly
re-sampled before decode.
What this really means:
- the node renders the beat once
- then runs a second sampler pass over that result
- the goal is to polish, not to invent a whole different shot
### `detail_sampler_name`
Sampler for the refinement pass.
### `detail_scheduler`
Scheduler for the refinement pass.
### `detail_steps`
Extra steps for the refinement pass.
What this really means:
- more steps gives the second pass more opportunity to change the image
- that can help detail
- but after a point it stops being "cleanup" and starts becoming "rewrite"
### `detail_denoise`
How strongly the refinement pass is allowed to rewrite the beat.
What this really means:
- low denoise = polish what is already there
- high denoise = let the second pass substantially alter what is already there
### How The Detail-Pass Settings Work Together
The detail pass starts from the first-pass result and tries to polish it.
Gentle settings:
- low to medium `detail_steps`
- low `detail_denoise`
Aggressive settings:
- high `detail_steps`
- high `detail_denoise`
Aggressive settings can improve texture, but they can also:
- change faces
- pull away from references
- break continuity
That is why this group should be read as one combined strength control:
- `detail_pass` decides whether the second pass exists
- `detail_steps` decides how long it keeps working
- `detail_denoise` decides how free it is to change things
- `detail_sampler_name` and `detail_scheduler` shape how that rewrite behaves
- the sampled latent is upscaled in latent space to the target size
- the conditioning is rebuilt at that target size
- the node then runs a hard-coded 2-step refinement pass over the upscaled latent
Good starting point:
- `detail_pass = on`
- `detail_sampler_name = euler`
- `detail_scheduler = beta`
- `detail_steps = 4` to `8`
- `detail_denoise = 0.20` to `0.35`
- use the `model` mode when you want the strongest latent detail recovery
- use the interpolation mode when you want a cheaper resize-only path
- keep the refinement denoise low to medium
The important part is that this stage is still a latent pass, not a pixel-space resize:
- it happens before decode
- it can change structure more than a normal image upscale
- it is the place to recover detail without adding another full detail-pass toggle
If you do not wire the helper node, the long-video node skips latent upscale entirely and renders as before.
## Group 9: Performance, Decode, And Upscale