The slow part for models is loading the model up. But once the model is up, you can send it whatever input that you want.
Parsing and sending the image data just doesn't pass my gut check as to what would be the bottleneck here.
For SD1.5 4090 is able to do ~17it/s without batching and ~90-100it/s with batching.
Although these numbers might be old at this point, I looked at it ~3mo ago.
Their paper is ambiguous unfortunately. Abstract, intro, and conclusion suggests single image by motivating with sequential generation (specifically mentioning metaverse). Experiment section says
> We note that we evaluate the throughput mainly via the average inference time per image through processing 100 images.
That implies batch along with their name Stream Batch...
Looking at the code I'm a bit confused. I'm away from my GPU so can't run. Maybe someone can let me know? This block[0] measures correctly but is using a downloaded image? Then just opens the image in the preprocess? (multi looks identical) This block[1] is using CPU? But running CPU. (there's another like this)
So I'm quite a bit confused tbh.
[0] https://github.com/cumulo-autumn/StreamDiffusion/blob/03e2a7...
[1] https://github.com/cumulo-autumn/StreamDiffusion/blob/03e2a7...