Wagner Bruna
f977addf06
fix: disable batch_cfg for Metal when building with upstream ggml ( #2311 )
2026-11-09 22:10:12 +08:00
Wagner Bruna
8cbe905fdd
refactor: use a distinct version id for Chroma ( #2237 )
2026-10-28 22:02:18 +08:00
Wagner Bruna
d234ac62fa
feat: print sigma values before inference ( #2205 )
2026-10-25 15:58:35 +08:00
Wagner Bruna
0886f11b6b
fix: skip reference image VAE encoding when latents have no consumer ( #2207 )
2026-10-25 05:19:32 +08:00
Wagner Bruna
530fa39073
fix: prevent z-image crash with reference images ( #2185 )
2026-10-22 22:57:44 +08:00
Wagner Bruna
20050815ac
chore: clean up include paths ( #2175 )
2026-10-20 22:58:52 +08:00
Wagner Bruna
c150a6bafe
fix: correct step count adjustment for custom sigmas list ( #2084 )
2026-10-06 17:55:00 +08:00
Wagner Bruna and leejet
f4b5326da7
feat: support for merging LoRA weights on model conversion ( #2079 )
...
Co-authored-by: leejet <leejet714@gmail.com >
2026-10-06 17:50:16 +08:00
Wagner Bruna
b8248a869c
fix: avoid passing ggml logs as format strings ( #2002 )
2026-09-21 00:50:52 +08:00
Wagner Bruna
008ca5b492
feat: restore legacy fp8 handling when building with upstream ggml ( #2001 )
2026-09-21 00:48:30 +08:00
Wagner Bruna
07a85c74cb
feat: support Brownian tree noise in all noise injection samplers ( #1899 )
2026-09-15 02:37:31 +08:00
Wagner Bruna
d04e8950c1
fix: correct SDXL embeddings loading ( #1939 )
2026-09-08 00:23:08 +08:00
Wagner Bruna
88b044be7f
fix: mark graph cuts with both a prefix and a suffix ( #1883 )
2026-08-19 22:27:48 +08:00
Wagner Bruna
af92790ffc
feat: allow customizing the alpha and beta parameters of the beta scheduler ( #1834 )
2026-07-30 21:24:51 +08:00
Wagner Bruna
b8bf67615c
fix: correct dangling pointer to empty image reference vector ( #1813 )
2026-07-24 21:20:33 +08:00
Wagner Bruna
2961182365
chore: add missing override declarations ( #1800 )
2026-07-21 22:49:52 +08:00
Wagner Bruna
45714b1069
feat(sdapi): report generation parameters through the info field ( #1426 )
2026-07-05 16:11:37 +08:00
Wagner Bruna
ec4cb8104b
fix: correct TAEHV encoding for image models ( #1711 )
2026-06-27 01:23:18 +08:00
Wagner Bruna and leejet
39f7962d69
ci: adopt dynamic cpu backends on released binaries ( #1704 )
...
Co-authored-by: leejet <leejet714@gmail.com >
2026-06-26 09:31:13 +08:00
Wagner Bruna
e8e012eef2
fix: workaround for Anima with Vulkan and Flash Attention ( #1678 )
2026-06-22 00:20:00 +08:00
Wagner Bruna
710bc91c8f
fix: correct conversion from sd_type_t to ggml_type ( #1519 )
2026-06-16 23:54:42 +08:00
Wagner Bruna and leejet
5a34bc7f6e
feat: support for cancelling generations ( #1124 )
...
* feat: support for canceling the ongoing generation
* return partial image batches on cancel
---------
Co-authored-by: leejet <leejet714@gmail.com >
2026-06-16 00:36:38 +08:00
Wagner Bruna
81abfb2548
chore: rename and reformat gits_noise.inl ( #1617 )
2026-06-07 22:30:20 +08:00
Wagner Bruna and leejet
02f06370a7
refactor: call CPU backend functions dynamically ( #1591 )
...
Co-authored-by: leejet <leejet714@gmail.com >
2026-06-01 23:41:21 +08:00
Wagner Bruna
b54bd83a3f
fix: explicitly exclude f8, f64 and i64 tensors from mmap ( #1575 )
2026-05-30 18:31:08 +08:00
Wagner Bruna
0e4ee04488
fix: correct tae for models that use the flux2 vae ( #1571 )
2026-05-28 09:13:16 +08:00
Wagner Bruna
f683c88a28
feat: make negative max_vram control the amount of spare vram ( #1503 )
2026-05-18 23:00:06 +08:00
Wagner Bruna
e7eb92fd84
feat: add Gradient Estimation sampler ( #1484 )
2026-05-17 22:54:28 +08:00
Wagner Bruna
fd1a2794f3
refactor: unify Euler, Euler Ancestral and DDIM implementations ( #1474 )
2026-05-16 16:13:28 +08:00
Wagner Bruna
686856edca
chore: do not report the fake VAE "allocation" as an error ( #1494 )
2026-05-16 16:08:31 +08:00
57ff2eb0f4
feat: support for memory-mapping model weights ( #1414 )
...
Co-authored-by: Piotr Wilkin <piotr.wilkin@syndatis.com >
Co-authored-by: Junmo Kim <me@junmo.kim >
Co-authored-by: leejet <leejet714@gmail.com >
2026-05-15 00:30:03 +08:00
Wagner Bruna
586b6f1481
feat: adapt res samplers for flow models for eta > 0 ( #1436 )
2026-05-06 21:49:06 +08:00
b8079e253d
feat: transition from compile-time to runtime backend discovery ( #1448 )
...
Co-authored-by: Stéphane du Hamel <stephduh@live.fr >
Co-authored-by: Cyberhan123 <255542417@qq.com >
Co-authored-by: leejet <leejet714@gmail.com >
2026-04-29 23:26:57 +08:00
Wagner Bruna
331cfa5387
fix: release VAE compute buffer after tiled encoding ( #1465 )
2026-04-29 22:25:30 +08:00
Wagner Bruna
7023fc4cfb
fix: correct image to image DDIM and TCD ( #1410 )
2026-04-19 17:51:28 +08:00
Wagner Bruna
e77e4c46bf
feat: adapt LCM for flow models ( #1413 )
2026-04-19 17:49:46 +08:00
Wagner Bruna
f3f69e2fbe
feat: add DPM++ (2S) Ancestral implementation for flow models ( #1428 )
2026-04-18 15:05:09 +08:00
Wagner Bruna
2bcff67480
fix: correct dpm++2s_a second model call ( #1435 )
2026-04-18 14:54:41 +08:00
Wagner Bruna
ee5bf956b0
chore: allow building the embedded UI header separately ( #1415 )
2026-04-15 22:07:31 +08:00
Wagner Bruna and professor-moody
118489eb5c
chore: harden safetensors and gguf loading code ( #1404 )
...
Co-authored-by: professor-moody <keys@nimbus.lan >
2026-04-11 17:19:57 +08:00
Wagner Bruna
be9f51b25c
refactor: simplify DiscreteFlowDenoiser ( #1405 )
2026-04-11 17:18:23 +08:00
Wagner Bruna
dd753729cc
fix: correct double increment on flow denoisers sigma calculations ( #1372 )
2026-04-08 23:13:05 +08:00
Wagner Bruna and leejet
687a81f251
chore: make libwebp optional and support system libwebp ( #1387 )
...
Co-authored-by: leejet <leejet714@gmail.com >
2026-04-05 23:52:05 +08:00
Wagner Bruna and leejet
99c1de379b
feat: ancestral sampler implementations for flow models ( #1374 )
...
* feat: add support for the eta parameter to ancestral samplers
* feat: Euler Ancestral sampler implementation for flow models
* refine flow ancestral sampling and normalize eta defaults
---------
Co-authored-by: leejet <leejet714@gmail.com >
2026-04-02 01:35:29 +08:00
Wagner Bruna
4fe7a35939
feat(server): add generation metadata to png images ( #1217 )
2026-03-31 23:06:27 +08:00
Wagner Bruna
02dd5e5dd2
refactor: move VAE tiling parameters to SDGenerationParams ( #1261 )
2026-03-30 23:09:38 +08:00
Wagner Bruna
6293ab5aaf
docs: update Spectrum info about DiT models ( #1360 )
2026-03-30 00:12:57 +08:00
Wagner Bruna
630ee03f23
refactor: move all cache parameter defaults to the library ( #1327 )
2026-03-15 16:43:46 +08:00
Wagner Bruna
f6968bc589
chore: remove SD_FAST_SOFTMAX build flag ( #1338 )
2026-03-15 16:42:47 +08:00
Wagner Bruna
39d54702a6
feat: accept legacy image parameter on v1/images/edits ( #1270 )
2026-03-01 22:00:50 +08:00
Wagner Bruna
60889bc9a1
fix: correct sdapi LoRA file handling ( #1276 )
2026-03-01 21:57:06 +08:00
Wagner Bruna and leejet
b314d80ad0
feat: turn flow_shift into a generation parameter ( #1289 )
...
* feat: turn flow_shift into a generation parameter
* format code
* simplify set_shift/set_parameters
* fix sd_sample_params_to_str
* remove unused variable
* update docs
---------
Co-authored-by: leejet <leejet714@gmail.com >
2026-02-26 00:26:04 +08:00
Wagner Bruna
adea272225
feat(server): use image and command-line dimensions by default on server ( #1262 )
2026-02-11 00:42:50 +08:00
Wagner Bruna
c7ccafbd6f
fix: correct sdapi handling of cfg_scale and steps ( #1260 )
2026-02-09 23:34:19 +08:00
Wagner Bruna
329571131d
chore: clarify warning about missing model files ( #1219 )
2026-01-21 22:34:11 +08:00
Wagner Bruna and leejet
61659ef299
feat: add basic sdapi support to sd-server ( #1197 )
...
* feat: add basic sdapi support to sd-server
Compatible with AUTOMATIC1111 / Forge.
* fix img2img with no mask
* add more parameter validation
* eliminate MSVC warnings
---------
Co-authored-by: leejet <leejet714@gmail.com >
2026-01-19 00:21:11 +08:00
Wagner Bruna
fbce16e02d
fix: avoid undefined behavior on image mask allocation failure ( #1198 )
2026-01-18 01:14:56 +08:00
Wagner Bruna
48d3161a8d
feat: add sd-server API support for steps, sampler and scheduler ( #1173 )
2026-01-14 00:34:27 +08:00
Wagner Bruna
c5602a676c
feat: prioritize gguf and safetensors formats for embeddings and LoRAs ( #1169 )
2026-01-05 23:58:09 +08:00
Wagner Bruna
d0d836ae74
feat: support mmap for model loading ( #1059 )
2025-12-28 22:38:29 +08:00
Wagner Bruna
cc107714d7
fix: consistently pass 2nd-order samplers half steps as negatives ( #1095 )
2025-12-27 15:54:18 +08:00
Wagner Bruna
7c88c4765c
chore: give feedback about cfg values smaller than 1 ( #1088 )
2025-12-19 23:41:52 +08:00
Wagner Bruna and leejet
78e15bd4af
feat: default to LCM scheduler for LCM sampling ( #1109 )
...
* feat: default to LCM scheduler for LCM sampling
* fix bug and attempt to get default scheduler for vid_gen when none is set
---------
Co-authored-by: leejet <leejet714@gmail.com >
2025-12-18 21:43:39 +08:00
Wagner Bruna
e687913bf1
chore: remove lora_model_dir parameter ( #1100 )
2025-12-16 22:37:45 +08:00
Wagner Bruna
200cb6f2ca
fix: avoid crash with VAE tiling and certain image sizes ( #1090 )
2025-12-15 23:51:40 +08:00
Wagner Bruna
a3a88fc9b2
fix: avoid crash loading LoRAs with bf16 weights ( #1077 )
2025-12-12 22:36:54 +08:00
Wagner Bruna
e72aea796e
feat: embed version string and git commit hash ( #1008 )
2025-12-09 22:38:54 +08:00
Wagner Bruna
118683de8a
fix: correct preview method selection ( #1038 )
2025-12-04 22:43:16 +08:00
Wagner Bruna
99e17232a4
fix: prevent NaN issues with Z-Image on certain ROCm setups ( #1034 )
2025-12-03 22:19:34 +08:00
Wagner Bruna
e4c50f1de5
chore: add sd_ prefix to a few functions ( #967 )
2025-12-01 22:43:52 +08:00
Wagner Bruna
673dbdda17
fix: add missing line cleanup for s/it progress display ( #891 )
2025-11-30 11:45:30 +08:00
Wagner Bruna
0249509a30
refactor: add user data pointer to the image preview callback ( #1001 )
2025-11-30 11:34:17 +08:00
Wagner Bruna
45c46779af
feat: add LCM scheduler ( #983 )
2025-11-22 13:53:31 +08:00
Wagner Bruna and masamaru-san
b542894fb9
fix: avoid crash on default video preview path ( #997 )
...
Co-authored-by: masamaru-san
2025-11-22 12:46:27 +08:00
Wagner Bruna
199e675cc7
feat: support for --tensor-type-rules on generation modes ( #932 )
2025-11-16 17:07:32 +08:00
Wagner Bruna
e8eb3791c8
fix: typo in --lora-apply-mode help ( #972 )
2025-11-16 14:48:00 +08:00
Wagner Bruna
aa44e06890
fix: avoid crash with LoRAs and type override ( #974 )
2025-11-16 14:47:36 +08:00
Wagner Bruna
945d9a9ee3
docs: add Koboldcpp as an available UI ( #930 )
2025-11-02 02:03:01 +08:00
Wagner Bruna
353e708844
docs: update ggml and llama.cpp URLs ( #931 )
2025-11-02 02:02:44 +08:00
Wagner Bruna
8a45d0ff7f
chore: clean up stb includes ( #919 )
2025-10-28 23:25:45 +08:00
Wagner Bruna
64a7698347
chore: report number of Qwen layers as info ( #901 )
2025-10-18 23:22:01 +08:00
Wagner Bruna
c64994dc1d
fix: better progress display for second-order samplers ( #834 )
2025-10-13 22:12:48 +08:00
Wagner Bruna
5436f6b814
fix: correct canny preprocessor ( #861 )
2025-10-13 22:02:35 +08:00
Wagner Bruna
9727c6bb98
fix: resolve VAE tiling problem in Qwen Image ( #873 )
2025-10-12 23:45:53 +08:00
Wagner Bruna
aa68b875b9
refactor: deal with default img-cfg-scale at the library level ( #869 )
2025-10-12 23:17:52 +08:00
Wagner Bruna and leejet
5b261b9cee
feat: add a stand-alone upscale mode ( #865 )
...
* feat: add a stand-alone upscale mode
* fix prompt option check
* format code
* update README.md
---------
Co-authored-by: leejet <leejet714@gmail.com >
2025-10-12 23:10:02 +08:00
Wagner Bruna
f3140eadbb
fix: tensor loading thread count ( #854 )
2025-09-25 00:26:38 +08:00
Wagner Bruna
513f36d495
docs: include Vulkan compatibility for LoRA quants ( #845 )
2025-09-25 00:01:10 +08:00
Wagner Bruna and leejet
171b2222a5
fix: avoid segfault for pix2pix models without reference images ( #766 )
...
* fix: avoid segfault for pix2pix models with no reference images
* fix: default to empty reference on pix2pix models to avoid segfault
* use resize instead of reserve
* format code
---------
Co-authored-by: leejet <leejet714@gmail.com >
2025-09-18 00:11:38 +08:00
Wagner Bruna
c607fc3ed4
feat: use Euler sampling by default for SD3 and Flux ( #753 )
...
Thank you for your contribution.
2025-09-14 12:34:41 +08:00
Wagner Bruna
b54bec3f18
fix: do not force VAE type to f32 on SDXL ( #716 )
...
This seems to be a leftover from the initial SDXL support: it's
not enough to avoid NaN issues, and it's not not needed for the
fixed sdxl-vae-fp16-fix .
2025-09-14 12:19:59 +08:00
Wagner Bruna
5869987fe4
fix: make weight override more robust against ggml changes ( #760 )
2025-09-14 12:15:53 +08:00
Wagner Bruna
48956ffb87
feat: reduce CLIP memory usage with no embeddings ( #768 )
2025-09-14 12:08:00 +08:00
Wagner Bruna
ddc4a18b92
fix: make tiled VAE reuse the compute buffer ( #821 )
2025-09-14 11:41:50 +08:00
Wagner Bruna
ac5a215998
fix: use {} for params init instead of memset ( #781 )
2025-09-10 21:49:29 +08:00
Wagner Bruna
abb36d66b5
chore: update flash attention warnings ( #805 )
2025-09-10 21:38:21 +08:00
Wagner Bruna
ff4fdbb88d
fix: accept NULL in sd_img_gen_params_t::input_id_images_path ( #809 )
2025-09-10 21:22:55 +08:00
Wagner Bruna
2eb3845df5
fix: typo in the verbose long flag ( #783 )
2025-09-04 00:49:01 +08:00
Wagner Bruna
eea77cbad9
feat: throttle model loading progress updates ( #782 )
...
Some terminals have slow display latency, so frequent output
during model loading can actually slow down the process.
Also, since tensor loading times can vary a lot, the progress
display now shows the average across past iterations instead
of just the last one.
2025-09-01 21:32:01 +08:00
Wagner Bruna
f7f05fb185
chore: avoid setting GGML_MAX_NAME when building against external ggml ( #751 )
...
An external ggml will most likely have been built with the default
GGML_MAX_NAME value (64), which would be inconsistent with the value
set by our build (128). That would be an ODR violation, and it could
easily cause memory corruption issues due to the different
sizeof(struct ggml_tensor) values.
For now, when linking against an external ggml, we demand it has been
patched with a bigger GGML_MAX_NAME, since we can't check against a
value defined only at build time.
2025-08-03 01:24:40 +08:00