Skip to content

v0.2.4

Choose a tag to compare

@github-actions github-actions released this 30 Jul 11:00
ac114fb

stable-diffusion-go v0.2.4 — pure-Go binding + prebuilt native libraries.

Built from leejet/stable-diffusion.cpp @ e92e86f (upstream pin: master-802-e92e86f).

go get github.com/Pendra-Cloud/stable-diffusion-go@v0.2.4 for the
binding; the lib archives attached here match this exact tag. Each archive
contains a self-contained libstable-diffusion (ggml statically linked,
hidden visibility — exports only the sd_* symbols pkg/sd/load.go registers).

CUDA archives require a matching host CUDA runtime; Vulkan archives require
a Vulkan loader/ICD on the host. The Windows archive carries the per-CPU/GPU
(avx2/avx512/avx/noavx/vulkan/cuda13) subdir tree the binding selects from.

Root cause

The engine bump to upstream master-802-e92e86f (#27 — Krea2 + many new architectures) grew the single translation unit upstream/src/stable-diffusion.cpp past MSVC's COFF object-file section limit. Every Windows CPU and Vulkan matrix leg hard-failed with:

upstream\src\stable-diffusion.cpp : fatal error C1128: number of sections exceeded object file format limit: compile with /bigobj

(see the post-merge main build, run 30522367716). Those legs are mandatory, so the windows matrix failed, windows_assemble's symbol gate had no DLLs to pass, and the release job was skipped — no release can publish.

Fix

Add /bigobj to the MSVC compile via step-level CXXFLAGS/CFLAGS environment variables on the Windows "Build variant" step only.

Why env vars and not -DCMAKE_CXX_FLAGS=/bigobj: CMake initializes CMAKE_<LANG>_FLAGS as "$ENV{<LANG>FLAGS} <platform defaults>", so the env route appends /bigobj alongside MSVC's defaults (/DWIN32 /D_WINDOWS /EHsc /GR), whereas the cache-variable route would replace them and silently drop /EHsc (breaking C++ exception unwinding). SD_BASE_FLAGS is untouched — it is shared with the Linux/macOS GCC/Clang legs, where /bigobj is not a valid flag.

Verification (Windows-only gating run — manual runs never publish)

Dispatched build-libs.yml on this branch with only=windows-amd64: run 30524022593 — overall conclusion success.

Leg Result
windows (avx2, cpu) ✅ success — 0 C1128 occurrences in log
windows (avx512, cpu) ✅ success — 0 C1128
windows (avx, cpu) ✅ success — 0 C1128
windows (noavx, cpu) ✅ success — 0 C1128
windows (vulkan) ✅ success — 0 C1128
windows (cuda13) ❌ pre-existing, optional (continue-on-error): cuda_runtime.h(82): fatal error C1083 — the known CUDA-13-on-windows-2022 include failure, unchanged by this PR
windows_assemble ✅ success — Windows symbol verification OK (5 variants) and Packaged stable-diffusion-libs-windows-amd64.tar.gz
release ⏭ skipped (manual gating runs never publish)

Merging this restores the Windows leg of the release pipeline; the cuda13 C1083 remains a separate known issue.

🤖 Generated with Claude Code

What's Changed

  • Bump engine to master-802-e92e86f (Krea2 support) + full ABI re-port by @tomcrawf90 in #27
  • ci(windows): compile with /bigobj to fix C1128 at upstream master-802 by @tomcrawf90 in #28

Full Changelog: v0.2.3...v0.2.4