Nodes/comfyui-ideogram4-scheduler-fixed/Ideogram 4 Scheduler (Fixed)
ComfyUI Node

Ideogram 4 Scheduler (Fixed)

The Ideogram 4 Scheduler (Fixed) doesn't call any API — it just hands your sampler cleaner sigmas

By Alexdnk·Created 2 months ago·Updated about a month ago· 0
Ideogram 4 Scheduler (Fixed)
    • sigmas
    steps20
    width1024
    height1024
    mu0.000
    std1.75

    The name reads like it should cost you an API key. It doesn't. "Ideogram 4 Scheduler (Fixed)" is a local math node - pure PyTorch, no login, no network call, nothing to pay for. It's a drop-in replacement for the stock scheduler in the sampling chain, and its whole job is to produce a SIGMAS tensor that steers how ComfyUI removes noise across your steps. If you run Ideogram 4 locally and have fiddled with its sampler presets, this is the "logit-normal timestep scheduler" part of that recipe, reimplemented with the edges trimmed.

    Ideogram 4 shipped its 9.3B DiT weights in June 2026 with native ComfyUI support, and it expects a specific logit-normal schedule rather than a generic Karras or linear one. The stock ComfyUI scheduler computes it by mapping quantiles through the inverse normal CDF, but it includes the endpoints 0.0 and 1.0 - which map to ±infinity - so it has to clamp the output with hard-coded log-SNR limits. That's the thing this pack says it "fixes."

    How it works

    Open the source and the README story checks out. Instead of including the boundary quantiles, the node generates steps + 2 points and slices off the first and last with [1:-1], so the logits never blow up and nothing needs artificial clamping. Two consequences follow, both intentional:

    • The first sigma is lower. The stock scheduler starts at effectively pure noise (σ ≈ 0.9999); this one starts around 0.94–0.97. The README's argument is that the very first fraction of absolute chaos doesn't build geometry, it just deposits chromatic grain, so skipping it reduces noise artifacts.
    • Your steps pack tighter. With the endpoints gone, all N steps compress into the active 0.05–0.95 range where Ideogram actually decides composition, text and anatomy.

    The resolution scaling is where beginners trip: the node shifts the distribution's center by μ + 0.5·ln(width·height / 512²), so it needs your output pixel dimensions, not latent ones. Feed it 1024×1024, not 128×128.

    Inputs and outputs

    Only five inputs, and you'll touch maybe three:

    • steps (default 20) - matches your sampler's step count. Same number, always.
    • width / height - generation resolution, must be multiples of 16 (Ideogram 4's requirement, enforced by the node's step). Set these to what your VAE decode produces, or the mu shift lands wrong.
    • mu (default 0.0) and std (default 1.75) - the mean and spread of the logit-normal. std is the useful knob: lower packs steps tighter toward the middle, higher spreads them out. Leave mu at 0 until you know why you're moving it.

    Output is a single sigmas tensor (SIGMAS).

    Installing it

    There are no dependencies beyond torch (which ComfyUI already ships) and no model downloads. Either clone it:

    cd ComfyUI/custom_nodes/
    git clone https://github.com/Alexdnk/comfyui-ideogram4-scheduler-fixed
    

    then restart ComfyUI - or search "Ideogram 4 Scheduler" in ComfyUI Manager and install from there. The whole pack is one file; if it's not in your node list after a restart, the restart didn't take.

    The one gotcha that bites everyone

    Because it lives in the sampling/custom_sampling category and emits SIGMAS, it doesn't drop into a plain KSampler with a scheduler dropdown. You wire it into the custom-sampling path: KSamplerSelect → this node → SamplerCustomAdvanced, with the sigmas output feeding the sampler's sigma input. In a workflow built from the official Ideogram 4 example this is already where the scheduler sits, so it's usually a straight swap. If your graph has no SamplerCustomAdvanced anywhere, that's why nothing changed after you installed it.

    Also: this is Ideogram 4-specific. Slapping a logit-normal schedule on SDXL or Flux won't help - those models want their own schedulers, and flow-matching models in particular punish aggressive schedule reshaping. Use it where it's aimed.

    Categorysampling/custom_sampling

    Inputs (5)

    NameTypeDefaultDescription
    stepsINT201–10000
    widthINT102416–8192
    heightINT102416–8192
    muFLOAT0.000-10–10
    stdFLOAT1.750.01–10

    Outputs (1)

    NameTypeDescription
    sigmasSIGMAS