A Blender add-on that generates 2D billboard/concept assets from text prompts and can convert them into textured 3D meshes — all in one pipeline, without leaving Blender.
.glb mesh, imported back into the scene next to the source plane. Two backends are selectable:
Both stages run in isolated background subprocesses with their own progress bar, so Blender's UI stays responsive during generation.
TencentARC/Pixal3D) the first time it's used.o-voxel, cumesh, flexgemm, nvdiffrast, flash_attn) — prebuilt wheels for these are bundled or fetched automatically (see Prebuilt CUDA extensions below), so end users do not need a CUDA Toolkit or MSVC install for this either.Edit > Preferences > Add-ons > Install...).torch==2.9.1+cu128) into an isolated addon_packages/ folder (added to sys.path at runtime — it does not touch Blender's own Python environment).requirements.txt.TRELLIS.2 and Pixal3D repos (for the 3D pipeline code).Dependencies already installed and matching the pinned versions are skipped automatically on subsequent runs — you can re-run "Install 2D + 3D Dependencies" any time to repair or update without a full reinstall.
To remove everything the installer downloaded (to free disk space or start over), use "Nuclear Wipe" in preferences — this deletes addon_packages/ only.
Both panels live in the 3D Viewport sidebar, under the "2D Asset" tab.
.glb next to the original plane.addon_packages/ inside this add-on's folder rather than Blender's own site-packages, so the heavy ML stack can't conflict with Blender's bundled libraries (or vice versa). It's added to sys.path at runtime, not a real venv.python.exe process (not inside Blender's process), so a crash or CUDA OOM in the model code can't take down the Blender session. Progress lines are parsed from the subprocess's stdout to drive the UI progress bar.del + gc.collect() + torch.cuda.empty_cache() + torch.cuda.ipc_collect()) as soon as they're no longer needed — the 2D script never holds the diffusion pipeline and the segmenter in VRAM at the same time, and the 3D script frees per-mesh intermediates after every conversion.requirements.txt pins the full transitive closure of runtime packages and installs everything with --no-deps, so nothing can silently pull in a second (CPU-only) torch/numpy that would shadow the CUDA build.The compiled extensions (o-voxel, cumesh, flexgemm, nvdiffrast, flash_attn, and natten — the last two shared with the Pixal3D backend) are ordinarily built from source against a specific CUDA Toolkit + MSVC version — impractical to ask end users to set up. Instead:
o-voxel, cumesh, flexgemm, and nvdiffrast wheels (built for cu128 / torch2.9 / cp313 / win_amd64) are bundled directly in wheels/ and installed straight from there.flash_attn's wheel (~240 MB) and natten's wheel (~130 MB) are too large to commit to git — so they're instead downloaded on demand from the same PozzettiAndrea/cuda-wheels release index at install time.low_vram mode is enabled by default to reduce peak usage).Built on top of:
12 commits
Python
100.0%
A Blender add-on that generates 2D billboard/concept assets from text prompts and can convert them into textured 3D meshes — all in one pipeline, without leaving Blender.
.glb mesh, imported back into the scene next to the source plane. Two backends are selectable:
Both stages run in isolated background subprocesses with their own progress bar, so Blender's UI stays responsive during generation.
TencentARC/Pixal3D) the first time it's used.o-voxel, cumesh, flexgemm, nvdiffrast, flash_attn) — prebuilt wheels for these are bundled or fetched automatically (see Prebuilt CUDA extensions below), so end users do not need a CUDA Toolkit or MSVC install for this either.Edit > Preferences > Add-ons > Install...).torch==2.9.1+cu128) into an isolated addon_packages/ folder (added to sys.path at runtime — it does not touch Blender's own Python environment).requirements.txt.TRELLIS.2 and Pixal3D repos (for the 3D pipeline code).Dependencies already installed and matching the pinned versions are skipped automatically on subsequent runs — you can re-run "Install 2D + 3D Dependencies" any time to repair or update without a full reinstall.
To remove everything the installer downloaded (to free disk space or start over), use "Nuclear Wipe" in preferences — this deletes addon_packages/ only.
Both panels live in the 3D Viewport sidebar, under the "2D Asset" tab.
.glb next to the original plane.addon_packages/ inside this add-on's folder rather than Blender's own site-packages, so the heavy ML stack can't conflict with Blender's bundled libraries (or vice versa). It's added to sys.path at runtime, not a real venv.python.exe process (not inside Blender's process), so a crash or CUDA OOM in the model code can't take down the Blender session. Progress lines are parsed from the subprocess's stdout to drive the UI progress bar.del + gc.collect() + torch.cuda.empty_cache() + torch.cuda.ipc_collect()) as soon as they're no longer needed — the 2D script never holds the diffusion pipeline and the segmenter in VRAM at the same time, and the 3D script frees per-mesh intermediates after every conversion.requirements.txt pins the full transitive closure of runtime packages and installs everything with --no-deps, so nothing can silently pull in a second (CPU-only) torch/numpy that would shadow the CUDA build.The compiled extensions (o-voxel, cumesh, flexgemm, nvdiffrast, flash_attn, and natten — the last two shared with the Pixal3D backend) are ordinarily built from source against a specific CUDA Toolkit + MSVC version — impractical to ask end users to set up. Instead:
o-voxel, cumesh, flexgemm, and nvdiffrast wheels (built for cu128 / torch2.9 / cp313 / win_amd64) are bundled directly in wheels/ and installed straight from there.flash_attn's wheel (~240 MB) and natten's wheel (~130 MB) are too large to commit to git — so they're instead downloaded on demand from the same PozzettiAndrea/cuda-wheels release index at install time.low_vram mode is enabled by default to reduce peak usage).Built on top of:
12 commits
Python
100.0%