Open bbbbubble opened 7 months ago
Hello!
3 days is definitely not expected. Are you sure that rendering is using your GPU? Typically I observe ~1hr to generate the scene and 3-5min of GPU rendering per frame, so more like 10hrs latency for a high quality video. If a noticable amount of render noise is acceptable then you can reduce this to 40sec /frame or about 3hr total. We find these costs acceptable for ray-traced cgi given one can run many many videos at once in paralell, going any faster will probably require switching to unreal or another realtime renderer (which we are working on better support for).
With 3-day renders though I would recommend checking that the GPU is enabled and that nvidia-smi shows you are getting good GPU utilization. I will also release a branch ASAP that may increase your GPU utilization if it is currently low, we've done some optimizing.
There are certainly ways to improve speed. First of all, make sure to disable stereo if you dont need stereo video - rendering for two cameras doubles the render cost. Also turn off the ground truth or use blender ground truth if either of these are acceptable for your usecase. Besides these the easiest step is to decrease the number of raytracing samples; you can do this either by increasing render_image.adaptive_threshold = 0.005
to 0.01 or even 0.05 in base.gin depending on how much render noise is acceptable to you. 0.01 is generally fine for outdoor scenes but will look noisy underwater. 0.05 is much faster (as low as 40sec/frame) but noticably noisy in shadows. You can also look in the ConfiguringInfinigen docs to decrese image resolution or mesh resolution if this would be acceptable
The system works best when running one job per GPU, but each job takes ~20GB VRAM (i.e. fits a 3090/4090 or L40 well - this is what we use). Rendering jobs do not usually need the full 32GB or 80GB of a large deep learning GPU. In theory you can split one such GPU into two 40GB GPUs, which is what LocalScheduleHandler.jobs_per_gpu=2
attempts to do, but the current implementation of that feature just assigns two jobs to each gpu, it doesnt limit each to take half the VRAM etc, so the jobs can end up overflowing and both dying.
RE your parameter questions, apologies that there is not yet better docs for these. Here are answers to the ones you mentioned:
num_concurrent
scenes will run at once. If there are crashes you should adjust local_256GB.gin
's num_concurrent to a lower value - i recommend setting it to (TOTAL_RAM_GIGABYTES / 20), since each scene needs about 20GB. slurm.gin
variant on a cluster which restricts which CPUs are visible to which processes. When using external blender rather than pip blender there is a workaround for this where you add --threads 4
or something similar to the get_cmd
of job_funcs.py
and it will tell blender to spawn less threads and share more efficiently, but you have to switch to the Blender Python Script
version of installation for this to work.
Sorry for the delay in replying, and for the issues that have come up here. Im very keen to help get it running smoothly for you. Im going to release some optimizations ive been working on as a beta branch shortly and I will followup here when that happens. In may-june I also plan to do a great deal more optimization and simplification of the main rendering system.
@araistrick Thank you very much for your detailed explanation. I've just started generating more videos, and if I discover anything further, I'll also share it here. Additionally, I have two more questions: ^v^
Is there currently a way to obtain more metadata information related to the videos? For example, can we retrieve information such as the scene category, the objects (creatures, plants, ...) within the scene (even down to each frame), the parameter values for each object's degrees of freedom, etc., using the seed? I've noticed that some information is recorded in the corse/fine/logs folder, but it seems to be incorrect or incomplete?
I'm interested in creating a video where the camera orbits around a particular center, capturing a 360-degree view. I've attempted to modify some parameters, but without success. Could you explain the significance of these parameters, or perhaps provide a simple function for achieving this? Thank you!
@gin.configurable
class AnimPolicyRandomWalkLookaround:
def __init__(
self,
speed=('uniform', 1, 2.5),
yaw_range=(-20, 20),
step_range=(10, 15),
rot_vars=(5, 0, 5), # 默认(5, 0, 5)
motion_dir_zoff=('clip_gaussian', 0, 90, 0, 180)
):
self.speed = random_general(speed)
self.yaw_range = yaw_range
self.step_range = step_range
self.rot_vars = rot_vars
self.motion_dir_euler = None
self.motion_dir_zoff = motion_dir_zoff
def __call__(self, obj, frame_curr, bvh, retry_pct):
if self.motion_dir_euler is None:
self.motion_dir_euler = copy(obj.rotation_euler)
self.motion_dir_euler[2] += np.deg2rad(random_general(self.motion_dir_zoff))
orig_motion_dir_euler = copy(self.motion_dir_euler)
def sampler():
self.motion_dir_euler = copy(orig_motion_dir_euler)
self.motion_dir_euler[2] += np.deg2rad(U(*self.yaw_range))
step = U(*self.step_range)
off = Euler(self.motion_dir_euler, 'XYZ').to_matrix() @ Vector((0, 0, -step))
off.z = 0
return off
pos = walk_same_altitude(obj.location, sampler, bvh)
time = np.linalg.norm(pos - obj.location) / self.speed
rot = np.array(obj.rotation_euler) + np.deg2rad(N(0, self.rot_vars, 3)) # 默认:0
# rot = np.array(obj.rotation_euler) + np.deg2rad(np.array([0,0,-90]))
return Vector(pos), Vector(rot), time, 'BEZIER'
Per-frame object names and locations are available in our Objects.json output, see the GroundTruthAnnotations.md documentation for more details. Scene category (desert forest etc) isn't saved anywhere but can be parsed from the coarse logs.
For creating a circular arrangement of cameras I would recommend ignoring the animation policy code, as this is more intended to make a continuous trajectory of camera poses. You can comment out the existing camera code in generate_nature.py then just manually arrange the cameras by setting 'cam_rigs[i].location = (x,y,z)' and similarly for 'cam_rigs[I].rotation_euler'. I may be able to publish code for this in the next week or so but I am not sure the exact timeline.
Per-frame object names and locations are available in our Objects.json output, see the GroundTruthAnnotations.md documentation for more details. Scene category (desert forest etc) isn't saved anywhere but can be parsed from the coarse logs.
For creating a circular arrangement of cameras I would recommend ignoring the animation policy code, as this is more intended to make a continuous trajectory of camera poses. You can comment out the existing camera code in generate_nature.py then just manually arrange the cameras by setting 'cam_rigs[i].location = (x,y,z)' and similarly for 'cam_rigs[I].rotation_euler'. I may be able to publish code for this in the next week or so but I am not sure the exact timeline.
Thank you! I will try that. I ran 66 experiments yesterday, all under the setting of single machine single GPU. However, today I noticed that 55 of them crashed, while the remaining ones are still running. Since I want to generate videos with different scenes and weather conditions, these are the tasks i've submited:
scene_types = ["arctic", "canyon", "cave", "cliff", "coast", "coral_reef", "desert", "forest", "kelp_forest", "mountain", "plain"]
weathers = ["rain_particles", "snow_particles", "leaf_particles", "dust_particles", "clouds", "wind"]
for scene_type in scene_types:
for weather in weathers:
os.system(f"(This part is where I invoke the remote image and gpu machine)
'cd /root/infinigen \
&& python -m infinigen.datagen.manage_jobs --num_scenes 1 \
--pipeline_configs monocular_video cuda_terrain local_64GB \
--configs {scene_type}.gin video high_quality_terrain \
--pipeline_overrides iterate_scene_tasks.frame_range=[1,480] \
-p compose_scene.{weather}_chance=1.0 \
--output_folder outputs/my_videos'")
I found it difficult to achieve because various errors keep occurring. I observed the following errors in the experiments that crashed (If you need the specific command corresponding to any error, I can also provide it.).
No.1 occured 4 times coarse.err :
/root/miniconda3/lib/python3.10/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for <class 'numpy.float64'> type is zero.
setattr(self, word, getattr(machar, word).flat[0])
/root/miniconda3/lib/python3.10/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class 'numpy.float64'> type is zero.
return self._float_to_str(self.smallest_subnormal)
/root/miniconda3/lib/python3.10/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for <class 'numpy.float32'> type is zero.
setattr(self, word, getattr(machar, word).flat[0])
/root/miniconda3/lib/python3.10/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class 'numpy.float32'> type is zero.
return self._float_to_str(self.smallest_subnormal)
[23:23:32.543] [root] [WARNING] | SMB_AUTH envvar is not set, smb_client upload will not work. Ignore this message if not using upload
[23:23:32.575] [infinigen.core.init] [INFO] | Converted seed='2f477313' to scene_seed=793211667, parsed as hexadecimal
[23:23:32.610] [infinigen.core.execute_tasks] [INFO] | infinigen version 1.2.3
[23:23:32.610] [infinigen.core.execute_tasks] [INFO] | CUDA_VISIBLE_DEVICES=
[23:23:32.611] [infinigen.times] [INFO] | [MAIN TOTAL]
[23:23:32.611] [infinigen.core.execute_tasks] [INFO] | Processing frames 1 through 480 inclusive
[23:23:32.631] [infinigen.times] [INFO] | [terrain]
[23:23:32.631] [infinigen.times] [INFO] | [Create terrain]
[23:23:32.631] [infinigen.terrain.core] [INFO] | Terrain using only on the fly on_the_fly_asset_folder=PosixPath('/root/infinigen/outputs/my_videos/2f477313/coarse/assets')
[23:23:32.632] [infinigen.times] [INFO] | [Create terrain] failed with <class 'AssertionError'>
[23:23:32.632] [infinigen.times] [INFO] | [terrain] failed with <class 'AssertionError'>
[23:23:32.632] [infinigen.times] [INFO] | [MAIN TOTAL] failed with <class 'AssertionError'>
Traceback (most recent call last):
File "/root/miniconda3/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/root/miniconda3/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 438, in <module>
main(args)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 409, in main
execute_tasks.main(
File "/root/infinigen/infinigen/core/execute_tasks.py", line 418, in main
execute_tasks(
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/execute_tasks.py", line 328, in execute_tasks
compose_scene_func(output_folder, scene_seed)
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 79, in compose_scene
terrain, terrain_mesh = p.run_stage('terrain', add_coarse_terrain, use_chance=False, default=(None, None))
File "/root/infinigen/infinigen/core/util/pipeline.py", line 76, in run_stage
ret = fn(*args, **kwargs)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 75, in add_coarse_terrain
terrain = Terrain(scene_seed, surface.registry, task='coarse', on_the_fly_asset_folder=output_folder/"assets")
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/terrain/core.py", line 120, in __init__
self.elements, scene_infos = scene(seed, Path(on_the_fly_asset_folder), asset_path, device)
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/terrain/scene.py", line 59, in scene
assert(last_ground_element is not None)
AssertionError:
In call to configurable 'scene' (<function scene at 0x7fe3acb5d240>)
In call to configurable 'Terrain' (<class 'infinigen.terrain.core.Terrain'>)
In call to configurable 'compose_scene' (<function compose_scene at 0x7fe417ab1090>)
In call to configurable 'execute_tasks' (<function execute_tasks at 0x7fe3a363d1b0>)
No. 2 occured 3 times coarse.err
/root/miniconda3/lib/python3.10/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for <class 'numpy.float64'> type is zero.
setattr(self, word, getattr(machar, word).flat[0])
/root/miniconda3/lib/python3.10/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class 'numpy.float64'> type is zero.
return self._float_to_str(self.smallest_subnormal)
/root/miniconda3/lib/python3.10/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for <class 'numpy.float32'> type is zero.
setattr(self, word, getattr(machar, word).flat[0])
/root/miniconda3/lib/python3.10/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class 'numpy.float32'> type is zero.
return self._float_to_str(self.smallest_subnormal)
[23:08:37.782] [root] [WARNING] | SMB_AUTH envvar is not set, smb_client upload will not work. Ignore this message if not using upload
[23:08:37.814] [infinigen.core.init] [INFO] | Converted seed='27ae7d06' to scene_seed=665746694, parsed as hexadecimal
[23:08:37.853] [infinigen.core.execute_tasks] [INFO] | infinigen version 1.2.3
[23:08:37.853] [infinigen.core.execute_tasks] [INFO] | CUDA_VISIBLE_DEVICES=
[23:08:37.853] [infinigen.times] [INFO] | [MAIN TOTAL]
[23:08:37.853] [infinigen.core.execute_tasks] [INFO] | Processing frames 1 through 480 inclusive
[23:08:37.867] [infinigen.times] [INFO] | [terrain]
[23:08:37.867] [infinigen.times] [INFO] | [Create terrain]
[23:08:37.867] [infinigen.terrain.core] [INFO] | Terrain using only on the fly on_the_fly_asset_folder=PosixPath('/root/infinigen/outputs/my_videos/27ae7d06/coarse/assets')
/root/miniconda3/lib/python3.10/site-packages/landlab/graph/graph.py:412: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.. The issue is probably coming from utils.py:1112
return self.ds.dims["node"]
/root/miniconda3/lib/python3.10/site-packages/landlab/graph/graph.py:535: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.. The issue is probably coming from utils.py:1112
return self.ds.dims["link"]
/root/miniconda3/lib/python3.10/site-packages/landlab/graph/graph.py:984: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.. The issue is probably coming from utils.py:1112
return self.ds.dims["patch"]
[23:27:33.367] [infinigen.terrain.core] [INFO] | Terrain elements: ['ground', 'landtiles', 'voronoi_rocks', 'atmosphere']
[23:27:33.367] [infinigen.times] [INFO] | [Create terrain] finished in 0:18:55.499677
[23:27:33.367] [infinigen.times] [INFO] | [meshing OpaqueTerrain]
[23:27:52.687] [infinigen.times] [INFO] | [meshing OpaqueTerrain] finished in 0:00:19.319537
[23:27:52.688] [infinigen.times] [INFO] | [meshing atmosphere]
[23:27:54.326] [infinigen.times] [INFO] | [meshing atmosphere] finished in 0:00:01.638117
[23:27:54.900] [infinigen.terrain.core] [INFO] | attribute='ground_collection' will use material infinigen.assets.materials.sand
[23:27:54.900] [infinigen.terrain.core] [INFO] | attribute='mountain_collection' will use material infinigen.assets.materials.sandstone
[23:27:54.900] [infinigen.terrain.core] [INFO] | attribute='eroded' will use material infinigen.assets.materials.dirt
[23:27:54.900] [infinigen.terrain.core] [INFO] | attribute='atmosphere' will use material infinigen.assets.materials.atmosphere_light_haze
[23:27:55.108] [infinigen.times] [INFO] | [meshing OpaqueTerrain]
[23:33:08.134] [infinigen.times] [INFO] | [meshing OpaqueTerrain] finished in 0:05:13.025885
[23:33:08.439] [infinigen.times] [INFO] | [terrain] finished in 0:24:30.571874
[23:33:08.456] [infinigen.times] [INFO] | [season]
[23:33:08.456] [infinigen.times] [INFO] | [season] finished in 0:00:00.000483
[23:33:08.457] [infinigen.times] [INFO] | [forest_params]
[23:33:08.457] [infinigen.times] [INFO] | [forest_params] finished in 0:00:00.000242
[23:33:08.461] [infinigen.times] [INFO] | [cactus]
[23:33:08.570] [infinigen.core.placement.placement] [INFO] | Placing 215 placeholders for CactusFactory(3620204085)
0%| | 0/215 [00:00<?, ?it/s]
24%|██▍ | 52/215 [00:00<00:00, 507.73it/s]
48%|████▊ | 103/215 [00:00<00:00, 303.99it/s]
64%|██████▍ | 138/215 [00:00<00:00, 228.18it/s]
77%|███████▋ | 165/215 [00:00<00:00, 182.72it/s]
87%|████████▋ | 186/215 [00:00<00:00, 157.70it/s]
95%|█████████▍| 204/215 [00:01<00:00, 139.83it/s]
100%|██████████| 215/215 [00:01<00:00, 172.09it/s]
[23:33:10.141] [infinigen.core.placement.placement] [INFO] | Placing 12 placeholders for CactusFactory(800315807)
0%| | 0/12 [00:00<?, ?it/s]
75%|███████▌ | 9/12 [00:00<00:00, 87.94it/s]
100%|██████████| 12/12 [00:00<00:00, 87.23it/s]
[23:33:10.292] [infinigen.times] [INFO] | [cactus] finished in 0:00:01.831243
[23:33:10.293] [infinigen.times] [INFO] | [camera_preprocess]
[23:33:10.316] [infinigen.times] [INFO] | [Building placeholders KDTree]
[23:33:10.316] [infinigen.core.placement.camera] [INFO] | Building placeholder kd for 227 objects
[23:33:10.319] [infinigen.times] [INFO] | [Building placeholders KDTree] finished in 0:00:00.002821
[23:33:10.319] [infinigen.times] [INFO] | [Building terrain BVHTree]
[23:33:10.345] [infinigen.times] [INFO] | [Building terrain BVHTree] failed with <class 'KeyError'>
[23:33:10.345] [infinigen.times] [INFO] | [camera_preprocess] failed with <class 'KeyError'>
[23:33:10.345] [infinigen.times] [INFO] | [MAIN TOTAL] failed with <class 'KeyError'>
Traceback (most recent call last):
File "/root/miniconda3/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/root/miniconda3/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 438, in <module>
main(args)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 409, in main
execute_tasks.main(
File "/root/infinigen/infinigen/core/execute_tasks.py", line 418, in main
execute_tasks(
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/execute_tasks.py", line 328, in execute_tasks
compose_scene_func(output_folder, scene_seed)
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 173, in compose_scene
camera_rigs, scene_preprocessed = p.run_stage('camera_preprocess', camera_preprocess, use_chance=False)
File "/root/infinigen/infinigen/core/util/pipeline.py", line 76, in run_stage
ret = fn(*args, **kwargs)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 171, in camera_preprocess
scene_preprocessed = cam_util.camera_selection_preprocessing(terrain, terrain_mesh)
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/placement/camera.py", line 442, in camera_selection_preprocessing
terrain_bvh, terrain_tags_answers, vertexwise_min_dist = terrain.build_terrain_bvh_and_attrs(terrain_tags_ratio.keys())
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/terrain/core.py", line 364, in build_terrain_bvh_and_attrs
far_ocean = self.under_water and self.surfaces[Materials.LiquidCollection].info["is_ocean"]
KeyError: 'liquid_collection'
In call to configurable 'build_terrain_bvh_and_attrs' (<function Terrain.build_terrain_bvh_and_attrs at 0x7f6b2efbfbe0>)
In call to configurable 'camera_selection_preprocessing' (<function camera_selection_preprocessing at 0x7f6b382ebd90>)
In call to configurable 'compose_scene' (<function compose_scene at 0x7f6ba3061090>)
In call to configurable 'execute_tasks' (<function execute_tasks at 0x7f6b2ec311b0>)
No. 3 occured 9 times coarse.err
/root/miniconda3/lib/python3.10/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for <class 'numpy.float64'> type is zero.
setattr(self, word, getattr(machar, word).flat[0])
/root/miniconda3/lib/python3.10/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class 'numpy.float64'> type is zero.
return self._float_to_str(self.smallest_subnormal)
/root/miniconda3/lib/python3.10/site-packages/numpy/core/getlimits.py:549: UserWarning: The value of the smallest subnormal for <class 'numpy.float32'> type is zero.
setattr(self, word, getattr(machar, word).flat[0])
/root/miniconda3/lib/python3.10/site-packages/numpy/core/getlimits.py:89: UserWarning: The value of the smallest subnormal for <class 'numpy.float32'> type is zero.
return self._float_to_str(self.smallest_subnormal)
[23:08:09.174] [root] [WARNING] | SMB_AUTH envvar is not set, smb_client upload will not work. Ignore this message if not using upload
[23:08:09.217] [infinigen.core.init] [INFO] | Converted seed='29beb3eb' to scene_seed=700363755, parsed as hexadecimal
[23:08:09.265] [infinigen.core.execute_tasks] [INFO] | infinigen version 1.2.3
[23:08:09.265] [infinigen.core.execute_tasks] [INFO] | CUDA_VISIBLE_DEVICES=
[23:08:09.266] [infinigen.times] [INFO] | [MAIN TOTAL]
[23:08:09.266] [infinigen.core.execute_tasks] [INFO] | Processing frames 1 through 480 inclusive
[23:08:09.286] [infinigen.times] [INFO] | [terrain]
[23:08:09.286] [infinigen.times] [INFO] | [Create terrain]
[23:08:09.286] [infinigen.terrain.core] [INFO] | Terrain using only on the fly on_the_fly_asset_folder=PosixPath('/root/infinigen/outputs/my_videos/29beb3eb/coarse/assets')
[23:28:22.197] [infinigen.terrain.core] [INFO] | Terrain elements: ['ground', 'voronoi_rocks', 'atmosphere']
[23:28:22.197] [infinigen.times] [INFO] | [Create terrain] finished in 0:20:12.911399
[23:28:22.198] [infinigen.times] [INFO] | [meshing OpaqueTerrain]
[23:28:41.640] [infinigen.times] [INFO] | [meshing OpaqueTerrain] finished in 0:00:19.441453
[23:28:41.640] [infinigen.times] [INFO] | [meshing atmosphere]
[23:28:44.116] [infinigen.times] [INFO] | [meshing atmosphere] finished in 0:00:02.475127
[23:28:44.948] [infinigen.terrain.core] [INFO] | attribute='ground_collection' will use material infinigen.assets.materials.mud
[23:28:44.948] [infinigen.terrain.core] [INFO] | attribute='mountain_collection' will use material infinigen.assets.materials.mountain
[23:28:44.949] [infinigen.terrain.core] [INFO] | attribute='atmosphere' will use material infinigen.assets.materials.atmosphere_light_haze
[23:28:45.790] [infinigen.times] [INFO] | [meshing OpaqueTerrain]
[23:30:26.174] [infinigen.times] [INFO] | [meshing OpaqueTerrain] finished in 0:01:40.384051
[23:30:26.373] [infinigen.times] [INFO] | [terrain] finished in 0:22:17.087186
[23:30:26.386] [infinigen.times] [INFO] | [fancy_clouds]
[23:30:26.438] [infinigen.times] [INFO] | [fancy_clouds] finished in 0:00:00.052613
[23:30:26.439] [infinigen.times] [INFO] | [season]
[23:30:26.440] [infinigen.times] [INFO] | [season] finished in 0:00:00.000396
[23:30:26.440] [infinigen.times] [INFO] | [forest_params]
[23:30:26.440] [infinigen.times] [INFO] | [forest_params] finished in 0:00:00.000240
[23:30:26.441] [infinigen.times] [INFO] | [trees]
[23:30:26.444] [infinigen.core.placement.factory] [INFO] | Generating collection of 5 assets from LeafFactoryBroadleaf(2182536)
0%| | 0/5 [00:00<?, ?it/s]
20%|██ | 1/5 [00:04<00:17, 4.36s/it]
40%|████ | 2/5 [00:08<00:13, 4.40s/it]
60%|██████ | 3/5 [00:13<00:08, 4.45s/it]
80%|████████ | 4/5 [00:17<00:04, 4.44s/it]
100%|██████████| 5/5 [00:22<00:00, 4.43s/it]
100%|██████████| 5/5 [00:22<00:00, 4.42s/it]
[23:31:22.762] [infinigen.core.placement.factory] [INFO] | Generating collection of 5 assets from FruitFactoryCoconutgreen(2182536)
0%| | 0/5 [00:00<?, ?it/s]
20%|██ | 1/5 [00:00<00:03, 1.16it/s]
40%|████ | 2/5 [00:01<00:02, 1.09it/s]
60%|██████ | 3/5 [00:02<00:01, 1.09it/s]
80%|████████ | 4/5 [00:03<00:00, 1.10it/s]
100%|██████████| 5/5 [00:04<00:00, 1.11it/s]
100%|██████████| 5/5 [00:04<00:00, 1.10it/s]
[23:31:27.816] [infinigen.core.placement.placement] [INFO] | Placing 5 placeholders for TreeFactory(2182536)
0%| | 0/5 [00:00<?, ?it/s]
40%|████ | 2/5 [00:00<00:00, 18.04it/s]
80%|████████ | 4/5 [00:00<00:00, 17.77it/s]
100%|██████████| 5/5 [00:00<00:00, 17.75it/s]
[23:31:28.100] [infinigen.core.placement.factory] [INFO] | Generating collection of 5 assets from LeafFactoryGinko(3339272)
0%| | 0/5 [00:00<?, ?it/s]
20%|██ | 1/5 [00:01<00:05, 1.26s/it]
40%|████ | 2/5 [00:02<00:03, 1.22s/it]
60%|██████ | 3/5 [00:03<00:02, 1.20s/it]
80%|████████ | 4/5 [00:04<00:01, 1.19s/it]
100%|██████████| 5/5 [00:06<00:00, 1.21s/it]
100%|██████████| 5/5 [00:06<00:00, 1.21s/it]
[23:31:41.092] [root] [WARNING] | apply_modifers on obj.name='Tree.009' m.name='add_tree_children' raised Error: Evaluated geometry from modifier does not contain a mesh
, ignoring and returning empty mesh for pre-3.5 compatibility reasons
[23:31:41.164] [infinigen.times] [INFO] | [trees] failed with <class 'AssertionError'>
[23:31:41.165] [infinigen.times] [INFO] | [MAIN TOTAL] failed with <class 'AssertionError'>
Traceback (most recent call last):
File "/root/miniconda3/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/root/miniconda3/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 438, in <module>
main(args)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 409, in main
execute_tasks.main(
File "/root/infinigen/infinigen/core/execute_tasks.py", line 418, in main
execute_tasks(
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/execute_tasks.py", line 328, in execute_tasks
compose_scene_func(output_folder, scene_seed)
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 113, in compose_scene
p.run_stage('trees', add_trees, terrain_mesh)
File "/root/infinigen/infinigen/core/util/pipeline.py", line 76, in run_stage
ret = fn(*args, **kwargs)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 109, in add_trees
fac = trees.TreeFactory(np.random.randint(1e7), coarse=True)
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/assets/trees/generate.py", line 383, in __init__
twig_col = make_twig_collection(seed, twig_params, leaf_params, trunk_surface, self.n_leaf, self.n_twig, leaf_type, season=season)
File "/root/infinigen/infinigen/assets/trees/generate.py", line 307, in make_twig_collection
col = make_asset_collection(twig_factory, n_twig, verbose=False, distance=twig_valid_dist)
File "/root/infinigen/infinigen/core/placement/factory.py", line 154, in make_asset_collection
obj = spawn_fns[fn_idx](i=i, **kwargs)
File "/root/infinigen/infinigen/core/placement/factory.py", line 114, in spawn_asset
obj = self.create_asset(i=i, placeholder=placeholder, **params)
File "/root/infinigen/infinigen/assets/trees/generate.py", line 170, in create_asset
assert len(skin_obj.children) == 0
AssertionError:
In call to configurable 'TreeFactory' (<class 'infinigen.assets.trees.generate.TreeFactory'>)
In call to configurable 'compose_scene' (<function compose_scene at 0x7fe6d3829090>)
In call to configurable 'execute_tasks' (<function execute_tasks at 0x7fe65f58d1b0>)
No.4 occured 5 times
Searching for camera viewpoints: 0%| | 0/20 [09:47<?, ?it/s]
[23:48:03.368] [infinigen.times] [INFO] | [pose_cameras] failed with <class 'ValueError'>
[23:48:03.369] [infinigen.times] [INFO] | [MAIN TOTAL] failed with <class 'ValueError'>
Traceback (most recent call last):
File "/root/miniconda3/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/root/miniconda3/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 438, in <module>
main(args)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 409, in main
execute_tasks.main(
File "/root/infinigen/infinigen/core/execute_tasks.py", line 418, in main
execute_tasks(
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/execute_tasks.py", line 328, in execute_tasks
compose_scene_func(output_folder, scene_seed)
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 176, in compose_scene
p.run_stage(
File "/root/infinigen/infinigen/core/util/pipeline.py", line 76, in run_stage
ret = fn(*args, **kwargs)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 178, in <lambda>
lambda: cam_util.configure_cameras(camera_rigs, bbox, scene_preprocessed),
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/placement/camera.py", line 462, in configure_cameras
base_views = compute_base_views(
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/placement/camera.py", line 413, in compute_base_views
raise ValueError(f'Could not find {n_views} camera views')
ValueError: Could not find 1 camera views
In call to configurable 'compute_base_views' (<function compute_base_views at 0x7faf2e43a170>)
In call to configurable 'configure_cameras' (<function configure_cameras at 0x7faf2e43b640>)
In call to configurable 'compose_scene' (<function compose_scene at 0x7faf991c1090>)
In call to configurable 'execute_tasks' (<function execute_tasks at 0x7faf24d751b0>)
No.5 occured 11 times
[23:53:47.387] [infinigen.core.placement.animation_policy] [INFO] | Failed attempt=9 out of max_full_retries=10 for obj.name='CameraRigs/0'
[23:53:47.387] [infinigen.times] [INFO] | [animate_cameras] failed with <class 'ValueError'>
[23:53:47.387] [infinigen.times] [INFO] | [MAIN TOTAL] failed with <class 'ValueError'>
Traceback (most recent call last):
File "/root/miniconda3/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/root/miniconda3/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 438, in <module>
main(args)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 409, in main
execute_tasks.main(
File "/root/infinigen/infinigen/core/execute_tasks.py", line 418, in main
execute_tasks(
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/execute_tasks.py", line 328, in execute_tasks
compose_scene_func(output_folder, scene_seed)
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 213, in compose_scene
p.run_stage('animate_cameras', lambda: cam_util.animate_cameras(
File "/root/infinigen/infinigen/core/util/pipeline.py", line 76, in run_stage
ret = fn(*args, **kwargs)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 213, in <lambda>
p.run_stage('animate_cameras', lambda: cam_util.animate_cameras(
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/placement/camera.py", line 515, in animate_cameras
animation_policy.animate_trajectory(
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/placement/animation_policy.py", line 470, in animate_trajectory
raise ValueError(err)
ValueError: Animation for obj.name='CameraRigs/0' failed with max_full_retries=10 and max_step_tries=25, quitting
In call to configurable 'animate_trajectory' (<function animate_trajectory at 0x7f20555ce0e0>)
In call to configurable 'animate_cameras' (<function animate_cameras at 0x7f20555e3490>)
In call to configurable 'compose_scene' (<function compose_scene at 0x7f20c03b5090>)
In call to configurable 'execute_tasks' (<function execute_tasks at 0x7f204bf251b0>)
No. 6 occured once
Traceback (most recent call last):
File "/root/miniconda3/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/root/miniconda3/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 438, in <module>
main(args)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 409, in main
execute_tasks.main(
File "/root/infinigen/infinigen/core/execute_tasks.py", line 418, in main
execute_tasks(
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/execute_tasks.py", line 328, in execute_tasks
compose_scene_func(output_folder, scene_seed)
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 173, in compose_scene
camera_rigs, scene_preprocessed = p.run_stage('camera_preprocess', camera_preprocess, use_chance=False)
File "/root/infinigen/infinigen/core/util/pipeline.py", line 76, in run_stage
ret = fn(*args, **kwargs)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 171, in camera_preprocess
scene_preprocessed = cam_util.camera_selection_preprocessing(terrain, terrain_mesh)
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/placement/camera.py", line 442, in camera_selection_preprocessing
terrain_bvh, terrain_tags_answers, vertexwise_min_dist = terrain.build_terrain_bvh_and_attrs(terrain_tags_ratio.keys())
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/terrain/core.py", line 364, in build_terrain_bvh_and_attrs
far_ocean = self.under_water and self.surfaces[Materials.LiquidCollection].info["is_ocean"]
AttributeError: module 'infinigen.assets.materials.lava' has no attribute 'info'
In call to configurable 'build_terrain_bvh_and_attrs' (<function Terrain.build_terrain_bvh_and_attrs at 0x7f98430d3be0>)
In call to configurable 'camera_selection_preprocessing' (<function camera_selection_preprocessing at 0x7f984c18fd90>)
In call to configurable 'compose_scene' (<function compose_scene at 0x7f98b6f41090>)
In call to configurable 'execute_tasks' (<function execute_tasks at 0x7f9842ab51b0>)
No.7 occured 4 times fineterrain.err
python: ocmesher/source/core.cpp:880: void finalize_extra_verts(sdfT*, sdfT*, T*, sdfT*, sdfT*, T*): Assertion `w != 0' failed.
No.8 occured 5 times
[00:34:32.770] [infinigen.times] [INFO] | [flying_creatures] failed with <class 'ValueError'>
[00:34:32.771] [infinigen.times] [INFO] | [MAIN TOTAL] failed with <class 'ValueError'>
Traceback (most recent call last):
File "/root/miniconda3/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/root/miniconda3/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 438, in <module>
main(args)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 409, in main
execute_tasks.main(
File "/root/infinigen/infinigen/core/execute_tasks.py", line 418, in main
execute_tasks(
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/execute_tasks.py", line 328, in execute_tasks
compose_scene_func(output_folder, scene_seed)
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 211, in compose_scene
pois += p.run_stage('flying_creatures', flying_creatures, default=[])
File "/root/infinigen/infinigen/core/util/pipeline.py", line 76, in run_stage
ret = fn(*args, **kwargs)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 209, in flying_creatures
col = placement.scatter_placeholders_mesh(terrain_center, fac, num_placeholders=n, overall_density=1, altitude=0.2)
File "/root/infinigen/infinigen/core/placement/placement.py", line 99, in scatter_placeholders_mesh
return scatter_placeholders(locations, factory)
File "/root/infinigen/infinigen/core/placement/placement.py", line 106, in scatter_placeholders
obj = factory.spawn_placeholder(i, loc, mathutils.Euler((0, 0, rot_z)))
File "/root/infinigen/infinigen/core/placement/factory.py", line 72, in spawn_placeholder
obj = self.create_placeholder(i=i, loc=loc, rot=rot)
File "/root/infinigen/infinigen/assets/creatures/bird.py", line 308, in create_placeholder
curve = animation_policy.policy_create_bezier_path(p, self.bvh, self.policy, retry_rotation=True, max_full_retries=30, fatal=True)
File "/root/infinigen/infinigen/core/placement/animation_policy.py", line 483, in policy_create_bezier_path
animate_trajectory(temp, bvh, policy_func, **kwargs)
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/placement/animation_policy.py", line 470, in animate_trajectory
raise ValueError(err)
ValueError: Animation for obj.name='policy_create_bezier_path.temp' failed with max_full_retries=30 and max_step_tries=25, quitting
In call to configurable 'animate_trajectory' (<function animate_trajectory at 0x7fea970d20e0>)
In call to configurable 'compose_scene' (<function compose_scene at 0x7feb01e49090>)
In call to configurable 'execute_tasks' (<function execute_tasks at 0x7fea8da0d1b0>)
No. 9 occured 3 times
apply_modifers on obj.name='Icosphere.001' m.name='geo_tentacles' raised Error: Evaluated geometry from modifier does not contain a mesh
[00:38:03.535] [infinigen.times] [INFO] | [populate_clouds] failed with <class 'AssertionError'>
[00:38:03.535] [infinigen.times] [INFO] | [MAIN TOTAL] failed with <class 'AssertionError'>
Traceback (most recent call last):
File "/root/miniconda3/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/root/miniconda3/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 438, in <module>
main(args)
File "/root/infinigen/infinigen_examples/generate_nature.py", line 409, in main
execute_tasks.main(
File "/root/infinigen/infinigen/core/execute_tasks.py", line 418, in main
execute_tasks(
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/execute_tasks.py", line 337, in execute_tasks
populate_scene(output_folder, scene_seed)
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/execute_tasks.py", line 118, in populate_scene
p.run_stage('populate_clouds', use_chance=False,
File "/root/infinigen/infinigen/core/util/pipeline.py", line 76, in run_stage
ret = fn(*args, **kwargs)
File "/root/infinigen/infinigen/core/execute_tasks.py", line 119, in <lambda>
fn=lambda: placement.populate_all(weather.CloudFactory, camera, dist_cull=None, vis_cull=None))
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1605, in gin_wrapper
utils.augment_exception_message_and_reraise(e, err_str)
File "/root/miniconda3/lib/python3.10/site-packages/gin/utils.py", line 41, in augment_exception_message_and_reraise
raise proxy.with_traceback(exception.__traceback__) from None
File "/root/miniconda3/lib/python3.10/site-packages/gin/config.py", line 1582, in gin_wrapper
return fn(*new_args, **new_kwargs)
File "/root/infinigen/infinigen/core/placement/placement.py", line 234, in populate_all
new_assets, pholders = populate_collection(
File "/root/infinigen/infinigen/core/placement/placement.py", line 156, in populate_collection
dists, vis_dists = camera_util.min_dists_from_cam_trajectory(points, camera)
File "/root/infinigen/infinigen/core/util/camera.py", line 152, in min_dists_from_cam_trajectory
assert len(points.shape) == 2 and points.shape[-1] == 3
AssertionError:
In call to configurable 'populate_all' (<function populate_all at 0x7f3a09c21ea0>)
In call to configurable 'populate_scene' (<function populate_scene at 0x7f39ffbd77f0>)
In call to configurable 'execute_tasks' (<function execute_tasks at 0x7f39ff7691b0>)
No.10 occured 4 times
Error: Failed to build OptiX acceleration structure
Error: System is out of GPU memory
No. 11 occured 7 times crash_summaries.txt
04/07 03:01AM outputs/my_videos/90e103/logs/shortrender_0_0_0001_0.err reason='Could not summarize cause, check outputs/my_videos/90e103/logs/shortrender_0_0_0001_0.err' node=None fatal=False
shortrender_0_0_0001_0.err it shows no error but stuck here:
[02:25:35.906] [infinigen.times] [INFO] | [get_camera] finished in 0:00:00.000106
[02:25:35.906] [infinigen.times] [INFO] | [Actual rendering]
No.12 occured twice Two video generation tasks completed all the steps successfully, but every frame of the generated images is entirely black.
@araistrick Could you please check the error mentioned above? This is quite urgent for my current work. Thank you!
Hello, apologies for the delay, we are looking into this now. @mazeyu will look at the terrain related issues.
For the camera-related crashes, have you made any changes to camera selection or animation? Can you provide (or just describe in detail) what parts of the code have been changed? Typically we do expect some crashes when the system cant find a good camera trajectory, but these are usually <5% of scenes.
Hello, apologies for the delay, we are looking into this now. @mazeyu will look at the terrain related issues.
For the camera-related crashes, have you made any changes to camera selection or animation? Can you provide (or just describe in detail) what parts of the code have been changed? Typically we do expect some crashes when the system cant find a good camera trajectory, but these are usually <5% of scenes.
@araistrick @mazeyu Thank you!
I made few changes to the source code, except for removing the second camera setting in infinigen_examples/configs/base.gin
, which means that
changing
camera.spawn_camera_rigs.n_camera_rigs = 1
camera.spawn_camera_rigs.camera_rig_config = [
{'loc': (0, 0, 0), 'rot_euler': (0, 0, 0)},
{'loc': (0.075, 0, 0), 'rot_euler': (0, 0, 0)}
]
to
camera.spawn_camera_rigs.n_camera_rigs = 1
camera.spawn_camera_rigs.camera_rig_config = [
{'loc': (0, 0, 0), 'rot_euler': (0, 0, 0)}
]
no other changes.
However, I suspect that the reason for so many crashes is that I set the number of rendered images to 480 instead of the original 192. Have you tried running the experiment with a higher number of images to see if it still runs well?
The increased crashrate is almost certainly due to the 480-frame videos. The system runtime and crashrate is proportional to the total amount of scene content seen by the camera in the full video, so if you want a long video but can accept slow camera movement then I recommend slowing down the camera.
Also FYI I have released a prerelease v1.3 (the next version) as branch rc_1.3.2 which is generally more efficient for video rendering, if you intend to render lots of videos you should use this.
Per-frame object names and locations are available in our Objects.json output, see the GroundTruthAnnotations.md documentation for more details. Scene category (desert forest etc) isn't saved anywhere but can be parsed from the coarse logs.
For creating a circular arrangement of cameras I would recommend ignoring the animation policy code, as this is more intended to make a continuous trajectory of camera poses. You can comment out the existing camera code in generate_nature.py then just manually arrange the cameras by setting 'cam_rigs[i].location = (x,y,z)' and similarly for 'cam_rigs[I].rotation_euler'. I may be able to publish code for this in the next week or so but I am not sure the exact timeline.
@araistrick Has there been any progress on this issue? I have tried to increase n_camera_rigs and set each camera_rig[i]. Also, to prevent the camera parameters from being changed to other values, I have set camera_policy to be stationary. However, I am not achieving the expected results. There is an unexplained crash, and it seems that excessive camera rotation angles can also cause an overly large scene volume, leading to issues like 'cuda out of memory'. Do you have time to take a look at this issue? Thank you!
Hi,
For now, to avoid out-of-memory due to scene volumes, you can add export.spherical = True
in -p
argument and iterate_scene_tasks.view_block_size=8
(or something) in --pipeline_overrides
. It creates multiple terrain meshes instead of a single mesh, though it causes a little flickering.
Describe the bug
Hi, @araistrick Thanks for this excellent work! I want to inquire about the speed of video generation with InfiniGen. Under default settings (24fps, 192 frames), which means generating an 8-second video, even with GPU enabled for cuda_terrian and rendering, my machine took 3 days. Because I plan to generate a large number of videos with InfiniGen, this speed is unacceptable. Therefore, may i ask:
num_scenes
to a value other than1
seems easily causes crashes? (2)When running on a single machine with a single GPU card,compared tolocal_64GB
, setting it tolocal_256GB
slows down the speed of individual tasks? (3)I have no idea how to set warmup_sec. (4)If LocalScheduleHandler.jobs_per_gpu are set according toVRAM/20GB
, it is also easy to encounterGPU out of memory
crashes, is that due to shortrender failures, which then trigger backuprender?Reproduce
This is command I use:
python -m infinigen.datagen.manage_jobs --num_scenes 200 --pipeline_configs monocular_video cuda_terrain local_256GB --warmup_sec 6000 --configs video high_quality_terrain --output_folder outputs/my_videos
Platform