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

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

Total release size: 3.4 MB

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

Download URL cudacanvas-1.0.1.post231118-cp311-cp311-win_amd64.whl
Size 99.1 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2af8492216d6df8fcde000c2a925385ed08ca57f3789acc18377547a1064a512
BLAKE2b-256 checksum
How to use checksums
6588731dc119d9532dd60020d2545767b0f4dbf487031f019c18756a0abdf516
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.post231118-cp311-cp311-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post231118-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
b14acfb02e5cf33d7e7cf71b6c378ec30b58c2a9143ffd5b9d823ebac2886d2d
BLAKE2b-256 checksum
How to use checksums
5ebe3e16c0febd14e20b2cdaa30a1fd4974f7da658b02ab4d21b63ff7478358d
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.post231118-cp310-cp310-win_amd64.whl

Download URL cudacanvas-1.0.1.post231118-cp310-cp310-win_amd64.whl
Size 98.1 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
62ca1813b1263e298cebd9d0a1bb5d130fd8346b09e648796a6bfa553a97beb3
BLAKE2b-256 checksum
How to use checksums
3135c0660cd15de6e552c54a4d4ab4633816b41adb2ce4a55eaf9dd9f2c4123f
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.post231118-cp310-cp310-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post231118-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
7cd7dffc0b34491eed7e52934291b96ab32496bee9b4f0d446c0c9236a3a7142
BLAKE2b-256 checksum
How to use checksums
5370c2f303e06a920c06266a8fbc589f4d5bed565a589fa72502828fc348f06b
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.post231118-cp39-cp39-win_amd64.whl

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

Download URL cudacanvas-1.0.1.post231118-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
2eb94735aa58476a08b56d5d7658c869f8bdf56573ad6c9a8ca2a8dda6110ced
BLAKE2b-256 checksum
How to use checksums
2928723777bd5e6cfa492ee4bf17fb1e51589aa50e8125c7a793aaa608faec39
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.post231118-cp38-cp38-win_amd64.whl

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

Download URL cudacanvas-1.0.1.post231118-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
e9b1b187350c0d85bf4405003866cfb1c8efdf31af58079bf9d2cd57dad23284
BLAKE2b-256 checksum
How to use checksums
bff8f76aa8083db8fee72b36711db471adab01a2fa8d8c887e17287fd3ff314e
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.post231118

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