Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: leejet/stable-diffusion.cpp
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: Aatricks/stable-diffusion.cpp
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 7 commits
  • 5 files changed
  • 2 contributors

Commits on Jun 3, 2026

  1. feat: precomputed-condition API for sequential FLUX.2 generation (llm…

    …edge Lever 1)
    
    Enable running the text encoder and the diffusion transformer in separate
    contexts so they are never resident at the same time (peak RAM = max instead
    of sum) on memory-constrained devices.
    
    - include/stable-diffusion.h: sd_tensor_raw_t / sd_condition_raw_t +
      sd_precompute_condition / sd_free_condition /
      sd_generate_image_with_precomputed_condition.
    - FLUX.2 conditioner-skip: when no text_encoders.llm.* tensors are present
      (DiT-only context) skip building the LLMEmbedder instead of failing the
      tensor load; null-guard the conditioner derefs in setup.
    - generate_image refactored to generate_image_impl(..., cond_raw, uncond_raw):
      reconstructs the conditioning into its work_ctx and forwards to
      generate_image_internal, which gained precomputed_cond/uncond params + branch
      (skips get_learned_condition when a precomputed cond is supplied).
    - sd_precompute_condition / sd_generate_image_with_precomputed_condition impls.
    
    Verified on host (CPU): encoder-only precompute -> free -> DiT-only generate
    produces a coherent image; peak ~2.6GB vs ~4.0GB for a combined context.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
    Aatricks and claude committed Jun 3, 2026
    Configuration menu
    Copy the full SHA
    c785f5f View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2026

  1. fix: honor GGML_DISABLE_VULKAN/GGML_DISABLE_OPENCL in init_backend

    SD_USE_VULKAN builds always picked the Vulkan backend whenever a device
    was enumerable, leaving hosts no runtime path to the CPU backend. On
    devices whose Vulkan driver initializes fine but deadlocks at the first
    compute dispatch (PowerVR DXT-48 / Pixel 10, driver v1.602.x) the only
    escape is to skip Vulkan entirely. Check the same env vars the llmedge
    JNI already sets (and ggml-backend-reg already honors) before touching
    each GPU backend.
    Aatricks committed Jul 8, 2026
    Configuration menu
    Copy the full SHA
    6d976d9 View commit details
    Browse the repository at this point in the history
  2. Merge llmedge branches: FLUX.2 precomputed-condition API + runtime GG…

    …ML_DISABLE_VULKAN/GGML_DISABLE_OPENCL backend opt-out
    
    # Conflicts:
    #	src/stable-diffusion.cpp
    Aatricks committed Jul 8, 2026
    Configuration menu
    Copy the full SHA
    3c2c668 View commit details
    Browse the repository at this point in the history
  3. Pin nested ggml back to a8db410 (keep other nested deps at merged)

    The master merge advanced ggml a8db410 -> 0ce7ad3, whose ggml-vulkan.cpp
    requires SPIRV-Headers (<spirv/unified1/spirv.hpp>) that are not wired into
    llmedge's Android NDK include path or the Linux CI toolchain, breaking the
    Vulkan build with 'spv has not been declared'. a8db410 is the ggml the merged
    sd.cpp source was built and device-verified against (S22: standard, sequential,
    FLUX) and is fetchable from the leejet/ggml remote. Only ggml is reverted; the
    frontend/libwebm/libwebp pointers stay at the merged commits (they do not
    affect the native build and their old commits are no longer on their remotes).
    Upstream ggml alignment + SPIRV-Headers wiring is deferred to the upstream pass.
    Aatricks committed Jul 8, 2026
    Configuration menu
    Copy the full SHA
    ead8fcf View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2026

  1. Re-align nested ggml to upstream 0ce7ad3

    Reverts the temporary CI pin to a8db410. llmedge now wires SPIRV-Headers into
    both the Android and desktop/CI Vulkan builds (llmedge-spirv-headers.cmake), so
    ggml-vulkan.cpp's runtime SPIR-V patching (namespace spv) compiles. This brings
    the nested ggml back in line with the upstream leejet/master merge.
    Aatricks committed Jul 9, 2026
    Configuration menu
    Copy the full SHA
    36ca7a2 View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2026

  1. Configuration menu
    Copy the full SHA
    a049d14 View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2026

  1. Record nested ggml 0ce7ad34 and server frontend 797ccf8 gitlinks

    Aligns the recorded nested submodule pointers with the checkouts the
    Android build and device testing have been running against.
    Aatricks committed Jul 15, 2026
    Configuration menu
    Copy the full SHA
    bbcef27 View commit details
    Browse the repository at this point in the history
Loading