andfanilo / streamlit-drawable-canvas

Do you like Quick, Draw? Well what if you could train/predict doodles drawn inside Streamlit? Also draws lines, circles and boxes over background images for annotation.
https://drawable-canvas.streamlit.app/
MIT License
541 stars 83 forks source link

Possible race condition with background images #143

Open VikParuchuri opened 6 months ago

VikParuchuri commented 6 months ago

I'm building an app where I swap background images a lot (rendering pdf page images to the canvas).

When I set a background image on a canvas, I get a blank image on the frontend about 20% of the time:

    canvas_result = st_canvas(
        background_image=pil_image,
        ...
    )

Looking at the frontend logs, there's a 404 finding the image. However, trying again a couple of seconds later always works. It's possible there's a race condition in the memory media storage.

I didn't fully investigate the issue, and instead patched it with frontend retry logic here.

I'm opening this issue in case someone else faces the same problem down the line. You can install from my fork with pip install -U git+https://github.com/VikParuchuri/streamlit-drawable-canvas@develop.