NIRVANALAN commited on
Commit
8e4a17a
1 Parent(s): 0a51705
app.py CHANGED
@@ -236,7 +236,7 @@ def main(args):
236
  eval_data=None,
237
  **args)
238
 
239
- @spaces.GPU(duration=15)
240
  def reconstruct_and_export(*args, **kwargs):
241
  return training_loop_class.eval_i23d_and_export(*args, **kwargs)
242
 
@@ -355,7 +355,7 @@ def main(args):
355
  gr.Markdown(
356
  """
357
  ## Comments:
358
- 1. The sampling time varies since ODE-based sampling method (dopri5 by default) has adaptive internal step, and reducing sampling steps may not reduce the overal sampling time. Sampling steps=250 is the emperical value that works well in most cases.
359
  2. The 3D viewer shows a colored .glb mesh extracted from volumetric tri-plane, and may differ slightly with the volume rendering result.
360
  3. If you find your result unsatisfying, tune the CFG scale and change the random seed. Usually slightly increase the CFG value can lead to better performance.
361
  3. Known limitations include:
 
236
  eval_data=None,
237
  **args)
238
 
239
+ @spaces.GPU(duration=30)
240
  def reconstruct_and_export(*args, **kwargs):
241
  return training_loop_class.eval_i23d_and_export(*args, **kwargs)
242
 
 
355
  gr.Markdown(
356
  """
357
  ## Comments:
358
+ 1. Each sample shall take within 20 seconds on Gradio ZeroSpace, and 6~7 seconds locally (A100).
359
  2. The 3D viewer shows a colored .glb mesh extracted from volumetric tri-plane, and may differ slightly with the volume rendering result.
360
  3. If you find your result unsatisfying, tune the CFG scale and change the random seed. Usually slightly increase the CFG value can lead to better performance.
361
  3. Known limitations include:
nsr/lsgm/flow_matching_trainer.py CHANGED
@@ -750,14 +750,14 @@ class FlowMatchingEngine(TrainLoop3DDiffusionLSGM_crossattn):
750
 
751
  def sample_and_save(batch_c):
752
 
753
- with th.cuda.amp.autocast(dtype=self.dtype,
754
- enabled=self.mp_trainer.use_amp):
755
 
756
- c, uc = self.conditioner.get_unconditional_conditioning(
757
- batch_c,
758
- force_uc_zero_embeddings=ucg_keys
759
- if len(self.conditioner.embedders) > 0 else [],
760
- )
761
 
762
  for k in c:
763
  if isinstance(c[k], th.Tensor):
 
750
 
751
  def sample_and_save(batch_c):
752
 
753
+ # with th.cuda.amp.autocast(dtype=self.dtype,
754
+ # enabled=self.mp_trainer.use_amp):
755
 
756
+ c, uc = self.conditioner.get_unconditional_conditioning(
757
+ batch_c,
758
+ force_uc_zero_embeddings=ucg_keys
759
+ if len(self.conditioner.embedders) > 0 else [],
760
+ )
761
 
762
  for k in c:
763
  if isinstance(c[k], th.Tensor):
nsr/train_util_diffusion.py CHANGED
@@ -205,8 +205,8 @@ class TrainLoopDiffusionWithRec(TrainLoop):
205
  rec_model(latent=ddpm_latent,
206
  behaviour='decode_after_vae_no_render'))
207
 
208
- # if export_mesh:
209
- if False:
210
  import mcubes
211
  import trimesh
212
  dump_path = f'{logger.get_dir()}/mesh/'
@@ -374,7 +374,7 @@ class TrainLoopDiffusionWithRec(TrainLoop):
374
  print('logged video to: ', f'{vid_dump_path}')
375
 
376
  del vis, pred_vis, micro, pred,
377
- mesh_dump_path = 'logs/LSGM/inference/Objaverse/i23d/dit-L2/gradio_app/mesh/cfg=4.0_sample-0-rotatex.obj'
378
 
379
  return vid_dump_path, mesh_dump_path
380
 
 
205
  rec_model(latent=ddpm_latent,
206
  behaviour='decode_after_vae_no_render'))
207
 
208
+ if export_mesh:
209
+ # if False:
210
  import mcubes
211
  import trimesh
212
  dump_path = f'{logger.get_dir()}/mesh/'
 
374
  print('logged video to: ', f'{vid_dump_path}')
375
 
376
  del vis, pred_vis, micro, pred,
377
+ # mesh_dump_path = 'logs/LSGM/inference/Objaverse/i23d/dit-L2/gradio_app/mesh/cfg=4.0_sample-0-rotatex.obj'
378
 
379
  return vid_dump_path, mesh_dump_path
380