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.post250121

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

Total release size: 545.6 kB

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

Download URL cudacanvas-1.0.1.post250121-cp311-cp311-win_amd64.whl
Size 99.3 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
3a07cb59e254977d69fe9bb2b05a744fe705a9ec3519010baa012378234cf8b3
BLAKE2b-256 checksum
How to use checksums
a9fac6f13e76b0e02bc562692467d9cf3a7a1cd066d8a1edbdce76f50bccd3d6
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.post250121-cp311-cp311-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post250121-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
e455708f0042f471d3a4e7bf7d402e827f014e4788809feffc0aafdfe1972246
BLAKE2b-256 checksum
How to use checksums
c1779c639dd0a519db52513846f8dedf24272ae6d4d59f8eb72ec4cc5d7b5cc2
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.post250121-cp310-cp310-win_amd64.whl

Download URL cudacanvas-1.0.1.post250121-cp310-cp310-win_amd64.whl
Size 98.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
8ca36d64483c045661cf712464bf82a6b7b70cc3a7f62acfbcc8784ed549635a
BLAKE2b-256 checksum
How to use checksums
c146453247b643c0997c0b34c9269f572ebc9f3597dd225eaad1bc51e02c4ec6
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.post250121-cp310-cp310-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post250121-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
26cc0a2113ae01b5631b58a1774448a2c45887c5b65993c21d6bbf51047ee871
BLAKE2b-256 checksum
How to use checksums
a6f66ffbe23c58bc58381377a1bc00fa99256b2e3dc02eb75bf14089e1f05c4c
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.post250121-cp39-cp39-win_amd64.whl

Download URL cudacanvas-1.0.1.post250121-cp39-cp39-win_amd64.whl
Size 98.5 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
9c8a37e7d77b801e053a24a7f583b3358135991edc10db1e58612e74581c239b
BLAKE2b-256 checksum
How to use checksums
095ac64894559f6b96682c901fe0980ccae5e85c89f5f5e9fb0906ea1bc439d9
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.post250121-cp39-cp39-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post250121-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
a15898cdf3050a189ae401616b073d353ef9c44ee6e7d72343927542c0af4382
BLAKE2b-256 checksum
How to use checksums
6b51aa886f416d471bda5d1d38409b0dc44ff9476e4f5ff66f66a1a5b1d9d807
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.post250121

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