Skip to main content

Buy Me A Coffee Twitter Twitter PyPI version Downloads

image

cudacanvas : PyTorch Tensor Image Display in CUDA

(Real-time PyTorch Tensor Image Visualisation in CUDA, Eliminating CPU Transfer)

CudaCanvas is a simple Python module that eliminates CPU transfer for Pytorch tensors for displaying and rendering images in the training or evaluation phase, ideal for machine learning scientists and engineers.

Simplified version that directly displays the image without explicit window creation (cudacanvas >= v1.0.1)

import torch
import cudacanvas


#REPLACE THIS with you training loop
while (True):

    #REPLACE THIS with you training code and generation of data
    noise_image = torch.rand((4, 500, 500), device="cuda")

    #Visualise your data in real-time
    cudacanvas.im_show(noise_image)

    #OPTIONAL: Terminate training when the window is closed
    if cudacanvas.should_close():
        cudacanvas.clean_up()
        #end process if the window is closed
        break

You can visualise the latent of Stable Diffusion during sampling in real-time whilst waiting for the steps to finish

import warnings
warnings.filterwarnings("ignore")
from diffusers import StableDiffusionPipeline
import torch
import cudacanvas

def display_tensors(pipe, step, timestep, callback_kwargs):
    latents = callback_kwargs["latents"]

    with torch.no_grad():
        image = pipe.vae.decode(latents / pipe.vae.config.scaling_factor, return_dict=False)[0]
        image = image - image.min()
        image = image / image.max()
    
    cudacanvas.im_show(image.squeeze(0))
    
    if cudacanvas.should_close():
        cudacanvas.clean_up()
        pipe._interrupt = True
    
    return callback_kwargs

pipeline = StableDiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-2-1-base",
    torch_dtype=torch.float16,
    variant="fp16"
).to("cuda")

image = pipeline(
    prompt="A croissant shaped like a cute bear.",
    negative_prompt="Deformed, ugly, bad anatomy",
    callback_on_step_end=display_tensors,
    callback_on_step_end_tensor_inputs=["latents"],
).images[0]

cudacanvas.clean_up()

Installation

Before instllation make sure you have torch with cuda support already installed on your machine

We aligned pytorch and cuda version with our package the supporting packages are torch (2.0.1, 2.1.2 and 2.2.2) and (11.8 and 12.1)

Identify your current torch and cuda version

import torch
torch.__version__

Depending on your torch and cuda you can install the relevant cudacanvas package, for the latest one matching the latest pytorch package you can simply download the latest package

pip install cudacanvas

For other torch and cuda packages put the torch and cuda version after that cudacanvas version for example for 2.1.2+cu118 the Cudacanvas package you require is 1.0.1.post212118

pip install cudacanvas==1.0.1.post212118 --force-reinstall

Support

Also support my channel ☕ ☕ : https://www.buymeacoffee.com/outofai

Metadata

Release files for cudacanvas 1.0.1.post241118

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for cudacanvas 1.0.1.post241118
File Actions
cudacanvas-1.0.1.post241118-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for cudacanvas-1.0.1.post241118-cp311-cp311-win_amd64.whl
cudacanvas-1.0.1.post241118-cp311-cp311-manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details for cudacanvas-1.0.1.post241118-cp311-cp311-manylinux2014_x86_64.whl
cudacanvas-1.0.1.post241118-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for cudacanvas-1.0.1.post241118-cp310-cp310-win_amd64.whl
cudacanvas-1.0.1.post241118-cp310-cp310-manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details for cudacanvas-1.0.1.post241118-cp310-cp310-manylinux2014_x86_64.whl
cudacanvas-1.0.1.post241118-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for cudacanvas-1.0.1.post241118-cp39-cp39-win_amd64.whl
cudacanvas-1.0.1.post241118-cp39-cp39-manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details for cudacanvas-1.0.1.post241118-cp39-cp39-manylinux2014_x86_64.whl
cudacanvas-1.0.1.post241118-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details for cudacanvas-1.0.1.post241118-cp38-cp38-win_amd64.whl
cudacanvas-1.0.1.post241118-cp38-cp38-manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details for cudacanvas-1.0.1.post241118-cp38-cp38-manylinux2014_x86_64.whl

Total release size: 3.5 MB

Release files / cudacanvas-1.0.1.post241118-cp311-cp311-win_amd64.whl

Download URL cudacanvas-1.0.1.post241118-cp311-cp311-win_amd64.whl
Size 99.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
746c6410d1a93e9395b31ca42ee75691b4ebb86890b05675e128fdc2480be94c
BLAKE2b-256 checksum
How to use checksums
288538b904411875ff95b5e3eb79ebf937ffbf38df19af2287fb852b06ec61ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.11

Release files / cudacanvas-1.0.1.post241118-cp311-cp311-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post241118-cp311-cp311-manylinux2014_x86_64.whl
Size 84.4 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0d126dd05c0ef185a0d29d166929108aff5efe6588df22dae07c897597aee5ea
BLAKE2b-256 checksum
How to use checksums
b36386250c73f3eeed4229a0260ad8d5fd2cbecde06d4c1a60a1274369f72b59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.11

Release files / cudacanvas-1.0.1.post241118-cp310-cp310-win_amd64.whl

Download URL cudacanvas-1.0.1.post241118-cp310-cp310-win_amd64.whl
Size 98.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
3844df6bcb3d1578f4758c2f7d0f00404ea891a01a182193e1e9484ec3e063cf
BLAKE2b-256 checksum
How to use checksums
9ed342c10b96b105858fb5076f3926ce770e2cb680c220fbc413ea717b759b17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.11

Release files / cudacanvas-1.0.1.post241118-cp310-cp310-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post241118-cp310-cp310-manylinux2014_x86_64.whl
Size 82.8 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
12e5fa3b534e3d939e5ae51e5e81167785ec7310337c26a34f84afaec0e076e9
BLAKE2b-256 checksum
How to use checksums
9bbc6cbd11382377567fd9026b24a49b60401c6fd4b7199bb8adcf0cafc5241b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.11

Release files / cudacanvas-1.0.1.post241118-cp39-cp39-win_amd64.whl

Download URL cudacanvas-1.0.1.post241118-cp39-cp39-win_amd64.whl
Size 98.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
3c15cc0e5808f44b37740a1bb6b858d286120f24f332bd282f722dbb957aa424
BLAKE2b-256 checksum
How to use checksums
943b3fea8ae202b176c786e5e605a788eb5562981e2782d4d63fe4a76177b056
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.11

Release files / cudacanvas-1.0.1.post241118-cp39-cp39-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post241118-cp39-cp39-manylinux2014_x86_64.whl
Size 82.4 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
80c04750f1a1ead89a5805df254ce0d9d9ae7e300f4837a3a47aba29721df842
BLAKE2b-256 checksum
How to use checksums
8a1351e8b66228e38a435bdc6f96f4cbe26e86ae97fe89ff07ffe902a9d8af5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.11

Release files / cudacanvas-1.0.1.post241118-cp38-cp38-win_amd64.whl

Download URL cudacanvas-1.0.1.post241118-cp38-cp38-win_amd64.whl
Size 99.5 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
ba9188b1c690ad6a258f932f8678d326403238b54a45377c436b125b55889639
BLAKE2b-256 checksum
How to use checksums
04f72bd76de1160619ba2c9e5e1a9ce5fe127a51ba77afb6e8f39c88537defe4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.11

Release files / cudacanvas-1.0.1.post241118-cp38-cp38-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post241118-cp38-cp38-manylinux2014_x86_64.whl
Size 2.9 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
472a65e1b5299c5baed5782ce17cfdd6a856c4dfb4fef3132f7c9fbb25be8a7a
BLAKE2b-256 checksum
How to use checksums
1391dae2b545484edb4b55945644a32ef99d6a95d8caaf945c7efe4dbf8a3a1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.11

Security for cudacanvas 1.0.1.post241118

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page