Каждый раз, когда вы видите изображение в вашем браузере, ваша машина уже загружала его.Невозможно манипулировать изображением без его загрузки.
Взгляните на модуль tempfile , вы можете создавать временные файлы, чтобы быть уверенными, что они будут удалены в будущем.Или удалите файлы после того, как вы манипулируете ими, как @ArnavBorborah сказал
РЕДАКТИРОВАТЬ:
Взгляните на этот метод urllib.request.urlretrieve
Выможно адаптировать свой пример:
import urllib.request
local_filename, headers = urllib.request.urlretrieve(<image_url>)
with open(local_filename) as image:
#do stuff
Второй аргумент, если он присутствует, указывает местоположение файла для копирования (если оно отсутствует, это будет временный файл с сгенерированным именем).
Если вы не укажете аргумент имени файла, urllib создаст временный файл