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

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

Total release size: 3.5 MB

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

Download URL cudacanvas-1.0.1.post241121-cp311-cp311-win_amd64.whl
Size 99.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
0a145ba6dc99adbd7b8c1edd4ad9cca805722e3265555f358e5f12ad5ab97d20
BLAKE2b-256 checksum
How to use checksums
553f85a19d0d11027d7d2bc56fb323212165c94eba1b066f1b3295cb6476ac3a
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.post241121-cp311-cp311-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post241121-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
7205f6e50ecac1291f67978e9d38b868be74edf280b438ba5e0b063a4e344e4b
BLAKE2b-256 checksum
How to use checksums
d770c681b7fa09903fec1dd5477e5c486bcb3a0b9cf55f2b607fe94507ebc851
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.post241121-cp310-cp310-win_amd64.whl

Download URL cudacanvas-1.0.1.post241121-cp310-cp310-win_amd64.whl
Size 98.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
12abc81e2be761532fa710e1410c0605452e79495e4981e0326f45b4f06ba0af
BLAKE2b-256 checksum
How to use checksums
78fd9365051b5f30a5f7fbcf4bc18b2b47682176e8e18f25cd2275aedc08ff79
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.post241121-cp310-cp310-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post241121-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
dc29890c4cd278e0fd3fe9eefc31f325a568623e82402832eeb323576d09bb75
BLAKE2b-256 checksum
How to use checksums
51f72911a6136176f611ac389b20f0e2a70cd163ed9e15d988c4f14093bdbadf
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.post241121-cp39-cp39-win_amd64.whl

Download URL cudacanvas-1.0.1.post241121-cp39-cp39-win_amd64.whl
Size 98.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
6d9252898fa266699a5dfca226bb571239b2349b21d8731815bf3162be294f7c
BLAKE2b-256 checksum
How to use checksums
a025ca30a0d5377d8a066aebd8915981b7f100533b04d7f5d5aa7c5b73a55bc2
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.post241121-cp39-cp39-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post241121-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
8645d0abfcc68d7a2e47acfbfa0c58001d90c32defa3b137711fcaeb17f10a8e
BLAKE2b-256 checksum
How to use checksums
5298989812a6c30be393f0af53262ceff6022605a29b05853134d53b42df03b9
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.post241121-cp38-cp38-win_amd64.whl

Download URL cudacanvas-1.0.1.post241121-cp38-cp38-win_amd64.whl
Size 99.5 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
4fafdbfc95392d61952d17d4da30795e4223392302f591b52aef06be5f083119
BLAKE2b-256 checksum
How to use checksums
df40b2fd9954b3909da068d737e7eff36e1af1e38c33b40672380dc2247fce33
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.post241121-cp38-cp38-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post241121-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
89b3bf9a1eaf4d69ef6e9a90f82bf5853bb2603abd33a7f42d1a623a7a1047f6
BLAKE2b-256 checksum
How to use checksums
27b4a07f85f0cb59577655f2e39929c7abc70c1ccd64b9732911e2d4e466340d
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.post241121

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