Download otherarch/sdcpp/stable-diffusion.h from Darkknight535/kcpp-compiled-cuda-linux: direct link, hf CLI and curl.
- Browser
- Download file 7.78 kB
-
https://huggingface.co/Darkknight535/kcpp-compiled-cuda-linux/resolve/refs%2Fpr%2F1/otherarch/sdcpp/stable-diffusion.h
- Command line
-
hf download hf://Darkknight535/kcpp-compiled-cuda-linux@refs/pr/1/otherarch/sdcpp/stable-diffusion.h
-
curl -L -o stable-diffusion.h https://huggingface.co/Darkknight535/kcpp-compiled-cuda-linux/resolve/refs%2Fpr%2F1/otherarch/sdcpp/stable-diffusion.h
7.78 kB
| extern "C" { | |
| enum rng_type_t { | |
| STD_DEFAULT_RNG, | |
| CUDA_RNG | |
| }; | |
| enum sample_method_t { | |
| EULER_A, | |
| EULER, | |
| HEUN, | |
| DPM2, | |
| DPMPP2S_A, | |
| DPMPP2M, | |
| DPMPP2Mv2, | |
| IPNDM, | |
| IPNDM_V, | |
| LCM, | |
| N_SAMPLE_METHODS | |
| }; | |
| enum schedule_t { | |
| DEFAULT, | |
| DISCRETE, | |
| KARRAS, | |
| EXPONENTIAL, | |
| AYS, | |
| GITS, | |
| N_SCHEDULES | |
| }; | |
| // same as enum ggml_type | |
| enum sd_type_t { | |
| SD_TYPE_F32 = 0, | |
| SD_TYPE_F16 = 1, | |
| SD_TYPE_Q4_0 = 2, | |
| SD_TYPE_Q4_1 = 3, | |
| // SD_TYPE_Q4_2 = 4, support has been removed | |
| // SD_TYPE_Q4_3 = 5, support has been removed | |
| SD_TYPE_Q5_0 = 6, | |
| SD_TYPE_Q5_1 = 7, | |
| SD_TYPE_Q8_0 = 8, | |
| SD_TYPE_Q8_1 = 9, | |
| SD_TYPE_Q2_K = 10, | |
| SD_TYPE_Q3_K = 11, | |
| SD_TYPE_Q4_K = 12, | |
| SD_TYPE_Q5_K = 13, | |
| SD_TYPE_Q6_K = 14, | |
| SD_TYPE_Q8_K = 15, | |
| SD_TYPE_IQ2_XXS = 16, | |
| SD_TYPE_IQ2_XS = 17, | |
| SD_TYPE_IQ3_XXS = 18, | |
| SD_TYPE_IQ1_S = 19, | |
| SD_TYPE_IQ4_NL = 20, | |
| SD_TYPE_IQ3_S = 21, | |
| SD_TYPE_IQ2_S = 22, | |
| SD_TYPE_IQ4_XS = 23, | |
| SD_TYPE_I8 = 24, | |
| SD_TYPE_I16 = 25, | |
| SD_TYPE_I32 = 26, | |
| SD_TYPE_I64 = 27, | |
| SD_TYPE_F64 = 28, | |
| SD_TYPE_IQ1_M = 29, | |
| SD_TYPE_BF16 = 30, | |
| SD_TYPE_Q4_0_4_4 = 31, | |
| SD_TYPE_Q4_0_4_8 = 32, | |
| SD_TYPE_Q4_0_8_8 = 33, | |
| SD_TYPE_TQ1_0 = 34, | |
| SD_TYPE_TQ2_0 = 35, | |
| SD_TYPE_IQ4_NL_4_4 = 36, | |
| // SD_TYPE_IQ4_NL_4_8 = 37, | |
| // SD_TYPE_IQ4_NL_8_8 = 38, | |
| SD_TYPE_COUNT = 39, | |
| }; | |
| SD_API const char* sd_type_name(enum sd_type_t type); | |
| enum sd_log_level_t { | |
| SD_LOG_DEBUG, | |
| SD_LOG_INFO, | |
| SD_LOG_WARN, | |
| SD_LOG_ERROR | |
| }; | |
| typedef void (*sd_log_cb_t)(enum sd_log_level_t level, const char* text, void* data); | |
| typedef void (*sd_progress_cb_t)(int step, int steps, float time, void* data); | |
| SD_API void sd_set_log_callback(sd_log_cb_t sd_log_cb, void* data); | |
| SD_API void sd_set_progress_callback(sd_progress_cb_t cb, void* data); | |
| SD_API int32_t sd_get_num_physical_cores(); | |
| SD_API const char* sd_get_system_info(); | |
| typedef struct { | |
| uint32_t width; | |
| uint32_t height; | |
| uint32_t channel; | |
| uint8_t* data; | |
| } sd_image_t; | |
| typedef struct sd_ctx_t sd_ctx_t; | |
| SD_API void set_sd_vae_tiling(sd_ctx_t* ctx, bool tiling); | |
| SD_API int get_loaded_sd_version(sd_ctx_t* ctx); | |
| SD_API sd_ctx_t* new_sd_ctx(const char* model_path, | |
| const char* clip_l_path, | |
| const char* clip_g_path, | |
| const char* t5xxl_path, | |
| const char* diffusion_model_path, | |
| const char* vae_path, | |
| const char* taesd_path, | |
| const char* control_net_path_c_str, | |
| const char* lora_model_dir, | |
| const char* embed_dir_c_str, | |
| const char* stacked_id_embed_dir_c_str, | |
| bool vae_decode_only, | |
| bool vae_tiling, | |
| bool free_params_immediately, | |
| int n_threads, | |
| enum sd_type_t wtype, | |
| enum rng_type_t rng_type, | |
| enum schedule_t s, | |
| bool keep_clip_on_cpu, | |
| bool keep_control_net_cpu, | |
| bool keep_vae_on_cpu, | |
| bool diffusion_flash_attn); | |
| SD_API void free_sd_ctx(sd_ctx_t* sd_ctx); | |
| SD_API sd_image_t* txt2img(sd_ctx_t* sd_ctx, | |
| const char* prompt, | |
| const char* negative_prompt, | |
| int clip_skip, | |
| float cfg_scale, | |
| float guidance, | |
| int width, | |
| int height, | |
| enum sample_method_t sample_method, | |
| int sample_steps, | |
| int64_t seed, | |
| int batch_count, | |
| const sd_image_t* control_cond, | |
| float control_strength, | |
| float style_strength, | |
| bool normalize_input, | |
| const char* input_id_images_path, | |
| int* skip_layers, | |
| size_t skip_layers_count, | |
| float slg_scale, | |
| float skip_layer_start, | |
| float skip_layer_end); | |
| SD_API sd_image_t* img2img(sd_ctx_t* sd_ctx, | |
| sd_image_t init_image, | |
| const char* prompt, | |
| const char* negative_prompt, | |
| int clip_skip, | |
| float cfg_scale, | |
| float guidance, | |
| int width, | |
| int height, | |
| enum sample_method_t sample_method, | |
| int sample_steps, | |
| float strength, | |
| int64_t seed, | |
| int batch_count, | |
| const sd_image_t* control_cond, | |
| float control_strength, | |
| float style_strength, | |
| bool normalize_input, | |
| const char* input_id_images_path, | |
| int* skip_layers, | |
| size_t skip_layers_count, | |
| float slg_scale, | |
| float skip_layer_start, | |
| float skip_layer_end); | |
| SD_API sd_image_t* img2vid(sd_ctx_t* sd_ctx, | |
| sd_image_t init_image, | |
| int width, | |
| int height, | |
| int video_frames, | |
| int motion_bucket_id, | |
| int fps, | |
| float augmentation_level, | |
| float min_cfg, | |
| float cfg_scale, | |
| enum sample_method_t sample_method, | |
| int sample_steps, | |
| float strength, | |
| int64_t seed); | |
| typedef struct upscaler_ctx_t upscaler_ctx_t; | |
| SD_API upscaler_ctx_t* new_upscaler_ctx(const char* esrgan_path, | |
| int n_threads); | |
| SD_API void free_upscaler_ctx(upscaler_ctx_t* upscaler_ctx); | |
| SD_API sd_image_t upscale(upscaler_ctx_t* upscaler_ctx, sd_image_t input_image, uint32_t upscale_factor); | |
| SD_API bool convert(const char* input_path, const char* vae_path, const char* output_path, enum sd_type_t output_type); | |
| SD_API uint8_t* preprocess_canny(uint8_t* img, | |
| int width, | |
| int height, | |
| float high_threshold, | |
| float low_threshold, | |
| float weak, | |
| float strong, | |
| bool inverse); | |
| } | |