Nodes/SeFiMLXComfyNode/SeFi Turbo (MLX, all-in-one)
ComfyUI Node

SeFi Turbo (MLX, all-in-one)

A ComfyUI node in SeFi-Image/MLX with 28 inputs and 2 outputs.

By jwooldridge234·Created 2 months ago·Updated 2 months ago· 0
SeFi Turbo (MLX, all-in-one)
  • clip
  • vae
  • image
  • texture_latent
modelSeFi-Image-5B-turbo
promptA blue ceramic mug on a white desk.
width1024
height1024
steps4
seed0
quantizeq8
mlx_encodertrue
mlx_vaetrue
negative_prompt
guidance_scale1.0
delta_t0.10
timestep_shift_alpha1.00
dynamic_shiftfalse
scheduler_shift1.00
rope_moderepo (5e6)
template_moderepo (bare)
max_length1024
pad_to_maxtrue
encoder_quantizeq8
bn_denormtrue
low_memoryfalse
vae_quantizebf16
hf_token
group_size64
dual_timetrue
CategorySeFi-Image/MLX

Inputs (28)

NameTypeDefaultDescription
modelCOMBOSeFi-Image-5B-turbo3 options: SeFi-Image-5B-turbo, SeFi-Image-2B-turbo, SeFi-Image-1B-turbo
promptSTRINGA blue ceramic mug on a white desk.
widthINT1024256–4096
heightINT1024256–4096
stepsINT41–200Denoise steps. Turbo is tuned for 4/8/10, but any value is allowed.
seedINT00–18446744073709550000
quantizeCOMBOq83 options: q8, q4, bf16
clipoptCLIPOVERRIDE: a torch CLIP (CLIPLoader). If wired, used instead of the MLX encoder.
vaeoptVAEOVERRIDE: a torch VAE (VAELoader). If wired, used instead of the MLX VAE.
mlx_encoderoptBOOLEANtrueRun the Qwen3-VL-4B text encoder in MLX (torch-free). Ignored if a `clip` is wired.
mlx_vaeoptBOOLEANtrueRun the VAE decode in MLX (torch-free). Ignored if a `vae` is wired.
negative_promptoptSTRING
guidance_scaleoptFLOAT1.01–12Turbo = 1.0 (no CFG). >1 runs two passes/step.
delta_toptFLOAT0.100–1Semantic lead (5B turbo = 0.1).
timestep_shift_alphaoptFLOAT1.000.01–8SeFi runner u-warp (sefi_schedule.apply_timestep_shift). 1.0 = identity. Lower (e.g. 0.3) front-loads denoising; tune per resolution if adherence is off.
dynamic_shiftoptBOOLEANfalseApply a resolution-aware flow shift exp(mu) to the sigma table (~1.88 at 512, ~3.16 at 1024) instead of scheduler_shift. Experimental.
scheduler_shiftoptFLOAT1.000.1–12Flow-match table shift (sigma warp). 1.0 = linear, as the runner uses; the warping is normally done by timestep_shift_alpha.
rope_modeoptCOMBOrepo (5e6)Encoder RoPE. 'repo' = official SeFi (theta 5e6, standard). 'comfy' = comfy's value (1e6). 'interleaved' = Qwen3-VL M-RoPE (5e6; == standard for text).
template_modeoptCOMBOrepo (bare)Prompt template. 'repo' = official bare user/assistant. 'comfy' = adds an empty <think> block. 'none' = raw prompt, no chat template.
max_lengthoptINT102416–8192Encoder token length. 1024 = the official SeFi value (sefi_config).
pad_to_maxoptBOOLEANtruePad conditioning to max_length. The SeFi DiT was trained on the padded sequence — leave ON; OFF is out-of-distribution -> noise.
encoder_quantizeoptCOMBOq8Quantization for the Qwen3-VL-4B encoder. q4 is the fastest per-prompt encode (and smallest); bf16 is most accurate.
bn_denormoptBOOLEANtrueRescale the latent from bn-normalized (std ~1.8) to the VAE's raw space before MLX decode. ON fixes washed-out/grainy output.
low_memoryoptBOOLEANfalseFree the MLX text encoder after encoding so only the DiT (+VAE) stay resident (~2.9GB vs ~5.6GB). Re-encoding a new prompt reloads it.
vae_quantizeoptCOMBObf16VAE storage + decode compute dtype. bf16 ~halves VAE weight and decode-activation memory vs fp32 (matches comfy's MPS VAE).
hf_tokenoptSTRINGHF token for the gated repo (or set HF_TOKEN env). License must be accepted.
group_sizeoptINT6432–128
dual_timeoptBOOLEANtrue

Outputs (2)

NameTypeDescription
imageIMAGE
texture_latentLATENT