diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/1.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/1.py
new file mode 100644
index 0000000000000000000000000000000000000000..1e03a982fc1c9a329cc3dcee25aac82a7222aa59
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/1.py
@@ -0,0 +1,147 @@
+_base_ = ["../../../_base_/gdrn_base.py"]
+
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/1"
+INPUT = dict(
+    DZI_PAD_SCALE=1.5,
+    TRUNCATE_FG=True,
+    CHANGE_BG_PROB=0.5,
+    COLOR_AUG_PROB=0.8,
+    MIN_SIZE_TRAIN=540,
+    MAX_SIZE_TRAIN=720,
+    MIN_SIZE_TEST=540,
+    MAX_SIZE_TEST=720,
+    IMG_AUG_RESIZE=False,
+    COLOR_AUG_TYPE="code",
+    COLOR_AUG_CODE=(
+        "Sequential(["
+        # Sometimes(0.5, PerspectiveTransform(0.05)),
+        # Sometimes(0.5, CropAndPad(percent=(-0.05, 0.1))),
+        # Sometimes(0.5, Affine(scale=(1.0, 1.2))),
+        "Sometimes(0.5, CoarseDropout( p=0.2, size_percent=0.05) ),"
+        "Sometimes(0.4, GaussianBlur((0., 3.))),"
+        "Sometimes(0.3, pillike.EnhanceSharpness(factor=(0., 50.))),"
+        "Sometimes(0.3, pillike.EnhanceContrast(factor=(0.2, 50.))),"
+        "Sometimes(0.5, pillike.EnhanceBrightness(factor=(0.1, 6.))),"
+        "Sometimes(0.3, pillike.EnhanceColor(factor=(0., 20.))),"
+        "Sometimes(0.5, Add((-25, 25), per_channel=0.3)),"
+        "Sometimes(0.3, Invert(0.2, per_channel=True)),"
+        "Sometimes(0.5, Multiply((0.6, 1.4), per_channel=0.5)),"
+        "Sometimes(0.5, Multiply((0.6, 1.4))),"
+        "Sometimes(0.1, AdditiveGaussianNoise(scale=10, per_channel=True)),"
+        "Sometimes(0.5, iaa.contrast.LinearContrast((0.5, 2.2), per_channel=0.3)),"
+        "Sometimes(0.5, Grayscale(alpha=(0.0, 1.0))),"  # maybe remove for det
+        "], random_order=True)"
+        # cosy+aae
+    ),
+)
+
+SOLVER = dict(
+    IMS_PER_BATCH=36,
+    TOTAL_EPOCHS=100,
+    LR_SCHEDULER_NAME="flat_and_anneal",
+    ANNEAL_METHOD="cosine",  # "cosine"
+    ANNEAL_POINT=0.72,
+    OPTIMIZER_CFG=dict(_delete_=True, type="Ranger", lr=8e-4, weight_decay=0.01),
+    WEIGHT_DECAY=0.0,
+    WARMUP_FACTOR=0.001,
+    WARMUP_ITERS=1000,
+)
+
+DATASETS = dict(
+    TRAIN=("tless_1_train_pbr",),
+    TRAIN2=("tless_1_train_primesense"),
+    TRAIN2_RATIO=0.3,
+    TEST=("tless_bop_test_primesense",),
+    # AP        AP50    AP75    AR      inf.time
+    DET_FILES_TEST=("datasets/BOP_DATASETS/tless/test/test_bboxes/yolox_x_640_tless_real_pbr_tless_bop_test.json",),
+    DET_TOPK_PER_OBJ=100,
+)
+
+DATALOADER = dict(
+    # Number of data loading threads
+    NUM_WORKERS=8,
+    FILTER_VISIB_THR=0.3,
+)
+
+MODEL = dict(
+    LOAD_DETS_TEST=True,
+    PIXEL_MEAN=[0.0, 0.0, 0.0],
+    PIXEL_STD=[255.0, 255.0, 255.0],
+    BBOX_TYPE="AMODAL_CLIP",  # VISIB or AMODAL
+    POSE_NET=dict(
+        NAME="GDRN_double_mask",
+        XYZ_ONLINE=True,
+        BACKBONE=dict(
+            FREEZE=False,
+            PRETRAINED="timm",
+            INIT_CFG=dict(
+                type="timm/convnext_base",
+                pretrained=True,
+                in_chans=3,
+                features_only=True,
+                out_indices=(3,),
+            ),
+        ),
+        ## geo head: Mask, XYZ, Region
+        GEO_HEAD=dict(
+            FREEZE=False,
+            INIT_CFG=dict(
+                type="TopDownDoubleMaskXyzRegionHead",
+                in_dim=1024,  # this is num out channels of backbone conv feature
+            ),
+            NUM_REGIONS=64,
+        ),
+        PNP_NET=dict(
+            INIT_CFG=dict(norm="GN", act="gelu"),
+            REGION_ATTENTION=True,
+            WITH_2D_COORD=True,
+            ROT_TYPE="allo_rot6d",
+            TRANS_TYPE="centroid_z",
+        ),
+        LOSS_CFG=dict(
+            # xyz loss ----------------------------
+            XYZ_LOSS_TYPE="L1",  # L1 | CE_coor
+            XYZ_LOSS_MASK_GT="visib",  # trunc | visib | obj
+            XYZ_LW=1.0,
+            # mask loss ---------------------------
+            MASK_LOSS_TYPE="L1",  # L1 | BCE | CE
+            MASK_LOSS_GT="trunc",  # trunc | visib | gt
+            MASK_LW=1.0,
+            # full mask loss ---------------------------
+            FULL_MASK_LOSS_TYPE="L1",  # L1 | BCE | CE
+            FULL_MASK_LW=1.0,
+            # region loss -------------------------
+            REGION_LOSS_TYPE="CE",  # CE
+            REGION_LOSS_MASK_GT="visib",  # trunc | visib | obj
+            REGION_LW=1.0,
+            # pm loss --------------
+            PM_LOSS_SYM=True,  # NOTE: sym loss
+            PM_R_ONLY=True,  # only do R loss in PM
+            PM_LW=1.0,
+            # centroid loss -------
+            CENTROID_LOSS_TYPE="L1",
+            CENTROID_LW=1.0,
+            # z loss -----------
+            Z_LOSS_TYPE="L1",
+            Z_LW=1.0,
+        ),
+    ),
+)
+
+TEST = dict(EVAL_PERIOD=0, VIS=False, TEST_BBOX_TYPE="est")  # gt | est
+
+VAL = dict(
+    DATASET_NAME="tless",
+    SCRIPT_PATH="lib/pysixd/scripts/eval_pose_results_more.py",
+    TARGETS_FILENAME="test_targets_bop19.json",
+    ERROR_TYPES="mspd,mssd,vsd,ad,reS,teS",
+    RENDERER_TYPE="cpp",  # cpp, python, egl
+    SPLIT="test",
+    SPLIT_TYPE="",
+    N_TOP=-1,  # SISO: 1, VIVO: -1 (for LINEMOD, 1/-1 are the same)
+    EVAL_CACHED=False,  # if the predicted poses have been saved
+    SCORE_ONLY=False,  # if the errors have been calculated
+    EVAL_PRINT_ONLY=False,  # if the scores/recalls have been saved
+    EVAL_PRECISION=False,  # use precision or recall
+    USE_BOP=True,  # whether to use bop toolkit
+)
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/10.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/10.py
new file mode 100644
index 0000000000000000000000000000000000000000..6889a31fb5ea38c3bd1fa44da0ca267e4ea97dce
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/10.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/10"
+DATASETS = dict(TRAIN=("tless_10_train_pbr",), TRAIN2=("tless_10_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/11.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/11.py
new file mode 100644
index 0000000000000000000000000000000000000000..158c183d03e9cc87c4b2c1f3b2fcc30c98a89c2d
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/11.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/11"
+DATASETS = dict(TRAIN=("tless_11_train_pbr",), TRAIN2=("tless_11_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/12.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/12.py
new file mode 100644
index 0000000000000000000000000000000000000000..aa01e22fa14f0e1ae57ebc1224264cff4d2561e5
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/12.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/12"
+DATASETS = dict(TRAIN=("tless_12_train_pbr",), TRAIN2=("tless_12_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/13.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/13.py
new file mode 100644
index 0000000000000000000000000000000000000000..026b8dc8bfdd8f48e8efe1cec1fe02149fd88358
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/13.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/13"
+DATASETS = dict(TRAIN=("tless_13_train_pbr",), TRAIN2=("tless_13_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/14.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/14.py
new file mode 100644
index 0000000000000000000000000000000000000000..d4976e38380481d9566f840a61abcee40fc8a108
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/14.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/14"
+DATASETS = dict(TRAIN=("tless_14_train_pbr",), TRAIN2=("tless_14_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/15.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/15.py
new file mode 100644
index 0000000000000000000000000000000000000000..5ddeeaa161bde318843e5ea842782c42fbd643fb
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/15.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/15"
+DATASETS = dict(TRAIN=("tless_15_train_pbr",), TRAIN2=("tless_15_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/16.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/16.py
new file mode 100644
index 0000000000000000000000000000000000000000..d8812e0dcd0842190686af17ab8682d6f1dac312
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/16.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/16"
+DATASETS = dict(TRAIN=("tless_16_train_pbr",), TRAIN2=("tless_16_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/17.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/17.py
new file mode 100644
index 0000000000000000000000000000000000000000..d91e3751a1a9f7c1bb0ac3ed2b5e9a08be11ee69
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/17.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/17"
+DATASETS = dict(TRAIN=("tless_17_train_pbr",), TRAIN2=("tless_17_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/18.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/18.py
new file mode 100644
index 0000000000000000000000000000000000000000..729d0478db390bfa0e297211623314e9361b9678
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/18.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/18"
+DATASETS = dict(TRAIN=("tless_18_train_pbr",), TRAIN2=("tless_18_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/19.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/19.py
new file mode 100644
index 0000000000000000000000000000000000000000..8d8b62767d7f911a4af0c795350bbac1465fd398
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/19.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/19"
+DATASETS = dict(TRAIN=("tless_19_train_pbr",), TRAIN2=("tless_19_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/2.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/2.py
new file mode 100644
index 0000000000000000000000000000000000000000..cef898b5f9ab74288c15f4744a1bcaa794f25e72
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/2.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/2"
+DATASETS = dict(TRAIN=("tless_2_train_pbr",), TRAIN2=("tless_2_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/20.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/20.py
new file mode 100644
index 0000000000000000000000000000000000000000..79a594ee6010ed17a399a5104799cd727135cb9c
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/20.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/20"
+DATASETS = dict(TRAIN=("tless_20_train_pbr",), TRAIN2=("tless_20_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/21.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/21.py
new file mode 100644
index 0000000000000000000000000000000000000000..cbebc89dae6c4adccb69ffa46715cb9985bde899
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/21.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/21"
+DATASETS = dict(TRAIN=("tless_21_train_pbr",), TRAIN2=("tless_21_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/22.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/22.py
new file mode 100644
index 0000000000000000000000000000000000000000..8003d7c0ce10cc5730d024c68b4d5e8459c6ee33
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/22.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/22"
+DATASETS = dict(TRAIN=("tless_22_train_pbr",), TRAIN2=("tless_22_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/23.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/23.py
new file mode 100644
index 0000000000000000000000000000000000000000..2e960277ef2ec3f57061f08f134c11f5cb74134e
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/23.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/23"
+DATASETS = dict(TRAIN=("tless_23_train_pbr",), TRAIN2=("tless_23_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/24.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/24.py
new file mode 100644
index 0000000000000000000000000000000000000000..2e1ef834764ecf48a7447820f93f66ee05deda44
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/24.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/24"
+DATASETS = dict(TRAIN=("tless_24_train_pbr",), TRAIN2=("tless_24_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/25.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/25.py
new file mode 100644
index 0000000000000000000000000000000000000000..017ce0fb308935192a96b7d605377784a3c4c1e9
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/25.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/25"
+DATASETS = dict(TRAIN=("tless_25_train_pbr",), TRAIN2=("tless_25_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/26.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/26.py
new file mode 100644
index 0000000000000000000000000000000000000000..02d24e5a79524334298c1cc3179a59f34d608774
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/26.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/26"
+DATASETS = dict(TRAIN=("tless_26_train_pbr",), TRAIN2=("tless_26_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/27.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/27.py
new file mode 100644
index 0000000000000000000000000000000000000000..915a84d0921e2ddd00f1032a00a8864db641a111
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/27.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/27"
+DATASETS = dict(TRAIN=("tless_27_train_pbr",), TRAIN2=("tless_27_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/28.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/28.py
new file mode 100644
index 0000000000000000000000000000000000000000..2d1dc2bb466dc6ab1c367c156201a96f3f244fe7
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/28.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/28"
+DATASETS = dict(TRAIN=("tless_28_train_pbr",), TRAIN2=("tless_28_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/29.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/29.py
new file mode 100644
index 0000000000000000000000000000000000000000..c436c4cedc344bc40767e204f78554e93cd6fe94
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/29.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/29"
+DATASETS = dict(TRAIN=("tless_29_train_pbr",), TRAIN2=("tless_29_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/3.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/3.py
new file mode 100644
index 0000000000000000000000000000000000000000..01459d63d5ad5a86bb01ffbcc93ca7dd41e52901
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/3.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/3"
+DATASETS = dict(TRAIN=("tless_3_train_pbr",), TRAIN2=("tless_3_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/30.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/30.py
new file mode 100644
index 0000000000000000000000000000000000000000..a09473e5a5574331a676c8136d78a789c0c14714
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/30.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/30"
+DATASETS = dict(TRAIN=("tless_30_train_pbr",), TRAIN2=("tless_30_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/4.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/4.py
new file mode 100644
index 0000000000000000000000000000000000000000..5699ee497f4a8ed994928e6413b3fc3da288e8ee
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/4.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/4"
+DATASETS = dict(TRAIN=("tless_4_train_pbr",), TRAIN2=("tless_4_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/5.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/5.py
new file mode 100644
index 0000000000000000000000000000000000000000..7b218b6af8e85e08f2179fa6e3dae9820ad0dea5
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/5.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/5"
+DATASETS = dict(TRAIN=("tless_5_train_pbr",), TRAIN2=("tless_5_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/6.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/6.py
new file mode 100644
index 0000000000000000000000000000000000000000..f0962241628dda28cd35785c6dd42775af6def4e
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/6.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/6"
+DATASETS = dict(TRAIN=("tless_6_train_pbr",), TRAIN2=("tless_6_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/7.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/7.py
new file mode 100644
index 0000000000000000000000000000000000000000..785bd557527e4daad4350ee3da776cf59f46b6ca
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/7.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/7"
+DATASETS = dict(TRAIN=("tless_7_train_pbr",), TRAIN2=("tless_7_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/8.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/8.py
new file mode 100644
index 0000000000000000000000000000000000000000..6c1fbec4ea9aac2e6e1ec059adb752a436ce4213
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/8.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/8"
+DATASETS = dict(TRAIN=("tless_8_train_pbr",), TRAIN2=("tless_8_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/9.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/9.py
new file mode 100644
index 0000000000000000000000000000000000000000..aa9a0037e15020220c5a8b5f1585720a5af32a0b
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/9.py
@@ -0,0 +1,3 @@
+_base_ = "./1.py"
+OUTPUT_DIR = "output/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/9"
+DATASETS = dict(TRAIN=("tless_9_train_pbr",), TRAIN2=("tless_9_train_primesense",))
diff --git a/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/cfg_1_to_all.py b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/cfg_1_to_all.py
new file mode 100644
index 0000000000000000000000000000000000000000..4ff49f6c8e74b77b441fcac436ae3e83a6cd42c8
--- /dev/null
+++ b/configs/gdrn/tlessSO/convnext_a6_cPnP_AugCosyAAE_BG05_Dmask_amodalClipBox_modelCAD_tlessRealPbrSO/cfg_1_to_all.py
@@ -0,0 +1,47 @@
+from mmcv import Config
+import os.path as osp
+import os
+from tqdm import tqdm
+
+cur_dir = osp.normpath(osp.dirname(osp.abspath(__file__)))
+
+base_cfg_name = "1.py"
+base_obj_name = "1"
+
+# -----------------------------------------------------------------
+id2obj = {i: str(i) for i in range(1, 31)}
+obj2id = {_name: _id for _id, _name in id2obj.items()}
+
+
+def main():
+    base_cfg_path = osp.join(cur_dir, base_cfg_name)
+    assert osp.exists(base_cfg_path), base_cfg_path  # make sure base cfg is in this dir
+    cfg = Config.fromfile(base_cfg_path)
+
+    for obj_id, obj_name in tqdm(id2obj.items()):
+        print(obj_name)
+        if obj_name == base_obj_name:
+            continue
+        # NOTE: what fields should be updated ---------------------------
+        new_cfg_dict = dict(
+            _base_="./{}".format(base_cfg_name),
+            OUTPUT_DIR=cfg.OUTPUT_DIR.replace(base_obj_name, obj_name),
+            DATASETS=dict(
+                TRAIN=("tless_{}_train_pbr".format(obj_name),),
+                TRAIN2=("tless_{}_train_primesense".format(obj_name),),
+            ),
+        )
+        # ----------------------------------------------------------------------
+        new_cfg_path = osp.join(cur_dir, base_cfg_name.replace(base_obj_name, obj_name))
+        if osp.exists(new_cfg_path):
+            raise RuntimeError("new cfg exists!")
+        new_cfg = Config(new_cfg_dict)
+        with open(new_cfg_path, "w") as f:
+            f.write(new_cfg.pretty_text)
+
+    # re-format
+    os.system("black -l 120 {}".format(cur_dir))
+
+
+if __name__ == "__main__":
+    main()