feat: support Ideogram4 in stablediffusion-ggml backend + gallery#10201
Merged
Conversation
… model Bump stable-diffusion.cpp from 1f9ee88 to b9254dd, the upstream commit that adds Ideogram4 support (leejet/stable-diffusion.cpp#1609). Ideogram4 derives its classifier-free guidance from a separate unconditional diffusion model, exposed upstream through the new sd_ctx_params_t.uncond_diffusion_model_path field. Wire that field into the gosd wrapper via a new uncond_diffusion_model_path option. The _path suffix is deliberate: the Go loader only resolves options whose name contains "path" to an absolute path under the model directory, so this keeps the option consistent with diffusion_model_path and high_noise_diffusion_model_path. Signed-off-by: Ettore Di Giacinto <mudler@localai.io> Assisted-by: Claude:claude-opus-4-8 [Claude Code]
Single-file GGUF weights for Ideogram4 are now published (stduhpf/ideogram-4-gguf), so add the model to the gallery. Ideogram4 is a text-to-image model with strong, accurate in-image text rendering, driven by a Qwen3-VL-8B text encoder and real classifier-free guidance from a separate unconditional diffusion model (the uncond_diffusion_model_path support added in the preceding commit). Two index entries, both built on gallery/virtual.yaml with the full config inlined in overrides (same pattern as the other models, no dedicated template file): - ideogram-4-iq4nl-ggml (4-bit, ~11.6GB diffusion) - ideogram-4-q8_0-ggml (8-bit, ~20GB diffusion) Each bundles the diffusion + unconditional GGUF (stduhpf), the Qwen3-VL-8B-Instruct text encoder (unsloth), and the FLUX.2 VAE (Comfy-Org mirror, non-gated). cfg_scale is 7 to match the upstream Ideogram4 default, since it performs real CFG unlike the guidance-distilled Flux/Z-Image models. Signed-off-by: Ettore Di Giacinto <mudler@localai.io> Assisted-by: Claude:claude-opus-4-8 [Claude Code]
e3096f8 to
070e001
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds Ideogram4 support to the
stablediffusion-ggmlbackend and ships it in the model gallery.Backend enablement
stable-diffusion.cpp1f9ee88->b9254dd— the immediate next upstream commit, which is the Ideogram4 merge (leejet/stable-diffusion.cpp#1609). Clean one-commit bump, no unrelated changes.uncond_diffusion_model_pathoption in the gosd wrapper. Ideogram4 derives its classifier-free guidance from a separate unconditional diffusion model, exposed upstream via the newsd_ctx_params_t.uncond_diffusion_model_pathfield. The_pathsuffix is deliberate: the Go loader only resolves an option to an absolute model-dir path when its name contains"path", matchingdiffusion_model_path/high_noise_diffusion_model_path.The other inputs (
--diffusion-model,--llm,--vae) were already covered by existing options.Gallery
Community single-file GGUFs are now published (stduhpf/ideogram-4-gguf), so the model is added to the gallery:
virtual.yaml(config inlined inoverrides, no dedicated template), same pattern as the other modelsideogram-4-iq4nl-ggml(4-bit, ~11.6GB diffusion)ideogram-4-q8_0-ggml(8-bit, ~20GB diffusion)Each bundles the diffusion + unconditional GGUF (stduhpf), the Qwen3-VL-8B-Instruct text encoder (unsloth), and the FLUX.2 VAE (Comfy-Org non-gated mirror).
cfg_scaleis 7 (real CFG, matching the upstream default) rather than 1 like the guidance-distilled Flux/Z-Image templates. Each entry repeats the full options list because gallery overrides replace the template options slice (mergo.WithOverride) rather than appending.Testing
libgosd-avx{,2,512}.so,-fallback) compile cleanly against the new upstream source, including the new field. Confirmedconst char* uncond_diffusion_model_path;present in upstreaminclude/stable-diffusion.h.x-linked-etag), and the install-timemergomerge was simulated to confirm every path option resolves to a downloaded file.Assisted-by: Claude:claude-opus-4-8 [Claude Code]