mirror of
https://github.com/Comfy-Org/comfy-kitchen.git
synced 2026-11-04 23:37:42 +00:00
[PR #192] [MERGED] Add zero_pad and strided NDHWC views to conv3d and GroupNorm #209
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/comfy-kitchen#209
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/comfy-kitchen/pull/192
Author: @kijai
Created: 9/23/2026
Status: ✅ Merged
Merged: 9/24/2026
Merged by: @comfyanonymous
Base:
main← Head:zero-pad-mode📝 Commits (10+)
b1fffd4group_norm_silu_pad3d8067deacleanup95d1558cleanup comments2d5e785ruff fix94f01c2Adjustmentsc5862b6harden2883be8Fix dtype83ff31fHandle dtype better716f42bGroup size 64 dequant kernelbad6fb6gate test📊 Changes
14 files changed (+601 additions, -81 deletions)
View changed files
📝
comfy_kitchen/__init__.py(+19 -5)📝
comfy_kitchen/backends/cuda/__init__.py(+102 -25)📝
comfy_kitchen/backends/cuda/dlpack_bindings.cpp(+21 -7)📝
comfy_kitchen/backends/cuda/ops/cutlass_conv3d_fp16.cu(+32 -12)📝
comfy_kitchen/backends/cuda/ops/group_norm_pad3d.cu(+33 -16)📝
comfy_kitchen/backends/cuda/ops/int8_linear.cu(+69 -4)📝
comfy_kitchen/backends/eager/__init__.py(+8 -2)📝
comfy_kitchen/backends/eager/conv3d.py(+38 -0)📝
comfy_kitchen/backends/eager/group_norm_pad3d.py(+54 -5)📝
comfy_kitchen/backends/hip/__init__.py(+19 -0)📝
comfy_kitchen/constraints.py(+8 -1)📝
tests/test_fp16_conv3d.py(+72 -2)📝
tests/test_group_norm_silu_pad3d.py(+103 -2)📝
tests/test_int8.py(+23 -0)📄 Description
Three additions the SeedVR2 VAE benefits from:
group_norm_silu_pad3d(zero_pad=True): zero spatial border instead of reflect,for models whose convolutions pad with zeros. Default is unchanged.
out=on both ops. The conv launcher now takes NDHWC strides for x and out, so amemory-tiled convolution reads and writes views of the full tensors with no per-tile
copies. Row windows of the output can't be expressed by the packed epilogue, so those
decline to torch. For a batch of one, GroupNorm's
outmay be a frame-offset view,which lets a caller keep room in front for a real temporal halo.
Implemented as separate mutating
_outops, since custom ops can't return input aliases.cuDNN there, but costs the SeedVR2 decoder 65.5 -> 57.8 dB against an fp32 reference, the same
opt-in numerics
fp16_conv3dalready carries.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.