I use Photo Stream and not iCloud. My photos upload to my iMac via Photo Stream, but when I plug in my iPhone, Photos tells me that I have new photos to import when those photos have in fact already been uploaded via Photo Stream. It appears that the Photo Stream "version" and the "import from iPhone" version are different by one second, so Photos thinks they are different photos. Why is this happening?! It is resulting in countless duplicates. Please help!
As you have found, using different methods of importing can/does result in duplicates.
Pick one method, and stick to it. Don't try to mix them.
This problem normally comes when the files are changed in some way as they are transferred to the Mac. Often the result of using different methods of transferring the files (EG texting / direct connection / photostream / iCloud). Pick one method of transfer from phone to Mac, and stick with it. Don't mix them.
Different versions of IOS can also impact this EG when photos are converted from HEIC to JPG. Iphone setting photos>transfer to mac or pc - set to automatic might convert the files. Try setting this to "keep originals". The phone will then send the files in the original HEIC format instead of JPG. (This is the most likely cause, and the easiest one to check for). However you'll still have duplicates on your mac in jpg format which you could choose to delete from the imports folder (if you are sure you still have the originals on your phone)
Another cause can be when iCloud photos is enabled on the phone with “Optimise phone storage” set. If iCloud re-downloads an image that has been optimised, that can result in it being seen as a new image. Even worse, any photo uploaded from your mac to iCloud, then downloaded to the phone with iCloud can be seen as a new image when synced via USB. Best solution; DON’T mix iCloud sync with USB sync.
Photostream is also being phased out, and hasn't been improved for some time resulting in an inability to work with some file types.
Images will only be recognised as the same image if the file being compared on your mac is exactly the same as the one on your phone. Same file name and type, same size, same metadata etc.
By far the easiest way to manage photos is by using iCloud sync, but that does have a monthly cost.
Thanks so much for the comprehensive reply! iCloud isn't the issue because I don't use it, and neither is the conversion from HEIC to JPG since iPhones are set to take photos in JPG and to keep originals. It's too bad the various methods can't be mixed without causing issues, especially something like changes to the metadata which I would think wouldn't change regardless of the method of upload/transfer. I like Photo Stream for the ease of sharing photos across devices and users (users in my house share an Apple ID) but I have to use the direct connection approach to transfer videos and Live Photos to my iMac. I came across more issues last night, including the realization that no matter how many times I import the duplicates from my iPhone to my iMac, Photos still thinks they are "new" pictures on my iPhone and tells me they haven't been imported yet. Also, adding older photos that were not already in the Photo Stream to the iMac seems to have triggered something that caused these photos to suddenly be added to the Photo Stream (via the iMac?) and now the items in the Photo Stream are out of chronological order. Anyway, seems that the only solution is to stick with the direct connection method and disable Photo Stream. It's a shame, since I have been using it for a long time with few issues.
Sorry - a follow-up. I have turned off Photo Stream on my iMac and iPhone and am importing photos via direct connection only. Import a photo, adds to Photos library on the iMac. Disconnect/reconnect iPhone and SAME photo shows up as though it was never imported. I have five duplicates now. I have thousands of photos and am not sure how I am supposed to trust what has been imported/not imported if Photos can't give me accurate information. I'm on the verge of giving up on Photos altogether.
Are you sure there is still no modification of the file as it is imported.
Export the unmodified original from the photos app. Download the same file from the phone, using the image capture app. Compare them - filename, file type, file size, metadata.
All must be the same for photos to recognise it as already imported.