Idol Turbo
A distilled, few-step version of speridlabs/idol.
One picture of an object in, up to a million 3D Gaussians out β in 6 guidance-free steps instead of 50 guided ones.
What this is
Idol Turbo is Idol's flow-matching denoiser distilled for speed:
- 6 sampling steps, no classifier-free guidance β 100 network evaluations (50 steps Γ CFG) down to 6, a 16.7Γ NFE reduction. Sub-second sampling on an H200-class GPU.
- Two-stage distillation: (1) Glance-style phase-LoRA (arXiv 2512.02899) β two rank-32 experts (Slow/Fast, switch at t=0.5) trained by regression against the teacher's CFG-composed velocity, folding guidance into the weights; (2) anchored trajectory distillation β on-policy fine-tune matching the teacher's 50-step final latent through the student's own few-step sampler, with a per-step velocity anchor for stability.
- The base model is untouched: 29.4M LoRA params on top of the frozen 370M denoiser.
Where the turbo shows: complex objects at 6 steps
At 6 steps the naive sampler (with CFG, so 12 evaluations) visibly loses color and detail on complex objects β the distilled student holds both, at half the evaluations:
At 8 steps the turbo matches the naive sampler on simple objects (and still costs half the evaluations, since guidance is folded in). At 4 steps, naive collapses entirely while the current turbo weights degrade β 4-step distillation needs full-model training, which rank-32 LoRAs can't carry (we tried; see the run history).
Honest status
LoRA-scale distill trained on 10β12 demo images. Strengths: demo-style single objects, guidance-free 6β8 steps, big speed win. Known weaknesses: some inputs come out softer than the 50-step teacher, and colors can drift more saturated than the teacher (the few-step latent-drift effect described in arXiv 2610.15321). If you hit a bad case, the base speridlabs/idol at 50 steps is the quality reference. All training runs, metrics and eval renders: akhaliq/idol-turbo-runs.
Usage
Requires the idol SDK (pip install git+https://github.com/speridlabs/idol-sdk.git) and access to Idol's two gated encoders:
facebook/dinov3-vith16plus-pretrain-lvd1689m and
black-forest-labs/FLUX.2-dev.
from idol import IdolPipeline
from huggingface_hub import hf_hub_download
import importlib.util
spec = importlib.util.spec_from_file_location(
"turbo", hf_hub_download("akhaliq/idol-turbo", "turbo.py"))
turbo = importlib.util.module_from_spec(spec)
spec.loader.exec_module(turbo)
pipeline = IdolPipeline.from_pretrained("akhaliq/idol-turbo")
turbo.patch_pipeline_for_turbo(pipeline, "akhaliq/idol-turbo")
output = pipeline("photo.jpg", mode="real", seed=42, steps=6, cfg_strength=0.0)
output.gaussian.save_ply("photo.ply")
This repo is a drop-in weights replacement: denoiser.safetensors, decoder.safetensors,
decoder_gs.safetensors, birefnet.safetensors and config.json are identical to
speridlabs/idol; idol_turbo_lora.safetensors +
turbo.py add the distilled experts and the guidance-free sampler.
License
Apache-2.0, inherited from speridlabs/idol. All credit for the base model to Speri Labs.
- Downloads last month
- -
Model tree for akhaliq/idol-turbo
Base model
speridlabs/idol

