You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Browse filesBrowse the repository at this point in the historyBrowse files
Mark Caldwell
committed
feat: automatic VAE-tiling fallback when an untiled decode exceeds the backend buffer limit
A full-image VAE decode can need a single compute buffer bigger than the backend allows, so sd.cpp hard-failed instead of using the tiling it already has. This makes that fallback automatic and on by default, so a run no longer dies one flag short of working.
--vae-tiling still forces tiling on; --no-vae-tiling-fallback restores the old hard-fail. Before allocating, the planned buffer is measured from the graph and checked per backend: Vulkan uses ggml_backend_supports_op (its real per-buffer limit), CUDA/ROCm check free VRAM since they report no per-buffer cap, keeping a margin for the compute pool the reserve doesn't count. If the untiled decode still comes back empty it frees and retries tiled, covering a genuine OOM. max_buffer_size in extra_tiling_args caps it manually on any backend.
auto_tile is appended to sd_tiling_params_t so the C ABI stays compatible.
"extra VAE tiling args, key=value list. max_buffer_size (bytes) forces the auto fallback to tile when an untiled VAE compute buffer would exceed it. LTX video VAE supports temporal_tile_frames (default: 4), temporal_tile_overlap (default: 1)",
Copy file name to clipboardExpand all lines: examples/server/api.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -518,7 +518,7 @@ Shared default fields used by both `img_gen` and `vid_gen`:
518
518
|`output_format`|`string`|
519
519
|`output_compression`|`integer`|
520
520
521
-
`vae_tiling_params.extra_tiling_args` accepts a key=value list. For LTX video VAE temporal tiling, `temporal_tile_frames` defaults to `4` and `temporal_tile_overlap` defaults to `1`.
521
+
`vae_tiling_params.extra_tiling_args` accepts a key=value list. `max_buffer_size` (bytes) forces the automatic tiling fallback when an untiled VAE compute buffer would exceed it. For LTX video VAE temporal tiling, `temporal_tile_frames` defaults to `4` and `temporal_tile_overlap` defaults to `1`.
0 commit comments