Commit Graph
88 Commits
Author SHA1 Message Date
c83ed7dcaf fix the bugs associated with blender datas (#2704)
* fix the bug when camera.distortion_params is None

* Handle background color override when using blender.

* fix bare except

* format

* Update background color override in Blender dataparser

* Add ability to download EyefulTower dataset

* wip before I copy linning's stuff in

* Generate per-resolution cameras.xml

* Generate transforms.json at download

* Fix a couple of quotes

* Use official EyefulTower splits for train and val

* Disable projectaria-tools on windows

* Fix extra imports

* Add a new nerfacto method tund for EyefulTower

* Split eyefultower download into a separate file

* Fix typo

* Add some fisheye support for eyeful data

* Reformatted imports to not be dumb

* Apparently this file was missed when formatting originally

* Added 1k resolution scenes

* revert method_configs.py to original values

* Also add 1k exrs

* Add option to modify bg color in gaussian splatting

* fix back the config, bg color should work now

* removed camera optimizer for gs to align with main

* Address feedback

* Revert changes to pyproject.toml, to be added in a later PR

* Oops, probably shouldn't have gotten rid of awscli ...

* adding support for bg color, tested and reformatted now

* formatted

* formatted

* changed glob variable name

* Refactor background color variable name

* prevent viser overriding

---------

Co-authored-by: Vasu Agrawal <vasuagrawal@meta.com>
Co-authored-by: Ethan Weber <ethanweber@berkeley.edu>
Co-authored-by: Brent Yi <yibrenth@gmail.com>
Co-authored-by: Justin Kerr <justin.g.kerr@gmail.com>
2024-01-20 02:10:06 +00:00
Brent YiandJustin Kerr 99073eb187 Don't throw away non-tensor objects in TensorDataclass (#2783)
* Don't throw away non-tensor objects in TensorDataclass

* Update test_tensor_dataclass.py

---------

Co-authored-by: Justin Kerr <justin.g.kerr@gmail.com>
2024-01-19 01:18:19 -08:00
Brent Yi 05d305467f Reduce startup overhead (#2763)
* Reduce import overhead

* Bump tyro, suppress deprecated config values

* Bump viser

* Fix pyright
2024-01-17 01:42:10 +00:00
Matthew Hoffman f0aadf9de8 Use ruff as linter and formatter (#2765)
* Switch from black to ruff format

* Sort dependencies with ruff check

* Run ruff format
2024-01-15 13:43:14 -08:00
Brent Yi 69ed6d4093 Improve viewer banner when server is bound to 0.0.0.0 (#2761)
* Improve viewer banner when server is bound to 0.0.0.0

* Add comment

* Update viewer.py
2024-01-13 20:31:39 +00:00
Matthew TancikandJustin Kerr 451a70c1f3 Migrate to viser viewer (#2515)
* fix jittering in markdown in viewer beta

* Revert "fix jittering in markdown in viewer beta"

This reverts commit 70ade42e46.

* Migrate to viser viewer

* Fix docs

* print correctly formatted url in banner for viewer beta

* add deprecation warnings to viewer_elements.py

* fix export string scientific notation bug, change .5 to 2.0 sec transition time

---------

Co-authored-by: Justin Kerr <justin.g.kerr@gmail.com>
2024-01-08 11:40:02 -08:00
Brent Yi d3934737a1 Upgrade pyright (#2526)
* Upgrade pyright

* Resolve pyright errors

* Suppress trimesh error

* Run ruff
2023-10-14 13:00:17 +08:00
Justin Kerr e694f341a7 Move camera optimization out of datamanager and parallelize dataloading (#2092) 2023-10-10 14:52:25 -07:00
Matthew Tancik d325593e02 Remove unused config param (#2495)
Remove unused config.
2023-10-09 10:35:08 +08:00
Maxim BonnaerensandJonáš Kulhánek 0d746b1363 Fourier Feature encodings and polyhedron encodings (#2463)
* Fourier Feature encodings and polyhedron encodings

Rework RFFEncoding to be a subclass of the more general Fourier Feature
Encodings and introduce Polyhedron encodings as introduced in
mipnerf360.

* b_matrix -> basis

* Add typing

* fighting pyright

* use scale argument

* continue the fight

* ignore

* ignore em all

* add docstring and rename generate_basis to generate_polyhedron_basis

* Try to please pyright with assert

* Immediately allocate tensor on correct device

* private functions and docstrings update

* doc fix continued

---------

Co-authored-by: Jonáš Kulhánek <jonas.kulhanek@live.com>
2023-10-02 21:07:34 +00:00
Jonáš Kulhánek b78d0faa12 ns-render - render all images (#2459)
* ns-render - render all images

* Fix commonprefix->commonpath

* Fix raw rendering
2023-10-01 22:12:48 +02:00
Jonáš Kulhánek ef2fd3dbe1 Fix import error when tcnn installed but CUDA runtime not available (#2429) 2023-09-15 17:18:23 -04:00
Sid Mehta 7269a7ee16 Add Comet Logging (#2431)
* initial commit

* fixed naming

* added comet_ml as depedency

* added comet to docs

* Update custom_gui.md

* Update models.md

* Update benchmarking.md

* added Comet to ReadMe

* added decorator

* fixed link and added comet examples

* fixed link and added comet example

* fixed format

* fixed type ignore error

* fixed readme typo

* fixed typo
2023-09-15 09:21:09 -07:00
85ef567682 Flesh out viewer beta (#2086)
* Increase max_res of first proposal network

* fix render statemachine logic for viewer beta

* clicking on cameras in the viewer

* fix fov calculation, update camera positions while training

* cleanup

* backup

* fix configure theme

* Fix theme configure for latest dev version of viser

* Fix runtime errors

* add set up direction button

* add pause resume button

* Export panel

* Render tab skeleton

* make responsiveness more snappy by stopping training

* depth composite

* start implementing viewercontrol in new viewer

* refactor background img to use depth and add depth layering option

* show/hide images

* speed up rendering

* fix crop color background

* crop

* rotated crops

* rotated crops

* transform handle on crop box

* fix xyzw for crop

* oriented crop export for pointclouds, not for meshes yet

* Initial render panel

* Fix export button

* Theme tweaks

* fix background issue in cropping

* export rotated poisson meshe

* double normals definition in export panel

* Visual nits

* remove tsdf from export panel

* Add licenses

* Fix some CI errors

* Type fixes

* Fix tests

* Fix numpy broken

* various bugfix

---------

Co-authored-by: Brent Yi <yibrenth@gmail.com>
Co-authored-by: terrancewang <terrance.3512@gmail.com>
2023-09-08 05:10:00 +00:00
machenmusik cb2405d3ea When generating depth images, use torch_compile with ZoeDepth for compatibility (#2303)
* Use torch_compile with Zoe for compatibility

torch_compile module support

Previously the compatibility utility torch.compile worked for functions, but not for modules as torch.compile was originally employed here.

* torch_compile -> Any
2023-08-09 17:08:17 -07:00
Jonáš Kulhánek ac6a83cc53 Fix pickling of VanillaDataManager (#2129)
* Fix pickling of VanillaDataManager

* Fix vanilladatamanager init
2023-06-25 18:46:07 +02:00
Jonáš Kulhánek 3214fcfeb5 Fix spherical harmonics #2081 (#2112) 2023-06-22 02:40:22 +00:00
b17268e83b [WIP] dreamfusion implementation (#1008)
* starting the framework for dreamfusion

* Removed view direction from RGB to calculate albedo

* Started diffusion

* Added dreamfusion to CLI, removed direction embeddings

* Normals in dreamfusion

* Lambertian shading added

* Train normals in Dreamfusion

* Stable diffusion from Stable Dreamfusion

* Fix normal orientation loss

* Configurable light direction sampling

* adding density initalization at origin

* V1 datamanager

* Don't train normals for first 1k iters

* SDS loss added to dreamfusion

* Dreamfusion pipeline

* Background MLP and SphereCollider

* Normals prediction training fixed

* Sigmoid on background, prompt in config

* Shading hyperparameter adjustements

* Shading hyperparameter tuning

* Location based prompting, density initialization fades, LR change

* Cleaned imports, more config options

* Tuning, more config changes

* remove unused sampler, normalize predicted normals from network

* change position encoding to direction encoding for background color mlp

* Updating dreamfusion to use custom trainer, fixed bug, multi-gpu support (put diffusion on one specific device), merged with main

* Hard coding less, offloading to config

* Appeasing the linter

* First pass opacity / sparsity losses

* Small patches and configs

* Accidentally pushed logs

* Removing logs for real this time

* Transmittance loss bug fix

* 12 GB Dreamfusion!

* Lint

* Remove unecissary collider changes

* Start SD cleanup

* Cleanup SD code

* adding overhead location prompting

* Use lambertian renderer

* turn grad accum off by default, decrease background mlp size, add overhead text embedding

* Cleanup

* Fix normals vis

* change uniform sampler to prediction network, add option to jit unet for faster sds_loss

* Use shaders

* cleaning up jit code

* add warning if using non jit unet

* add proposal network optimizer to config

* speed up render and cleanup code

* Clean up datamanager

* Add distortion loss

* fix wanb

* adding interpolated location sampling

* Update configs

* interpolated location prompting option, lowering init density, transmittance loss interpolation flipped

* rename alphas mult to alphas loss mult

* Mess around with normals

* add option to use random bg color + bg mlp

* Remove Dreamfusion Trainer (#1423)

* Dreamfusion trainer no longer needed

* Added typing for grad scaler

* SDS return loss

* Fix CFG

* Cleanup

* Update configs

* Fix opacity loss, use unform sampling first round of prop

* add prompt edditing to viewer

* Choose your own diffusion

* remove dreamfusion pipeline file

* merging + remove dreamfusion pipeline file

* Update configs

* add stable diff utils

* cleanup

* cleanup

* Fix test

* positional prompting bugfix

* Warmups

* tune

* lint

* Remove dataparser

* merging + text embedding bugfix

* Set data path to launch viewer for DreamFusion (#1776)

* Set data path to launch viewer for DreamFusion

* Apply formatter

* Fallback to 'base_dir' if data manager has no path

* Make if statement non-inline

* Reformat

---------

Co-authored-by: Matthew Tancik <mattt4001@gmail.com>

* add deepfloyd option first try

* merging

* merging from main

* merging

* removing comments, cleaning code, making stable diff utils usable for deepfloyd, remove deepfloyd text encoder after use

* undo chagnes in data folder

* cleaning code, removing unneccesary changes from main, removed normals prediction network

* remove old scripts files, rename generative pipeline flag to no_input_data, revert to default histogram padding in proposal sampler

* changing pipeline flag

* move no input data flag from pipeline to datamanager

* undo config and merge in deepfloyd from main

* merging grad scaler pipeline addition

* merging + setting proposal net scheduler

* revert nerfacto config change

* typing + linting

* rename dreamfusion datamanager to random camras datamanager, check datamanager typing in pipeline and trainer

* fix test import

* fix test import

* changing datamanager check in trainer, add typing in random cameras datamanager

* add Tensor to randomcamerasdatamanager

* remove old comments

* resolve tyro warning

* update fields to use tcnn

* lint

* add packages for deepfloyd

* add versions

* docs first draft

* rename to generfacto, clean docs

* fix import error

* minor changes

* fix orientation loss bug, retune params

* cleanup

* typing

* trying docs fix

* fixing generative package imports

* fix pyright

* docs fix

* merge w main

* docs minor change

* tuning + bugfixes

* remove torch.backends

---------

Co-authored-by: Abhik Ahuja <ahujaabhik@berkeley.edu>
Co-authored-by: David McAllister <davidrmc2@gmail.com>
Co-authored-by: Jake Austin <jake-austin@berkeley.edu>
Co-authored-by: Matthew Tancik <tancik@berkeley.edu>
Co-authored-by: Matt Tancik <mattt4001@gmail.com>
Co-authored-by: SeungWoo Yoo <dreamy1534@gmail.com>
Co-authored-by: ayaanzhaque <ayaanzhaque@gmail.com>
Co-authored-by: Ayaan Haque <ayaanzhaque@berkeley.edu>
2023-06-17 23:34:04 -07:00
Frédéric DevernayandFrédéric Devernay d18588d5d4 colormaps: add "gray" (#2058)
* colormaps: remove useless "pca" choice, add "gray"

- The "pca" choice didn't work when applied to a single-channel image (it crashed the viewer), and it's applied by default to any image of more than 3 channels, where the colormap choice is ignore anyway.
- Add the trivial "gray" colormap, useful to eg extract accumulation.

* colormaps.py: re-add "pca"

* control_panel: don't show the "pca" option either

---------

Co-authored-by: Frédéric Devernay <f-dy@users.noreply.github.com>
2023-06-11 18:41:23 -07:00
jMysliwiecandJakub Mysliwiec 5511f5f4ed Quick fix for eval script failing for depth-nerfacto (and other methods with a non-standard dataset) (#2047)
dirty fix for the eval_utils script that fails because generics don't work with yaml configs

Co-authored-by: Jakub Mysliwiec <jmysliwiec@cyclomedia.com>
2023-06-08 08:22:46 -07:00
Jonáš Kulhánek 9643c1ece2 Fixes wandb runs resuming using WANDB_RUN_ID (#2004) 2023-05-26 10:29:26 +02:00
Ethan WeberandEthan Weber bb6925bac6 Ability to use vanilla pytorch instead of tcnn for Nerfacto (#1936)
* started a package to easily swap out tcnn for pytorch

* trains with pytorch and not tcnn

* cleaned up imports

* making it easy to install on mac

* removed/reverted files

* merged main

* reverted changes

* updating config

* starting to add nerfacto to tests

* fixxing default value

* fixed default implementation

* defaults to torch if tcnn and not installed

* update log

* add comment

* resolved pr comments

* fix

* update default

---------

Co-authored-by: Ethan Weber <ethanweber@eecs-128-32-175-250.dhcp.berkeley.edu>
2023-05-25 14:55:42 -07:00
Matthew Tancik 45395efa1c Fix viewer decorator (#1995) 2023-05-24 14:46:43 -07:00
Jonáš Kulhánek 61e48108df Add warnings for (slower) Torch 1.x and Windows not supporting torch.compile (#1982)
Add warning for torch 1.x and windows
2023-05-23 15:18:53 -07:00
Matthew Tancik efd83abb6d Basic viser frontend (#1973)
* Use viser frontend

* Rendering but poses incorrect

* Fix cameras
2023-05-23 12:21:38 -07:00
Milan van Wouden d413ca4204 fix large number of typos in repository (#1977)
* fix large number of typos in repository

* fix typos in tests
2023-05-23 10:41:49 -07:00
Jonáš Kulhánekandmachenmusik 3bc160cc7d Backward compatibility for torch 1.x and fix for windows (#1962)
* backward compatibility for torch 1.x and fix for windows

* Update pyproject.toml

* Update README.md

* Update README.md

(As per request)

---------

Co-authored-by: machenmusik <machenmusik@users.noreply.github.com>
2023-05-22 08:58:08 -07:00
Jonáš Kulhánek 08e3a1f1a6 Drop backward compatibility for Torch 1.13 (#1948)
* Drop backward compatibility for Torch 1.13

* Fix lint errors
2023-05-18 09:12:51 +02:00
Jonáš KulhánekandBrent Yi f481f5ebec Fix some typing problems (#1940)
* Fix some typing problems

* nerfstudio.data typing error fixes

* Add tiny fixes

* Remove ABC from pipeline

* Prevent circular imports

* Tweak ModuleList typing

* TrainingCallbackAttributes cleanup

* Various minor nits

* More nits

* Run `ruff`

---------

Co-authored-by: Brent Yi <yibrenth@gmail.com>
2023-05-17 17:36:56 -07:00
e898f562e6 Switching to Torch 2.0 by default. (#1922)
* Update requirements for torch 2.0

* Update docs

* Fix missing _LRScheduler import

* Fix pylint issues

* Update docs, drop 1.13

* Fix pip postfix version

* fix docs

* Allow python 1.13 (for now)

* Minor fix for torch.compile

* Switch to torch.compile

* ruff

* Fix test

---------

Co-authored-by: Matt Tancik <mattt4001@gmail.com>
Co-authored-by: Matthew Tancik <tancik@berkeley.edu>
2023-05-17 16:03:17 -07:00
Brent YiandMatt Tancik d542646c72 Switch to ruff (#1939)
* `isort` -> `ruff`

* `pylint` -> `ruff`

* Remove line

* More minor cleanup

* Better documentation for rules we are enabling

* Fix gitignore, run black

* vscode settings

---------

Co-authored-by: Matt Tancik <mattt4001@gmail.com>
2023-05-17 10:08:14 -07:00
Brent Yi 814db32ec4 More typing fixes (#1941)
* Fix more types

* Fix tests

* Minor cleaning

* Address comments

* Resolve linting errors

* Re-ignore pymeshlab type

* Add extra assert / error message to mipnerf model
2023-05-17 07:17:40 -07:00
Brent YiandMatt Tancik 6ba2a18b2b torchtyping => jaxtyping (#1838)
* Run `ruff --fix`

* Add jaxtyping migration script

* Run migration scripts + ruff + black

* Merge remote-tracking branch 'origin/main' into brent/jaxtyping

* black

* Fix lint

* fix lint

* Cleanup and more specific types

* Fixed annotation errors

* Fix more errors

* Fix annotation

* Delete _torchtyping_to_jaxtyping.py

---------

Co-authored-by: Matt Tancik <mattt4001@gmail.com>
2023-05-16 15:57:47 -07:00
7e8fc5c97f Create PCA colormap for images with channels > 3 (#1929)
* Init pca colormap for images with channels>3

* --amend

* formatting etc

* formatting etc

* docstring abt >3 channels

---------

Co-authored-by: Justin Kerr <justin.g.kerr@gmail.com>
Co-authored-by: Saurav Maheshkar <sauravvmaheshkar@gmail.com>
2023-05-16 10:46:15 -07:00
Matthew Tancik 531f9d0c4c Split up render commands (#1923)
* Split up render commands

* bump viewer
2023-05-15 11:34:40 -07:00
Ethan Weber 13e0fce122 Update copyright (#1917)
* updated copyright

* including txt file

* updated black

* removing license

* fixing license
2023-05-12 16:16:13 -07:00
Matthew Tancik 4242a3c982 Make rich console global (#1916) 2023-05-12 14:20:40 -07:00
Matthew Tancik b1ddb9e695 Add split screen (#1898)
* Add split screen

* bug fixes
2023-05-10 10:55:17 -07:00
Matthew Tancik 82c0c5545b Fix misc warnings (#1894) 2023-05-09 14:11:28 -07:00
Matthew Tancik 28532c583f Render with colormaps (#1893)
* render with colormaps

* black
2023-05-09 12:26:44 -07:00
Jonáš Kulhánek 935e308c93 Fix viewer when opened before train setup finishes (#1888)
* Fix viewer when opened before train setup finishes

* is_initialized fix docs
2023-05-09 19:52:05 +02:00
Brent Yi 63c6303736 Bump minimum Python version to 3.8 (#1876)
* Bump minimum Python version to 3.8

* typing_extensions.Literal -> typing.Literal

* ns-dev-test

* typing_extensions.get_args => typing.get_args

* Format with older version of black

* Bump `black`

* Run black
2023-05-06 13:29:48 -07:00
Ethan Weber d847949fe9 fixing wandb envs (#1880)
* adding back support for wandb envs

* remove .init
2023-05-06 10:15:48 -07:00
Ethan Weber 081bf82bf5 Wandb/experiment improvements (#1879)
exposing experiment settings
2023-05-05 18:28:52 -07:00
Matthew Tancik 9ace02b3ae Remove nerfacc aabb (#1874)
* Remove nerfacc aabb

* remove custom nerfacc logic

* lint
2023-05-04 10:46:51 -07:00
Jonáš Kulhánek 231573bd8e Fix profiler for PyTorch 2.0 (#1812)
* Fix profiler for torch v2.0

* Add back type for time_function
2023-04-25 18:55:44 +02:00
Ruilong Li(李瑞龙) ea2993d5b1 Update NGP related models with nerfacc 0.5.2 (#1809)
* profiling

* set pose_optimizer to None if it's mode is "off"

* radial_and_tangential_undistort in nerfacc

* fix camera distortions

* update to nerfacc 0.5.1. Upgrade instant-ngp model.

* revert nerfacc to 0.5.1

* format

* allows to fall back to the pytorch undistortion

* format

* fix linting

* fix test

* fix test

* fix nerfplayer-ngp

* enable_collider=False for NGP

* nerfplayer verified.

* zero cone_angle for ngp bounded

* fix format

* fix pylint
2023-04-24 17:11:30 -07:00
Jonáš Kulhánek ea14152ae6 Add PyTorch profiler to support tracing of forward/backward calls (#1761)
* Add PyTorch profiler support

* Add support for wrapped code, fix linting errors

* Update docs
2023-04-18 20:29:09 +02:00
6a7c8820b8 Viewer backend refactor (#1702)
* Copy in `viser` communication infrastructure

* Update background image

* Add build directory to fix viser HTTP server
May want to remove these later

* Copy in `viser` communication infrastructure

* Update background image

* Pass dataset vis using viser

* initial impl of ViewerParameter

* idk what i did but brent and matt know

* Suppress eslint typescript warnings

* implement ViewerElement base class, then ViewerButton, ViewerSlider, etc

* client -> server message setup

* multi folder stuff

* Stream controls over viser

* import

* add types to viewer_param.py

* Move another message to viser

* Update folder color

* Use non throttled messages

* multiple folders works

* Cleanup, more porting

* starting impl of control panel in viser

* More porting

* scenebox to viser

* Cleanup

* Fix render updates

* More cleanup, docs, typing

* start control_panel.py

* set_hidden logic but not merged in

* control_panel replicates behavior of existing control panel (visually), except for setting the list of output options. not yet integrated with viewer_utils.py for logic flow. also implemented set_disabled and set_hidden in javscript/ViewerElement side

* Remove some original leva components

* add some train util logic, attempt set_value, doesn't work on javascript side fully yet (value updates but not slider visually

* bye zmq

* missing call to decoder

* 'gui_set' works properly, control panel now replicates behavior of original

* remove print

* Fix status viewer message

* More cleanup

* support set_options in dropdown

* hiding buttons works correctly

* fix set_options, switch from cur_value to get_value()

* Fix slowdown

* output options

* colormap logic converted

* add handle to cb_hook

* fix some lambda bugs

* cleanup

* Save checkpoint logic readded

* Cleanup and minor fixes

* snappier ui

* Refactoring

* Fix state update bugs

* Bug fixes

* Write less to redux

* added comments to reducer code

* Render state machine (#1727)

* state machine works, but train step throttling not implemented

* more step logic, cleanup

* remove random try catcH

* mutex logic for render

* Update lock logic

* types and docs

* added some state machine logic to help rerenders

* merge

---------

Co-authored-by: Justin <justin.g.kerr@gmail.com>

* Refactor and cleanup

* More cleanup and docs

* docstring to gui_utils

* docstrings, rename viewer_param.py to viewer_elements.py

* Fix viewer, remove bridge stuff

* Render on connect

* Fix lint errors

* More eslint fixes

* render_freq logic

* better rerender logic for crop

* More cleanup

* Purge

* Cleanup

* Lint fixes

* Fix cache

* better parsing logic

* Fix infinite test

* More cleanup

* typo

* Update webdocs

* Update docs

* rerender on custom hooks

* add more docs

* Use shared utilities in `viser.infra`

* rework callback to use elements instead of handles

* Fix ESlint errors

* change naming of handle to element, add setter for value

* cleanup

---------

Co-authored-by: Matt Tancik <mattt4001@gmail.com>
Co-authored-by: Justin <justin.g.kerr@gmail.com>
Co-authored-by: Ethan Weber <eweb0124@gmail.com>
Co-authored-by: Matthew Tancik <tancik@berkeley.edu>
2023-04-14 14:53:10 -07:00
Jonáš Kulhánek 6c8739ece2 Respect wandb environment variables (#1738) 2023-04-14 16:28:00 +02:00