| name | glance-phase-aware-acceleration |
| title | Glance: Accelerating Diffusion Models with One Sample via Phase-Aware Tuning |
| version | 0.0.2 |
| engine | skillxiv-v0.0.2-claude-opus-4.6 |
| license | MIT |
| url | https://arxiv.org/abs/2512.02899 |
| keywords | ["diffusion-models","acceleration","distillation","lora-adaptation","single-image-training"] |
| description | Phase-aware acceleration using two lightweight LoRA adapters (Slow-LoRA for semantic reconstruction, Fast-LoRA for texture refinement) trained on a single image in one GPU hour, achieving 5× speedup via smart per-phase acceleration rather than uniform speedup. |
Summary
Glance introduces a phase-aware acceleration strategy for diffusion model distillation that applies different speedup rates to distinct denoising phases. Rather than uniformly accelerating all timesteps, the method deploys two lightweight LoRA adapters—Slow-LoRA for early semantic reconstruction and Fast-LoRA for later texture refinement. This enables efficient training on single images without massive datasets.
Core Technique
Phase Identification: Diffusion follows two conceptual phases:
- Early Phase (high noise): Reconstructs semantic structure; requires careful denoising
- Late Phase (low noise): Refines texture and detail; less critical for content
Phase-Specific LoRA Adapters: Train two lightweight adapters:
- Slow-LoRA: Low-rank matrix for early timesteps, provides conservative updates
- Fast-LoRA: Low-rank matrix for late timesteps, enables aggressive acceleration
Speedup Strategy: Slow down early phase (maintain quality), speed up late phase (minimal quality loss):
step_multiplier = {
t > 0.7 * T: 1.0 # Early phase: no acceleration
t <= 0.7 * T: 5.0 # Late phase: 5× acceleration
}
Implementation
LoRA architecture: For each phase, add low-rank adaptation:
lora_slow = LoRA(in_dim=768, out_dim=768, rank=8)
lora_fast = LoRA(in_dim=768, out_dim=768, rank=8)
Phase-aware forward pass:
def forward(x, t):
out = diffusion_model(x, t)
phase = t / max_timesteps
if phase > 0.7:
out = out + lora_slow(x)
:
out = out + lora_fast(x)
out