From 3f3c328eeb6970d4ad3edf7004652bc8c8999bc0 Mon Sep 17 00:00:00 2001 From: leejet Date: Sun, 7 Jul 2024 18:24:30 +0800 Subject: [PATCH] avoid build failures in macos --- conditioner.hpp | 8 ++++++-- stable-diffusion.cpp | 4 ++-- t5.hpp | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/conditioner.hpp b/conditioner.hpp index 132781a..e01be2b 100644 --- a/conditioner.hpp +++ b/conditioner.hpp @@ -8,6 +8,10 @@ struct SDCondition { struct ggml_tensor* c_crossattn = NULL; // aka context struct ggml_tensor* c_vector = NULL; // aka y struct ggml_tensor* c_concat = NULL; + + SDCondition() = default; + SDCondition(struct ggml_tensor* c_crossattn, struct ggml_tensor* c_vector, struct ggml_tensor* c_concat) : + c_crossattn(c_crossattn), c_vector(c_vector), c_concat(c_concat) {} }; struct Conditioner { @@ -514,7 +518,7 @@ struct FrozenCLIPEmbedderWithCustomWords : public Conditioner { GGML_ASSERT(offset == ggml_nbytes(vec)); } // print_ggml_tensor(result); - return {hidden_states, vec, NULL}; + return SDCondition(hidden_states, vec, NULL); } std::tuple> @@ -941,7 +945,7 @@ struct SD3CLIPEmbedder : public Conditioner { hidden_states, chunk_hidden_states->ne[0], ggml_nelements(hidden_states) / chunk_hidden_states->ne[0]); - return {hidden_states, pooled, NULL}; + return SDCondition(hidden_states, pooled, NULL); } SDCondition get_learned_condition(ggml_context* work_ctx, diff --git a/stable-diffusion.cpp b/stable-diffusion.cpp index d032b37..3327fac 100644 --- a/stable-diffusion.cpp +++ b/stable-diffusion.cpp @@ -1482,7 +1482,7 @@ SD_API sd_image_t* img2vid(sd_ctx_t* sd_ctx, auto uc_vector = ggml_dup_tensor(work_ctx, cond.c_vector); - SDCondition uncond = {uc_crossattn, uc_vector, uc_concat}; + SDCondition uncond = SDCondition(uc_crossattn, uc_vector, uc_concat); int64_t t1 = ggml_time_ms(); LOG_INFO("get_learned_condition completed, taking %" PRId64 " ms", t1 - t0); @@ -1513,7 +1513,7 @@ SD_API sd_image_t* img2vid(sd_ctx_t* sd_ctx, sample_method, sigmas, -1, - {NULL, NULL}); + SDCondition(NULL, NULL, NULL)); int64_t t2 = ggml_time_ms(); LOG_INFO("sampling completed, taking %.2fs", (t2 - t1) * 1.0f / 1000); diff --git a/t5.hpp b/t5.hpp index 14f46a6..f69f467 100644 --- a/t5.hpp +++ b/t5.hpp @@ -151,7 +151,7 @@ protected: value[i] = (*pieces)[i].second; // vocab_id } - trie_ = std::make_unique(); + trie_ = std::unique_ptr(new Darts::DoubleArray()); if (trie_->build(key.size(), const_cast(&key[0]), nullptr, &value[0]) != 0) { status_ = BUILD_DOUBLE_ARRAY_FAILED;