UltraTex Qwen-Image 2.1 port
This is a port of UltraTex (MIT, Yibo Zhang) to the Qwen-Image 2.1 backbone, trained by Atlas 3D (orwelian84). The released UltraTex weights only cover FLUX.1-dev and FLUX.2-Klein, so this is, to our knowledge, the first Qwen-Image multi-view texture LoRA.
Code: github.com/Atlas3DSS/UltraTex (fork of upstream with the Qwen-Image 2.1 and Krea 2 backbones on the default branch). The code/ folder here is a snapshot of the same files.
The method is UltraTex's. This release is the backbone port (code/) plus the trained weights (qwen21/) and samples.
Files
| Path | Size | Description |
|---|---|---|
qwen21/lora/dit_lora.safetensors |
608 MiB | Multi-view texture LoRA, checkpoint-15000 |
qwen21/lora/train_args.json |
1.5 KiB | Training arguments for the LoRA |
qwen21/decoder_step1200.safetensors |
988 MiB | Foreground-aware RGBA decoder, step 1200 |
qwen21/decoder_train_log.jsonl |
89 KiB | Decoder training log |
qwen21/text_cond.safetensors |
64 KiB | Cached empty-prompt text conditioning |
qwen21/text_cond.json |
122 B | Metadata for the text conditioning cache |
code/ |
~0.2 MiB | Qwen-Image 2.1 backbone and pipeline changes, scripts, tools, tests (apply on top of upstream UltraTex) |
code/README.md |
15 KiB | UltraTex README as of this port |
samples/eval_grid_ckpt15000.webp |
495 KiB | Evaluation grid, checkpoint-15000 |
samples/albedo_canvas_ckpt15000.webp |
651 KiB | Albedo canvas output, checkpoint-15000 |
samples/fox_flux2_left_vs_qwen21_right.glb |
21 MiB | Fox comparison: stock FLUX.2-Klein UltraTex (left) vs this LoRA (right) |
samples/qwen21_ckpt15000_side_by_side.glb |
101 MiB | Side-by-side GLB, this LoRA at checkpoint-15000 |
samples/fox_adventurer_v2_skinned.glb |
12 MiB | Skinned sample mesh |
samples/axolotl_suit_skinned.glb |
14 MiB | Skinned sample mesh |
samples/robot_companion_skinned.glb |
12 MiB | Skinned sample mesh |
Training
- LoRA rank 64, alpha 64
- 15,000 steps, 1024 px per view, batch 1
- lr 5e-5, constant; bf16; seed 42
- Sparse attention top-k 0.2
- Trained on G-buffer TexVerse (YiboZhang2001/G-buffer-TexVerse, gated)
- Foreground-aware RGBA decoder fine-tuned for 1,200 steps; foreground PSNR 38.65 dB
- Text conditioning is the cached empty prompt from Qwen3-VL-8B
Usage
- Clone Atlas3DSS/UltraTex (or apply
code/on top of upstream UltraTex). - Put
qwen21/atcheckpoints/qwen21/. - Set the paths in
scripts/mv_env.shto a ComfyUI checkout with Qwen-Image 2.1 support. - Run multi-view inference:
BACKBONE=qwen21 LORA=checkpoints/qwen21/lora DECODER_CKPT=checkpoints/qwen21/decoder_step1200.safetensors bash scripts/inference_mv.sh
Or run one mesh end to end:
BACKEND=qwen21 bash scripts/skin_mesh.sh MESH.glb REF.png OUT_DIR
Base weights are not included: Qwen-Image 2.1 (bf16), its VAE, and Qwen3-VL-8B must be obtained separately.
Samples
The GLBs are TRELLIS meshes generated from Krea 2 concept art, textured with this LoRA. The fox comparison GLB has stock FLUX.2-Klein UltraTex on the left and this LoRA on the right.
Credits
Method: UltraTex, by Yibo Zhang and contributors (MIT), github.com/yiboz2001/UltraTex. Qwen-Image 2.1 port, training, and weights: Atlas 3D.
Model tree for sekkit/UltraTex-Qwen-Image-2.1
Base model
Qwen/Qwen-Image-2.1