Гуглите "Rate Limiting" для вашего фреймворка, библиотеки, возможно на уровне веб сервера или чего ещё. И постройте логику приложения так, что если нужно отдавать не статитку, то условно свободно, а если генерировать, то тут ограничения. Обычно это делается на одно условное устройство/пользователя и/или отдельно на отдельный роут/операцию/функцию.
Ну например, на пользователя 5 раз в секунду, на роут генерации картинки 100 раз в секунду, если больше любого лимита, возвращай код 429.