code: def create_split_files(scene_dir):
      # 10% as test set
      # 10% as validation set
      # 80% as training set
      dummy_scene = NeuManReader.read_scene(scene_dir)
      scene_length = len(dummy_scene.captures)
      num_val = scene_length // 5
      length = int(1 / (num_val) * scene_length)
      offset = length // 2
      val_list = list(range(scene_length))[offset::length]
      train_list = list(set(range(scene_length)) - set(val_list))
      test_list = val_list[: len(val_list) // 2]
      val_list = val_list[len(val_list) // 2 :]
      assert len(train_list) > 0
      assert len(test_list) > 0
      assert len(val_list) > 0
      splits = []
      for l, split in zip(
          [train_list, val_list, test_list], ["train", "val", "test"]
      ):
          output = []
          save_path = os.path.join(scene_dir, f"{split}_split.txt")
          for i, cap in enumerate(dummy_scene.captures):
              if i in l:
                  output.append(os.path.basename(cap.image_path))
          with open(save_path, "w") as f:
              for item in output:
                  f.write("%s\n" % item)
          splits.append(save_path)
      return splits
  
imports: import os
  import joblib
  import numpy
  import torch
  from tqdm import tqdm
  import PIL
  import scipy
  from data_io import colmap_helper
  from geometry import pcd_projector
  from cameras import captures, contents
  from scenes import scene
  from utils import utils, ray_utils
  from models.smpl import SMPL
label_desc: Use image node_id 1 for calling a global function with example usage: create_split_files(scene_dir) and returns: splits