Commit 5dcfa79 for stable-diffusion.cpp
commit 5dcfa79801213f23e27b3e83617350ebb8ea93aa
Author: leejet <leejet714@gmail.com>
Date: Sat Nov 14 19:52:32 2026 +0800
sync: update ggml to 1.0.0 (#2354)
diff --git a/ggml b/ggml
index d803c23..eeda9ec 160000
--- a/ggml
+++ b/ggml
@@ -1 +1 @@
-Subproject commit d803c238f67915fb825a9aa4df27b99356d51597
+Subproject commit eeda9ec48fc84a3df0bb9dcc19ae9053075a2539
diff --git a/src/core/cuda/bf16.cu b/src/core/cuda/bf16.cu
index 59f5073..8389323 100644
--- a/src/core/cuda/bf16.cu
+++ b/src/core/cuda/bf16.cu
@@ -29,7 +29,7 @@ namespace SD_CUDA_NAMESPACE {
}
static bool projection(const ggml_tensor* mat, const ggml_tensor* input) {
- return mat->op == GGML_OP_MUL_MAT && mat->src[1] == input && mat->op_params[0] == GGML_PREC_DEFAULT &&
+ return mat->op == GGML_OP_MUL_MAT && mat->src[1] == input && ggml_prec_get_acc(mat) == GGML_PREC_UNDEFINED &&
matrix(input, GGML_TYPE_F32) && input->ne[1] >= 32 && ggml_nelements(input) <= INT_MAX &&
matrix(mat, GGML_TYPE_F32) && matrix(mat->src[0], GGML_TYPE_BF16) && !mat->view_src;
}
diff --git a/src/model/vae/minimax_h3_audio_vae.hpp b/src/model/vae/minimax_h3_audio_vae.hpp
index d5eb0d0..d83b992 100644
--- a/src/model/vae/minimax_h3_audio_vae.hpp
+++ b/src/model/vae/minimax_h3_audio_vae.hpp
@@ -171,9 +171,9 @@ namespace MiniMaxH3 {
auto v = ggml_add(ctx->ggml_ctx, qkv[2], bias_shape(params["v_bias"]));
int64_t sequence = x->ne[1];
- auto mask = ggml_diag_mask_inf(ctx->ggml_ctx,
- ggml_ext_zeros(ctx, sequence, sequence, 1, 1),
- 0);
+ auto mask = ggml_tri(ctx->ggml_ctx,
+ ggml_ext_full(ctx, -INFINITY, sequence, sequence, 1, 1),
+ GGML_TRI_TYPE_UPPER);
auto attn_out = ggml_ext_attention_ext(ctx,
q,
k,
diff --git a/src/pipeline/diffusion_engine.cpp b/src/pipeline/diffusion_engine.cpp
index 745c8ba..8c33376 100644
--- a/src/pipeline/diffusion_engine.cpp
+++ b/src/pipeline/diffusion_engine.cpp
@@ -2482,15 +2482,6 @@ sd::Tensor<float> StableDiffusionGGML::sample(const std::shared_ptr<DiffusionMod
: sampling_init_latent;
sd::Tensor<float> denoised = x_t;
-#ifdef SD_USE_UPSTREAM_GGML
- // workaround for sd.cpp #2149
- const auto diffusion_backends = backend_manager.runtime_backends(SDBackendModule::DIFFUSION);
- const bool batch_cfg_backend_ok = std::none_of(diffusion_backends.begin(), diffusion_backends.end(),
- [](ggml_backend_t backend) { return sd_backend_is(backend, "MTL"); });
-#else
- const bool batch_cfg_backend_ok = true;
-#endif
-
auto denoise = [&](const sd::Tensor<float>& x, float sigma, int step) -> sd::guidance::GuiderOutput {
if (get_cancel_flag() == SD_CANCEL_ALL) {
LOG_VERBOSE("cancelling generation");
@@ -2813,7 +2804,6 @@ sd::Tensor<float> StableDiffusionGGML::sample(const std::shared_ptr<DiffusionMod
}
const bool batch_cfg_ok = config_->params.batched_cfg &&
- batch_cfg_backend_ok &&
sd_version_is_unet(version) &&
!uncond.empty() &&
img_uncond.empty() &&