@@ -31,37 +31,39 @@ extern "C" {
3131enum rng_type_t {
3232 STD_DEFAULT_RNG ,
3333 CUDA_RNG ,
34+ CPU_RNG ,
3435 RNG_TYPE_COUNT
3536};
3637
3738enum sample_method_t {
38- SAMPLE_METHOD_DEFAULT ,
39- EULER ,
40- HEUN ,
41- DPM2 ,
42- DPMPP2S_A ,
43- DPMPP2M ,
44- DPMPP2Mv2 ,
45- IPNDM ,
46- IPNDM_V ,
47- LCM ,
48- DDIM_TRAILING ,
49- TCD ,
50- EULER_A ,
39+ EULER_SAMPLE_METHOD ,
40+ EULER_A_SAMPLE_METHOD ,
41+ HEUN_SAMPLE_METHOD ,
42+ DPM2_SAMPLE_METHOD ,
43+ DPMPP2S_A_SAMPLE_METHOD ,
44+ DPMPP2M_SAMPLE_METHOD ,
45+ DPMPP2Mv2_SAMPLE_METHOD ,
46+ IPNDM_SAMPLE_METHOD ,
47+ IPNDM_V_SAMPLE_METHOD ,
48+ LCM_SAMPLE_METHOD ,
49+ DDIM_TRAILING_SAMPLE_METHOD ,
50+ TCD_SAMPLE_METHOD ,
51+
5152 SAMPLE_METHOD_COUNT
5253};
5354
5455enum scheduler_t {
55- DEFAULT ,
56- DISCRETE ,
57- KARRAS ,
58- EXPONENTIAL ,
59- AYS ,
60- GITS ,
61- SGM_UNIFORM ,
62- SIMPLE ,
63- SMOOTHSTEP ,
64- SCHEDULE_COUNT
56+
57+ DISCRETE_SCHEDULER ,
58+ KARRAS_SCHEDULER ,
59+ EXPONENTIAL_SCHEDULER ,
60+ AYS_SCHEDULER ,
61+ GITS_SCHEDULER ,
62+ SGM_UNIFORM_SCHEDULER ,
63+ SIMPLE_SCHEDULER ,
64+ SMOOTHSTEP_SCHEDULER ,
65+ LCM_SCHEDULER ,
66+ SCHEDULER_COUNT
6567};
6668
6769enum prediction_t {
@@ -166,11 +168,13 @@ typedef struct {
166168 const char * lora_model_dir ;
167169 const char * embedding_dir ;
168170 const char * photo_maker_path ;
171+ const char * tensor_type_rules ;
169172 bool vae_decode_only ;
170173 bool free_params_immediately ;
171174 int n_threads ;
172175 enum sd_type_t wtype ;
173176 enum rng_type_t rng_type ;
177+ enum rng_type_t sampler_rng_type ;
174178 enum prediction_t prediction ;
175179 enum lora_apply_mode_t lora_apply_mode ;
176180 bool offload_params_to_cpu ;
@@ -226,6 +230,13 @@ typedef struct {
226230 float style_strength ;
227231} sd_pm_params_t ; // photo maker
228232
233+ typedef struct {
234+ bool enabled ;
235+ float reuse_threshold ;
236+ float start_percent ;
237+ float end_percent ;
238+ } sd_easycache_params_t ;
239+
229240typedef struct {
230241 const char * prompt ;
231242 const char * negative_prompt ;
@@ -246,6 +257,7 @@ typedef struct {
246257 float control_strength ;
247258 sd_pm_params_t pm_params ;
248259 sd_tiling_params_t vae_tiling_params ;
260+ sd_easycache_params_t easycache ;
249261} sd_img_gen_params_t ;
250262
251263typedef struct {
@@ -265,6 +277,7 @@ typedef struct {
265277 int64_t seed ;
266278 int video_frames ;
267279 float vace_strength ;
280+ sd_easycache_params_t easycache ;
268281} sd_vid_gen_params_t ;
269282
270283typedef struct sd_ctx_t sd_ctx_t ;
@@ -285,25 +298,30 @@ SD_API const char* sd_rng_type_name(enum rng_type_t rng_type);
285298SD_API enum rng_type_t str_to_rng_type (const char * str );
286299SD_API const char * sd_sample_method_name (enum sample_method_t sample_method );
287300SD_API enum sample_method_t str_to_sample_method (const char * str );
288- SD_API const char * sd_schedule_name (enum scheduler_t scheduler );
289- SD_API enum scheduler_t str_to_schedule (const char * str );
301+ SD_API const char * sd_scheduler_name (enum scheduler_t scheduler );
302+ SD_API enum scheduler_t str_to_scheduler (const char * str );
290303SD_API const char * sd_prediction_name (enum prediction_t prediction );
291304SD_API enum prediction_t str_to_prediction (const char * str );
292305SD_API const char * sd_preview_name (enum preview_t preview );
293306SD_API enum preview_t str_to_preview (const char * str );
294307SD_API const char * sd_lora_apply_mode_name (enum lora_apply_mode_t mode );
295308SD_API enum lora_apply_mode_t str_to_lora_apply_mode (const char * str );
296309
310+ SD_API void sd_easycache_params_init (sd_easycache_params_t * easycache_params );
311+
297312SD_API void sd_ctx_params_init (sd_ctx_params_t * sd_ctx_params );
298313SD_API char * sd_ctx_params_to_str (const sd_ctx_params_t * sd_ctx_params );
299314
300315SD_API sd_ctx_t * new_sd_ctx (const sd_ctx_params_t * sd_ctx_params );
301316SD_API void free_sd_ctx (sd_ctx_t * sd_ctx );
302- SD_API enum sample_method_t sd_get_default_sample_method ( const sd_ctx_t * sd_ctx );
317+
303318
304319SD_API void sd_sample_params_init (sd_sample_params_t * sample_params );
305320SD_API char * sd_sample_params_to_str (const sd_sample_params_t * sample_params );
306321
322+ SD_API enum sample_method_t sd_get_default_sample_method (const sd_ctx_t * sd_ctx );
323+ SD_API enum scheduler_t sd_get_default_scheduler (const sd_ctx_t * sd_ctx );
324+
307325SD_API void sd_img_gen_params_init (sd_img_gen_params_t * sd_img_gen_params );
308326SD_API char * sd_img_gen_params_to_str (const sd_img_gen_params_t * sd_img_gen_params );
309327SD_API sd_image_t * generate_image (sd_ctx_t * sd_ctx , const sd_img_gen_params_t * sd_img_gen_params );
@@ -342,4 +360,4 @@ SD_API bool preprocess_canny(sd_image_t image,
342360}
343361#endif
344362
345- #endif // __STABLE_DIFFUSION_H__
363+ #endif // __STABLE_DIFFUSION_H__
0 commit comments