Nodes/was-node-suite-comfyui/Fibo 2 Scheduler
ComfyUI Node Runs on cloud

Fibo 2 Scheduler

The sigma curve Fibo 2.0 was trained on, not the one you guessed

By WASasquatch·Created 4 years ago·Updated about 9 hours ago· 1,884
Fibo 2 Scheduler
  • latent
  • SIGMAS
◄steps50►
◄width1024►
◄height1024►

What this is for

Fibo 2.0 is Bria's follow-up to FIBO, the model that made long structured JSON captions its whole personality instead of a prompting trick. It ships as two transformers: Dev, which generates and edits at 50 steps and CFG 5, and Edit Turbo, which edits at 4 steps and CFG 1. Both sample through SamplerCustomAdvanced, which means the sigma schedule is a wire, not a dropdown - and that's the gap this node fills.

You cannot pick "Fibo" in a KSampler scheduler list, because it isn't one. The released schedule is the one Bria trained the model against, and it shifts with the number of tokens in the latent. That last part is the interesting bit.

How it works

Internally the node turns your image size into a token count - (width // 16) * (height // 16) - and asks the model's own prompt module for the released sigma ladder at that token count and step count. A 1024×1024 render and a 1216×832 render do not get the same curve, because the model wasn't trained to see them as the same problem.

If you connect a latent, its spatial dimensions replace your typed width and height entirely. This matters more than it sounds: Text Encode Fibo 2 hands on an empty latent sized to about one megapixel in the shape of the image you're editing, and that latent is the honest source of truth for size. Typing a number yourself is a good way to sample a schedule that doesn't match the noise you're actually denoising.

It outputs one thing: a SIGMAS tensor of steps + 1 values running from 1 down to 0. Feed it into SamplerCustomAdvanced alongside a CFGGuider.

Worth saying out loud in 2026: CFG 5 on Dev is not a typo for "use 7". Fibo 2.0 is a guidance-distilled, flow-matching-era model, and the schedule assumes the CFG it shipped with - the same inversion the KB's concepts doc covers for every modern base. The KB's whole point about reshaped sigma curves applies here too: on a straight trajectory, an aggressive schedule is a distortion, so don't stack a Karras-shaped hack on top of a curve that's already the intended one.

Inputs and outputs

  • steps (default 50) - 50 for Dev, 30 for a fast draft, 4 for Edit Turbo. Match it to the transformer you loaded, not to your habits.
  • width / height (default 1024×1024) - in pixels, multiples of 16. Ignored the moment latent is connected.
  • latent (optional) - the latent being sampled. Connect this and stop typing sizes.
  • SIGMAS - the only output. Into SamplerCustomAdvanced.

Install

The pack itself:

cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui.git

Or ComfyUI Manager, searching WAS Node Suite v3. No pip step - requirements.txt is an empty comment, and the pack needs ComfyUI 0.14.0+ on Python 3.10+. First start writes its config under ComfyUI/user/was-node-suite/ and compiles bytecode; after that it's silent.

The node is free. The model isn't:

  • fibo2_dev_bf16.safetensors (16.5 GB) or fibo2_dev_int8_convrot.safetensors (8.4 GB) → ComfyUI/models/diffusion_models
  • fibo2_edit_turbo_* in the same two flavours, if you want editing
  • qwen3vl_4b_bf16.safetensors (8.9 GB) → ComfyUI/models/text_encoders
  • flux2-vae.safetensors (336 MB) → ComfyUI/models/vae

All from Comfy-Org's repackaging at Comfy-Org/Fibo-2.0. If 16.5 GB is too much, the int8-convrot build is the one that works on 20- and 30-series cards without fp8 support.

The transformers are CC BY-NC 4.0. Non-commercial only, Bria AI. That's a real constraint and it's why Fibo 2.0 got a chilly reception on release - the same "calling it open source when the code and weights are non-commercial" argument that thread ran about FIBO. Weights on your disk, licence on your output.

Where people get burned

Edit Turbo sampled like a normal model. 4 steps, CFG 1, euler. Miss that and you get oversaturated, harsh frames and blame the model.

The wrong latent. If you hand it a latent from a stock Empty Latent Image, the run dies with a message about sampling a FLUX.2 latent of 128 channels. Fibo 2.0 rides the FLUX.2 VAE and its 128-channel latent; use the one Text Encode Fibo 2 produces.

Reaching for the wrong sampler. This output is sigmas. KSampler takes a scheduler name. If you're on KSampler, no amount of wiring gets this curve into it - switch to SamplerCustomAdvanced.

Choosing Dev when you meant Edit Turbo (or the reverse). Dev does both jobs; Edit Turbo only edits. A 50-step schedule on the turbo transformer is 46 steps of noise-shaping the model wasn't trained for.

CategoryWAS Suite/Sampling

Inputs (4)

NameTypeDefaultDescription
stepsINT501–4096Denoising steps: 50 for Dev, 30 for a faster draft, 4 for Edit Turbo.
widthINT102416–16384Image width in pixels, as 1024 or 1216. Ignored when latent is connected.
heightINT102416–16384Image height in pixels, as 1024 or 832. Ignored when latent is connected.
latentoptLATENTThe latent being sampled, as Text Encode Fibo 2 hands on; its size replaces width and height.

Outputs (1)

NameTypeDescription
SIGMASSIGMASsteps + 1 sigmas from 1 down to 0.