WorksComputer Science
LoRASpace: A Pool-Wide Shared Substrate for Static and Dynamic Multi-LoRA Composition
Abstract
Low-rank adaptation (LoRA) attaches small low-rank matrices to a frozen backbone, and public repositories host many LoRAs per backbone, each for a different concept or task. Combining several LoRAs in one generation forces a trade-off. Merging their weights into one update needs a single forward pass, but LoRAs trained for different concepts interfere and quality drops. Running each LoRA in its own forward pass (composite) preserves quality, but inference time grows linearly with the number of active LoRAs. We study a property of LoRA pools overlooked by prior multi-LoRA work. In real LoRA pools, the stacked low-rank factors need far fewer directions than their summed ranks. Using singular value decomposition, we find the minimal subspace that keeps 99% of the factor energy. On three diffusion pools, only 46% to 57% of the summed LoRA ranks is needed, and the subspace grows sub-linearly with pool size. A 48-LoRA sub-pool of LoRA-Hub on FLAN-T5 tasks shows comparable overlap (62%), while the diversity-curated LoRA-Retriever benchmark sits near the no-overlap baseline (96%), so pool composition rather than modality predicts where compression is large. We build on this overlap with LoRASpace, a training-free method that computes the subspace once per pool and reuses it in two inference modes, a static mode at merge cost and a dynamic mode for input-dependent routing. On the diffusion pools, static LoRASpace matches composite quality at merge cost, and dynamic LoRASpace is more than 6x faster than composite with six active LoRAs on a 17-LoRA pool, mainly because it runs one backbone pass instead of six. In an ablation, static variants at the same rank match LoRASpace, so the quality gain does not depend on the pool-wide basis. On the near-orthogonal LoRA-Retriever benchmark, compression is small and gains come from coupling with external retrieval.
Introduction
Low-Rank Adaptation (LoRA) [8] has made the specialization of existing language and diffusion image generation models feasible by training small low-rank adapters that attach to a frozen backbone on demand, rather than updating the full set of model weights. The simplicity of this construction has produced a second-order effect, where open repositories such as CivitAI [3] and Hugging Face [10] now host LoRA pools containing many trained LoRA adapters per backbone, each capturing a distinct visual concept, character, style, or downstream language task. As these libraries grow into the thousands, attention has shifted from training a single LoRA adapter (LoRAs for short) to using several at once. A user generating a portrait may want one LoRA for the subject’s identity, a second for clothing, and a third for the background, all active during a single image.
Two ambient strategies have emerged for this multi-LoRA problem. The first, static merge [11, 32, 33], folds the chosen LoRAs into a single weight update (delta for short) before inference, so only one forward pass is required. Static merge is cheap to deploy but tends to lose individual LoRA identity, since unrelated low-rank directions are summed in the ambient parameter space. The second strategy, often called composite [Zhong et al., 2024, Zou et al., 2025], runs one forward pass per active LoRA and aggregates the outputs. Composite preserves quality more faithfully but pays linearly in compute and memory with the number of active LoRAs. On modern diffusion backbones, this can mean several minutes per image at high LoRA counts, with proportional cost growth on language models. The two strategies sit at opposite corners of a quality-cost trade-off because both treat each LoRA as an independent low-rank addition in ambient space.
LoRASpace. We observe that both the merge and composite views ignore a structural property of real LoRA pools. When the per-LoRA factors of a pool are stacked and decomposed jointly, the resulting subspace is much smaller than the sum of individual ranks. On language LoRAs trained on related tasks this reflects alignment between adapters, while on diffusion pools it comes largely from layer-width saturation and each adapter’s own spectral tail (§ 4.2). We capture this with the rank-fill ratio , where is the rank-truncated subspace dimension obtained by an energy-truncated SVD of the stacked factors, and is the no-overlap upper bound. Based on this overlap, we introduce LORASPACE, a training-free composition operator whose goal is to recover composite-level quality at near-merge inference cost while supporting input-dependent routing, built from a rank-truncated pool-wide substrate computed once at pool-creation time and reused for any active subset of LoRAs chosen at inference. The substrate supports two deployment modes from one cache. A static mode folds time-invariant routing into a single combined delta at ambient-merge inference cost. A dynamic mode accepts context-dependent routing through a router function that maps the current generation context (token, step, pixel, or prompt) to per-LoRA weights, at substantially lower cost than composite. On diffusion pools, LoRASPACE matches or exceeds composite quality at merge cost (+0.74 CLIP-T on Pool A) and reaches 6.1× speedup over composite at high LoRA counts, mostly by running one backbone pass instead of one per LoRA. On the near-orthogonal LoRA-Retriever LLM benchmark, the framework predicts no compression speedup, and accuracy gains over ambient mixture come from pairing the substrate with external retrieval (+0.96 Macro Task).
Contributions.
Cross-modality rank-fill measurement. Among the first measurements, to our knowledge, of the pool-wide rank-fill ratio at energy threshold on real LoRA pools: on diffusion pools with sub-linear scaling and on a related-task LLM pool (LoRA-Hub at ), versus on the diversity-curated LoRA-Retriever benchmark, with pool composition rather than modality predicting where compression is large.
Dual-mode (static + dynamic) pool-wide substrate. LORASPACE is a rank-truncated pool-wide operator supporting two deployment modes from one precompute. Static-mode folds time-invariant routing into a single combined delta at ambient-merge cost. Dynamic-mode evaluates context-conditioned routing (per-token, per-step, per-pixel, per-prompt) through the same shared bases. The dynamic-mode interface is router-pluggable, and we evaluate four routers (§ 4.5).
Mechanism ablation. The quality lift over ambient merge is rank- truncation acting as regularisation. The pool-wide basis is approximately combo-optimal at that rank, so one SVD amortises across all combinations and supports dynamic routing without per-combo SVDs (§ 4.3).
Related Work
Where LoRASPACE sits. Existing training-free multi-LoRA methods trade off cost against compositionality. Static merges and shared-basis merges collapse the active subset into one delta at
Table 1: Where LORASPACE sits among training-free multi-LoRA methods. Columns: pool-wide basis (, ) (defined in § 3.4), active LoRAs per step, deployment mode (static vs. dynamic), and per-image cost normalised to ambient merge (1×). To our knowledge, no other reviewed family combines a pool-wide basis with simultaneous composition and both deployment modes from one precompute (Eq. (5)).
| Method family (representative work) | Pool-wide basis | Active per step | Mode | Per-image cost |
| Static merge (Task Arith. [11], TIES [32], DARE [33]) | X | static | 1× | |
| Shared-basis merge (Knots [26], Core-Space [18]) | per merge | static | 1× | |
| Composite & step/mask routing (ComposLoRA [Zhong et al., 2024], CMLoRA [Zou et al., 2025], FreeFuse [12], MultLFG [23]) | X | dynamic | ||
| Per-input router-bound composition (SpectR [5], K-LoRA [17], FreeLoRA [36], LoRAHub [9], LoRARetriever [35]) | X | 1 to | dynamic | |
| Compress-then-Serve [6] | ✓ | 1 | static | 1× |
| Trained MoE-LoRA (X-LoRA [1], MoLE [30], Arrow [16], PHATGOOSE [14])† | X | dynamic (trained) | ||
| LORASPACE (ours) | ✓ | static + dynamic | static, sub-composite dynamic‡ |
Table 1.
ambient cost (1×), but freeze the composition before inference. Composite, step/mask routing, and per-input router methods recover input-dependent routing at cost, because each active LoRA runs as its own forward pass. The closest neighbour, Compress-then-Serve [6], introduces a pool-wide shared basis but targets single-LoRA serving () rather than composition. Tab. 1 arranges these methods along four axes (pool-wide basis, active LoRAs per step, static vs. dynamic, per-image cost) and identifies the empty slot. No reviewed method combines a pool-wide basis with simultaneous composition and both deployment modes (defined in § 3.4) from one precompute. LORASPACE fills it. The decomposition itself is standard. What is new is applying it once to a whole pool, so that every adapter keeps its own coordinates in one shared space and any combination is served in one pass from one compact object. Two further capabilities separate it from the closest pool-level methods. predicts before deployment whether a pool compresses (§ 4.2), and a newly published adapter can be admitted by extending the bases without recomputing the pool (App. § 15). App. § 16 compares the methods on these requirements. We exercise three adaptive routers (spatial [5], temporal [Zou et al., 2025], semantic [12]) plus a uniform-merge baseline [11], all adapted from existing designs.
Static merge. Static merge methods fold a chosen subset of LoRAs into a single ambient delta before inference. Task-arithmetic [11] averages deltas, while TIES-Merging [32] resolves sign conflicts and DARE [33] adds drop-and-rescale delta sparsification. The shared property is that all active LoRAs become one low-rank update, so inference matches a single-LoRA model in cost. Quality drops on multi-LoRA tasks [Zhong et al., 2024], which is usually attributed to interference between LoRAs trained for different concepts when their deltas are summed.
Composite and route-then-apply. Composite methods avoid this interference by keeping LoRAs separate at inference. ComposLoRA [Zhong et al., 2024] runs one full forward pass per active LoRA, paying linearly in compute and memory with . Adaptive selection reduces cost through dynamic routing: CMLoRA [Zou et al., 2025] and MultLFG [23] schedule dominant LoRAs across diffusion steps via frequency-domain signals; FreeFuse [12] routes subject tokens to spatial regions at test time; ZipLoRA [24], K-LoRA [17], and FreeLoRA [36] target narrower 2-LoRA / autoregressive personalization settings. None of these expose a pool-wide precomputed substrate handling arbitrary multi-LoRA composition with both static and dynamic deployment. Orthogonality-based merge analyses such as OMCD [34] are complementary: they study inter-LoRA orthogonality as an explanatory variable for merge quality, where our framework treats pool-wide rank-fill as the structural variable.
Subspace methods. A separate line of work compresses LoRA representations through linear projection. Knots [26] column-stacks per-LoRA deltas and applies one SVD as an alignment tool before TIES-style merging on small LoRA sets. CoreSpace [18] stacks per-LoRA factors and aligns them in a fixed basis without truncation. Reported evaluations are limited to small-pool settings, so we do not include its numbers in our pool-scale comparison. Compress-then-Serve [6] learns a pool-wide shared basis together with per-LoRA middle matrices to compress the joint product (the per-LoRA delta), for efficient serving of many single-LoRA requests on LLM backbones. Systems such as Punica [2] and SLoRA [25] optimise serving many LoRA-specialised requests, but do not address simultaneous semantic composition of multiple LoRAs in one generation. CtS notes after its Proposition 1 that training noise makes the joint rank generically full (); our energy-truncated measurement of at is consistent with this high-effective-rank regime on the LLM pool () but substantially smaller on diffusion pools (, Table 2). LORASPACE differs from CtS in three respects: (i) the inference setting is simultaneous composition rather than single-LoRA serving; (ii) we use paired marginal SVDs to factorise the energy-normalised and stacks separately rather than the joint product; (iii) the substrate exposes a router-compatible operator (defined in § 3.4) supporting both static and dynamic deployment from one precompute.
| Pool | (mean) | ||||
| Pool A (SD 1.5) | 11 | 784 | 446 | 0.57 | 0.43 |
| Pool B (SD 1.5) | 17 | 1112 | 521 | 0.47 | 0.49 |
| Pool C (SDXL) | 17 | 1792 | 819 | 0.46 | 0.55 |
| LoRA-Hub (FLAN-T5-Large) | 48 | 768 | 474 | 0.62 | 0.88 |
| LoRA-Retriever (LLaMA-2-7B) | 48 | 384 | 368 | 0.96 | 0.94 |
Table 2. Rank overlap across pools at . (lower means more overlap). is the power-law exponent of vs. . The LoRA-Hub row is a sub-sample matched in size to LoRA-Retriever (full 196-LoRA pool in App. T).
Single-active routing. Switch-style methods activate exactly one LoRA at any token or step (SpectR [5], X-LoRA [1], PHATGOOSE [14], MoLE [30], Arrow [16]). They pick one LoRA at each location, so the multi-LoRA combination question never arises and they are not directly comparable to composition methods. We report a switch baseline in App. § 25 for completeness.
LLM-side composition. LoRA-Retriever [35] composes task-specialised LoRAs for LLMs by selecting a top- subset via INSTRUCTOR [27] embeddings, then either fusing factors ( cross-terms) or running a weighted ambient mixture. LoRAHub [9] optimises LoRA weights with CMA-ES [7] on a held-out validation set. Both treat composition as ambient-space averaging; neither exploits pool-level rank structure. LORASPACE’s operator contains only per-LoRA products by construction, so the cross-product approximation error that degrades fusion-style factor combination (App. § 27) does not arise. We use the LoRA-Retriever pool to characterise the high-effective-rank regime as a counterpoint to the diffusion regime.
Method
A LoRA (e.g., an image style LoRA) comprises two matrices and for each layer. In general, as indicated later in § 3.1, a scaled linear combination of pairs produces the desired delta. In LORASPACE, we produce these deltas by pre-computing a decomposition (construction § 3.2) of the stacked s and s and using their sub-space representations (low-dimension) and appropriately projected. As we control the rank of this decomposition, and hence the number of actual deltas, the computational complexity drastically reduces, as we show in the following sections.
Setup and notation
Consider a single LoRA-modified linear layer with frozen base weight . A LoRA [8] augments this layer with a low-rank update , where and are the LoRA’s left and right factors, is the LoRA rank, and is the per-LoRA scaling factor with the LoRA scaling hyperparameter (set at training time). We write for the average pool rank. Given a pool of trained LoRAs, the multi-LoRA composition target on input is

Figure 1. Three strategies for composing active LoRAs from a Combo (the active subset for one generation). Merge folds them into one delta with one forward pass. Composite runs forward passes. LoRASPACE projects via , mixes , and back-projects via in one pass. Static-mode pre-folds the inner sum when are time-invariant; dynamic-mode evaluates it per UNet pass (precompute illustration in App. § 7).
where are per-LoRA weights for an active subset of size . Static merge precomputes a fixed sum once and discards routing. Composite evaluates Eq. (1) by running forward passes per token and aggregating outputs. LORASPACE evaluates a router-weighted form of Eq. (1) in one base-model pass with LoRA-side work linear in inside a shared -dimensional subspace (), exploiting structural rank overlap.
Energy-normalised shared subspace
The motivating observation is empirical. When per-LoRA factors from a real diffusion pool are stacked and decomposed by paired marginal SVDs, the resulting subspace dimension is much smaller than . We characterise this empirically in § 4.2, which separates alignment between adapters from layer-width saturation and each adapter’s own spectral tail. Here we use it to construct an energy-truncated shared subspace.
Frobenius normalisation. Raw factor stacking is dominated by high-norm LoRAs. Frobenius normalisation puts every LoRA on a common scale before decomposition:
We then form pool stacks and .
Paired marginal SVDs and adaptive truncation. We compute two thin SVDs and , then truncate each at energy fraction :
The shared subspace dimension is . The shared bases are and (with the right-singular-vector matrix in ), the leading left and right singular vectors of and , both with orthonormal columns. By the Eckart-Young theorem [4], and are the optimal rank- subspaces for the marginal -stack and -stack reconstructions separately. This is optimal for each marginal factor projection but not a joint optimum for the product . A joint SVD of the scaled deltas is closer to product-optimal (per-LoRA error against on Pool C at equal ), but the difference does not reach the generated images, and the marginal bases are built from thin factors on CPU and can be extended when the pool changes (App. § 13). We find empirically that retaining the low-energy directions does not improve composition metrics within the practical range (§ 4.4).
Per-LoRA projected factors
Each LoRA is re-parameterised by projecting its raw factors onto the shared subspace:
The LoRA scaling is split symmetrically as on each side. The per-layer cache is computed once per pool, stored on CPU memory, and streamed to the GPU as needed. Cache size is versus for ambient storage, which gives a meaningful reduction whenever .
Composition operator and deployment modes
At inference, the LORASPACE operator processes input in three steps. Project once into the subspace . Compute a per-LoRA subspace contribution for each active . Mix and back-project to give . Compactly,
The input projection and output back-projection are shared across all active LoRAs. The per-LoRA work is entirely inside the -dimensional subspace. The shared bases do not orthogonalise adapters or split directions among them. spans the union of the pool’s directions and each adapter keeps dense coordinates inside it. Across 4,800 audited axes (12 SDXL layers, both sides, top 200 per side) the median adapter-ownership Herfindahl index is 0.12, so a typical axis carries about eight adapters. At full rank the operator equals the ambient weighted sum (Prop. 1), so any interaction the ambient sum produces, such as a lighting LoRA changing how a character LoRA renders, is kept. Truncation only removes a low-energy tail (composed error 0.84% at , App. § 13).
Static and dynamic deployment from one substrate. When are time-invariant (uniform or per-prompt/pre-defined routing), the inner sum folds into a single ambient delta at ambient-merge cost (static-mode). Time-varying routers (per-token, per-step, per-pixel) require dynamic-mode. Eq. (5) is then evaluated in the subspace at every UNet pass, with shared and paid once per pass independent of . The same serves both modes.
Static-mode is not ambient merge. Substituting Eq. (4) gives with , the projectors onto the truncated subspaces. Since on most layers (682 of 722 on Pool C), there and the two operators differ from the unprojected target . § 4.3 reports the empirical effect alongside a mechanism ablation.
Reconstruction guarantee
Proposition 1 (Exact recovery). If and for all , then for any weights .
Corollary 2 (Truncation error bound). Let be the leading discarded singular values of , and , . Then for any and ,
Proofs are in Appendix B. At the per-side discarded singular value is bounded by for ; § 4.2 confirms this approximation does not degrade outputs in practice.
Router interface
The composition operator is router-pluggable. Any function producing per-LoRA weights plugs in unchanged. We adopt uniform weights as the default and characterise three adaptive routers as plug-in extensions: spatial (per-token activation energy, in the spirit of SpectR [5]), temporal (per-step subspace-band, following CMLoRA [Zou et al., 2025]), and semantic (per-concept token-to-region routing, in the spirit of FreeFuse [12]). Full specifications are in App. § 9. For LLM pools, LoRASPACE pairs with an INSTRUCTOR retriever [27] following the LoRA-Retriever protocol [35], showing that internal and external routing policies share a single composition substrate.
Complexity
We count the incremental LoRA-side linear algebra for one layer processing one token; Appendix § 10 reports the full per-step cost including base-model forwards. For active LoRAs of representative rank , ambient composition adds per layer, linear in both and ambient width. LoRASPACE costs
The shared term is paid once regardless of . As pool size grows, the projection size scales as with measured on diffusion pools (§ 4.2), so the projection term grows sub-linearly with the pool. The per-LoRA term is linear in but scaled by , which is much smaller than the ambient . The adapter-side crossover with an optimised single-pass ambient mixture is . This bound is always below , so it is not met at the default (Pool C, mean against at ). It is met at the compressed operating points validated in App. § 13 ( at and at ), so the subspace path saves adapter-side arithmetic only in that reduced-storage regime. Appendix § 10 gives the full per-method comparison including memory.
Experiments
We organise the evaluation around four findings: rank-fill regime characterisation across diffusion and LLM pools (§ 4.2); a quality + mechanism comparison showing static-mode LoRASPACE delivers composite-level quality at ambient-merge cost and that the lift is rank- truncation in any basis (§ 4.3); robustness to the energy truncation threshold (§ 4.4); and a routing ablation showing router quality varies on Pool A (temporal helps, semantic is flat, spatial regresses on ImageReward; § 4.5). A predictive-theory check on the near rank-orthogonal LLM regime, including external retrieval coupling, is in § 4.6 (App. § 27 for the full scoreboard).
Setup
Pools and backbones. Pool A (11 reality-style LoRAs, SD 1.5 [22]) and Pool B (17 LoRAs, SD 1.5) are drawn from CivitAI [3]. Pool C (17 reality-style LoRAs, SDXL [20]) is curated from CivitAI and Hugging Face [10]. The LLM pool is the 48-LoRA LLaMA-2-7B [28] task-LoRA set from LoRA-Retriever [35].
Metrics. For diffusion, we report CLIP-T [21] for prompt alignment, ImageReward [31] for human-preference alignment, and a GPT-4o [15] composition rubric (Composition Quality + Image Quality, 0 to 10 each, position-bias averaged across two orderings) following ComposLoRA [Zhong et al., 2024]. For LLMs, we use the LoRA-Retriever Macro Task accuracy.
Software and hardware. All diffusion experiments run on a single RTX 3090 (24 GB) using PyTorch [19] and the diffusers library [29], with DPM-Solver++ [13] as the sampler. Pool A: 100 denoising steps, . Pool C: 50 denoising steps, . We use 240 stratified combinations per seed for Pool A, distributed across active sizes , and 200 for Pool C, across . Pool B is reported in the appendix at (Appendix § 18) to probe the high-cardinality regime where the rank-fill ratio is lowest ( at ); Pool A and Pool C cover the full active-LoRA range.
Subspace dimension grows sub-linearly with pool size
We measure the rank-fill ratio at energy threshold (the value used throughout) and the growth exponent obtained by fitting with category-aware random subsampling at three random seeds. Table 2 summarises the result. The three diffusion pools have between 0.46 and 0.57 and between 0.43 and 0.55, both far below the , no-overlap baseline. The two LLM pools span the full range: a 48-LoRA sub-sample of LoRA-Hub over related FLAN-T5 NLP tasks lands at , , comparable to diffusion overlap, while the LoRA-Retriever benchmark, curated for retrieval-task diversity, sits near the no-overlap baseline at , .
The source of the low differs between regimes. We split into within-LoRA rank slack and a cross-LoRA term, and compare with a spectrum-matched random null (App. F). Within-LoRA slack is nowhere dominant ( on every pool). The related-task LoRA-Hub pool [9] needs about 30% fewer dimensions than its matched null, an alignment associated with shared task structure, while the diversity-curated LoRA-Retriever sits at its null. On the diffusion pools the stacked ranks exceed the layer width on most layers, and on the SDXL pools sits at its null (0.98 on Pool C), so their low is real compressibility that is largely explained by width saturation and per-adapter spectra, and we leave its link to training data open. Pool composition, not modality, predicts where compression is large and where it is not. The framework also predicts a saturation regime when : the full LoRA-Hub pool () crosses the threshold at , with each new LoRA adding dimensions to below threshold and above (App. T).
Quality, speed, and memory
We compare three composition strategies on Pool A: ambient static merge with weight 1 per LoRA, so the deltas are summed, ambient composite with forward passes per step, and LORASPACE with uniform routing weights. Table 3 reports CLIP-T and ImageReward averaged across three random seeds (240 combinations per seed, ), and the GPT-4o rubric from one seed (the position-bias-averaged GPT-4o evaluation is expensive; three-seed consistency on CLIP-T and ImageReward suffices to verify robustness).
| Method | CLIP-T ↑ | ImageReward ↑ | GPT-4o Total ↑ | GPT-4o Win% ↑ |
| merge | 33.60 ± 0.19 | 0.760 ± 0.008 | 14.32 | 21.9 |
| composite | 35.27 ± 0.19 | 0.953 ± 0.011 | 15.24 | 29.5 |
| LORASPACE (uniform) | 36.01 ± 0.16 | 1.041 ± 0.035 | 15.61 | 48.6 |
Table 3. Pool A quality (mean ± std over 3 seeds, 240 combos/seed, averaged over , with GPT-4o from one seed). Higher is better for all metrics.
LORASPACE with uniform routing exceeds composite by +0.74 CLIP-T, +0.09 ImageReward, +0.37 GPT-4o total, and almost twenty percentage points of GPT-4o win rate (48.6% vs. 29.5%), with 33.3% being the no-preference baseline for three competitors. It also exceeds ambient merge by larger margins. The inter-method gap exceeds the across-seed standard deviation on every metric.
Mechanism ablation. We test whether the quality lift depends on the pool-wide basis with two static-delta variants at the same rank . truncated-merge is the combo-specific best-fit SVD of the ambient merge; subspace-merge bakes the pool-wide readout into a fixed delta per combo. Both run at ambient-merge per-image cost. On Pool A (seed 111, 240 combos, to 5), both match per-step LoRASPACE-uniform within fp16 noise (Tab. 16). At equal rank the basis choice does not affect quality. The lift over ambient merge (+2.40 CLIP-T, +0.32 ImgRew) is therefore not a property of the pool-wide basis. Both variants average the LoRAs with weights where merge sums them, and at the truncation changes the composed delta by under 1% on Pool C (App. G).
Why the pool-wide basis. Amortisation: truncated-merge requires 192 layer SVDs per combo (∼1.4 h across Pool A’s 1011 combos) vs. one 21.8 s pool-wide precompute (App. P). Dynamic-mode: when depend on context, no single static delta exists for truncated-merge, while supports both modes from one precompute. At about 5 s of SVDs per combination, the precompute pays off beyond about five distinct combinations, so per-combination truncated merge remains the better choice for a static deployment with a few fixed combinations. Serving 30 combinations from the 37-adapter union of App. H averages 35.1 s per combination including the one-time load, against 43.9 s for repeated PEFT load and merge. Keeping all adapters resident instead needs per-adapter format fixes, and even then 36 of the 37 load at 19.0 GiB and one generation peaks at 23.1 of the card’s 24 GiB.
Pool C (speed, memory, quality). Figure 2 summarises per-image cost. Dynamic-mode stays near-flat in (6.1× faster than composite at ). Most of this gain comes from running one backbone pass instead of . At a single-pass ambient mixture already accounts for 4.9× of the 5.3×, and the substrate path adds 1.08× (Tab. 20). Static-mode inherits ambient merge cost (23 to 39 s, Tab. 18). Across 20 combos uniform LoRASPACE scores 32.89 CLIP-T / 1.040 ImgRew vs. composite (31.91 / 0.973) and merge (29.41 / 0.721), with the CLIP-T gap over composite growing from +0.17 at to +1.37 at (Tab. 17, additional qualitative examples in App. Q).

Figure 2. Pool C (SDXL) speed and memory. Left: per-image wall-clock vs. . Composite scales linearly. Dynamic LoRASPACE stays near-flat (6.1× speedup at ). Static LoRASPACE inherits ambient-merge cost. Right: GPU memory. LoRASPACE has the lowest load and peak memory (6.5/16.2 GB). PEFT baselines (merge, switch, composite, cmlora) exceed 22 GB peak. RTX 3090, , 50 DPM-Solver++ steps.
Energy threshold ablation
Sweeping on Pool A grows by 43% while quality varies non-monotonically within seed-level noise ( CLIP-T, ImageReward). We adopt as the default (Table 5).
| (mean) | CLIP-T | ImageReward | |||
| 0.95 | 224 | 356 | 568 | 35.76 | 1.071 |
| 0.97 | 248 | 392 | 611 | 35.81 | 1.072 |
| 0.99 | 283 | 446 | 663 | 35.77 | 1.064 |
| 0.999 | 314 | 508 | 741 | 35.80 | 1.067 |
Table 5. Pool A energy-threshold ablation. Subspace dimension and uniform-LoRASPACE quality at four values (mean over , 240 combos, seed 111). Quality varies non-monotonically within seed-level noise while grows by .
Routing ablation: substrate is router-tolerant
On Pool A across three seeds, the four routers from § 3.6 (uniform, spatial, temporal, semantic) all exceed the merge baseline by large margins (Table 15, App. § 19). Temporal gives the largest ImageReward gain over uniform, semantic is flat, and spatial regresses. The substrate carries the quality, with routers contributing small modulations.
| Router | CLIP-T ↑ | ImageReward ↑ |
| uniform | 35.82 ± 0.10 | 1.050 ± 0.029 |
| spatial | 35.43 ± 0.34 | 0.857 ± 0.062 |
| temporal | 35.92 ± 0.10 | 1.086 ± 0.030 |
| semantic | 35.83 ± 0.09 | 1.050 ± 0.026 |
Table 15. Routing ablation on Pool A with the LoRASPACE substrate fixed (mean ± across-seed std over 3 seeds, 240 combos/seed, ). All four routers exceed the merge baseline (33.60 / 0.760, Table 3); temporal gives the largest ImageReward gain over uniform.
Cross-modality predictive check on the LLM regime
On the near rank-orthogonal LoRA-Retriever LLaMA-2-7B benchmark (, ), the substrate alone (loraspace-fullpool) scores 50.49 Macro Task vs. the ambient mixture’s 53.55. INSTRUCTOR-retrieval coupling (loraspace-hybrid) recovers 54.51 at 1.52 vs 1.47 samp/s, matching the framework’s prediction that compression helps only with retrieval coupling (full scoreboard in App. § 27).
Conclusion
We empirically characterise pool-wide rank overlap in real LoRA collections, finding across three diffusion pools and a 48-LoRA LoRA-Hub sub-pool, with LoRA-Retriever as the near-orthogonal exception (). LORASPACE turns this overlap into a pool-wide substrate from one SVD, matching composite quality at merge cost in static-mode and reaching 2.3 to 6.1 speedup in dynamic-mode, mostly from avoiding per-LoRA backbone passes. A mechanism ablation shows that the lift does not depend on the pool-wide basis, making the basis valuable for amortisation and dynamic capability (limitations and broader impact in App. § 28).
When to use LORASPACE. LORASPACE targets deployments that repeatedly compose several LoRAs under a memory budget. With one active adapter or unconstrained memory, ambient serving is the right choice. Within that setting, is a cheap screen (CPU minutes, no base model). Below about 0.6 we deploy the substrate, as on the three diffusion pools, with LoRA-Hub (0.62) at the boundary. Above about 0.9, as on LoRA-Retriever, the substrate is worth using for routing or retrieval coupling rather than for compression at the default . In between, a sweep on held-out prompts decides (CLIP-T drop under 0.5 and structural similarity at least 0.95). These cut points separate our pools empirically and are not universal constants, and falls with pool size (0.95 at to 0.57 at , App. § 11), so very small pools are better served ambiently. Uncurated and mixed pools follow the same rule (App. § 14).
Acknowledgments and Disclosure of Funding
The computational resources for this research were supported by the Accelerating Higher Education Expansion and Development (AHEAD) Operation Grant No. 6026-LK/8743-LK from the Ministry of Higher Education, Sri Lanka, funded by the World Bank. R. Rodrigo acknowledges the University of Moratuwa Senate Research Committee Grant No. SRC/LT/2021/20. We also thank Jaseci Labs for its support. The authors declare no competing interests.
Pool-wide precompute illustration

Figure 4. Pool-wide precompute (paid once at pool-creation time). Per-LoRA factors are stacked and decomposed via paired marginal SVDs into shared bases (, ) (red) plus projected factors (, ). The cache is reused across all subsequent compositions.
Proof of Proposition 1
Proof. Under the span conditions, (because is the identity on ) and (analogously). Substituting Eq. (4) into Eq. (5):
Proof of Corollary 2. Let and be the projectors onto and . For each LoRA , decompose with , and with . Then
By the Eckart-Young theorem [4], . Since is a column-block of , we have , and analogously . Applying , bounding and , summing the three error terms, and collecting over yields Eq. (6).
Empirical anchor (SDXL Pool C, ). At with pool LoRAs, the energy-fraction definition gives . The corollary applies a Frobenius-norm chain on , that loses orders of magnitude in tightness; we therefore treat Cor. 2 as a worst-case sanity statement rather than a predictive bound. Empirical robustness of is established by the energy-threshold sweep in § 4.4, where quality varies non-monotonically within seed-level noise across .
Router specifications
The four router variants summarised in § 3.6 are detailed below. All share the same operator interface: a function producing per-LoRA weights that plug into Eq. (5).
Spatial router (per-token activation energy). Per-position normalised energy scored across active LoRAs, top- selection, temperature softmax. All runs use , so each token is routed to its highest-energy LoRA. Spirit of SpectR [5] but applied over per-LoRA contributions inside the pool subspace.
Temporal router (per-step subspace-band). Following CMLoRA’s dominant/non-dominant scheme [Zou et al., 2025] but with the routing signal computed as the late-band energy fraction inside the shared subspace, . Signal and operator share the same coordinate system.
Semantic router (per-concept spatial mask). A short warmup pass collects cross-attention maps for each LoRA’s trigger tokens, following the token-to-region routing motivation of FreeFuse [12]. Resulting per-LoRA masks are bilinearly resampled and applied at image-token axes, with activation-energy fallback at text-token axes.
External retrieval coupling. For LLM pools, LoRASPACE pairs with an INSTRUCTOR retriever [27] following the LoRA-Retriever protocol [35]. The retrieved top- subset is composed through the same shared-subspace operator. This demonstrates that internal (activation- or band-derived) and external (retrieval-derived) routing policies share a single composition substrate.
Per-method complexity comparison
Table 4 consolidates per-step compute and peak GPU memory across all evaluated methods. The key comparison is the Scaling in N column: output-space methods (composite, cmlora) scale linearly in compute and memory; PEFT-resident single-active methods (switch) hold per-step compute roughly constant but materialize all LoRAs on GPU regardless of how many are active per step; static-merge methods (merge, knots) achieve inference cost but lose routing capability; LoRASPACE scales with the subspace dimension , which saturates at the layer width when the pool grows large enough.
| Method | Per-step compute | Peak GPU memory | Scaling in |
| merge | |||
| switch | compute , mem | ||
| composite | both | ||
| cmlora | both | ||
| knots | |||
| LoRASPACE | , | GPU CPU | linear in inside subspace, caps with |
Table 4. Per-step compute and peak GPU memory of training-free multi-LoRA composition methods. is active LoRAs per call, is representative rank, is layer width, is LoRA-bearing layers, is tokens per layer, and is pool size. LoRASPACE’s saturates at the layer width.
Saturation thresholds. Saturation () requires , where is the width of each layer. SD 1.5 LoRA layers have widths from 320 to 1280, and SDXL layers 640 or 1280. Counted per layer, the stacked ranks of Pool C reach the layer width on all 722 layers, and those of Pools A and B on 132 of 192 layers (every layer narrower than 1280). The diffusion pools therefore sit in the width-saturated regime on most layers, consistent with matching the spectrum-matched null on the SDXL pools (App. F). The LLM pool has against (9% of threshold), deep in the rank-bound regime.
Rank overlap ablation: vs. pool size and energy threshold
This appendix documents the per-pool subspace dimension ablation that underlies Table 2.
Energy threshold sweep (Pool A, SD 1.5, ).
| (mean) | (mean std) | ||
| 2 | 224 | 0.95 | |
| 4 | 304 | 0.91 | |
| 6 | 456 | 0.77 | |
| 8 | 584 | 0.68 | |
| 11 | 784 | 0.57 |
Table 6. Pool A rank-fill ratio vs. pool size (mean std over 3 random subsets per ; has zero std as the full pool admits one subset). Pairs () are nearly rank-orthogonal (); at full pool, 43% of rank is redundant.
Pool size sweep (Pool A, ).
SDXL Pool C vs. LLM comparison. Pool C (, SDXL) reaches at full pool size, with the rank-fill already at 0.69 to 0.72 for subsets. This heavier overlap relative to Pool A is consistent with Pool C’s higher proportion of same-type LoRAs (lighting, material, background) that share scene-element structure. The LLM pool (, LLaMA-2-7B [28]) maintains at all tested pool sizes with growth exponent , which is effectively linear and confirms near-zero rank overlap across disjoint NLP-task LoRAs.
Rank-fill decomposition and matched null
The rank-fill ratio has nominal ranks in the denominator, so it mixes each adapter’s internal rank slack with structure between adapters. With per-adapter effective ranks computed at the same on the same Frobenius-normalised factor stacks as ,
where isolates within-LoRA redundancy. Both cross-LoRA structure and stacked ranks approaching the layer width lower , so we also compare with a spectrum-matched random null , built from random per-adapter subspaces that keep each block’s own singular spectrum, with the same layer shapes and widths (one seeded draw per layer, averaged over all layers). Table 7 reports every pool at .
| Pool | ||||
| Pool C (SDXL, ) | 0.46 | 0.84 | 0.55 | 0.98 |
| Six stylized SDXL LoRAs () | 0.97 | 1.00 | 0.97 | 1.00 |
| Community SDXL, uncurated () | 0.87 | 0.99 | 0.88 | 1.00 |
| Pool C + community union () | 0.43 | 0.89 | 0.48 | 0.99 |
| LoRA-Hub (FLAN-T5, ) | 0.60 | 1.00 | 0.60 | 0.70 |
| Wild FLAN-T5 LoRAs, uncurated () | 0.84 | 1.00 | 0.85 | 0.92 |
| LoRA-Hub + wild union () | 0.52 | 1.00 | 0.52 | 0.67 |
| LoRA-Retriever (LLaMA-2, ) | 0.98 | 1.00 | 0.98 | 1.00 |
Table 7. Rank-fill decomposition at . means the pool needs fewer dimensions than a spectrum-matched random pool. The LoRA-Hub row uses a different 48 of the 196 adapters than Table 2, and LoRA-Retriever is an independent re-download. The stylized, community and wild pools are described in App. § 14.
Within-LoRA slack is material only on the two pools that contain the Pool C adapters ( and 0.89) and is 0.99 to 1.00 elsewhere. On the LLM pools, far from width saturation, the related-task pools need about 30% fewer dimensions than their matched nulls (0.70 for LoRA-Hub and 0.67 for its union with an uncurated harvest), while LoRA-Retriever sits at its null. This alignment is consistent with shared task structure, but the control does not isolate training data as the cause. On the SDXL pools, whose stacked ranks exceed the layer widths, sits at the null (0.98 to 1.00). Their low is real compressibility, largely explained by width saturation and per-adapter spectra rather than by measured alignment, and it does not depend on a curated or related pool. Repeating the decomposition at the compressed operating points of App. § 13 instead of attributes 75 to 83% of the log-compression to within-adapter tails on both pool types tested.
Joint versus marginal bases and compressed thresholds
Joint versus marginal SVD. We compare the paired marginal bases of § 3.2 with bases from a joint SVD of the stacked scaled deltas , at the same rank (the the marginal method selects at ), so capacity is equal. Table 8 reports relative Frobenius reconstruction error of the per-LoRA deltas and of composed uniform deltas on Pool C, on 24 layers spanning nine layer types across the down, mid and up blocks, then on all 722 layers.
| Setting | Per-LoRA error marginal | Per-LoRA error joint | Composed error () marginal | Composed error () joint | |
| Full pool, , 24 layers | 822 | 0.88% | 0.35% | 0.84% | 0.43% |
| Small pool, , 24 layers | 374 | 0.52% | 0.22% | 0.56% | 0.32% |
| Full pool, , all 722 layers | per layer | 1.01% | 0.43% | 0.95% | 0.53% |
Table 8. Reconstruction error of marginal and joint bases at equal (Pool C).
The joint construction is closer to product-optimal in weight space, with worst cases of a few percent on low-energy layers (8.7% marginal against 7.3% joint). The difference does not reach generation. A cache built from the joint bases at the same per-layer regenerates all 30 benchmark combinations at DINO similarity 0.999 to the marginal-cache images (CLIP-T 25.87 against 25.92). The joint spectrum is also more compact ( on these layers against 822). A joint core has rank at most and refactors exactly into thin factors, so at matched both caches store the same number of parameters, while at its own the joint cache is about smaller (1.77 against 8.63 GB in fp16) and builds 14% faster.
We keep the marginal bases as the default because they can be built and grown from native thin factors in a small memory budget. The marginal build streams thin factor stacks and never forms a dense delta, so its peak transient memory per layer is 83 MB against 1.3 GB for our joint build, which keeps the precompute on CPU (21.8 s for Pool A). The marginal coordinates also support the append-only extension of App. § 15 and the exact recovery of Prop. 1. The joint substrate is the more compact choice when the dense build is affordable, and the marginal one suits pools that change.
Compressed thresholds. Table 9 lowers below the default after submission (105 images, 15 combinations at , an 18-adapter manifest with mean at , and our own prompt set, so CLIP-T is not comparable to the main tables). These compressed caches, and those of the next paragraph, are made by truncating the cache to per layer rather than the of § 3.2, so at a given they are no larger than a fresh build. CLIP-T and ImageReward stay flat within run-to-run variation down to , the same order as the joint spectrum’s .
| mean | CLIP-T | ImageReward | DINO | |
| 0.99 | 785 | 25.33 | 1.137 | 1.000 |
| 0.70 | 107 | 25.67 | 1.158 | 0.981 |
| 0.50 | 49 | 25.61 | 1.148 | 0.967 |
| 0.30 | 22 | 25.27 | 1.117 | 0.949 |
Table 9. Quality at compressed energy thresholds. DINO is the similarity to the images.
The basis matters at compressed sizes. At the choice of basis does not change quality (§ 4.3). At compressed sizes it does. Regenerating 30 fixed-seed combinations at identical per-layer with four bases at (, Pool C cache 0.63 GB against 9.5 GB), the pool basis keeps DINO similarity 0.967 to the full-cache images (CLIP-T 25.93 against 25.92), while a random basis and a basis built from a different pool fall to 0.877 and 0.901 because the adapters no longer come through. A per-combination Eckart-Young basis also holds quality (0.986) but costs minutes of dense SVDs per combination and leaves no reusable object. The pool basis keeps 0.956 and 0.945 at and 0.30 (caches of 0.40 and 0.26 GB), while both controls stay at 0.88 to 0.90.
Heterogeneous and uncurated pools
Most of our pools are earlier benchmarks adopted unchanged. To test a pool nobody on our team chose, we harvested the 20 most-downloaded valid community SDXL LoRAs by a fixed rule (Hugging Face SDXL tree, downloads descending, 16 creators, ranks 4 to 128) and measured them on the same 722 layers as Pool C. We also added six strongly stylized SDXL LoRAs. Table 10 reports at .
| Pool | ||||
| Pool C (control) | 17 | 1792 | 819 | 0.46 |
| Six stylized LoRAs alone | 6 | 192 | 186 | 0.97 |
| Pool C + six stylized | 23 | 1984 | 848 | 0.43 |
| Community LoRAs, uncurated | 20 | 673 | 580 | 0.87 |
| Pool C + community | 37 | 2337 | 921 | 0.43 |
Table 10. Rank fill of heterogeneous and uncurated SDXL pools at .
Unrelated adapters among themselves stay nearly incompressible ( for the stylized set and 0.87 for the community set), as on the LLM side (an uncurated harvest of 12 FLAN-T5 task LoRAs at 0.84, LoRA-Retriever at 0.96). A mixed pool still deploys. Adding the six stylized adapters grows the pooled by only 3.5% (819 to 848, against 186 for the stylized set alone), and in a mixed 17-adapter pool of Pool C and stylized adapters every adapter keeps at least 99.9% of its delta energy (12 layers). New adapters are detectable before use. Every community adapter lies outside the Pool C bases (captured energy 0.15 to 0.64, mean 0.35, against 0.999 or more for in-pool adapters), and every one is fully represented after the extension of App. I (captured energy 1.00 with about 27 extra directions per layer). The union also absorbed engineering differences, such as varying per-layer ranks, unsupported layer types and file-format differences, which the merge path had to normalise case by case.
On the LLM side, the 12 harvested FLAN-T5 adapters (car-rental dialogue, SQuAD question answering, meeting summarisation and Open-Orca instruction following, from different creators) need alone but add only 35 dimensions to the 48-task LoRA-Hub substrate, and the union sits further below its matched null than LoRA-Hub itself (0.67 against 0.70, App. § 12).
End-to-end check on the union. One substrate over the 37-adapter union reproduces the equal-weight ambient composition on 30 combinations (DINO similarity 0.999 against per-combination PEFT merge). A no-adapter base arm on the same prompts and seed scores 0.90 and 0.85 at and against the same merges, so the metric discriminates. This control bounds metric headroom only. The 20 combinations at use community adapters without trigger words, so their prompts and base image are identical.
Changing pools: basis extension and tolerance
We measure what happens when a LoRA arrives after the substrate is built, on Pool C (24 layers, energy-weighted, leave-one-out over all 17 adapters).
Projection onto the unchanged bases. A held-out adapter’s delta projected onto the substrate built from the other 16 keeps on average only 0.30 of its energy (0.21 to 0.45), and composed error averages 0.34 when that adapter is used immediately. A larger existing pool does not help (captured energy 0.10, 0.18, 0.26 and 0.30 at ), and twenty uncurated community adapters capture only 0.15 to 0.64 on the Pool C bases (App. § 14). Each adapter brings its own few effective directions, so a new LoRA lies largely outside the existing span.
Basis extension. For each layer we take the new LoRA’s residual against the existing bases, and , and append its top- singular directions to . Existing coordinates are untouched. Admission takes 33 s on CPU over all 722 layers including the cache write, against 7 min 41 s on GPU for a full rebuild at . Table 11 reports captured energy. Reaching 0.99 needs on average only 12 extra directions per layer (5 to 28) against .
| Update path | Captured energy | Extra directions per layer |
| Projection, unchanged bases | 0.30 | 0 |
| Extension, | 0.92 | 4 |
| Extension, | 0.96 | 8 |
| Extension, | 0.98 | 16 |
| Extension, | 1.00 | 32 |
Table 11. Captured energy of a held-out Pool C adapter under each update path (mean over all 17 adapters).
End-to-end check. We rebuilt both caches and regenerated 30 fixed-seed combinations. The extension cache reproduces the full-recompute images at DINO similarity 0.999 (worst 0.995) on the 10 combinations that contain the new LoRA, with CLIP-T unchanged. The projection cache drifts on exactly those combinations (0.982, worst 0.936) and nowhere else (0.999 on the other 20).
Sequential arrivals. Starting from a 6-adapter core and admitting the other 11 adapters one at a time, extension keeps smaller than a fresh recompute (final mean of 480 against 822). Composed error grows from 3.3% after the first arrival to 6.4% after the eleventh, against 0.84% for a fresh build. This motivates the update rule in App. V, which is to extend on arrival, monitor composed error, and rebuild periodically off the serving path.
Capability comparison
Tab. 12 compares LoRASPACE with the closest training-free methods on four requirements of the deployment we target, many LoRAs composed under a memory budget. The last two rows are measured rather than asserted (§4.2, App. I).
| Requirement | CtS | KnOTS | Core-Space | Composite | Per-combo truncated merge | LoRASPACE |
| Serve any active subset, static or routed, from one precompute | no | no | no | n/a | no | yes |
| Context-dependent weights without backbone passes | no | no | no | no | no | yes |
| Predict before deployment whether a pool compresses | partial | no | no | no | no | yes () |
| Admit a newly published adapter without recomputing the pool | no | no | no | n/a | no | yes (extension) |
Table 12. Requirements of multi-LoRA composition under a memory budget. Composite covers ComposLoRA [Zhong et al., 2024] and CMLoRA [Zou et al., 2025].
High-cardinality prompt truncation mitigation
CLIP-L’s 77-token hard limit is reached in all 15 sampled Pool C combos at (maximum prompt length 92 tokens), silently dropping the last-listed LoRA’s trigger from the cross-attention context. A deterministic 20-line trigger-deduplication rule (compact) fits every combo under 74 tokens and recovers +0.36 GPT-4o composition points on average across the three LORASPACE variants (Table 13). The mitigation is orthogonal to the composition operator and applies equally to all multi-LoRA methods. Pool C headline numbers use native triggers (identical truncation applied to every method); Pool B high-cardinality cells () use compact.
| Method | Composition (native) | Composition (compact) | composition | image |
| spatial-LoRASPACE | 4.15 | 4.27 | +0.12 | −0.19 |
| temporal-LoRASPACE | 3.82 | 4.38 | +0.56 | −0.01 |
| semantic-LoRASPACE | 3.78 | 4.20 | +0.42 | −0.13 |
| Mean | 3.92 | 4.28 | +0.36 | −0.11 |
Table 13. GPT-4o composition and image quality under native (truncated) triggers versus the compact deduplication rule, 15 Pool C combos at .
Pool B (SD1.5, broader pool): full high-cardinality results
| Method | CLIP-T | ImgReward | DINO (vs. comp.) | CLIP-T | ImgReward | DINO (vs. comp.) |
| merge | 32.16 | 0.06 | 0.508 | 32.49 | 0.01 | 0.434 |
| switch | 36.43 | 1.23 | 0.689 | 36.10 | 1.10 | 0.650 |
| composite | 35.65 | 0.61 | n/a | 34.47 | 0.39 | n/a |
| cmlora | 34.59 | 0.60 | 0.833 | 34.60 | 0.38 | 0.809 |
| spatial-LoRASPACE | 34.79 | 0.70 | 0.512 | 34.03 | 0.59 | 0.399 |
| temporal-LoRASPACE | 34.58 | 1.07 | 0.698 | 33.81 | 1.19 | 0.625 |
| semantic-LoRASPACE | 34.81 | 1.04 | 0.679 | 33.76 | 1.14 | 0.615 |
Table 14. Pool B (SD 1.5, 17 LoRAs, 48 combos per cell) at with compact triggers. Bold = best; underline = best non-LoRASPACE.
Routing ablation: full table
Tab. 15 reports the full per-router quality for the routing ablation summarised in § 4.5.
Mechanism ablation: per- breakdown
The mechanism comparison in § 4.3 reports means over to 5. Tab. 16 gives the per- breakdown for both rank- static-delta variants on Pool A (single seed 111, 240 combos total).
subspace-merge (pool-wide baked into a static delta) and truncated-merge (per-combo SVD of the ambient merge) track each other within CLIP-T and ImageReward at every , supporting the body conclusion that the basis choice does not affect quality at equal rank . Both also track per-step uniform LoRASPACE (Table 3) within fp16 noise.
| truncated-merge CLIP-T ↑ | truncated-merge ImgRew ↑ | subspace-merge CLIP-T ↑ | subspace-merge ImgRew ↑ | |
| 2 | 34.57 | 1.053 | 34.45 | 1.022 |
| 3 | 35.31 | 1.037 | 35.39 | 1.028 |
| 4 | 36.13 | 1.078 | 36.11 | 1.081 |
| 5 | 37.00 | 1.126 | 37.10 | 1.115 |
| Mean | 35.75 | 1.073 | 35.76 | 1.062 |
Table 16. Mechanism ablation per . truncated-merge (combo-specific basis) vs. subspace-merge (pool-wide basis), Pool A, seed 111. Both run at ambient-merge inference cost; they differ only in configure-time precompute.
Pool C quality across active-LoRA sizes
Pool C uses 17 SDXL LoRAs across six categories (character, background, lighting, material, expression, accessory). Quality is measured at across 40 stratified combinations per , seed 111, 50 DPM-Solver++ steps, 1024 × 1024.
| merge CLIP-T ↑ | merge ImgRew ↑ | composite CLIP-T ↑ | composite ImgRew ↑ | LoRASPACE (uniform) CLIP-T ↑ | LoRASPACE (uniform) ImgRew ↑ | |
| 2 | 29.33 | 1.300 | 31.50 | 1.292 | 31.67 | 1.289 |
| 3 | 31.32 | 0.894 | 32.95 | 1.108 | 33.60 | 1.089 |
| 4 | 28.82 | 0.799 | 31.79 | 1.058 | 32.95 | 1.106 |
| 5 | 28.53 | 0.426 | 30.48 | 0.829 | 32.01 | 1.028 |
| 6 | 29.06 | 0.184 | 32.85 | 0.577 | 34.22 | 0.691 |
| Mean | 29.41 | 0.721 | 31.91 | 0.973 | 32.89 | 1.040 |
Table 17. Pool C (SDXL, 17 LoRAs) quality per . Seed 111, 200 combos per method (40 per , identical across methods). 95% bootstrap CIs (mean over ): merge CLIP-T [28.97, 29.86], ImgRew [0.60, 0.84]; composite [31.5, 32.4], [0.88, 1.06]; uniform LoRASPACE [32.5, 33.3], [0.95, 1.13]. Merge ImgRew drops from 1.30 at to 0.18 at $N=6; LoRASPACE retains 0.69.
Speed and precompute cost
Tables 18 and 19 report per-image wall-clock and GPU memory across all evaluated methods on Pool C (SDXL) and Pool A (SD 1.5) respectively. Precompute cost is discussed below.
| Method | Time @ (s) | Time @ (s) | Peak VRAM | Load VRAM |
| merge | 18.9 | 32.7 | 3.49 GB | 2.88 GB |
| switch | 17.5 | 22.0 | 3.49 GB | 2.88 GB |
| composite | 68.2 | 142.6 | 3.49 GB | 2.89 GB |
| cmlora | 59.5 | 138.5 | 3.49 GB | 2.89 GB |
| spatial-LoRASPACE | 37.6 | 30.7 | 4.09 GB | 2.88 GB |
| temporal-LoRASPACE | 28.7 | 44.3 | 4.09 GB | 2.88 GB |
| semantic-LoRASPACE | 31.7 | 34.0 | 4.09 GB | 2.88 GB |
Table 19. Per-image speed and GPU memory on Pool A (SD 1.5, , 200 steps, RTX 3090, 10 combos, 2 warmup +3 timed repeats per cell, mean across repeats). Body uses 100 steps so wall-clock halves at deployment; relative ratios are preserved. spatial-LoRASpace cells contain measurement noise from the repeats; the dominant signal is the -scaling separation between LORASPACE and composite.
Precompute cost. Precompute is a one-time pool-level cost: load every LoRA’s factor pair, build the energy-normalised - and -stacks per layer, run two thin SVDs, and project per-LoRA factors into the truncated bases. For Pool A (SD 1.5, , , 192 LoRA-bearing layers) the dominant per-layer SVD is on a matrix with ; the streaming script runs end-to-end in 21.8 s SVD time + 0.7 s pickle write on CPU (single-thread Intel Xeon) and produces an 866 MB cache. For Pool C (SDXL, , , 722 LoRA-bearing layers) the same pipeline produces a 9.54 GB cache; the lazy per-layer streaming precompute peaks at 10.1 GiB of host memory (maximum resident set size). The cache is loaded once at pipeline initialisation (Pool A: 0.6 s; Pool C: 5.4 s on a SATA SSD) and is shared across all subsequent generations: precompute is amortised across the entire experiment and never enters the per-image latency budget.
Where the dynamic-mode speedup comes from. To separate backbone-pass avoidance from the subspace path, we add a single-pass ambient mixture that keeps all adapters active as PEFT modules and runs one backbone pass (Table 20, measured on Pool C with 15 combinations at , seed 111, 50 steps, , idle GPU, medians over the 14 inter-image intervals of one sequential run per condition). Of the 5.3× gain of LORASPACE over composite at , 4.9× comes from running one backbone pass instead of five and 1.08× from the subspace path. In isolation, the subspace path at is 6 to 7% slower than the ambient factor path (47.6 against 44.4 ms at 4096 tokens and 29.9 against 28.0 ms at 1024 tokens, per-layer microbenchmark summed over 48 sampled layers with the real cache factors), as Eq. (7) predicts when . The 1.08× therefore reflects the overhead of keeping PEFT adapters active rather than an arithmetic advantage of the subspace. The ambient condition supports per-step weight changes, but per-token routing would need further implementation.
| Condition | Backbone passes | Adapter path | Median s/image |
| composite | 5 | none (per-pass guidance) | 181.9 |
| Ambient single-pass | 1 | thin factor pairs | 37.3 |
| LoRASPACE | 1 | shared subspace (Eq. (5)) | 34.5 |
Table 20. Pool C per-image time at , with a single-pass ambient mixture between composite and LoRASPACE.
Additional qualitative examples
This appendix supplements Figure 3 with paired generations for further Pool C combos. Within each row the prompt and seed are held fixed across all three methods, so visual differences reflect the composition operator only. We do not show Pool A or Pool B generations, because their character LoRAs depict real people (App. § 28). For reference, Pool A per-image cost on RTX 3090 (SD 1.5, , 100 DPM-Solver++ steps) is s (merge), s at or s at (composite), and s at or s at (LORASPACE), with peak VRAM 3.5 GB for merge and composite and 4.1 GB for LORASPACE.

Figure 3. Pool C example. VioletXL + catwalk + god rays + old copper + anger, SDXL. L→R: merge, composite, LoRASPACE. Time 36/187/42 s.
Pool C qualitative examples (SDXL, , 50 DPM-Solver++ steps). Per-image cost on RTX 3090: merge s () / s () / s (); composite s () / s () / s (); LORASPACE s () / s () / s (). Peak VRAM: merge 22.3 GB, composite 22.8 GB, LORASPACE 15.6 to 16.8 GB.

Figure 5. Pool C : VioletXL + catwalk + god rays + old gold. Left to right: ambient merge, composite, uniform LORASPACE.

Figure 6. Pool C (high-cardinality): VioletXL + catwalk + chiaroscuro + corrosion + fear + sunglasses.
Synthetic pool scaling stress test
To probe the asymptotic regime beyond real LoRA pools, we run random rank-8 LoRAs on SD 1.5 ( active per call, 5 DPM-Solver++ [13] steps, ). composite’s per-step time grows from 0.119 to 0.681 s over the pool growth at fixed , while LORASPACE stays within 0.132 to 0.164 s and is 4.8× faster at . Load-time GPU VRAM is constant at 2.16 to 2.18 GB for LORASPACE and grows linearly for composite. The crossover from composite-faster to LoRASpace-faster occurs at ; the gap widens monotonically thereafter.
Note on composite scaling at fixed . The per-step asymptotic in Table 4 is , independent of . The growth measured here at reflects implementation-level overhead in the diffusers PEFT-loading path, which iterates over loaded LoRAs per step at small step counts. At the 50 denoising steps used in Pool C body measurements this overhead amortises and the per-step cost is dominated by the term; the body Pool C numbers (Table 18) are consistent with that asymptotic.
| Method | Time @ (s) | Time @ (s) | Peak VRAM | Load VRAM |
| merge | 23.0 | 43.5† | 22.34 GB | 18.19 GB |
| switch | 23.3 | 23.4 | 22.83 GB | 19.68 GB |
| composite | 76.3 | 262.2 | 22.83 GB | 19.69 GB |
| cmlora | 77.1 | 261.5 | 22.83 GB | 19.69 GB |
| spatial-LoRASPACE | 34.6 | 48.0 | 15.60 to 16.80 GB | 6.46 GB |
| temporal-LoRASPACE | 32.9 | 42.7 | 15.60 to 16.80 GB | 6.46 GB |
| semantic-LoRASPACE | 32.9 | 42.5 | 15.60 to 16.80 GB | 6.46 GB |
Table 18. Per-image speed and GPU memory on Pool C (SDXL, , 50 steps, RTX 3090). Peak VRAM measured at . entries linearly extrapolated. Static-mode LoRASPACE (subspace-merge) inherits ambient merge’s per-image cost by construction. † Extrapolated from measured :23.0, :31.7, :39.4 (linear fit, slope 4.1 s/LoRA).
Switch baseline scoreboard
We exclude single-active routing methods such as Switch [5] from the main composition comparison because they activate one LoRA at a time and never combine multiple LoRAs in a single forward pass. They are also order-sensitive by construction: rotating which LoRA fires at which step changes the output. For completeness, Table 21 reports Switch on the same pools as the main quality results.
| Pool | Setting | CLIP-T ↑ | ImageReward ↑ | DINO (vs. comp.) |
| Pool A SD 1.5 | mean to 5, 240 combos | 35.81 | 1.14 | 0.73 |
| Pool C SDXL | mean to 6, 200 combos | 32.10 | 1.15 | 0.79 |
| Pool B SD 1.5 | , 48 combos | 36.43 | 1.23 | 0.69 |
| Pool B SD 1.5 | , 48 combos | 36.10 | 1.10 | 0.65 |
| LoRA-Retriever | Macro Task / samp.s | 51.54 | Macro Task at 1.82 samp.s |
Table 21. Switch baseline (one active LoRA at a time, same protocol as main results). Reported for completeness; not directly comparable to composition methods.
The order-sensitivity manifests on Pool C at as a mean DINO self-similarity of 0.71 between canonical and reversed LoRA orderings, with 10/10 tested combos falling below the 0.95 order-invariant threshold. Composition methods (merge, composite, LORASPACE) are order-invariant by design.
LLM D ablation: saturation and rank-orthogonality
The rank-overlap framework predicts two qualitatively different regimes for as grows. In the rank-bound regime (), grows sub-linearly with when LoRAs share structure. In the saturation regime (), is capped at the layer width and each new LoRA adds at most one new direction.
We measure both regimes empirically.
LoRA-Retriever near-orthogonality (rank-bound regime). The LLaMA-2-7B LoRA-Retriever pool () [35] has uniform , , against . Across pool size sweeps with , the rank-fill ratio stays at throughout, with . LoRAs trained on disjoint NLP tasks (sentiment, machine translation, reading comprehension) contribute nearly orthogonal directions, consistent with tasks that share little structure (the pool sits at its spectrum-matched null, App. F).
LoRA-Hub saturation crossing (saturation regime). The LoRA-Hub FLAN-T5-Large pool [9] has LoRAs with uniform and layer width . Saturation occurs at , where . We measure across . Below , each new LoRA adds approximately 11 new dimensions to . Above , each new LoRA adds approximately 1 new dimension, consistent with the saturation prediction. At the full pool , , which is 79% of layer width: the subspace never fully fills even at saturation , leaving residual capacity for additional LoRAs.
This is the first measurement we are aware of that crosses the saturation boundary in a real LoRA pool. It validates the framework’s prediction of a regime change at and provides an empirical anchor for what to expect at very large pool sizes. Our diffusion pools are already width-saturated on most layers (App. § 10), but none was swept across the boundary, so LoRA-Hub is the only pool where we observe the crossing itself.
LLM cross-modality: full scoreboard and extended discussion
Table 22: Full LoRA-Retriever benchmark [35] on LLaMA-2-7B [28] (48 LoRAs, 2,395 samples, 14 methods). Bold = best non-Oracle; _underline_ = best non-LoRASPACE non-Oracle.
| Method | Macro Task | Macro Domain | samp/s |
| base (no LoRA) | 4.24 | 4.17 | 0.60 |
| oracle (task-matched) | 57.54 | 59.55 | 1.91 |
| merge (Task Arithmetic) | 45.72 | 46.96 | 2.18 |
| ties | 48.71 | 51.39 | 1.93 |
| dare | 40.86 | 41.22 | 2.04 |
| knots | 45.44 | 47.01 | 0.31 |
| spectr | 41.90 | 42.74 | 0.97 |
| lorahub | 46.19 | 46.68 | 0.12 |
| switch | 51.54 | 52.69 | 1.82 |
| loraretriever-mixture | _53.55_ | _56.43_ | 1.47 |
| loraretriever-fusion | 43.56 | 44.14 | 1.77 |
| loraspace-fullpool (no retrieval) | 50.49 | 53.00 | 1.48 |
| loraspace-instructor | 54.01 | 56.79 | 1.44 |
| loraspace-hybrid | 54.51 | 57.20 | 1.52 |
Table 22. Full LoRA-Retriever benchmark on LLaMA-2-7B.
Why loraretriever-fusion underperforms loraretriever-mixture. Fusion mode forms a fused left factor and fused right factor , then applies : this introduces cross-products for , which are not part of the target delta sum . These cross-terms are approximation errors that degrade composition quality relative to the clean mixture mode, explaining the substantial score difference (43.56 vs. 53.55 Macro Task).
Ablation decomposition. The loraspace-hybrid score (54.51) decomposes as: loraspace-fullpool (50.49) + INSTRUCTOR retrieval gate (+3.52) + calibrated spectral routing over retrieved subset (+0.50). The substrate alone (50.49) is above all static merges but below the retrieval-augmented baselines. The retrieval gate is the dominant quality driver, as expected for a pool of 48 highly diverse task LoRAs.
Per-domain breakdown. loraspace-hybrid beats Oracle on five of ten domains (commonsense, closed-book QA, sentiment, coreference, translation) where blending complementary LoRAs helps. Losses concentrate on format-sensitive domains (reading comprehension, NLI, structured generation) where blending dilutes the precise output format required by the task-matched LoRA.
Limitations
This appendix collects the empirical scope and assumptions of the work referenced from § 5.
Pool coverage and post-saturation behaviour. The empirical characterisation in § 4.2 covers three diffusion pools (Pool A, B, C) and two LLM pools (LoRA-Retriever and LoRA-Hub). The diffusion pools already exceed the layer width on most layers (App. § 10), but only the LoRA-Hub pool is swept across the saturation boundary (Appendix § 26), so how grows past it on diffusion pools is extrapolated rather than measured.
Changing pools. The substrate is computed for a given pool, and in deployment pools change. An unchanged substrate has no tolerance budget for a new LoRA. Projected onto the existing bases, a held-out Pool C adapter keeps only 0.30 of its energy on average, and a larger existing pool does not fix this (App. § 15). Extending the bases with the new adapter’s residual directions admits it in 33 s on CPU without recomputing the pool, and reproduces the full-recompute images, but the composed error grows slowly as arrivals accumulate (3.3% after the first to 6.4% after the eleventh, against 0.84% for a fresh build). The update rule we use is to extend on arrival, monitor composed error, and rebuild periodically off the serving path. Removing an adapter needs no recomputation, because the bases still span the remaining adapters.
Interpreting the rank-fill ratio. The rank-fill ratio may combine within-LoRA redundancy with cross-LoRA overlap. App. § 12 quantifies the two with the decomposition and a spectrum-matched null.
Efficiency baselines. Efficiency conclusions depend on the baseline implementation. Our merge, composite and single-pass ambient baselines use the PEFT runtime. Against a single-pass ambient mixture, the dynamic-mode gain at comes from backbone-pass avoidance rather than from arithmetic inside the subspace (App. § 22).
Seed coverage of routing and mechanism ablations. The routing ablation (§ 4.5) is reported as mean across-seed standard deviation over three random seeds (240 stratified combinations per seed); the mechanism ablation (§ 4.3) is reported at a single seed. The main quality table (§ 4.3) reports CLIP-T and ImageReward across three random seeds with small across-seed standard deviations; GPT-4o evaluation is from one seed due to API cost. These are precision limitations rather than soundness ones: the across-seed standard deviations do not cross the inter-method gaps on ImageReward (where the routing pattern is established), and the pattern is consistent across .
Layer scope. The operator is currently formulated for linear projections, which covers all attention and most MLP modules in the diffusion and LLM backbones we test. Extensions to convolutional layers with kernel size larger than one, and to non-linear LoRA formats (DoRA, AdaLoRA), are out of scope here.
Router scope. The four routers we evaluate (uniform, spatial, temporal, semantic, plus the external retrieval coupling) are sufficient to demonstrate that the operator interface admits arbitrary , but they are simple hand-designed examples and not exhaustive. Learned routers, in particular, may exploit the shared subspace structure in ways not captured by hand-designed signals. We see this as a natural extension rather than a limitation of the framework itself.
Asset and identity considerations. The three Pool A character LoRAs (also used in Pool B) are public CivitAI LoRAs that reproduce the likeness of real people, and CivitAI has since removed them. We use them only as inputs to the composition benchmark. We do not show their generations, name the people, or redistribute the weights, and our released pool manifests list them by SHA-256 hash only. We do not propose new likeness models. Downstream use should follow source platforms’ policies and applicable law.
LoRA pools and prompts
This appendix lists every LoRA used in our diffusion and LLM pools, with category groupings, trigger words, and example combo prompts. SHA-256 hashes and stable source URLs are in the per-pool JSON manifests in the pools/ directory of the released code.
Pool A (SD1.5, 11 LoRAs, reality style)
Five categories: 3 character + 2 clothing + 2 style + 2 background + 2 object. All LoRAs at , unless noted.
Table 23: Pool A LoRAs with trigger words. Source: CivitAI (URLs and SHA-256 hashes in the pool manifests).
| ID | Name | Trigger words |
| character | ||
| character_1 | Real-person likeness LoRA | identity trigger and appearance descriptors (omitted) |
| character_2 | Real-person likeness LoRA | identity trigger and appearance descriptors (omitted) |
| character_3 | Real-person likeness LoRA | identity trigger and appearance descriptors (omitted) |
| clothing | ||
| clothing_1 | Thai University Uniform | mahalaiuniform, white shirt short sleeves, black pencil skirt |
| clothing_2 | School Dress | school uniform, white shirt, red tie, blue pleated microskirt |
| style | ||
| style_1 | Japanese Film Color Style | film overlay, film grain |
| style_2 | Bright Style | bright lighting |
| background | ||
| background_1 | Library Bookshelf | lib_bg, library bookshelf |
| background_2 | Forest | slg, river, forest |
| object | ||
| object_1 | Umbrella | transparent umbrella |
| object_2 | Bubble Gum | bubble gum |
Table 23. Pool A LoRAs with trigger words. Source: CivitAI (URLs and SHA-256 hashes in the pool manifests).
Pool A prompt template. Identical across all combos in the pool; combo selection only changes which trigger lists get concatenated.
RAW photo, subject, 8k uhd, dslr, high quality, Fujifilm XT3, half-length portrait from knees up, ⟨trigger_1⟩, ⟨trigger_2⟩, ...
For the negative prompt we use the 44-token ComposLoRA reality negative (artifact + style-contamination + anatomy-failure tokens).
Example Pool A combos.
, [character_1, background_2]: “RAW photo, subject, …, ⟨character_1 triggers⟩, slg, river, forest”.
, [character_1, clothing_1, style_1, background_1, object_1]: “RAW photo, subject, …, ⟨character_1 triggers⟩, mahalaiuniform, white shirt short sleeves, black pencil skirt, film overlay, film grain, lib_bg, library bookshelf, transparent umbrella”.
Pool B (SD1.5, 17 LoRAs, Pool A + 6 high-cardinality)
Pool A’s 11 LoRAs plus 6 new ones across 3 new categories: detail (2), pose (2), expression (2). Probes the high-cardinality regime () where rank-fill is lowest ( at ).
Pool B trigger deduplication. At , the body of the prompt approaches CLIP-L’s 77-token limit. The Pool B body experiments use a compact trigger-deduplication rule (App. § 17) that drops repeated tokens across active LoRAs before assembly.
Pool C (SDXL, 17 LoRAs)
Six categories: 3 character (, ) + 3 background + 4 lighting + 4 material + 2 expression + 1 accessory (last five at , ). SDXL backbone, generation.
| ID | Name | Trigger words |
| detail (quality enhancers, no explicit trigger) | ||
| detail_1 | Detail Tweaker | (none) |
| detail_2 | Add More Details | (none) |
| pose | ||
| pose_1 | Shirt Tug Pose | shirt tug |
| pose_2 | Covering Eyes Pose | covering eyes |
| expression | ||
| expression_1 | Screaming / Open Mouth | open_mouth, screaming |
| expression_2 | Sharp Eyes / Kubrick Stare | sharp_eyes |
Table 24. Pool B additional LoRAs (Pool A’s 11 plus 6 new).
| ID | Name | Trigger words |
| character | ||
| character_1 | SL Nobodies CamelliaXL | CamelliaXL, a young woman, detailed face |
| character_2 | SL Nobodies HelenaXL | HelenaXL, a young woman, detailed face |
| character_3 | SL Nobodies VioletXL | VioletXL, a young woman, detailed face |
| background | ||
| background_1 | Polyhedron Catwalk | catwalk, runway, fashion show |
| background_3 | Polyhedron Power Grid | energy, high voltage, power pole, transformer station, tangled cables |
| background_4 | Polyhedron Dandelions | dandelion, dandelion seed, yellow dandelion |
| lighting | ||
| lighting_2 | Polyhedron God Rays | god rays, sunbeams, sunbeam |
| lighting_3 | Polyhedron Chiaroscuro | chiaroscuro style, dim light |
| lighting_4 | Polyhedron Fog | fog, haze, foggy, mist |
| lighting_5 | Polyhedron Golden Hour | golden hour, sunset, sunrise |
| material | ||
| material_1 | Polyhedron Corrosion | corrosion, rust |
| material_2 | Polyhedron Old Wood | old wood, wooden planks, wooden wall, wooden floor |
| material_3 | Polyhedron Old Gold | gold, old gold |
| material_4 | Polyhedron Old Copper | old copper, copper, patina, copper pot |
| expression | ||
| expression_1 | Polyhedron Anger | anger, screaming, angry |
| expression_3 | Polyhedron Fear | fear, fearful, anxious |
| accessory | ||
| accessory_3 | Sunglasses on Top of Head | with sunglasses on top of head |
Table 25. Pool C LoRAs (SDXL).
Example Pool C Combos.
, [character_1, background_1, lighting_2, material_1]: “RAW photo, subject, . . . , CamelliaXL, a young woman, detailed face, catwalk, runway, fashion show, god rays, sunbeams, sunbeam, corrosion, rust”.
, [character_2, background_3, lighting_4, material_2, expression_1, accessory_3]: “RAW photo, subject, . . . , HelenaXL, . . . , energy, high voltage, power pole, transformer station, tangled cables, fog, haze, foggy, mist, old wood, wooden planks, wooden floor, anger, screaming, angry, with sunglasses on top of head”.
LLM pool (LLaMA-2-7B, 48 task LoRAs, LoRA-Retriever benchmark)
48 task-specialised LoRAs from the LoRA-Retriever benchmark [35], all . We adopt the authors’ 10-domain grouping verbatim.
| Domain (count) | Tasks |
| closed-book QA (4) | arc_challenge, arc_easy, natural_questions, trivia_qa |
| commonsense (4) | copa, hellaswag, piqa, story_cloze |
| coreference (2) | definite_pronoun_resolution, wsc |
| NLI (10) | anli_r1, anli_r2, anli_r3, cb, mnli_matched, mnli_mismatched, qnli, rte, snli, wnli |
| paraphrase (4) | glue_mrpc, glue_qqp, paws_wiki, stsb |
| RC w/ commonsense (2) | cosmos_qa, record |
| reading-comprehension (6) | bool_q, drop, multirc, openbookqa, squad_v1, squad_v2 |
| sentiment (4) | imdb_reviews, sentiment140, sst2, yelp_polarity_reviews |
| structured-to-text (4) | common_gen, dart, e2e_nlg, web_nlg_en |
| translation (8) | para_crawl_enes, wmt14_enfr, wmt16_translate_csen, wmt16_translate_deen, wmt16_translate_fien, wmt16_translate_roen, wmt16_translate_ruen, wmt16_translate_tren |
Table 26. LoRA-Retriever 48 task LoRAs by domain.
LLM evaluation uses task-native prompts directly from the LoRA-Retriever benchmark (no LoRA trigger tokens; each LoRA is task-specialised, not concept-keyed). Multi-task composition replaces “compose multiple LoRAs for one image” with “compose multiple LoRAs for one prompt”: at inference, we activate either the full 48-pool substrate (loraspace-fullpool) or a top- retrieved subset (loraspace-instructor / loraspace-hybrid).
Combo selection protocol
For each pool we use stratified random sampling over combos with category-balance constraints (each combo activates at most one LoRA per category where pool design allows). Pool A and Pool B use 240 combos per seed across . Pool C uses 200 combos per method (40 per across ). Identical combo lists are shared across all methods within a pool to enable per-combo paired comparison.
References
- [1]Eric L. Buehler and Markus J. Buehler. X-LoRA: Mixture of low-rank adapter experts, a flexible framework for large language models with applications in protein mechanics and molecular design. APL Machine Learning, 2(2):026119, 2024.arxiv.org/abs/2402.07148
- [2]Lequn Chen, Zihao Ye, Yongji Wu, Danyang Zhuo, Luis Ceze, and Arvind Krishnamurthy. Punica: Multi-tenant LoRA serving. In Proceedings of Machine Learning and Systems (MLSys), 2024.arxiv.org/abs/2310.18547
- [3]CivitAI. CivitAI: The home of open-source generative AI. https://civitai.com, 2023.
- [4]Carl Eckart and Gale Young. The approximation of one matrix by another of lower rank. Psychometrika, 1(3):211–218, 1936.DOI
- [5]William Fleshman and Benjamin Van Durme. SpectR: Dynamically composing LM experts with spectral routing. In Conference on Language Modeling (COLM), 2025.arxiv.org/abs/2504.03454
- [6]Rickard Brüel Gabrielsson, Jiacheng Zhu, Onkar Bhardwaj, Leshem Choshen, Kristjan Greenewald, Mikhail Yurochkin, and Justin Solomon. Compress then serve: Serving thousands of LoRA adapters with little overhead. In Proceedings of the 42nd International Conference on Machine Learning (ICML), 2025.arxiv.org/abs/2407.00066
- [7]Nikolaus Hansen and Andreas Ostermeier. Completely derandomized self-adaptation in evolution strategies. Evolutionary Computation, 9(2):159–195, 2001.pubmed.ncbi.nlm.nih.gov/11382355
- [8]Edward J. Hu, Yelong Shen, Phillip Wallis, Zeyuan Allen-Zhu, Yuanzhi Li, Shean Wang, Lu Wang, and Weizhu Chen. LoRA: Low-rank adaptation of large language models. In International Conference on Learning Representations (ICLR), 2022.arxiv.org/abs/2106.09685
- [9]Chengsong Huang, Qian Liu, Bill Yuchen Lin, Tianyu Pang, Chao Du, and Min Lin. LoRAHub: Efficient cross-task generalization via dynamic LoRA composition. In Conference on Language Modeling (COLM), 2024.arxiv.org/abs/2307.13269
- [10]Hugging Face. Hugging Face: The AI community building the future. https://huggingface.co, 2016.
- [11]Gabriel Ilharco, Marco Tulio Ribeiro, Mitchell Wortsman, Ludwig Schmidt, Hannaneh Hajishirzi, and Ali Farhadi. Editing models with task arithmetic. In International Conference on Learning Representations (ICLR), 2023.arxiv.org/abs/2212.04089
- [12]Yaoli Liu, Yao-Xiang Ding, and Kun Zhou. FreeFuse: Multi-subject LoRA fusion via adaptive token-level routing at test time. arXiv preprint arXiv:2510.23515, 2025.arxiv.org/abs/2510.23515
- [13]Cheng Lu, Yuhao Zhou, Fan Bao, Jianfei Chen, Chongxuan Li, and Jun Zhu. DPM-Solver++: Fast solver for guided sampling of diffusion probabilistic models. Machine Intelligence Research, 22:730–751, 2025. doi: 10.1007/s11633-025-1562-4.DOI
- [14]Mohammed Muqeeth, Haokun Liu, Yufan Liu, and Colin Raffel. Learning to route among specialized experts for zero-shot generalization. In International Conference on Machine Learning (ICML), 2024.arxiv.org/abs/2402.05859
- [15]OpenAI. GPT-4o system card. https://openai.com/index/gpt-4o-system-card/, 2024.
- [16]Oleksiy Ostapenko, Zhan Su, Edoardo Ponti, Laurent Charlin, Nicolas Le Roux, Lucas Caccia, and Alessandro Sordoni. Towards modular LLMs by building and reusing a library of LoRAs. In International Conference on Machine Learning (ICML), 2024.arxiv.org/abs/2405.11157
- [17]Ziheng Ouyang, Zhen Li, and Qibin Hou. K-LoRA: Unlocking training-free fusion of any subject and style LoRAs. In IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2025.arxiv.org/abs/2502.18461
- [18]Aniello Panariello, Daniel Marczak, Simone Magistri, Angelo Porrello, Bartłomiej Twardowski, Andrew D. Bagdanov, Simone Calderara, and Joost van de Weijer. Accurate and efficient low-rank model merging in core space. In Advances in Neural Information Processing Systems (NeurIPS), 2025.arxiv.org/abs/2509.17786
- [19]Adam Paszke, Sam Gross, Francisco Massa, Adam Lerer, James Bradbury, Gregory Chanan, Trevor Killeen, et al. PyTorch: An imperative style, high-performance deep learning library. In Advances in Neural Information Processing Systems (NeurIPS), 2019.arxiv.org/abs/1912.01703
- [20]Dustin Podell, Zion English, Kyle Lacey, Andreas Blattmann, Tim Dockhorn, Jonas Müller, Joe Penna, and Robin Rombach. SDXL: Improving latent diffusion models for high-resolution image synthesis. In International Conference on Learning Representations (ICLR), 2024.arxiv.org/abs/2307.01952
- [21]Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, et al. Learning transferable visual models from natural language supervision. In International Conference on Machine Learning (ICML), 2021.arxiv.org/abs/2103.00020
- [22]Robin Rombach, Andreas Blattmann, Dominik Lorenz, Patrick Esser, and Björn Ommer. High-resolution image synthesis with latent diffusion models. In IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 2022.arxiv.org/abs/2112.10752
- [23]Aniket Roy, Maitreya Suin, Ketul Shah, and Rama Chellappa. MultLFG: Training-free multi-LoRA composition using frequency-domain guidance. arXiv preprint arXiv:2505.20525, 2025.arxiv.org/abs/2505.20525
- [24]Viraj Shah, Nataniel Ruiz, Forrester Cole, Erika Lu, Svetlana Lazebnik, Yuanzhen Li, and Varun Jampani. ZipLoRA: Any subject in any style by effectively merging LoRAs. In European Conference on Computer Vision (ECCV), 2024.arxiv.org/abs/2311.13600
- [25]Ying Sheng, Shiyi Cao, Dacheng Li, Coleman Hooper, Nicholas Lee, Shuo Yang, Christopher Chou, Banghua Zhu, Lianmin Zheng, Kurt Keutzer, Joseph E. Gonzalez, and Ion Stoica. SLoRA: Scalable serving of thousands of LoRA adapters. In Proceedings of Machine Learning and Systems (MLSys), 2024.
- [26]George Stoica, Pratik Ramesh, Boglarka Ecsedi, Judy Hoffman, and Leshem Choshen. Model merging with SVD to tie the knOTS. In International Conference on Learning Representations (ICLR), 2025.arxiv.org/abs/2410.19735
- [27]Hongjin Su, Weijia Shi, Jungo Kasai, Yizhong Wang, Yushi Hu, Mari Ostendorf, Wen-tau Yih, Noah A. Smith, Luke Zettlemoyer, and Tao Yu. One embedder, any task: Instruction-finetuned text embeddings. In Findings of the Association for Computational Linguistics: ACL 2023, pages 1102–1121, 2023. doi: 10.18653/v1/2023.findings-acl.71.DOI
- [28]Hugo Touvron, Louis Martin, Kevin Stone, Peter Albert, Amjad Almahairi, Yasmine Babaei, Nikolay Bashlykov, et al. Llama 2: Open foundation and fine-tuned chat models. arXiv preprint arXiv:2307.09288, 2023.arxiv.org/abs/2307.09288
- [29]Patrick von Platen, Suraj Patil, Anton Lozhkov, Pedro Cuenca, Nathan Lambert, Kashif Rasul, Mishig Davaadorj, Dhruv Nair, Sayak Paul, William Berman, Yiyi Xu, Steven Liu, and Thomas Wolf. Diffusers: State-of-the-art diffusion models. https://github.com/huggingface/diffusers, 2022.
- [30]Xun Wu, Shaohan Huang, and Furu Wei. Mixture of LoRA experts. In International Conference on Learning Representations (ICLR), 2024.arxiv.org/abs/2404.13628
- [31]Jiazheng Xu, Xiao Liu, Yuchen Wu, Yuxuan Tong, Qinkai Li, Ming Ding, Jie Tang, and Yuxiao Dong. ImageReward: Learning and evaluating human preferences for text-to-image generation. In Advances in Neural Information Processing Systems (NeurIPS), 2023.arxiv.org/abs/2304.05977
- [32]Prateek Yadav, Derek Tam, Leshem Choshen, Colin Raffel, and Mohit Bansal. TIES-Merging: Resolving interference when merging models. In Advances in Neural Information Processing Systems (NeurIPS), 2023.arxiv.org/abs/2306.01708
- [33]Le Yu, Bowen Yu, Haiyang Yu, Fei Huang, and Yongbin Li. Language models are super Mario: Absorbing abilities from homologous models as a free lunch. In International Conference on Machine Learning (ICML), 2024.arxiv.org/abs/2311.03099
- [34]Andi Zhang, Xuan Ding, Haofan Wang, Steven McDonagh, and Samuel Kaski. Rethinking inter-LoRA orthogonality in adapter merging: Insights from orthogonal Monte Carlo dropout. arXiv preprint arXiv:2510.03262, 2025.arxiv.org/abs/2510.03262
- [35]Ziyu Zhao, Leilei Gan, Guoyin Wang, Wangchunshu Zhou, Hongxia Yang, Kun Kuang, and Fei Wu. LoraRetriever: Input-aware LoRA retrieval and composition for mixed tasks in the wild. In Findings of the Association for Computational Linguistics: ACL 2024, pages 4447–4462, 2024. doi: 10.18653/v1/2024.findings-acl.263.
- [36]Peng Zheng, Ye Wang, Rui Ma, and Zuxuan Wu. FreeLoRA: Enabling training-free LoRA fusion for autoregressive multi-subject personalization. arXiv preprint arXiv:2507.01792, 2025.arxiv.org/abs/2507.01792