ComfyUI Node
SeFi Turbo (MLX, all-in-one)
A ComfyUI node in SeFi-Image/MLX with 28 inputs and 2 outputs.
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)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | SeFi-Image-5B-turbo | 3 options: SeFi-Image-5B-turbo, SeFi-Image-2B-turbo, SeFi-Image-1B-turbo |
| prompt | STRING | A blue ceramic mug on a white desk. | — |
| width | INT | 1024256–4096 | — |
| height | INT | 1024256–4096 | — |
| steps | INT | 41–200 | Denoise steps. Turbo is tuned for 4/8/10, but any value is allowed. |
| seed | INT | 00–18446744073709550000 | — |
| quantize | COMBO | q8 | 3 options: q8, q4, bf16 |
| clipopt | CLIP | OVERRIDE: a torch CLIP (CLIPLoader). If wired, used instead of the MLX encoder. | |
| vaeopt | VAE | OVERRIDE: a torch VAE (VAELoader). If wired, used instead of the MLX VAE. | |
| mlx_encoderopt | BOOLEAN | true | Run the Qwen3-VL-4B text encoder in MLX (torch-free). Ignored if a `clip` is wired. |
| mlx_vaeopt | BOOLEAN | true | Run the VAE decode in MLX (torch-free). Ignored if a `vae` is wired. |
| negative_promptopt | STRING | — | |
| guidance_scaleopt | FLOAT | 1.01–12 | Turbo = 1.0 (no CFG). >1 runs two passes/step. |
| delta_topt | FLOAT | 0.100–1 | Semantic lead (5B turbo = 0.1). |
| timestep_shift_alphaopt | FLOAT | 1.000.01–8 | SeFi 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_shiftopt | BOOLEAN | false | Apply 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_shiftopt | FLOAT | 1.000.1–12 | Flow-match table shift (sigma warp). 1.0 = linear, as the runner uses; the warping is normally done by timestep_shift_alpha. |
| rope_modeopt | COMBO | repo (5e6) | Encoder RoPE. 'repo' = official SeFi (theta 5e6, standard). 'comfy' = comfy's value (1e6). 'interleaved' = Qwen3-VL M-RoPE (5e6; == standard for text). |
| template_modeopt | COMBO | repo (bare) | Prompt template. 'repo' = official bare user/assistant. 'comfy' = adds an empty <think> block. 'none' = raw prompt, no chat template. |
| max_lengthopt | INT | 102416–8192 | Encoder token length. 1024 = the official SeFi value (sefi_config). |
| pad_to_maxopt | BOOLEAN | true | Pad conditioning to max_length. The SeFi DiT was trained on the padded sequence — leave ON; OFF is out-of-distribution -> noise. |
| encoder_quantizeopt | COMBO | q8 | Quantization for the Qwen3-VL-4B encoder. q4 is the fastest per-prompt encode (and smallest); bf16 is most accurate. |
| bn_denormopt | BOOLEAN | true | Rescale the latent from bn-normalized (std ~1.8) to the VAE's raw space before MLX decode. ON fixes washed-out/grainy output. |
| low_memoryopt | BOOLEAN | false | Free 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_quantizeopt | COMBO | bf16 | VAE storage + decode compute dtype. bf16 ~halves VAE weight and decode-activation memory vs fp32 (matches comfy's MPS VAE). |
| hf_tokenopt | STRING | HF token for the gated repo (or set HF_TOKEN env). License must be accepted. | |
| group_sizeopt | INT | 6432–128 | — |
| dual_timeopt | BOOLEAN | true | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| texture_latent | LATENT | — |