Skip to content

model: image to 3drendering - #533

Open
rebel-ChanyongJeon wants to merge 7 commits into
devfrom
feat/image-to-3drendering
Open

model: image to 3drendering#533
rebel-ChanyongJeon wants to merge 7 commits into
devfrom
feat/image-to-3drendering

Conversation

@rebel-ChanyongJeon

Copy link
Copy Markdown
Collaborator

Pull Request Description

⚠️ Important: Branch Target

  • New features, enhancements, and non-critical fixes: Merge to dev branch
  • Critical hotfixes only: Merge to main branch (must also merge to dev)

Please ensure you've selected the correct base branch before submitting!

Type of Change

  • Release (dev → main merge for production release)
  • New Model Support
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Performance improvement
  • Code refactoring
  • Other (please describe):

Changes Overview

  • Add TripoSR (RBLNTripoSRForImageTo3D): triplane-based single-image 3D mesh reconstruction, NPU triplane query with CPU-side mesh extraction path, config / architecture / modeling modules and triposr_README.
  • Add SF3D — Stable Fast 3D (RBLNSF3DForImageTo3D): architecture port, NPU compile/runtime integration, marching-cubes mesh extraction with vertex colors, lazy exports, sf3d_README.
  • Register both models in optimum.rbln transformers model registry (__init__.py exports).
  • Dependencies (pyproject.toml): einops, trimesh, scikit-image, omegaconf for image-to-3D pipelines and mesh post-processing.
  • TripoSR: follow-up alignment — marching cubes in the mesh path; align get_pytorch_model / _update_rbln_config / _create_runtimes with RBLN conventions; top-level imports for heavy deps; remove @torch.no_grad on forward; refresh triposr_README.
  • SF3D: parallel integration under the same RBLN patterns — full get_pytorch_model / _update_rbln_config / _create_runtimes; NPU triplane decoder + CPU fallback; marching cubes in extract_mesh with vertex colors; top-level einops / trimesh / scikit-image; no @torch.no_grad on forward (mesh extraction uses extract_mesh); sf3d_README with pipeline and dependency table.

Motivation and Context

Expose image-to-3D reconstruction on RBLN NPU for TripoSR and SF3D so users can compile and run these pipelines via optimum-rbln, consistent with other RBLN*For* model integrations.

Related Issues

…ruction

- Add RBLNTripoSRForImageTo3D and RBLNTripoSRForImageTo3DConfig
- Implement triplane-based scene code generation and mesh extraction
- Support NPU triplane query with CPU fallback
- Add configuration, architecture, and modeling modules
- Register TripoSR in optimum-rbln transformers model registry
- Add RBLNSF3DForImageTo3D (Stable Fast 3D): architecture port, NPU compile
  wrappers, marching-cubes mesh extraction with vertex colors, lazy exports
- Register SF3D in optimum.rbln / transformers / models __init__
- TripoSR: top-level imports (einops, trimesh, skimage), marching_cubes in
  architecture; align get_pytorch_model, _update_rbln_config, _create_runtimes
  with RBLNModel; drop @torch.no_grad on forward
- pyproject: add einops, trimesh, scikit-image, omegaconf as core dependencies
- Refresh sf3d_README / triposr_README (pipeline, deps table)
@rebel-ChanyongJeon rebel-ChanyongJeon changed the title Feat/image to 3drendering model: image to 3drendering Mar 20, 2026
@rebel-ChanyongJeon
rebel-ChanyongJeon force-pushed the feat/image-to-3drendering branch from 8bc8e6c to 735df6a Compare March 20, 2026 07:33
- Sort SF3D/TripoSR in lazy __init__ and TYPE_CHECKING imports
- modeling_sf3d: remove unused total_out, zip(..., strict=True)
- sf3d_architecture: consolidate imports, B007 use _i
- triposr_architecture: C416 dict(enumerate), keep chunk_length
- cli: noqa PLC0415 for lazy optimum.rbln import
- TestImageTo3DModelClasses: get_rbln_config_class smoke tests (always on)
- TestTripoSRForImageTo3D / TestSF3DForImageTo3D: BaseTest.TestModel, FULL level
- RBLN_AUTO_CLASS None until Auto mapping exists
…deps

- After editable install, uv pip install trimesh, scikit-image, einops, omegaconf
  so test_transformers can import SF3D/TripoSR without ModuleNotFoundError
- Add same packages to dependency-groups.tests for uv lock / sync alignment
SciPy 1.17+ wheels (manylinux_2_27/2_28) caused uv sync failures in CI
(extract/I-O timeouts). Keep scipy 1.15.x via constraint-dependencies and
lockfile so frozen installs match.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant