Skip to main content

Buy Me A Coffee 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.post260118

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

Total release size: 565.8 kB

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

Download URL cudacanvas-1.0.1.post260118-cp311-cp311-win_amd64.whl
Size 101.8 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
540a88c3f38045a95dc883014d77a3b364813afb77e496940ea8131048585bf4
BLAKE2b-256 checksum
How to use checksums
921a9e7b589c410581c48b36aad8b8171d8ba18b06e447ae9fd2f4aedde54afd
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.post260118-cp311-cp311-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post260118-cp311-cp311-manylinux2014_x86_64.whl
Size 88.7 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
9aea7695784782f7bf4528bdcf2ac83011bd5afd2354ffd9622789f387abdba3
BLAKE2b-256 checksum
How to use checksums
606b2bca93c72e96383a8e21b5f7eb8c80d74ea214d09e6f5ae3c445114df233
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.post260118-cp310-cp310-win_amd64.whl

Download URL cudacanvas-1.0.1.post260118-cp310-cp310-win_amd64.whl
Size 100.6 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
98a47b5cbaa0ff539c7b79462f7819fdc3f66c974a18db51486b7ade9149563d
BLAKE2b-256 checksum
How to use checksums
c921bf7c2528e2172d2536a3e05dcccdac18a43af844b1ccff05c48079a2f593
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.post260118-cp310-cp310-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post260118-cp310-cp310-manylinux2014_x86_64.whl
Size 87.0 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
99166329111fa396da909d0902f248cda39bde5824d922d824e5e3506d8452c4
BLAKE2b-256 checksum
How to use checksums
3bac71267072f4d67370f358d78c39c5a8b5ab2341a3d105d50b83213dc15815
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.post260118-cp39-cp39-win_amd64.whl

Download URL cudacanvas-1.0.1.post260118-cp39-cp39-win_amd64.whl
Size 101.1 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
571fc3e7ec8a5e968d285fa4863a176e0aa9bbc652376a2bc1a6bd46b0e582ce
BLAKE2b-256 checksum
How to use checksums
c4d022b4254af5312ffe05ac258238e03b36c53bf58b8504fda108c3e9e38b8d
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.post260118-cp39-cp39-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post260118-cp39-cp39-manylinux2014_x86_64.whl
Size 86.6 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0377ebbddb5d4e5a494b7bef38764c7b63c0af2cc07e62f010ea2a3e46b30041
BLAKE2b-256 checksum
How to use checksums
2c9b508ff93c2c9e5df808b7a696584bf82b7f6d21a2c5f0cf9be72ba71714b6
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.post260118

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