1
0
Fork 0
mirror of https://github.com/immich-app/immich.git synced 2024-12-28 22:51:59 +00:00
High performance self-hosted photo and video management solution.
Find a file
Alex 619735fea0
Implemented image tagging using TensorFlow InceptionV3 (#28)
* Refactor docker-compose to its own folder
* Added FastAPI development environment
* Added support for GPU in docker file
* Added image classification
* creating endpoint for smart Image info
* added logo with white background on ios
* Added endpoint and trigger for image tagging
* Classify image and save into database
* Update readme
2022-02-19 22:42:10 -06:00
.github Added arm64 to github action for docker build 2022-02-09 20:52:38 -06:00
design Implemented image tagging using TensorFlow InceptionV3 (#28) 2022-02-19 22:42:10 -06:00
docker Implemented image tagging using TensorFlow InceptionV3 (#28) 2022-02-19 22:42:10 -06:00
machine_learning Implemented image tagging using TensorFlow InceptionV3 (#28) 2022-02-19 22:42:10 -06:00
mobile Implemented image tagging using TensorFlow InceptionV3 (#28) 2022-02-19 22:42:10 -06:00
server Implemented image tagging using TensorFlow InceptionV3 (#28) 2022-02-19 22:42:10 -06:00
.DS_Store Added toast message component 2022-02-04 17:20:23 -06:00
LICENSE Update Readme 2022-02-11 22:35:14 -06:00
Makefile Implemented image tagging using TensorFlow InceptionV3 (#28) 2022-02-19 22:42:10 -06:00
README.md Implemented image tagging using TensorFlow InceptionV3 (#28) 2022-02-19 22:42:10 -06:00

IMMICH

Self-hosted photo and video backup solution directly from your mobile phone.

Loading ~4000 images/videos

Screenshots

Note

!! NOT READY FOR PRODUCTION! DO NOT USE TO STORE YOUR ASSETS !!

This project is under heavy development, there will be continous functions, features and api changes.

Features

  • Upload assets(videos/images).
  • View assets.
  • Quick navigation with drag scroll bar.
  • Auto Backup.
  • Support HEIC/HEIF Backup.
  • Extract and display EXIF info.
  • Real-time render from multi-device upload event.

Development

You can use docker compose for development, there are several services that compose Immich

  1. NestJs
  2. PostgreSQL
  3. Redis
  4. Nginx
  5. TensorFlow and Keras

Populate .env file

Navigate to docker directory and run

cp .env.example .env

Then populate the value in there.

Pay attention to the key UPLOAD_LOCATION, this directory must exist and is owned by the user that run the docker-compose command below.

To start, run

docker-compose -f ./docker/docker-compose.yml up

To force rebuild node modules after installing new packages

docker-compose -f ./docker/docker-compose.yml up --build -V

The server will be running at http://your-ip:2283 through Nginx

Register User

Use the command below on your terminal to create user as we don't have user interface for this function yet.

curl --location --request POST 'http://your-server-ip:2283/auth/signUp' \
--header 'Content-Type: application/json' \
--data-raw '{
    "email": "testuser@email.com",
    "password": "password"
}'

Run mobile app

Android

Download apk in release tab and run on your phone. You can follow this guide on how to do that

iOS

  • Get a MacOS
  • Download and setup Flutter development environment
  • Navigate to mobile folder
  • Run with release build command for best performance.
flutter run --release

Known Issue

TensorFlow doesn't run with older CPU architecture, it requires CPU with AVX and AVX2 instruction set. If you encounter the error illegal instruction core dump when running the docker-compose command above, check for your CPU flags with the command and make sure you see AVX and AVX2. Otherwise, switch to a different VM/desktop with different architecture.

more /proc/cpuinfo | grep flags

If you are running virtualization in Promox, the VM doesn't have the flag enable.

You need to change the CPU type from kvm64 to host under VMs hardware tab.

Hardware > Processors > Edit > Advanced > Type (dropdown menu) > host