Ideogram4 Turbo — GGUF build
Turbo-merged text-to-image with a FLUX.2 VAE and a Qwen3-VL-8B text encoder. 8 steps, CFG off.
What this repo is: a requantized, split-layout build of the upstream model — weights only, not a retrain. The recommended settings below are the values these weights are actually run with day to day, not copied from the upstream card.
Samples
![]() | ![]() |
| **prompt:** `a red apple on a rustic wooden table beside a window, soft daylight, fine skin texture and wood grain, studio photograph, sharp focus` — 1024×1024, 8 steps, guidance 1.0, seed 12345 | **prompt:** `portrait of an older fisherman with a weathered face, natural window light, shallow depth of field, photorealistic` — 1024×1024, 8 steps, guidance 1.0, seed 99 |
![]() | |
| **prompt:** `a rain-slicked Tokyo street at night, neon signs reflecting in puddles, cinematic, 35mm photograph` — 1024×1024, 8 steps, guidance 1.0, seed 1234 |
img2img
Two sources: a photograph, and the tests/ideogram4/ fixture. Each source sits beside the results made from it.
![]() | ![]() | ||
| **source** — `a red apple on a rustic wooden table beside a window, soft daylight, visible wood grain, studio photograph, sharp focus` | **img2img prompt:** structured JSON (below) — 1024×1024, **16 steps**, **guidance 1.0**, **strength 0.97**, seed 999 | ||
![]() | ![]() | ![]() | ![]() |
| **source** — one `tests/ideogram4/` image, used for all three | **img2img prompt:** `An oil painting of an abstract composition with a large glowing golden circle at the center over a flowing rainbow gradient, thick visible brushstrokes and canvas texture.` — 1024×1024, **16 steps**, **guidance 1.0**, **strength 0.98**, seed 42 | **img2img prompt:** `A watercolor painting of an abstract composition with a soft golden circle over a rainbow wash, bleeding edges and transparent layers on rough paper.` — 1024×1024, **16 steps**, **guidance 1.0**, **strength 0.97**, seed 999 | **img2img prompt:** `An impressionist oil painting of an abstract composition with a golden circle at the center over a vivid rainbow gradient, lively broken brushwork in the same bright colors.` — 1024×1024, **16 steps**, **guidance 1.0**, **strength 0.97**, seed 456 |
⚠ Always set guidance: 1.0
This is a turbo merge, and guidance: 1.0 means CFG off — not weak CFG. The
sampler blends v = g·cond + (1−g)·uncond, so at 1.0 the output is the pure
conditional branch.
Leave it unset and the pipeline falls back to the full model's per-step schedule (7.0 main, 3.0 for the last three), which this merge was never trained for, giving a compounding loss of brightness. Same source, prompt, strength and seed, at 8 steps:
| guidance | mean luminance | vs source |
|---|---|---|
| source | 140.3 | 1.00 |
| 1.0 (correct) | 103.8 | 0.74 |
| unset → 7.0/3.0 | 47.1 | 0.34 |
| 2.0 | 85.5 | 0.61 |
Because the error applies per step, more steps make it worse. Across the three fixtures, correct guidance gives luminance 87 / 113 / 99 against 47 / 90 / 55 with it omitted.
Steps: 16 for restyling, 8 for general use
A turbo model needs far fewer steps than the 48 quoted for full ideogram4. At correct guidance, 4 steps barely transforms, 8 gives visible paint texture, 16 is where the brushwork lands. By 24 this typography-focused model begins hallucinating lettering.
strength must be high — 0.97
The model anchors hard to source content; the usable restyle band starts around 0.93. Below it the model reconstructs the source and largely ignores the prompt. At a fixed step count the exact value matters little — 0.95/0.97/0.99 are near-indistinguishable — so set 0.97 and tune steps.
The prompts are structured JSON
Captions show each prompt's high_level_description. In full:
oil — full structured prompt
{
"high_level_description": "An oil painting of an abstract composition with a large glowing golden circle at the center over a flowing rainbow gradient, thick visible brushstrokes and canvas texture.",
"compositional_deconstruction": {
"background": "A flowing rainbow gradient painted in thick impasto oil strokes, red tones sweeping from the left into greens and violets toward the lower right, visible canvas weave beneath the paint.",
"elements": [
{
"type": "obj",
"desc": "A large luminous golden circle at the center of the canvas, built from swirling concentric brushstrokes of cadmium yellow and amber with raised paint ridges catching the light."
}
]
}
}
watercolor — full structured prompt
{
"high_level_description": "A watercolor painting of an abstract composition with a soft golden circle over a rainbow wash, bleeding edges and transparent layers on rough paper.",
"compositional_deconstruction": {
"background": "Transparent watercolor washes blending red through green to violet across rough cold-press paper, soft bleeding edges where the pigments meet, granulation visible in the wet areas.",
"elements": [
{
"type": "obj",
"desc": "A soft-edged golden yellow circle at the center, painted wet-into-wet so its rim feathers into the surrounding washes, a lighter halo where the paper shows through."
}
]
}
}
sketch — full structured prompt
{
"high_level_description": "An impressionist oil painting of an abstract composition with a golden circle at the center over a vivid rainbow gradient, lively broken brushwork in the same bright colors.",
"compositional_deconstruction": {
"background": "A vivid rainbow gradient built from short broken impressionist brushstrokes, reds and magentas on the right flowing through greens and blues to violet on the left, dabs of pure color set side by side.",
"elements": [
{
"type": "obj",
"desc": "A large golden yellow circle at the center painted in swirling dabs of cadmium yellow and warm orange, its edge broken into short strokes that mingle with the surrounding colors."
}
]
}
}
Note on
test_03: the fixture is namedsketch, but its prompt asks for "An impressionist oil painting … lively broken brushwork" — no pencil, no graphite. The output matches the prompt, not the filename.
Recommended settings
Values this build is run with in practice. They are read out of a live config when this card is generated, so they cannot drift from what is actually used.
| Parameter | Production value | Meaning |
|---|---|---|
width |
1024 |
Output width in pixels |
height |
1024 |
Output height in pixels |
steps |
8 |
Denoising steps |
guidance |
1.0 |
Guidance scale |
max_sequence_length |
512 |
Max prompt tokens |
strength |
0.95 |
img2img denoise strength (1.0 = ignore the input image) |
Supported modes: txt2img, img2img
Notes and gotchas
guidance: 1.0is CFG-off here. The sampler blendsv = g·cond + (1−g)·uncond, so at 1.0 the output is purely conditional.- Never leave
guidanceunset. Omitting it falls back to a 7.0/3.0 CFG schedule that the turbo merge was not trained for. - The 8B text encoder plus two transformers is a large working set, so offloading the text encoder to CPU after each prompt encoding is recommended.
- An unconditional transformer ships alongside the main one for the CFG path; the turbo profile does not use it.
Layout
Components ship as separate files rather than one bundle: the transformer, the text encoder(s) and the VAE each load independently, with configs and tokenizers under config/. Any loader that accepts explicit per-component paths can consume this directly — point it at the files listed below.
A generic
diffuserssnippet is deliberately omitted. This is a repacked split layout with substituted encoders, so an upstream example will not load it unmodified, and an untested snippet would be worse than none.
Files
| File | Size | Role |
|---|---|---|
split/ideogram4_unconditional_Q6_K.gguf |
7.14 GB | transformer (main weights) |
split/ideogram4-turbo-Q6_K.gguf |
7.10 GB | quantized weights |
split/text_encoders/Qwen3VL-8B-Instruct-Q4_K_M.gguf |
4.68 GB | text encoder |
split/vae/flux2-vae.safetensors |
320.64 MB | VAE |
config/tokenizer/tokenizer.json |
6.71 MB | tokenizer / processor |
config/tokenizer/tokenizer_config.json |
10.61 KB | tokenizer / processor |
config/tokenizer/chat_template.json |
5.37 KB | tokenizer / processor |
config/tokenizer/config.json |
1.44 KB | tokenizer / processor |
config/tokenizer/generation_config.json |
269 B | tokenizer / processor |
Provenance
- Upstream base model: not publicly published
- This build: requantized and relaid out into a split component layout. Weights are not retrained; only the format and directory layout differ.
- License: left as
unknownin this repo's metadata. Refer to the upstream model's license for redistribution and commercial-use terms — several of these bases are non-commercial.
- Downloads last month
- 402
4-bit
8-bit








