Андрей разделим проблему на две части - касающуюся Я.Диска и не касающуюся. Причина у них общая, но давайте по порядку.
В Я.Диске можно указать, какие изображения оставить только в облаке, а какие хранить ещё и локально. Т.е. при включении-выключении галочки файл для tonfotos появляется-исчезает. Для программы это то же, что удаление файла и добавление нового. Вы рассматриваете вариант работы с api Яндекса, чтобы tonfotos “понимал”, что файл никуда не делся. Но это не решает проблему №2.
У меня есть каталог photo-scans. Он периодически пополняется. Мне понадобилось его физически разделить на подкаталоги. Т.е. внутри photo-scans появились каталоги:
family1-photo-albums
family2-photo-albums
family3-photo-albums
Изображения были перемещены из корневого каталога в эти подкаталоги. И всё - гипс снимают, клиент уезжает. Все ранее созданные альбомы пустые. Альбомы людей - тоже пустые. Да, список людей сохранился. Маленький аватар сохранился. Но ни одной фотографии у человека нет

Ожидаемое поведение:
Программа обновит ссылки внутри каталога.
Каталог photo-scans указан как основное расположение архива. Изображения из каталога никуда не делись. Они перемещены в подкаталоги. Т.е. всё ещё в пределах указанного в настройках расположения.
Программа при внезапном исчезновении сотни-другой файлов должна предположить, что файлы не были удалены совсем, а куда-то перемещены сторонними средствами. Вероятность такого события - стремится к 100%. Соответственно, нужно попросить пользователя указать новое расположение файлов.
Теперь небольшой оффтоп. Вы утверждаете, что никакого проекта (как в Premiere) не существует. Это же не совсем так. У вас есть файлы people.tnfp и .tonfotos.ini.
В people.tnfp валяется json, а в нем по ключу people лежит словарь, где каждый человек имеет свой uid. Уже в нем объект с именем, аватаром и ещё какими-то свойствами. Фактически это база данных людей. Она, как вы верно заметили, никуда не девается.
Но ещё есть .tonfotos.ini. В нем словарь файлов с rect’ами лиц и uid’ами персон. А ещё массив data с парами uid-персона.
Как я понимаю, алгоритм работы следующий. Если мы ещё ничего не размечали и только запустили tonfotos, то в хранилище создается один общий people.tnfp и по одному .tonfotos.ini на каталог/подкаталог с изображениями. Когда мы создаем персону на основе найденного лица, мы делаем следующее:
- добавляем персону в people.tnfp и назначаем ей uid
- в files добавляем для персоны rect и её uid
- добавляем персону в data с тем же uid
Если же персона уже существует, то делаем то же самое, но берем уже существующий uid из people.tnfp.
Но вот мы добавили новый файл. Запускается сканирование. В .tonfotos.ini в files добавляется новое изображение с флагом “more_unassigned_faces”: true. Указали персону. Она добавилась в files и data со своим uid. Пока всё ожидаемо.
Закрываем tonfotos. Создаем подкаталог. Перемещаем в него файлы. Открываем tonfotos. Запускается сканирование… Поздравляю, мы только что похерили несколько дней работы. Потому что в исходном каталоге из .tonfotos.ini будут удалены записи о файлах.
Решение (на уровне концепта) простое. Если при повторном сканировании некоторые файлы отсутствуют, это совсем не значит, что их нет.
Во-первых, можно сначала завершить сканирование и не удалять записи. Если файлы перемещены в подкаталог, то они будут найдены. Но для этого в .tonfotos.ini нужно сохранять хэши файлов.
Во-вторых, нужно явно сообщить пользователю, что у него ахтунг и куча файлов пропала. Всё ОК или ты их куда-то переместил? Да, как в Premiere. И без файла проекта. Если не ОК, то указать новое местоположение. При наличии хэшей не составит проблемы найти потеряшек.
Ну, как-то так.