Can the deployed 3-stage rectified-flow cascade generate 3D from text-only conditioning — no image, no DINO? Short answer: yes, the architecture supports it, it generalizes to novel single objects with correct materials, it converges by ~20k steps, and its failure modes are data/representation-bound (thin periodic topology, multi-entity composition) — not architecture-bound.
| Question | Answer | Where |
|---|---|---|
| Does the architecture support text conditioning? | Yes — trains stably, loss reaches image-cond levels | §2 |
| Does it generalize to unseen / hand-written prompts? | Yes for single objects (3 OOD rounds) | §3 |
| Where does it break? | Thin / high-periodicity topology + multi-entity composition | §3 |
| Does more training help? | No — saturates ≈20k steps (loss and visual) | §4 |
| How good is it quantitatively? | CLIP 0.239 vs GT 0.248 (96%); deployed image baseline 0.389 IoU | §5 |
| How to deploy text→3D at quality? | T2I bridge (inference + triplet augmentation) + native text path | §6 |

The deployed model is a 3-stage rectified-flow cascade — SS (16³ occupancy) → shape SLAT-512 →
tex SLAT-512 — normally conditioned on concat[DINOv3 spatial tokens ; connector(v2.2-VLM hidden)]
via cross-attention.
Text mode = drop the DINO segment. cond = connector(v2.2 hidden of the caption); the
DINO-position stamp auto-no-ops on short text sequences. No code path changes — the plain
cond = connector(mask_drop(hidden)) branch handles it.
Pilot training. All three stages warm-started from the fusion image checkpoints, then trained text-only on a
4-variant caption cache (v22_tcap4, 1.69M entries: long / medium / short / long+texture, sampling
weights 35/20/10/35), 2-node eff-BS-256.
Text conditioning trains stably and per-stage flow losses land at or below their image-conditioned warm-start levels — the flow consumes text hidden as cond exactly like it consumes image hidden.
| Stage | text-only loss @plateau | image-cond reference |
|---|---|---|
| SS | 0.168 | 0.15 – 0.17 |
| shape | 0.31 – 0.34 | 0.38 – 0.50 |
| tex | 0.45 – 0.50 | 0.44 – 0.51 |
Tested on hand-written prompts never seen in training, cond computed live (v2.2 forward, gen_txt template). Three rounds, increasingly out-of-distribution.
Round 1 — common single objects. Teapot, rocking chair, cactus-in-hexagonal-pot, knight helmet → clearly recognizable with correct materials. Robot dog / mushroom / camera → correct rough form. "astronaut riding a horse" → only the horse (compositional collapse to the dominant noun).

Round 2 — far-OOD, deliberately far from the 3D-asset-library categories:

Round 3 — fresh set of 10. Garden hose (coiled), bonsai, desk globe on stand, pancake stack (correct count of 3) → recognizable. Sneaker detailing / treble-clef → fail (thin / flat / symbolic).

The thin-topology failure is the same class as image-mode's hardest asset — the rifle (IoU 0.05, §5): continuous flow + sparse SLAT under-represent thin structures. This is a representation / data-coverage property, not a training deficit or an architecture limit.
Loss saturates ≈20k steps. To rule out an LR artifact, after the 20k cosine annealed to ~0 we reset to a fresh cosine (peak 5e-5) and trained 18k more steps. If the plateau were LR-limited, restored LR would resume descent. It did not (200-step smoothed means, at peak LR):
| Stage | pre-reset plateau | post-reset @4k (peak LR) |
|---|---|---|
| SS | 0.169 | 0.168 |
| shape | 0.31 – 0.33 | 0.339 |
| tex | 0.45 – 0.50 | 0.474 |

Geometry vs material split. SS drives geometry / topology; shape + tex drive material / surface. In progress renders, material sharpened with shape/tex steps while topology stayed capped by SS. A real bug surfaced here — the progress renders were reading a stale SS ckpt-2000; once SS actually advanced, the Möbius went open-band → closed-loop, confirming geometry does respond to SS training up to saturation.
Set: union of the 5 held-out manifests → 60 unique, minus 2 memorized twins (≈1.000 IoU) → 58, all with real captions. Three modes:
| Mode | What | SS IoU mean / med | CLIP mean |
|---|---|---|---|
| A — image-fused (deployed) | cond = [DINO ; v2.2], official sampler | 0.389 / 0.382 | 0.246 |
| B1 — fusion-on-text (control) | fusion ckpts fed text cond, no DINO | 0.037 / 0.023 | — |
| B2 — text-only | text-trained ckpts on text cond | 0.167 / 0.072 | 0.239 |
| GT (CLIP ceiling) | render of the ground-truth asset | — | 0.248 |
Difficulty breakdown. By GT voxel count (compact/regular vs thin/complex, median split n=29/29):
| Mode | compact / regular | thin / complex |
|---|---|---|
| A image SS IoU | 0.396 | 0.382 |
| B2 text SS IoU | 0.201 | 0.133 |
| A / B2 / GT CLIP | 0.243 / 0.240 / 0.250 | 0.250 / 0.238 / 0.246 |
Image mode is flat across geometry type (0.396 vs 0.382 — DINO anchors both). Text mode drops on thin/complex (0.201 → 0.133), consistent with the OOD boundary. But CLIP stays ≈0.24 everywhere → caption adherence is geometry-type-independent; only exact-IoU suffers.
By image-mode difficulty (easy iou_A ≥ 0.15 n=42, hard < 0.15 n=16):
| Mode | easy (n=42) | hard (n=16) |
|---|---|---|
| A image SS IoU | 0.512 | 0.066 |
| B2 text SS IoU | 0.214 | 0.044 |
The bimodal split is the key structural fact: on the 42 "easy" assets the deployed model is 0.512; the 16 "hard" assets (thin / blobby / featureless — rifle, crystal, wireframe) drag the aggregate to 0.389. Those hard assets still render as recognizable objects — IoU over-penalizes voxel misalignment on thin geometry (the rifle at 0.05 is a recognizable rifle). So 0.389 understates deployed quality; the honest read is "0.51 on normal objects, with a thin-geometry tail the IoU metric punishes."

Root cause of text→3D's weakness = caption coverage. Our captions are back-labeled from existing 3D assets, so categories absent from the asset library (thin topologies, novel compositions) are simply absent from training. This is a data gap, not a model gap — and it is fixable without touching the architecture.
The T2I bridge (two uses):
text → off-the-shelf T2I (Qwen-Image / FLUX, near-unlimited coverage) → image
→ (a) inference: our fusion image→3D pipeline → 0.40-quality 3D at T2I coverage
→ (b) training: vanilla TRELLIS.2 image→3D → synthetic text↔image↔3D triplets
to fill coverage & strengthen NATIVE text→3D
(a) deploys text→3D today at the deployed fusion quality (~0.40) with T2I's category coverage. (b) generates synthetic text↔image↔3D triplets to fill the caption gap and strengthen the native text path.