I ran into this problem as well, where I was using a class of my own to output some python plots and embed them in an IPython notebook. A hack way to solve this would be to add a random argument to the end of your image url. For example
<img src="files/adaptive_filter.png?1" alt="Schema of adaptive filter" height="100">
will not be cached in the same place as
<img src="files/adaptive_filter.png?2" alt="Schema of adaptive filter" height="100">
A programatic way to do this would be to include the picture via python, instead of markdown, for instance:
# pick a random integer with 1 in 2 billion chance of getting the same
# integer twice
import random
__counter__ = random.randint(0,2e9)
# now use IPython's rich display to display the html image with the
# new argument
from IPython.display import HTML, display
display(HTML('<img src="files/adaptive_filter.png?%d" ' +
'alt="Schema of adaptive filter" ' +
'height="100">' % __counter__))
Should update the image everytime you run the code cell