ciao

potresti leggere le immagini contenute nella cartella con readdir,
all'interno del ciclo while poi fai una select con il nome del file all'interno del db. Se il numero di righe estratte dal db è uguale a 0 vuol dire che l'immagine non esiste nella tabella e la cancelli con unlink.
Es.:
Codice PHP:
if ($handle opendir('.')) {
    while (
false !== ($file readdir($handle))) { 
        if (
$file != "." && $file != "..") { 
            
$sql "select nome_img from tabelle where nome_img = '$file';";
            
$res mysql_query($sql);
            if(
mysql_num_rows($res) == 0){
               
unlink($file);
            }
        } 
    }
    
closedir($handle); 

ho scritto il codice ma è per darti un'idea