ComfyUI's wrap_attn() calls transformer_options["optimized_attention_override"] as
override(original_func, q, k, v, heads, ...). We installed the registered attention
function itself, so q was the original function: "'function' object has no attribute
'shape'" for every installed non-default mode (sage, flash, xformers, pytorch, ...).
A mode that was not installed fell back to default silently, which is why "sage3 worked".
- make_attention_override() drops the leading function and forwards the rest
- generate_image_attn_safe(): one clear log line naming the mode, one retry with the
default attention; the item records attention_fallback
- README lists the real mode names (sageattn was never one)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>