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 2.2.2+cu121 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.post240118

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.post240118
File Actions
cudacanvas-1.0.1.post240118-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for cudacanvas-1.0.1.post240118-cp311-cp311-win_amd64.whl
cudacanvas-1.0.1.post240118-cp311-cp311-manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details for cudacanvas-1.0.1.post240118-cp311-cp311-manylinux2014_x86_64.whl
cudacanvas-1.0.1.post240118-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for cudacanvas-1.0.1.post240118-cp310-cp310-win_amd64.whl
cudacanvas-1.0.1.post240118-cp310-cp310-manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details for cudacanvas-1.0.1.post240118-cp310-cp310-manylinux2014_x86_64.whl
cudacanvas-1.0.1.post240118-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for cudacanvas-1.0.1.post240118-cp39-cp39-win_amd64.whl
cudacanvas-1.0.1.post240118-cp39-cp39-manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details for cudacanvas-1.0.1.post240118-cp39-cp39-manylinux2014_x86_64.whl
cudacanvas-1.0.1.post240118-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details for cudacanvas-1.0.1.post240118-cp38-cp38-win_amd64.whl
cudacanvas-1.0.1.post240118-cp38-cp38-manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details for cudacanvas-1.0.1.post240118-cp38-cp38-manylinux2014_x86_64.whl

Total release size: 3.5 MB

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

Download URL cudacanvas-1.0.1.post240118-cp311-cp311-win_amd64.whl
Size 99.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
4f2636010d97601e123300632d331c61980996443262c72c4ac66d892d98a4a3
BLAKE2b-256 checksum
How to use checksums
21f1b3f7eb64c1ebc400b790aad04fa9b95670db8f42d31d421cdf310e90175a
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.post240118-cp311-cp311-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post240118-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
d623d9854c64006551a988b4850451e580310589d9e8491b1ebcfddef25e8563
BLAKE2b-256 checksum
How to use checksums
6a8a70836ee6c726aa82df79c669106fc7203a45fd01bfc75c80e0463a2a9afa
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.post240118-cp310-cp310-win_amd64.whl

Download URL cudacanvas-1.0.1.post240118-cp310-cp310-win_amd64.whl
Size 98.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
406b7df0f0d1972e8fd2a8961d0120e082c8307740de52bd2ae6e7c3a31c72fb
BLAKE2b-256 checksum
How to use checksums
881f162eccefdd027a9e6f0fa04374fb7f82e03e34c19a287c2effadcaaf1405
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.post240118-cp310-cp310-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post240118-cp310-cp310-manylinux2014_x86_64.whl
Size 82.7 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
810b83341281fdfd3f3e79066250fda3379b4827c6fb346b8d4821148d4ab4a2
BLAKE2b-256 checksum
How to use checksums
eb6e94b0293acd40ce031cae059659c80b3ca465be43227dfd3b1404d84308e7
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.post240118-cp39-cp39-win_amd64.whl

Download URL cudacanvas-1.0.1.post240118-cp39-cp39-win_amd64.whl
Size 98.6 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
7f0184434cd9ad18843d603d6f700a1dc7eb25d5b7c38ab0f8ffb05e4ddb1d45
BLAKE2b-256 checksum
How to use checksums
c9f0e1ef9f0bf921573a278b9ab2206649a3239b8f462e8118cb26c8b0c43d93
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.post240118-cp39-cp39-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post240118-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
3dcb97851eaf67468bd857ce98055a047a25e9a93dc6cafc7bc3d2cb3a856114
BLAKE2b-256 checksum
How to use checksums
738137811c66c70e36644fbebfb5ecb7fa557c8be0df28c0d0bd14d03435dcb1
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.post240118-cp38-cp38-win_amd64.whl

Download URL cudacanvas-1.0.1.post240118-cp38-cp38-win_amd64.whl
Size 99.4 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
3b97efb1bf79bfe543f0f437ad4dcc0d890371e1874d8db933ea056f020b4472
BLAKE2b-256 checksum
How to use checksums
b8f40237cda4b6be800fcafb1842cf3438128679b5803ea9ef8fa56d6e2eeb47
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.post240118-cp38-cp38-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post240118-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
bb05efe7a77c891818f49fa4e054d0d72e94dcf8a2e1eb253c01c8193c365891
BLAKE2b-256 checksum
How to use checksums
74f5e2871d06a6ed25859a7a8a47faa7b4c2e1ee57a6d67f5d48cf9143656407
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.post240118

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