File size: 691 Bytes
cfbcb75
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
"""Tensors between the host ACE-Step process and the TT DiT worker.

The two sides run different numpy/torch builds (ACE-Step venv vs the TT image), so tensors cross the socket as raw
little-endian bytes with dtype and shape, inside plain dicts that pickle identically on both sides."""
from __future__ import annotations

import torch

_DTYPES = {"float32": torch.float32}


def encode(t: torch.Tensor) -> dict:
    t = t.detach().to("cpu", torch.float32).contiguous()
    return {"dtype": "float32", "shape": list(t.shape), "data": t.numpy().tobytes()}


def decode(d: dict) -> torch.Tensor:
    return torch.frombuffer(bytearray(d["data"]), dtype=_DTYPES[d["dtype"]]).reshape(d["shape"])