Skip to content

Commit c03f2b3

Browse files
committed
Add exception handling for txt2img
1 parent c3b4d40 commit c03f2b3

File tree

4 files changed

+516
-444
lines changed

4 files changed

+516
-444
lines changed

examples/cli/main.cpp

Lines changed: 55 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -848,30 +848,32 @@ int main(int argc, const char* argv[]) {
848848
}
849849
}
850850

851-
sd_ctx_t* sd_ctx = new_sd_ctx(params.model_path.c_str(),
852-
params.clip_l_path.c_str(),
853-
params.clip_g_path.c_str(),
854-
params.t5xxl_path.c_str(),
855-
params.diffusion_model_path.c_str(),
856-
params.vae_path.c_str(),
857-
params.taesd_path.c_str(),
858-
params.controlnet_path.c_str(),
859-
params.lora_model_dir.c_str(),
860-
params.embeddings_path.c_str(),
861-
params.stacked_id_embeddings_path.c_str(),
862-
vae_decode_only,
863-
params.vae_tiling,
864-
true,
865-
params.n_threads,
866-
params.wtype,
867-
params.rng_type,
868-
params.schedule,
869-
params.clip_on_cpu,
870-
params.control_net_cpu,
871-
params.vae_on_cpu);
851+
sd_ctx_t* sd_ctx;
852+
SDError err = new_sd_ctx(&sd_ctx,
853+
params.model_path.c_str(),
854+
params.clip_l_path.c_str(),
855+
params.clip_g_path.c_str(),
856+
params.t5xxl_path.c_str(),
857+
params.diffusion_model_path.c_str(),
858+
params.vae_path.c_str(),
859+
params.taesd_path.c_str(),
860+
params.controlnet_path.c_str(),
861+
params.lora_model_dir.c_str(),
862+
params.embeddings_path.c_str(),
863+
params.stacked_id_embeddings_path.c_str(),
864+
vae_decode_only,
865+
params.vae_tiling,
866+
true,
867+
params.n_threads,
868+
params.wtype,
869+
params.rng_type,
870+
params.schedule,
871+
params.clip_on_cpu,
872+
params.control_net_cpu,
873+
params.vae_on_cpu);
872874

873-
if (sd_ctx == NULL) {
874-
printf("new_sd_ctx_t failed\n");
875+
if (err != SD_SUCCESS) {
876+
printf("new_sd_ctx failed with error code %d\n", err);
875877
return 1;
876878
}
877879

@@ -900,28 +902,37 @@ int main(int argc, const char* argv[]) {
900902
}
901903

902904
sd_image_t* results;
905+
int result_count;
903906
if (params.mode == TXT2IMG) {
904-
results = txt2img(sd_ctx,
905-
params.prompt.c_str(),
906-
params.negative_prompt.c_str(),
907-
params.clip_skip,
908-
params.cfg_scale,
909-
params.guidance,
910-
params.width,
911-
params.height,
912-
params.sample_method,
913-
params.sample_steps,
914-
params.seed,
915-
params.batch_count,
916-
control_image,
917-
params.control_strength,
918-
params.style_ratio,
919-
params.normalize_input,
920-
params.input_id_images_path.c_str(),
921-
params.skip_layers,
922-
params.slg_scale,
923-
params.skip_layer_start,
924-
params.skip_layer_end);
907+
err = txt2img(sd_ctx,
908+
&results,
909+
&result_count,
910+
params.prompt.c_str(),
911+
params.negative_prompt.c_str(),
912+
params.clip_skip,
913+
params.cfg_scale,
914+
params.guidance,
915+
params.width,
916+
params.height,
917+
params.sample_method,
918+
params.sample_steps,
919+
params.seed,
920+
params.batch_count,
921+
control_image,
922+
params.control_strength,
923+
params.style_ratio,
924+
params.normalize_input,
925+
params.input_id_images_path.c_str(),
926+
params.skip_layers,
927+
params.slg_scale,
928+
params.skip_layer_start,
929+
params.skip_layer_end);
930+
931+
if (err != SD_SUCCESS) {
932+
printf("txt2img failed with error code %d\n", err);
933+
free_sd_ctx(sd_ctx);
934+
return 1;
935+
}
925936
} else {
926937
sd_image_t input_image = {(uint32_t)params.width,
927938
(uint32_t)params.height,

ggml

Submodule ggml updated from 21d3a30 to 096face

0 commit comments

Comments
 (0)