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

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

Total release size: 565.8 kB

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

Download URL cudacanvas-1.0.1.post260124-cp311-cp311-win_amd64.whl
Size 101.8 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
b1d5d8d43001b9e44af65da885d0b1179d4caee4a18ddf56e729d8d77336f844
BLAKE2b-256 checksum
How to use checksums
19ddde0e228280be9ebc2259bb4712a63410fed4192061973f236aa3ecf399c8
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.post260124-cp311-cp311-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post260124-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
cabb674d106dde722ddafb005d98cd1acc89b03cb8fd6be94b4d9cbd39e8eca2
BLAKE2b-256 checksum
How to use checksums
7bc0fd04f4e94576c6ff2d3ce139f4a9773075316fcf03d5c4f6970be8f91289
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.post260124-cp310-cp310-win_amd64.whl

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

Download URL cudacanvas-1.0.1.post260124-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
29c8e8268d0f18be95d4eca923e16f4c165e99c5ae972be3481e178c21a73416
BLAKE2b-256 checksum
How to use checksums
afee32bcc3b26b9cdc10667789db922c187b7457e030e98676a4e7aace2c80f9
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.post260124-cp39-cp39-win_amd64.whl

Download URL cudacanvas-1.0.1.post260124-cp39-cp39-win_amd64.whl
Size 101.1 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
3eae7f3502b73797be9329cdba16520eb3e27c532bd4c4241d5e7c8838e1fe19
BLAKE2b-256 checksum
How to use checksums
5abe6eeda5a0c23ab8f0aa4232461b43d963fbce9121c6c6f46d88d2350f6f0c
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.post260124-cp39-cp39-manylinux2014_x86_64.whl

Download URL cudacanvas-1.0.1.post260124-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
4e9d706894552bce308ed74ec779fd12d7cfc0829a0d52137386cdffa29afe20
BLAKE2b-256 checksum
How to use checksums
c617736f794f735f19c679ed6c8a1808643f3c4a4f5f9e33dba7cac51b4c5e9e
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.post260124

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