Skip to content

Commit 1f9dd9c

Browse files
authored
sd: sync with master-775-b5d8120 (#2321)
* sd: expose extra_sample_args parameter * sd: sync with master-773-1b04283 * sd: sync with master-775-b5d8120
1 parent d067fc6 commit 1f9dd9c

22 files changed

Lines changed: 1367 additions & 66 deletions

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -703,7 +703,7 @@ budget.o: common/reasoning-budget.cpp common/reasoning-budget.h
703703
chat.o: common/chat.cpp common/chat.h
704704
$(CXX) $(CXXFLAGS) -c $< -o $@
705705

706-
SDCPP_COMMON_BASENAMES := include/stable-diffusion.h src/conditioning/conditioner.hpp src/core/backend_fit.cpp src/core/backend_fit.h src/core/ggml_extend_backend.cpp src/core/ggml_extend_backend.h src/core/ggml_extend.hpp src/core/ggml_graph_cut.cpp src/core/ggml_graph_cut.h src/core/layer_split_partition.cpp src/core/layer_split_partition.h src/core/ordered_map.hpp src/core/rng.hpp src/core/rng_mt19937.hpp src/core/rng_philox.hpp src/core/tensor_ggml.hpp src/core/tensor.hpp src/core/util.cpp src/core/util.h src/extensions/generation_extension.h src/extensions/photomaker_extension.cpp src/extensions/pulid_extension.cpp src/kcpp_sd_extensions.h src/model/adapter/lora.hpp src/model/adapter/pmid.hpp src/model/adapter/pulid.hpp src/model/common/block.hpp src/model/common/rope.hpp src/model/diffusion/anima.hpp src/model/diffusion/boogu.hpp src/model/diffusion/control.hpp src/model/diffusion/dit.hpp src/model/diffusion/ernie_image.hpp src/model/diffusion/flux.hpp src/model/diffusion/hidream_o1.hpp src/model/diffusion/ideogram4.hpp src/model/diffusion/krea2.hpp src/model/diffusion/lens.hpp src/model/diffusion/ltxv.hpp src/model/diffusion/minit2i.hpp src/model/diffusion/mmdit.hpp src/model/diffusion/model.hpp src/model/diffusion/pid.hpp src/model/diffusion/qwen_image.hpp src/model/diffusion/sefi_image.hpp src/model/diffusion/unet.hpp src/model/diffusion/wan.hpp src/model/diffusion/z_image.hpp src/model.h src/model_io/binary_io.h src/model_io/gguf_io.cpp src/model_io/gguf_io.h src/model_io/gguf_reader_ext.h src/model_io/pickle_io.cpp src/model_io/pickle_io.h src/model_io/safetensors_io.cpp src/model_io/safetensors_io.h src/model_io/streaming_writer.h src/model_io/tensor_storage.h src/model_io/torch_legacy_io.cpp src/model_io/torch_legacy_io.h src/model_io/torch_zip_io.cpp src/model_io/torch_zip_io.h src/model_loader.cpp src/model_loader.h src/model_manager.cpp src/model_manager.h src/model/te/clip.hpp src/model/te/llm.hpp src/model/te/t5.hpp src/model/upscaler/esrgan.hpp src/model/upscaler/ltx_latent_upscaler.hpp src/model/vae/auto_encoder_kl.hpp src/model/vae/ltx_audio_vae.hpp src/model/vae/ltx_vae.hpp src/model/vae/tae.hpp src/model/vae/vae.hpp src/model/vae/wan_vae.hpp src/name_conversion.cpp src/name_conversion.h src/runtime/cache_dit.hpp src/runtime/condition_cache_utils.hpp src/runtime/denoiser.hpp src/runtime/easycache.hpp src/runtime/gits_noise.h src/runtime/guidance.cpp src/runtime/guidance.h src/runtime/imatrix.cpp src/runtime/imatrix.h src/runtime/latent-preview.h src/runtime/preprocessing.hpp src/runtime/sample-cache.cpp src/runtime/sample-cache.h src/runtime/spectrum.hpp src/runtime/ucache.hpp src/stable-diffusion.cpp src/tokenizers/bpe_tokenizer.cpp src/tokenizers/bpe_tokenizer.h src/tokenizers/clip_tokenizer.cpp src/tokenizers/clip_tokenizer.h src/tokenizers/gemma_tokenizer.cpp src/tokenizers/gemma_tokenizer.h src/tokenizers/gpt_oss_tokenizer.cpp src/tokenizers/gpt_oss_tokenizer.h src/tokenizers/mistral_tokenizer.cpp src/tokenizers/mistral_tokenizer.h src/tokenizers/qwen2_tokenizer.cpp src/tokenizers/qwen2_tokenizer.h src/tokenizers/t5_unigram_tokenizer.cpp src/tokenizers/t5_unigram_tokenizer.h src/tokenizers/tokenizer.cpp src/tokenizers/tokenizer.h src/tokenizers/tokenize_util.cpp src/tokenizers/tokenize_util.h src/tokenizers/vocab/vocab.h src/upscaler.cpp src/upscaler.h src/weight_manager.h
706+
SDCPP_COMMON_BASENAMES := include/stable-diffusion.h src/conditioning/conditioner.hpp src/core/backend_fit.cpp src/core/backend_fit.h src/core/ggml_extend_backend.cpp src/core/ggml_extend_backend.h src/core/ggml_extend.hpp src/core/ggml_graph_cut.cpp src/core/ggml_graph_cut.h src/core/layer_split_partition.cpp src/core/layer_split_partition.h src/core/ordered_map.hpp src/core/rng.hpp src/core/rng_mt19937.hpp src/core/rng_philox.hpp src/core/tensor_ggml.hpp src/core/tensor.hpp src/core/util.cpp src/core/util.h src/extensions/generation_extension.h src/extensions/photomaker_extension.cpp src/extensions/pulid_extension.cpp src/kcpp_sd_extensions.h src/model/adapter/lora.hpp src/model/adapter/pmid.hpp src/model/adapter/pulid.hpp src/model/common/block.hpp src/model/common/rope.hpp src/model/diffusion/anima.hpp src/model/diffusion/boogu.hpp src/model/diffusion/control.hpp src/model/diffusion/dit.hpp src/model/diffusion/ernie_image.hpp src/model/diffusion/flux.hpp src/model/diffusion/hidream_o1.hpp src/model/diffusion/ideogram4.hpp src/model/diffusion/krea2.hpp src/model/diffusion/lens.hpp src/model/diffusion/lingbot_video.hpp src/model/diffusion/ltxv.hpp src/model/diffusion/minit2i.hpp src/model/diffusion/mmdit.hpp src/model/diffusion/model.hpp src/model/diffusion/pid.hpp src/model/diffusion/qwen_image.hpp src/model/diffusion/sefi_image.hpp src/model/diffusion/unet.hpp src/model/diffusion/wan.hpp src/model/diffusion/z_image.hpp src/model.h src/model_io/binary_io.h src/model_io/gguf_io.cpp src/model_io/gguf_io.h src/model_io/gguf_reader_ext.h src/model_io/pickle_io.cpp src/model_io/pickle_io.h src/model_io/safetensors_io.cpp src/model_io/safetensors_io.h src/model_io/streaming_writer.h src/model_io/tensor_storage.h src/model_io/torch_legacy_io.cpp src/model_io/torch_legacy_io.h src/model_io/torch_zip_io.cpp src/model_io/torch_zip_io.h src/model_loader.cpp src/model_loader.h src/model_manager.cpp src/model_manager.h src/model/te/clip.hpp src/model/te/llm.hpp src/model/te/t5.hpp src/model/upscaler/esrgan.hpp src/model/upscaler/ltx_latent_upscaler.hpp src/model/vae/auto_encoder_kl.hpp src/model/vae/ltx_audio_vae.hpp src/model/vae/ltx_vae.hpp src/model/vae/tae.hpp src/model/vae/vae.hpp src/model/vae/wan_vae.hpp src/name_conversion.cpp src/name_conversion.h src/runtime/cache_dit.hpp src/runtime/condition_cache_utils.hpp src/runtime/denoiser.hpp src/runtime/easycache.hpp src/runtime/gits_noise.h src/runtime/guidance.cpp src/runtime/guidance.h src/runtime/imatrix.cpp src/runtime/imatrix.h src/runtime/latent-preview.h src/runtime/preprocessing.hpp src/runtime/sample-cache.cpp src/runtime/sample-cache.h src/runtime/spectrum.hpp src/runtime/ucache.hpp src/stable-diffusion.cpp src/tokenizers/bpe_tokenizer.cpp src/tokenizers/bpe_tokenizer.h src/tokenizers/clip_tokenizer.cpp src/tokenizers/clip_tokenizer.h src/tokenizers/gemma_tokenizer.cpp src/tokenizers/gemma_tokenizer.h src/tokenizers/gpt_oss_tokenizer.cpp src/tokenizers/gpt_oss_tokenizer.h src/tokenizers/mistral_tokenizer.cpp src/tokenizers/mistral_tokenizer.h src/tokenizers/qwen2_tokenizer.cpp src/tokenizers/qwen2_tokenizer.h src/tokenizers/t5_unigram_tokenizer.cpp src/tokenizers/t5_unigram_tokenizer.h src/tokenizers/tokenizer.cpp src/tokenizers/tokenizer.h src/tokenizers/tokenize_util.cpp src/tokenizers/tokenize_util.h src/tokenizers/vocab/vocab.h src/upscaler.cpp src/upscaler.h src/weight_manager.h
707707

708708
SDCPP_MAIN_BASENAMES := examples/cli/image_metadata.cpp examples/cli/image_metadata.h examples/cli/main.cpp examples/cli/msf_gif.h examples/common/common.cpp examples/common/common.h examples/common/log.cpp examples/common/log.h examples/common/media_io.cpp examples/common/media_io.h examples/common/resource_owners.hpp src/tokenizers/vocab/clip_merges.hpp src/tokenizers/vocab/gemma2_merges.hpp src/tokenizers/vocab/gemma2_vocab.hpp src/tokenizers/vocab/gemma_merges.hpp src/tokenizers/vocab/gemma_vocab.hpp src/tokenizers/vocab/gpt_oss_merges.hpp src/tokenizers/vocab/gpt_oss_vocab.hpp src/tokenizers/vocab/mistral_merges.hpp src/tokenizers/vocab/mistral_vocab.hpp src/tokenizers/vocab/qwen_merges.hpp src/tokenizers/vocab/t5.hpp src/tokenizers/vocab/umt5.hpp src/tokenizers/vocab/vocab.cpp src/convert.cpp src/version.cpp
709709

expose.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@ struct sd_generation_inputs
240240
const char * sample_method = nullptr;
241241
const char * scheduler = nullptr;
242242
const float eta = -1.0f;
243+
const char * extra_sample_args = nullptr;
243244
const int clip_skip = -1;
244245
const int vid_req_frames = 1;
245246
const int vid_fps = 16;

koboldcpp.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -431,6 +431,7 @@ class sd_generation_inputs(ctypes.Structure):
431431
("sample_method", ctypes.c_char_p),
432432
("scheduler", ctypes.c_char_p),
433433
("eta", ctypes.c_float),
434+
("extra_sample_args", ctypes.c_char_p),
434435
("clip_skip", ctypes.c_int),
435436
("vid_req_frames", ctypes.c_int),
436437
("vid_fps", ctypes.c_int),
@@ -2677,6 +2678,7 @@ def gendefaults_parse_meta_field(value):
26772678
# match sd.cpp flag
26782679
'cache-option': 'cache_options',
26792680
'cache_option': 'cache_options',
2681+
'extra-sample-args': 'extra_sample_args',
26802682
}
26812683
parsed = parse_json_object(value, 'gendefaults') or {}
26822684
result = {}
@@ -2845,6 +2847,7 @@ def build_prompt(prompt, forced):
28452847
seed = random.randint(100000, 999999)
28462848
sample_method = (genparams.get("sampler_name") or "default")
28472849
scheduler = (genparams.get("scheduler") or "default").lower()
2850+
extra_sample_args = str(genparams.get("extra_sample_args") or "")
28482851
clip_skip = tryparseint(genparams.get("clip_skip", -1),-1)
28492852
eta = tryparsefloat(genparams.get("eta", None), None)
28502853
vid_req_frames = tryparseint(genparams.get("frames", 1),1)
@@ -2910,6 +2913,7 @@ def build_prompt(prompt, forced):
29102913
inputs.sample_method = sd_sampler_canonical_name(sample_method).encode("UTF-8")
29112914
inputs.scheduler = scheduler.encode("UTF-8")
29122915
inputs.eta = -1.0 if eta is None else eta
2916+
inputs.extra_sample_args = extra_sample_args.encode("UTF-8")
29132917
inputs.clip_skip = clip_skip
29142918
inputs.vid_req_frames = vid_req_frames
29152919
inputs.vid_fps = vid_fps

otherarch/sdcpp/include/stable-diffusion.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,11 @@ SD_API const char* sd_get_system_info();
429429
SD_API bool sd_ctx_supports_image_generation(const sd_ctx_t* sd_ctx);
430430
SD_API bool sd_ctx_supports_video_generation(const sd_ctx_t* sd_ctx);
431431

432+
// ControlNet hot-swap APIs are not safe to call while generation is in flight.
433+
SD_API bool sd_ctx_load_control_net(sd_ctx_t* sd_ctx, const char* path);
434+
SD_API bool sd_ctx_unload_control_net(sd_ctx_t* sd_ctx);
435+
SD_API bool sd_ctx_has_control_net(const sd_ctx_t* sd_ctx);
436+
432437
SD_API const char* sd_type_name(enum sd_type_t type);
433438
SD_API enum sd_type_t str_to_sd_type(const char* str);
434439
SD_API const char* sd_rng_type_name(enum rng_type_t rng_type);

otherarch/sdcpp/sdtype_adapter.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ struct SDParams {
117117
float distilled_guidance = -1.0f;
118118
float shifted_timestep = 0;
119119
float flow_shift = -1.0f;
120+
std::string extra_sample_args = "";
120121
float eta = -1.0f;
121122
float strength = 0.75f;
122123
int64_t seed = 42;
@@ -1001,6 +1002,7 @@ sd_generation_outputs sdtype_generate(const sd_generation_inputs inputs)
10011002
sd_params->sample_steps = inputs.sample_steps;
10021003
sd_params->shifted_timestep = inputs.shifted_timestep;
10031004
sd_params->flow_shift = inputs.flow_shift;
1005+
sd_params->extra_sample_args = inputs.extra_sample_args ? inputs.extra_sample_args : "";
10041006
sd_params->eta = inputs.eta;
10051007
sd_params->seed = inputs.seed;
10061008
sd_params->width = inputs.width;
@@ -1259,6 +1261,7 @@ sd_generation_outputs sdtype_generate(const sd_generation_inputs inputs)
12591261
if (sd_params->flow_shift > 0.f && sd_params->flow_shift != INFINITY) {
12601262
params.sample_params.flow_shift = sd_params->flow_shift;
12611263
}
1264+
params.sample_params.extra_sample_args = sd_params->extra_sample_args.c_str();
12621265
params.seed = sd_params->seed;
12631266
params.strength = sd_params->strength;
12641267
params.vae_tiling_params.enabled = dotile;

0 commit comments

Comments
 (0)