Skip to content

Commit 02de7c8

Browse files
committed
fix: missing initialization of sample parameters
* the value of the parameter eta was undefined * replace memset calls on parameter struct initializations with simpler initialization lists * add a missing free on an error path in the context initialization
1 parent d7f430c commit 02de7c8

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

stable-diffusion.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1546,7 +1546,7 @@ enum scheduler_t str_to_schedule(const char* str) {
15461546
}
15471547

15481548
void sd_ctx_params_init(sd_ctx_params_t* sd_ctx_params) {
1549-
memset((void*)sd_ctx_params, 0, sizeof(sd_ctx_params_t));
1549+
*sd_ctx_params = {};
15501550
sd_ctx_params->vae_decode_only = true;
15511551
sd_ctx_params->vae_tiling = false;
15521552
sd_ctx_params->free_params_immediately = true;
@@ -1630,6 +1630,7 @@ char* sd_ctx_params_to_str(const sd_ctx_params_t* sd_ctx_params) {
16301630
}
16311631

16321632
void sd_sample_params_init(sd_sample_params_t* sample_params) {
1633+
*sample_params = {};
16331634
sample_params->guidance.txt_cfg = 7.0f;
16341635
sample_params->guidance.img_cfg = INFINITY;
16351636
sample_params->guidance.distilled_guidance = 3.5f;
@@ -1676,9 +1677,9 @@ char* sd_sample_params_to_str(const sd_sample_params_t* sample_params) {
16761677
}
16771678

16781679
void sd_img_gen_params_init(sd_img_gen_params_t* sd_img_gen_params) {
1679-
memset((void*)sd_img_gen_params, 0, sizeof(sd_img_gen_params_t));
1680-
sd_img_gen_params->clip_skip = -1;
1680+
*sd_img_gen_params = {};
16811681
sd_sample_params_init(&sd_img_gen_params->sample_params);
1682+
sd_img_gen_params->clip_skip = -1;
16821683
sd_img_gen_params->ref_images_count = 0;
16831684
sd_img_gen_params->width = 512;
16841685
sd_img_gen_params->height = 512;
@@ -1733,7 +1734,7 @@ char* sd_img_gen_params_to_str(const sd_img_gen_params_t* sd_img_gen_params) {
17331734
}
17341735

17351736
void sd_vid_gen_params_init(sd_vid_gen_params_t* sd_vid_gen_params) {
1736-
memset((void*)sd_vid_gen_params, 0, sizeof(sd_vid_gen_params_t));
1737+
*sd_vid_gen_params = {};
17371738
sd_sample_params_init(&sd_vid_gen_params->sample_params);
17381739
sd_sample_params_init(&sd_vid_gen_params->high_noise_sample_params);
17391740
sd_vid_gen_params->high_noise_sample_params.sample_steps = -1;
@@ -1757,6 +1758,7 @@ sd_ctx_t* new_sd_ctx(const sd_ctx_params_t* sd_ctx_params) {
17571758

17581759
sd_ctx->sd = new StableDiffusionGGML();
17591760
if (sd_ctx->sd == NULL) {
1761+
free(sd_ctx);
17601762
return NULL;
17611763
}
17621764

0 commit comments

Comments
 (0)