`save_images_to_db=false` not working

Author: ncsibraCreated Feb 14, 2022Updated Feb 24, 2026

Describe the bug I'm testing CompreFace with the provided Docker Compose distribution in the root directory and looks like the save_images_to_db=false option does not work.
The trained faces are still saved to Postgres img table. Tested with v0.6.1 tag and the latest master.

Based on docker inspect the related configuration option passed correctly to compreface-api.

        "Config": {
            "Hostname": "6a220ba41a7d",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": true,
            "AttachStderr": true,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "POSTGRES_PASSWORD=postgres",
                "POSTGRES_URL=jdbc:postgresql://compreface-postgres-db:5432/frs",
                "SPRING_PROFILES_ACTIVE=dev",
                "API_JAVA_OPTS=-Xmx4g",
                "SAVE_IMAGES_TO_DB=false",
                "POSTGRES_USER=postgres",
                "PATH=/usr/local/openjdk-11/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "LANG=C.UTF-8",
                "JAVA_HOME=/usr/local/openjdk-11",
                "JAVA_VERSION=11.0.8"
            ],
            "Cmd": null,
            "Image": "exadel/compreface-api:0.6.1",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": [
                "sh",
                "-c",
                "java $API_JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 -jar /home/app.jar"
            ],
            "OnBuild": null,
            "Labels": {
                "com.docker.compose.config-hash": "b84a70e10ecbe10ad754be77aafdba54fa7a8333dc3ac491f37311ac181f1859",
                "com.docker.compose.container-number": "1",
                "com.docker.compose.depends_on": "compreface-postgres-db",
                "com.docker.compose.image": "sha256:fc2d4ce7b40cc72fa875f8f35dcec35e4e2fa8979e791fea1f69ca40b855d9ba",
                "com.docker.compose.oneoff": "False",
                "com.docker.compose.project": "compreface",
                "com.docker.compose.project.config_files": "/home/ncsibra/dev/tmp/CompreFace/docker-compose.yml",
                "com.docker.compose.project.working_dir": "/home/ncsibra/dev/tmp/CompreFace",
                "com.docker.compose.service": "compreface-api",
                "com.docker.compose.version": "2.2.3",
                "desktop.docker.io/wsl-distro": "Arch"
            }
        },

Here's the original implementation: https://github.com/exadel-inc/CompreFace/pull/163/files#diff-d829967df73c63987fa6772e8f2e0e9b9374ad3df661a20e3931094b1726253fR80 Quickly searching through the code, I can't see the relevant logic in the current codebase, but I'm not a big Java guy. :)

To Reproduce Steps to reproduce the behavior:

  1. In the root directory .env file set save_images_to_db=false
  2. Run docker compose
  3. Train a new example to a subject
  4. Check the database img table, a new entry will be added and the size of the data in the content column is the same as the uploaded image size

Expected behavior Do not save the image to the database when save_images_to_db=false