Add remaining spatial split settings
This commit is contained in:
@@ -1165,6 +1165,7 @@ What this really means:
|
|||||||
- the node then runs a short refinement pass over the upscaled latent with the sampler, scheduler, step count, denoise, and megapixel target you picked on the latent-upscale params node
|
- the node then runs a short refinement pass over the upscaled latent with the sampler, scheduler, step count, denoise, and megapixel target you picked on the latent-upscale params node
|
||||||
- if the target is larger than the spatial tile size, that refinement pass is processed in spatial batches using the same tile defaults as the upstream latent-split node
|
- if the target is larger than the spatial tile size, that refinement pass is processed in spatial batches using the same tile defaults as the upstream latent-split node
|
||||||
- the spatial stitch mode follows the upstream overlap controls, including `linear`, `smoothstep`, `overwrite`, and `midpoint`
|
- the spatial stitch mode follows the upstream overlap controls, including `linear`, `smoothstep`, `overwrite`, and `midpoint`
|
||||||
|
- the node also carries the upstream split compatibility knobs (`chunk_length`, `resize_conditioning`, and `anchor_strength`) so the control surface stays in one place
|
||||||
|
|
||||||
Good starting point:
|
Good starting point:
|
||||||
|
|
||||||
@@ -1174,6 +1175,7 @@ Good starting point:
|
|||||||
- leave width and height at `0` unless you want an exact override; otherwise `megapixels` drives the target size
|
- leave width and height at `0` unless you want an exact override; otherwise `megapixels` drives the target size
|
||||||
- leave the spatial tile inputs at their defaults first: `512x512` tiles, `64` overlap, `0` fade width, `earlier` overlap mode
|
- leave the spatial tile inputs at their defaults first: `512x512` tiles, `64` overlap, `0` fade width, `earlier` overlap mode
|
||||||
- keep `linear` blend first unless you want to reproduce a specific upstream stitch style
|
- keep `linear` blend first unless you want to reproduce a specific upstream stitch style
|
||||||
|
- leave the split compatibility knobs alone unless you specifically need to mirror the upstream node behavior
|
||||||
|
|
||||||
The important part is that this stage is still a latent pass, not a pixel-space resize:
|
The important part is that this stage is still a latent pass, not a pixel-space resize:
|
||||||
|
|
||||||
|
|||||||
@@ -47,9 +47,9 @@
|
|||||||
- Per-shot directives now support `continuity:`, `ref_mode:`, `ref_noise_aug:`, `anchor_add:`, `soundscape:`, and `music:` in addition to the existing timing and wardrobe directives.
|
- Per-shot directives now support `continuity:`, `ref_mode:`, `ref_noise_aug:`, `anchor_add:`, `soundscape:`, and `music:` in addition to the existing timing and wardrobe directives.
|
||||||
|
|
||||||
- `Dumas H3 Latent Upscale Params`
|
- `Dumas H3 Latent Upscale Params`
|
||||||
- Inputs: `mode`, `model_name`, `method`, `width`, `height`, `device`, `precision`, `sampler_name`, `scheduler`, `steps`, `denoise`, `megapixels`, `tile_width`, `tile_height`, `overlap`, `fade_width`, `overlap_mode`, `overlap_blend`
|
- Inputs: `mode`, `model_name`, `method`, `width`, `height`, `device`, `precision`, `sampler_name`, `scheduler`, `steps`, `denoise`, `megapixels`, `tile_width`, `tile_height`, `overlap`, `fade_width`, `overlap_mode`, `overlap_blend`, `chunk_length`, `resize_conditioning`, `anchor_strength`
|
||||||
- Output: `latent_upscale_param`
|
- Output: `latent_upscale_param`
|
||||||
- Bundles the optional latent-space upscaler settings used by `Dumas H3 Long Videos` before decode, so the main node can rebuild conditioning at the target size and run a short refinement pass with your chosen sampler, scheduler, step count, denoise, and optional spatial batching.
|
- Bundles the optional latent-space upscaler settings used by `Dumas H3 Long Videos` before decode, so the main node can rebuild conditioning at the target size and run a short refinement pass with your chosen sampler, scheduler, step count, denoise, optional spatial batching, and the upstream split compatibility settings.
|
||||||
|
|
||||||
- `Dumas H3 Beat Prompt`
|
- `Dumas H3 Beat Prompt`
|
||||||
- Inputs: authored through the custom front-end beat editor
|
- Inputs: authored through the custom front-end beat editor
|
||||||
|
|||||||
@@ -475,10 +475,16 @@ class H3LatentUpscaleParams:
|
|||||||
"tooltip": "Which tile wins the overlap band when stitching the spatial batches back together."}),
|
"tooltip": "Which tile wins the overlap band when stitching the spatial batches back together."}),
|
||||||
"overlap_blend": (["linear", "smoothstep", "overwrite", "midpoint"], {"default": "linear",
|
"overlap_blend": (["linear", "smoothstep", "overwrite", "midpoint"], {"default": "linear",
|
||||||
"tooltip": "How overlap bands are blended when the spatial batches are stitched back together."}),
|
"tooltip": "How overlap bands are blended when the spatial batches are stitched back together."}),
|
||||||
|
"chunk_length": ("INT", {"default": 136, "min": 17, "max": 100000, "step": 17,
|
||||||
|
"tooltip": "Reserved for upstream split compatibility. 136 matches the original chunk-length default."}),
|
||||||
|
"resize_conditioning": ("BOOLEAN", {"default": False,
|
||||||
|
"tooltip": "Reserved for upstream split compatibility. Leave OFF unless you need the original fallback behavior."}),
|
||||||
|
"anchor_strength": ("FLOAT", {"default": 0.999, "min": 0.0, "max": 1.0, "step": 0.01,
|
||||||
|
"tooltip": "Reserved for upstream split compatibility. 0.999 matches the original anchor default."}),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def build(self, mode, model_name, method, width, height, device, precision, sampler_name, scheduler, steps, denoise, megapixels, tile_width, tile_height, overlap, fade_width, overlap_mode, overlap_blend):
|
def build(self, mode, model_name, method, width, height, device, precision, sampler_name, scheduler, steps, denoise, megapixels, tile_width, tile_height, overlap, fade_width, overlap_mode, overlap_blend, chunk_length, resize_conditioning, anchor_strength):
|
||||||
width = int(width)
|
width = int(width)
|
||||||
height = int(height)
|
height = int(height)
|
||||||
steps = int(steps)
|
steps = int(steps)
|
||||||
@@ -486,6 +492,8 @@ class H3LatentUpscaleParams:
|
|||||||
tile_height = int(tile_height)
|
tile_height = int(tile_height)
|
||||||
overlap = int(overlap)
|
overlap = int(overlap)
|
||||||
fade_width = int(fade_width)
|
fade_width = int(fade_width)
|
||||||
|
chunk_length = int(chunk_length)
|
||||||
|
anchor_strength = float(anchor_strength)
|
||||||
if mode == "off":
|
if mode == "off":
|
||||||
return ({
|
return ({
|
||||||
"mode": "off",
|
"mode": "off",
|
||||||
@@ -503,6 +511,9 @@ class H3LatentUpscaleParams:
|
|||||||
"fade_width": fade_width,
|
"fade_width": fade_width,
|
||||||
"overlap_mode": overlap_mode,
|
"overlap_mode": overlap_mode,
|
||||||
"overlap_blend": overlap_blend,
|
"overlap_blend": overlap_blend,
|
||||||
|
"chunk_length": chunk_length,
|
||||||
|
"resize_conditioning": bool(resize_conditioning),
|
||||||
|
"anchor_strength": anchor_strength,
|
||||||
},)
|
},)
|
||||||
if width > 0:
|
if width > 0:
|
||||||
width = int(round(width / 32.0)) * 32
|
width = int(round(width / 32.0)) * 32
|
||||||
@@ -528,6 +539,9 @@ class H3LatentUpscaleParams:
|
|||||||
"fade_width": fade_width,
|
"fade_width": fade_width,
|
||||||
"overlap_mode": overlap_mode,
|
"overlap_mode": overlap_mode,
|
||||||
"overlap_blend": overlap_blend,
|
"overlap_blend": overlap_blend,
|
||||||
|
"chunk_length": chunk_length,
|
||||||
|
"resize_conditioning": bool(resize_conditioning),
|
||||||
|
"anchor_strength": anchor_strength,
|
||||||
},)
|
},)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1133,6 +1133,9 @@ class DumasH3LongVideosHelperTests(unittest.TestCase):
|
|||||||
self.assertEqual(required["fade_width"][1]["default"], 0)
|
self.assertEqual(required["fade_width"][1]["default"], 0)
|
||||||
self.assertEqual(required["overlap_mode"][1]["default"], "earlier")
|
self.assertEqual(required["overlap_mode"][1]["default"], "earlier")
|
||||||
self.assertEqual(required["overlap_blend"][1]["default"], "linear")
|
self.assertEqual(required["overlap_blend"][1]["default"], "linear")
|
||||||
|
self.assertEqual(required["chunk_length"][1]["default"], 136)
|
||||||
|
self.assertFalse(required["resize_conditioning"][1]["default"])
|
||||||
|
self.assertEqual(required["anchor_strength"][1]["default"], 0.999)
|
||||||
|
|
||||||
def test_compose_persistent_does_not_expand_ambiguous_plural_to_full_cast(self):
|
def test_compose_persistent_does_not_expand_ambiguous_plural_to_full_cast(self):
|
||||||
active = self.module.parse_wardrobe(
|
active = self.module.parse_wardrobe(
|
||||||
|
|||||||
Reference in New Issue
Block a user