diff --git a/benchmark_env.yml b/benchmark_env.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b4a0c24982ee2269fa80a4ba71c7cbf404bf76ee
--- /dev/null
+++ b/benchmark_env.yml
@@ -0,0 +1,241 @@
+name: synbenchmark
+channels:
+  - https://www.idiap.ch/software/bob/conda
+  - defaults
+dependencies:
+  - _libgcc_mutex=0.1
+  - _tflow_select=2.3.0
+  - absl-py=0.12.0
+  - aiohttp=3.7.4
+  - argon2-cffi=20.1.0
+  - astunparse=1.6.3
+  - async-timeout=3.0.1
+  - async_generator=1.10
+  - attrs=20.3.0
+  - backcall=0.2.0
+  - blas=1.0
+  - bleach=3.3.0
+  - blinker=1.4
+  - bob.bio.base=5.0.0
+  - bob.bio.face=5.0.0
+  - bob.blitz=2.0.23
+  - bob.core=2.2.7
+  - bob.db.atnt=2.0.17
+  - bob.db.base=3.1.0
+  - bob.extension=6.0.0
+  - bob.io.base=3.0.10
+  - bob.io.image=2.5.0
+  - bob.ip.base=2.2.7
+  - bob.ip.color=2.0.17
+  - bob.ip.facedetect=4.0.0
+  - bob.ip.gabor=2.0.18
+  - bob.learn.activation=2.0.17
+  - bob.learn.em=2.1.7
+  - bob.learn.linear=2.1.9
+  - bob.learn.tensorflow=2.0.0
+  - bob.math=3.1.8
+  - bob.measure=4.2.3
+  - bob.pipelines=1.0.0
+  - bob.sp=2.0.17
+  - bokeh=2.3.1
+  - boost=1.73.0
+  - brotlipy=0.7.0
+  - bzip2=1.0.8
+  - c-ares=1.17.1
+  - ca-certificates=2021.4.13
+  - cachetools=4.2.2
+  - certifi=2020.12.5
+  - cffi=1.14.5
+  - chardet=3.0.4
+  - click=7.1.2
+  - click-plugins=1.1.1
+  - cloudpickle=1.6.0
+  - coverage=5.5
+  - cryptography=3.4.7
+  - cycler=0.10.0
+  - cython=0.29.23
+  - cytoolz=0.11.0
+  - dask=2021.4.0
+  - dask-core=2021.4.0
+  - dask-jobqueue=0.7.0
+  - dbus=1.13.18
+  - decorator=5.0.6
+  - defusedxml=0.7.1
+  - distributed=2021.4.0
+  - entrypoints=0.3
+  - expat=2.3.0
+  - fontconfig=2.13.1
+  - freetype=2.10.4
+  - fsspec=0.9.0
+  - gast=0.4.0
+  - giflib=5.2.1
+  - glib=2.68.1
+  - google-auth=1.30.0
+  - google-auth-oauthlib=0.4.4
+  - google-pasta=0.2.0
+  - greenlet=1.0.0
+  - grpcio=1.36.1
+  - gst-plugins-base=1.14.0
+  - gstreamer=1.14.0
+  - h5py=2.10.0
+  - hdf5=1.10.6
+  - heapdict=1.0.1
+  - icu=58.2
+  - idna=2.10
+  - imageio=2.9.0
+  - importlib-metadata=3.10.0
+  - importlib_metadata=3.10.0
+  - intel-openmp=2021.2.0
+  - ipykernel=5.3.4
+  - ipython=7.22.0
+  - ipython_genutils=0.2.0
+  - ipywidgets=7.6.3
+  - jedi=0.17.0
+  - jinja2=2.11.3
+  - joblib=1.0.1
+  - jpeg=9b
+  - jsonschema=3.2.0
+  - jupyter=1.0.0
+  - jupyter_client=6.1.12
+  - jupyter_console=6.4.0
+  - jupyter_core=4.7.1
+  - jupyterlab_pygments=0.1.2
+  - jupyterlab_widgets=1.0.0
+  - keras-preprocessing=1.1.2
+  - kiwisolver=1.3.1
+  - lcms2=2.12
+  - ld_impl_linux-64=2.33.1
+  - libblitz=1.0.1
+  - libboost=1.73.0
+  - libffi=3.3
+  - libgcc-ng=9.1.0
+  - libgfortran-ng=7.3.0
+  - libllvm10=10.0.1
+  - libpng=1.6.37
+  - libprotobuf=3.14.0
+  - libsodium=1.0.18
+  - libstdcxx-ng=9.1.0
+  - libtiff=4.2.0
+  - libuuid=1.0.3
+  - libwebp-base=1.2.0
+  - libxcb=1.14
+  - libxml2=2.9.10
+  - llvmlite=0.36.0
+  - locket=0.2.1
+  - lz4-c=1.9.3
+  - markdown=3.3.4
+  - markupsafe=1.1.1
+  - matplotlib=3.3.4
+  - matplotlib-base=3.3.4
+  - mistune=0.8.4
+  - mkl=2019.4
+  - mkl-service=2.3.0
+  - mkl_fft=1.3.0
+  - mkl_random=1.1.0
+  - msgpack-python=1.0.2
+  - multidict=5.1.0
+  - nbclient=0.5.3
+  - nbconvert=6.0.7
+  - nbformat=5.1.3
+  - ncurses=6.2
+  - nest-asyncio=1.5.1
+  - networkx=2.5
+  - notebook=6.3.0
+  - numba=0.53.1
+  - numpy=1.19.2
+  - numpy-base=1.19.2
+  - oauthlib=3.1.0
+  - olefile=0.46
+  - openssl=1.1.1k
+  - opt_einsum=3.1.0
+  - packaging=20.9
+  - pandas=1.2.4
+  - pandoc=2.12
+  - pandocfilters=1.4.3
+  - parso=0.8.2
+  - partd=1.2.0
+  - pcre=8.44
+  - pexpect=4.8.0
+  - pickleshare=0.7.5
+  - pillow=8.2.0
+  - pip=21.0.1
+  - prometheus_client=0.10.1
+  - prompt-toolkit=3.0.17
+  - prompt_toolkit=3.0.17
+  - protobuf=3.14.0
+  - psutil=5.8.0
+  - ptyprocess=0.7.0
+  - py-boost=1.73.0
+  - pyasn1=0.4.8
+  - pyasn1-modules=0.2.8
+  - pycparser=2.20
+  - pygments=2.8.1
+  - pyjwt=1.7.1
+  - pyopenssl=20.0.1
+  - pyparsing=2.4.7
+  - pyqt=5.9.2
+  - pyrsistent=0.17.3
+  - pysocks=1.7.1
+  - python=3.8.8
+  - python-dateutil=2.8.1
+  - python-flatbuffers=1.12
+  - pytz=2021.1
+  - pywavelets=1.1.1
+  - pyyaml=5.4.1
+  - pyzmq=20.0.0
+  - qt=5.9.7
+  - qtconsole=5.0.3
+  - qtpy=1.9.0
+  - readline=8.1
+  - requests=2.25.1
+  - requests-oauthlib=1.3.0
+  - rsa=4.7.2
+  - scikit-image=0.18.1
+  - scikit-learn=0.23.2
+  - scipy=1.6.2
+  - send2trash=1.5.0
+  - setuptools=52.0.0
+  - sip=4.19.13
+  - six=1.15.0
+  - sortedcontainers=2.3.0
+  - sqlalchemy=1.4.7
+  - sqlite=3.35.4
+  - tabulate=0.8.9
+  - tbb=2020.3
+  - tblib=1.7.0
+  - tensorboard=2.4.0
+  - tensorboard-plugin-wit=1.6.0
+  - tensorflow=2.4.1
+  - tensorflow-base=2.4.1
+  - tensorflow-estimator=2.4.1
+  - termcolor=1.1.0
+  - terminado=0.9.4
+  - testpath=0.4.4
+  - threadpoolctl=2.1.0
+  - tifffile=2020.10.1
+  - tk=8.6.10
+  - toolz=0.11.1
+  - tornado=6.1
+  - traitlets=5.0.5
+  - typing-extensions=3.7.4.3
+  - typing_extensions=3.7.4.3
+  - urllib3=1.26.4
+  - vlfeat=0.9.21
+  - wcwidth=0.2.5
+  - webencodings=0.5.1
+  - werkzeug=1.0.1
+  - wheel=0.36.2
+  - widgetsnbextension=3.5.1
+  - wrapt=1.12.1
+  - xarray=0.17.0
+  - xz=5.2.5
+  - yaml=0.2.5
+  - yarl=1.6.3
+  - zeromq=4.3.4
+  - zict=2.0.0
+  - zipp=3.4.1
+  - zlib=1.2.11
+  - zstd=1.4.5
+  - pip:
+    - mxnet==1.8.0.post0
+    - python-graphviz==0.8.4
diff --git a/bob/paper/ijcb2021_synthetic_dataset/config/database/multipie/E.py b/bob/paper/ijcb2021_synthetic_dataset/config/database/multipie/E.py
index 0ce70c4bfe9f78baa490a56f617c5e6a612bf8c8..95f43a0557353779db8344ca559d1ef9411bcca2 100644
--- a/bob/paper/ijcb2021_synthetic_dataset/config/database/multipie/E.py
+++ b/bob/paper/ijcb2021_synthetic_dataset/config/database/multipie/E.py
@@ -1,3 +1,3 @@
 from bob.bio.face.database.multipie import MultipieDatabase
 
-database = MultipieDatabase(protocol='U')
\ No newline at end of file
+database = MultipieDatabase(protocol='E')
\ No newline at end of file
diff --git a/bob/paper/ijcb2021_synthetic_dataset/config/database/multipie/P.py b/bob/paper/ijcb2021_synthetic_dataset/config/database/multipie/P.py
index f0603f9193d6566127527f5c1e8d10ed239b5f81..cf0081002459ee269b23bc9a8644c2533d6068f4 100644
--- a/bob/paper/ijcb2021_synthetic_dataset/config/database/multipie/P.py
+++ b/bob/paper/ijcb2021_synthetic_dataset/config/database/multipie/P.py
@@ -13,7 +13,7 @@ from sklearn.pipeline import make_pipeline
 # Kept cameras : ["08_0", "13_0", "14_0", "05_1", "05_0", "04_1", "19_0"]
 
 def get_database():
-    csv_dir = './config/database/multipie/protocols'
+    csv_dir = './bob/paper/ijcb2021_synthetic_dataset/config/database/multipie/protocols'
                                         
     database = CSVDataset(dataset_protocol_path=csv_dir,
                           protocol_name='P_center',
diff --git a/bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/E.py b/bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/E.py
index fc73f535f781adb55d3c96ee9d47e484259327be..39b6085e981ebe9d97e099038ada397a4191a98b 100644
--- a/bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/E.py
+++ b/bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/E.py
@@ -6,7 +6,7 @@ import os
 def get_database(protocol):
 
     image_dir = rc['bob.db.synmultipie.directory']
-    csv_dir = './config/database/synmultipie/protocols'
+    csv_dir = './bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/protocols'
 
     sample_loader = CSVToSampleLoaderBiometrics(data_loader=bob.io.image.load,
                                       dataset_original_directory = image_dir,
diff --git a/bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/P.py b/bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/P.py
index 9b8e1335c48e2ac75e9ab31aea1d3c6836539ca0..d7fb2293b1ce5b9f27e17bfe4d821a0307e39d4d 100644
--- a/bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/P.py
+++ b/bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/P.py
@@ -5,7 +5,7 @@ from bob.bio.base.database import CSVToSampleLoaderBiometrics, CSVDataset
 def get_database(protocol):
 
     image_dir = rc['bob.db.synmultipie.directory']
-    csv_dir = './config/database/synmultipie/protocols'
+    csv_dir = './bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/protocols'
 
     sample_loader = CSVToSampleLoaderBiometrics(data_loader=bob.io.image.load,
                                       dataset_original_directory = image_dir,
diff --git a/bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/U.py b/bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/U.py
index c3aa49c3024dc6b4801bfbc9478935e60e16db10..a9713fe4921ba04e7d04a7b31b59290b7bff3abf 100644
--- a/bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/U.py
+++ b/bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/U.py
@@ -5,7 +5,7 @@ from bob.bio.base.database import CSVToSampleLoaderBiometrics, CSVDataset
 def get_database(protocol):
 
     image_dir = rc['bob.db.synmultipie.directory']
-    csv_dir = './config/database/synmultipie/protocols'
+    csv_dir = './bob/paper/ijcb2021_synthetic_dataset/config/database/synmultipie/protocols'
 
     sample_loader = CSVToSampleLoaderBiometrics(data_loader=bob.io.image.load,
                                       dataset_original_directory = image_dir,
diff --git a/bob/paper/ijcb2021_synthetic_dataset/script/benchmark.sh b/bob/paper/ijcb2021_synthetic_dataset/script/benchmark.sh
new file mode 100644
index 0000000000000000000000000000000000000000..5842da7227081a7326906059c5bb8c708fa599c6
--- /dev/null
+++ b/bob/paper/ijcb2021_synthetic_dataset/script/benchmark.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+### Run pipelines (bob bio pipelines)
+output_dir=$(bob config get bob.synface.scores.directory)/benchmark
+run_pipeline='bob bio pipeline vanilla-biometrics'
+
+declare -A baseline_paths=(
+    ["gabor_graph"]="gabor_graph"
+    ["lgbphs"]="lgbphs"
+    ["arcface"]="arcface-insightface"
+    ["inception_resnetv1_casiawebface"]="inception-resnetv1-casiawebface"
+    ["inception_resnetv2_casiawebface"]="inception-resnetv2-casiawebface"
+    ["resnet50_vgg2_arcface"]="resnet50-vgg2-arcface-2021"
+)
+
+databases=(
+    multipie
+    synmultipie
+)
+
+protocols=(
+    U
+    E
+    P
+)
+
+baselines=(
+    gabor_graph
+    lgbphs
+    arcface
+    inception_resnetv1_casiawebface
+    inception_resnetv2_casiawebface  
+    resnet50_vgg2_arcface
+)
+
+set -x
+for database in "${databases[@]}"
+do
+    for protocol in "${protocols[@]}"
+    do
+        for baseline in "${baselines[@]}"
+        do
+            $run_pipeline -vv bob/paper/ijcb2021_synthetic_dataset/config/database/$database/$protocol.py "${baseline_paths[$baseline]}" -m -l sge -g dev -o $output_dir/$database/$protocol/$baseline
+        done
+    done
+done
diff --git a/bob/paper/ijcb2021_synthetic_dataset/script/generate_db.py b/bob/paper/ijcb2021_synthetic_dataset/script/generate_db.py
index e57bc26d25461696fc1aecf586dccda854969107..57c2562da9f6a37bac978565f6e74be1126e8e45 100644
--- a/bob/paper/ijcb2021_synthetic_dataset/script/generate_db.py
+++ b/bob/paper/ijcb2021_synthetic_dataset/script/generate_db.py
@@ -61,10 +61,11 @@ def initialization(
     task_id,
     seed,
 ):
+    # Fix randomness
     tflib.init_tf({"rnd.np_random_seed": seed, "rnd.tf_random_seed": "auto"})
 
     cropper = get_cropper()
-    generator = StyleGAN2Generator(randomize_noise=True, batch_size=4)
+    generator = StyleGAN2Generator(randomize_noise=False, batch_size=4)
     image_postprocessor = get_postprocessing_fn()
 
     image_dir = os.path.join(output_dir, "image")
@@ -102,6 +103,7 @@ def initialization(
 
 @click.command(
     cls=ConfigCommand,
+    entry_point_group='generation_config',
     help="Generate a synthetic database using semantic augmentation in the latent space.",
 )
 @click.option(
@@ -153,6 +155,7 @@ def initialization(
     "-o",
     type=str,
     required=True,
+    default=rc['bob.db.synmultipie.directory'],
     help="Root of the output directory tree",
     cls=ResourceOption,
 )
diff --git a/setup.py b/setup.py
index 9699428cbfee9346efdb768da649f7689e0c25bf..466641ba219a77dec8467a08936db149c1978e12 100644
--- a/setup.py
+++ b/setup.py
@@ -49,6 +49,11 @@ setup(
         'multipie_U = bob.paper.ijcb2021_synthetic_dataset.config.project.multipie_U:database',
         'multipie_E = bob.paper.ijcb2021_synthetic_dataset.config.project.multipie_E:database',
         'multipie_P = bob.paper.ijcb2021_synthetic_dataset.config.project.multipie_P:database',
+      ],
+      "generation_config": [
+        'synmultipie = bob.paper.ijcb2021_synthetic_dataset.config.db_gen.syn_multipie',
+        'uniqueness_no_ict = bob.paper.ijcb2021_synthetic_dataset.config.db_gen.uniqueness_no_ict',
+        'uniqueness_ict = bob.paper.ijcb2021_synthetic_dataset.config.db_gen.uniqueness_ict_0.1'
       ]
       # add entry points (scripts, bob resources here, if any)
       },