Files
Seunghyun JiandClaude Fable 5 679592ffb0 speed up extended attention: auto flash_attn + mask-free SDPA fallback
Two changes to _extended_self_attn dispatch (per-block, per-step hot path):

- The flash-attn LSE path now auto-enables whenever flash_attn is
  importable, instead of requiring ComfyUI's --use-flash-attention launch
  flag (that flag only governs comfy's own attention calls; gating our
  internal path on it left the fast path dark on stock `comfy launch`).
  A runtime kernel failure permanently drops to the SDPA fallback.

- The SDPA fallback no longer passes a float attn_mask (which forced the
  ~2.6x slower mem-efficient backend). The uniform b_cond bias is folded
  into one appended head dimension (q extra = sqrt(D), target-k extra = 0,
  cond-k extra = b_cond, explicit scale=1/sqrt(D)), head dim zero-padded
  to a multiple of 8, padded value channels sliced off the output — exact,
  and flash-backend eligible.

Measured on RTX 5070 Ti at ~1MP shapes (B=2, 16h, 4200+4200 tokens, bf16),
per call: old float-mask 17.3 ms -> fallback 11.2 ms / flash 6.9 ms
(native target-only attention: 3.3 ms). x28 blocks this was ~300 ms/step
of recoverable overhead. Cross-path agreement at the bf16 noise floor;
gate-off invariant unchanged (7.55e-08 in test_smoke).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSkULyWmisdHfrxHNc7J37
2026-08-21 18:39:07 +09:00

15 lines
996 B
TOML

[project]
name = "comfyui-easycontrol-ksamplercompat"
description = "KSampler-compatible Anima EasyControl image conditioning for ComfyUI. A model-patch node (MODEL + VAE + IMAGE -> MODEL) that feeds a reference image into the Anima DiT's frozen extended self-attention stream and returns a patched MODEL for the stock KSampler — no dedicated sampler node. Reimplements anima_lora's EasyControl inference path against ComfyUI's native Anima/Cosmos DiT backbone (split q/k/v projections). EasyControl checkpoints go in models/loras/. Uses: grayscale/lineart -> color (colorization), and EasyEdit — reference image + tag-delta instruction -> edited re-render in one pass, no inversion (two CPU-only instruction-builder nodes included)."
version = "0.3.1"
license = { file = "LICENSE" }
dependencies = []
[project.urls]
Repository = "https://github.com/sorryhyun/ComfyUI-EasyControl-KSamplerCompat"
[tool.comfy]
PublisherId = "sorryhyun"
DisplayName = "Anima EasyControl (KSampler)"
Icon = ""