Ideogram 4 is a foundation model trained entirely from scratch, not a fine-tune or distillation of any existing checkpoint. It is a flow-matching text-to-image model built on a fully single-stream Diffusion Transformer (DiT) architecture.
Architecture:
Fully single-stream DiT. Text and image tokens are concatenated into one unified sequence and processed through the same 34-layer transformer, with no separate text or image branches. This enables deep cross-modal interaction at every layer.
Vision-language model as text encoder. Instead of a text-only encoder like CLIP or T5, Ideogram 4 uses Qwen3-VL-8B-Instruct, a full vision-language model that provides far richer understanding of visual concepts. Hidden states are extracted from 13 intermediate layers and concatenated, giving the model multi-scale semantic features ranging from surface-level token information to deep compositional understanding.
Dual-branch classifier-free guidance. The conditional (positive) and unconditional (negative) branches can be independently refined, enabling separate control over prompt adherence and image quality.
Flexible resolution. Native support for any resolution from 256 to 2048 (multiples of 16), with aspect ratios up to 6:1. A single model handles everything from square thumbnails to ultrawide banners, with the noise schedule auto-adjusting per resolution.
Key Capabilities:
Extreme controllability. Ideogram 4 is trained on structured JSON captions, giving users unprecedented control over composition, style, lighting, color palette, typography, and spatial layout, all from a single prompt.
State-of-the-art text rendering. Ideogram 4 delivers best-in-class in-image text generation (signage, logos, captions, watermarks, multi-line text) with high fidelity directly from the prompt.
Spatial layout control. Bounding-box coordinates in the prompt allow explicit placement of subjects, text elements, and background regions.
Color palette conditioning. Specify hex colors in the prompt to steer the image's dominant color scheme.
For full architecture details, see docs/model_architecture.md. For a walkthrough of how the pipeline components fit together, see docs/pipeline.md.
Prompting Guide
Ideogram 4 is trained exclusively on structured JSON captions. While plain-text prompts work, you will get the best results by providing a JSON object that follows our caption schema.
Key points:
Use JSON prompts for maximum controllability — the model was trained on them and understands the structure natively.
Color palette conditioning — specify a
colour_palettearray of hex colors in the style description to steer the image's color scheme.Aspect ratio flexibility — Ideogram 4 supports a wide range of aspect ratios (any multiple-of-16 resolution from 256 to 2048 on each side). This is a key advantage for practical use: portraits, landscapes, banners, phone wallpapers, social media formats, etc.
Bounding-box layout — specify
bboxcoordinates in the prompt to explicitly place subjects, text elements, and background regions.Compositional control — use
compositional_deconstructionwith bounding boxes and per-element descriptions for precise spatial layout.
Why JSON-only training? We train exclusively on JSON so that training and inference share a single, common prompt format. The training captions themselves are deliberately extremely descriptive: each JSON exhaustively describes everything in the image to maximize training efficiency. The more text-to-image relationships each caption pins down, the more grounded supervision the model extracts from a single training pair, rather than having to infer those relationships across many sparsely-captioned samples.
Why JSON at inference time? Because the model was trained on captions that name every object explicitly, the most reliable way to get every requested object rendered is to mirror that pattern. Plain-text prompts still work, but won't perform as well since the model was only trained on structured JSON captions.
Don't want to write JSON by hand? That's what magic prompt is for: it uses an LLM to expand a plain-text prompt into a full structured caption before generation, so you get JSON-quality results from a casual prompt. It runs by default in run_inference.py (see the CLI section).
See docs/prompting.md for a full guide.
Description
Details
Files
ideogram4_3128958.safetensors
Mirrors
ideogram4_fp8_scaled.safetensors
ideogram4_fp8_scaled.safetensors
Ideogram 4 FP8 - Ideogram4.0.safetensors
ideogram4_fp8_scaled.safetensors
ideogram4_fp8_scaled.safetensors
ideogram4_fp8_scaled.safetensors
ideogram4_fp8_scaled.safetensors
ideogram4_fp8_scaled.safetensors
ideogram4_fp8_scaled.safetensors
ideogram4_fp8_scaled.safetensors
ideogram4_fp8_scaled.safetensors
ideogram4_fp8_scaled.safetensors
ideogram4_fp8_scaled.safetensors
ideogram4_fp8_scaled.safetensors
ideogram4_fp8_scaled.safetensors
ideogram4_fp32.safetensors
Mirrors
FLUX_2_Klein_Train_VAE.safetensors
flux2-vae.safetensors
flux2_vae.safetensors
flux2-vae.safetensors
ae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
ae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
ae.safetensors
flux2_ae.safetensors
flux2-vae.safetensors
ae.safetensors
flux2-vae.safetensors
kx7_m_1032dadf51.safetensors
flux2-vae.safetensors
kx7_m_1032dadf51.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2_vae.safetensors
flux2-vae (1).safetensors
flux2-vae.safetensors
flux2-vae.safetensors
FLUX.2 VAE [FP32].safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
ae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
ae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
Flux2-vae.safetensors
kx7_m_1032dadf51.safetensors
flux2-vae.safetensors
ae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2_ae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
vae_flux2-vae.safetensors
flux2_ae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2_ae.safetensors
flux2_ae.safetensors
flux2-vae.safetensors
flux2vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2_ae.safetensors
ae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
ae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-dev-vae.safetensors
flux2-dev-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
ae.safetensors
ae.safetensors
flux2-vae.safetensors
ae.safetensors
ae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
ae.safetensors
flux2-vae.safetensors
flux2-vae.safetensors
ideogram4_txt_3128943.safetensors
Mirrors
ideogram4_txt_3128946.safetensors
Mirrors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
textencoders_qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen_3_8b_fp8mixed.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
qwen3vl_8b_fp8_scaled.safetensors
Text Encoder_qwen3vl_8b_fp8_scaled.safetensors
ideogram4_3128969.safetensors
Mirrors
ideogram4_3128980.safetensors
Mirrors
ideogram4_3129012.safetensors
Mirrors
ideogram4_unconditional_fp8_scaled.safetensors
ideogram4_unconditional_fp8_scaled.safetensors
ideogram4_unconditional_fp8_scaled.safetensors
ideogram4_unconditional_fp8_scaled.safetensors
ideogram4_unconditional_fp8_scaled.safetensors
ideogram4_unconditional_fp8_scaled.safetensors
ideogram4_unconditional_fp8_scaled.safetensors
ideogram4_unconditional_fp8_scaled.safetensors
ideogram4_unconditional_fp8_scaled.safetensors
ideogram4_unconditional_fp8_scaled.safetensors
ideogram4_unconditional_fp8_scaled.safetensors
ideogram4_unconditional_fp8_scaled.safetensors
ideogram4_unconditional_fp8_scaled.safetensors
ideogram4_unconditional_fp8_scaled.safetensors


