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

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

Total release size: 3.4 MB

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

Download URL cudacanvas-1.0.1.post231121-cp311-cp311-win_amd64.whl
Size 99.1 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
96ddaca119a533a0c2d4674260b4a16017759338ac6aa50d43247d25ec51077d
BLAKE2b-256 checksum
How to use checksums
4d75debf92199d9f919120c62ab88809f6fdb6402ce9f95946571643cb621803
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.post231121-cp311-cp311-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post231121-cp311-cp311-manylinux2014_x86_64.whl
Size 84.2 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b68f98433bdfde3ef0f8c45a6735aca43910e49219fc778a3631e47f28b88db8
BLAKE2b-256 checksum
How to use checksums
dc15451779844231b6e3e70c80e1372800111f8ed77a650d0cee9fc40577b382
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.post231121-cp310-cp310-win_amd64.whl

Download URL cudacanvas-1.0.1.post231121-cp310-cp310-win_amd64.whl
Size 98.1 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
79c09706b19b5e719089b6d2864bb6aab274a183ad1a84c32670755809fad4e8
BLAKE2b-256 checksum
How to use checksums
544b1014fb088032b7ec9a009cb256616f4c4b70f700693b8ce60a82b72f263c
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.post231121-cp310-cp310-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post231121-cp310-cp310-manylinux2014_x86_64.whl
Size 82.6 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
110f710684523fa756f13cf7d5a142537ca43061c0b2cbd897348a3ea2e24f68
BLAKE2b-256 checksum
How to use checksums
4a6f25dc3a5a8f1415a99c6c16341c8bf93ddb52de81dc098de573102a93ba19
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.post231121-cp39-cp39-win_amd64.whl

Download URL cudacanvas-1.0.1.post231121-cp39-cp39-win_amd64.whl
Size 99.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
eca692fbafbac923a41e60142282adafbed17bdb90518e9c3305938b6c8a3fa4
BLAKE2b-256 checksum
How to use checksums
5b310c7134750576051b59e9085e72ca5f29cbad324bdf86dec0d6885cd546c7
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.post231121-cp39-cp39-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post231121-cp39-cp39-manylinux2014_x86_64.whl
Size 82.1 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8ba75fffc861bd73cdc588e5c4a64389344c303eb2395c76775709a28a80d508
BLAKE2b-256 checksum
How to use checksums
c47e68542e4726561b334de3fd0378a4db18f1255b0283247f0a1594f61236ce
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.post231121-cp38-cp38-win_amd64.whl

Download URL cudacanvas-1.0.1.post231121-cp38-cp38-win_amd64.whl
Size 100.6 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
dff11c2c86c62cced4e8486d8f9b4787db9b47e73c2311f15c7038267a7904a2
BLAKE2b-256 checksum
How to use checksums
ea1564ae879e3d346a7950a7b509b2c33db83c83af81563c0331d596c330e8ce
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.post231121-cp38-cp38-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post231121-cp38-cp38-manylinux2014_x86_64.whl
Size 2.7 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a5bb7f0d6fea8beec0f8ae5d4c31111420af585dfb52a958cb4836c280345205
BLAKE2b-256 checksum
How to use checksums
f0a09a2161053b2dfc42f7baa355f78a0e93b577fd496f52a9a81541cf9ac975
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.post231121

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