feat: Server: Add support for previews via sdcpp API (#2093)

Co-authored-by: leejet <leejet714@gmail.com>
This commit is contained in:
stduhpfandleejet authored and GitHub committed 2026-10-06 19:20:02 +08:00
1 parent 203a882a28
commit 96f67fe631
9 files changed
+151 -7

No files matched your search

+19 -6
View File
@@ -360,12 +360,13 @@ int32_t sd_get_num_physical_cores() {
static sd_progress_cb_t sd_progress_cb = nullptr;
void* sd_progress_cb_data = nullptr;
static sd_preview_cb_t sd_preview_cb = nullptr;
static void* sd_preview_cb_data = nullptr;
preview_t sd_preview_mode = PREVIEW_NONE;
int sd_preview_interval = 1;
bool sd_preview_denoised = true;
bool sd_preview_noisy = false;
static sd_preview_info_t sd_preview_info = {};
static sd_preview_cb_t sd_preview_cb = nullptr;
static void* sd_preview_cb_data = nullptr;
preview_t sd_preview_mode = PREVIEW_NONE;
int sd_preview_interval = 1;
bool sd_preview_denoised = true;
bool sd_preview_noisy = false;
static sd_graph_eval_callback_t sd_backend_eval_cb = nullptr;
static void* sd_backend_eval_cb_data = nullptr;
@@ -696,6 +697,7 @@ void sd_set_progress_callback(sd_progress_cb_t cb, void* data) {
sd_progress_cb_data = data;
}
void sd_set_preview_callback(sd_preview_cb_t cb, preview_t mode, int interval, bool denoised, bool noisy, void* data) {
sd_preview_info = {};
sd_preview_cb = cb;
sd_preview_cb_data = data;
sd_preview_mode = mode;
@@ -709,6 +711,17 @@ void sd_set_backend_eval_callback(sd_graph_eval_callback_t cb, void* data) {
sd_backend_eval_cb_data = data;
}
void sd_begin_preview_pass(int total_steps) {
if (sd_preview_cb != nullptr) {
++sd_preview_info.sample_pass;
sd_preview_info.total_steps = total_steps;
}
}
sd_preview_info_t sd_get_preview_info() {
return sd_preview_info;
}
sd_preview_cb_t sd_get_preview_callback() {
return sd_preview_cb;
}
+1
View File
@@ -101,6 +101,7 @@ std::vector<std::pair<std::string, float>> split_quotation_attention(
sd_progress_cb_t sd_get_progress_callback();
void* sd_get_progress_callback_data();
void sd_begin_preview_pass(int total_steps);
sd_preview_cb_t sd_get_preview_callback();
void* sd_get_preview_callback_data();
preview_t sd_get_preview_mode();