• Stefy Lanza (nextime / spora )'s avatar
    A4: record what the image attention pin costs, so it is not re-investigated · 92a3d928
    Stefy Lanza (nextime / spora ) authored
    The pin to native (SDPA) is also the floor on image generation speed, and that
    is worth stating where it happens.
    
    Measured 2026-10-28 on Z-Image-Turbo-IntoRealism, 768x1344, 10 steps, idle
    RTX 3090: 21.4 s warm, 2.1 s/step. Two of the three things worth suspecting are
    ruled out rather than assumed -- the card's step count IS applied (the
    per-request progress endpoint reports total=10) and there is no bnb repack (the
    checkpoint is fp8 upcast to bf16) -- and the third was the cause: an
    unnecessary enable_model_cpu_offload from the model page's default
    offload_strategy, on a model that fits the card whole. 72 s -> 33 s -> 21.4 s.
    
    What remains is SDPA, and for this family that is not a choice: Z-Image and
    Krea 2 mask their text conditioning, and neither SageAttention nor flash-attn 2
    accepts an attn_mask (_ATTN_MASK_FAMILIES in codai/api/video.py, measured on
    LTX-2.3-10Eros which failed on sage then identically on flash). A few seconds
    per megapixel is the hardware here, not a misconfiguration.
    
    The remaining opportunity is named and NOT taken: this pins every image
    pipeline, including families that never mask and could use a fast kernel. The
    video path already decides that per pipeline class; doing the same here needs
    the masking image families enumerated and each measured, because getting it
    wrong is a 500 at the first denoising step rather than a slow render.
    Co-Authored-By: 's avatarClaude Opus 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_014T3rZozi1Ehk96NG1WesgC
    92a3d928
images.py 179 KB