The ‘assets’ folder is currently hard-coded but thanks for pointing out this use-case. The path field in project settings has no effect for FAT32 which you’ll probably use for the SDcard (it has no PATH field in lv_conf.h), and it only sets the folder to be used as a virtual drive for the others (STDIO, POSIX, WIN32).
For the image loader to work from SD-card, the lv_fs LVGL subsystem and ‘S:’ drive-letter should be initialized with the mounted FAT32 (or maybe LittleFS) partition. In other words you need to connect the functionality of Arduino ‘SD’ library with LVGL ‘fs’. Corresponding LVGL documentation: File system — LVGL documentation and File System Interfaces — LVGL documentation.
( See the notes: ‘You still need to provide the drivers and libraries, this extension provides only the bridge between FATFS, LittleFS, STDIO, POSIX, WIN32 and LVGL.’ and ‘Bridge for FatFS. FatFS itself is not part of LVGL, but can be added and initialized externally.’ There’s a more thorough explanation for LittleFS through an ESP-IDF example.)
The LVGL lv_fs_fatsfs (which is used by LVGL for filesystem-operations when you select FATFS in lv_conf.h) has an lv_fs_fatfs_init function called internally by lv_init() at startup. This assigns the open/read/etc. functions to the FatFS library by default. But this library is a generic FAT32/exFAT library and can’t use the SD-card directly. To mount and use the SD-card by it would take configuration that’s covered by FatFS’s own documentation, maybe you can use it together with the SD library somehow.