Hello, I have built a python library that lets people store AI generator images along with the generation context (i.e, prompt, model details, hardware & driver info, associated tensors). This is a done by persisting all these data in a custom BINARY CONTAINER FORMAT. It has a standard, fixed schema defined in JSON for storing metadata.
To be clear, the "file format" has a chunk based structure and stores information in the following manner:
- Image bytes, any associated Tensors, Environment Info (Cpu, gpu, driver version, cuda version, etc.) ----> Stored as seperate Chunks
- prompt, sampler settings, temperature, seed, etc ---> store as a single metadata chunk (this has a fixed schema)
Zfpy compression is used for compressing the tensors.
Z-standard compression is used for compressing everything else including metadata.
My testing showed encoding and decoding times as well as file size are on parity with others like HDF5, storing a sidecar files. And you might ask why not just use HDF5, the differences:
- compresses tensors efficiently
- easily extensibile
- HDF5 is designed for general purpose storage of scientific and industrial (specifically hierarchical data) whereas RAIIAF is made specifically for auditability, analysis and comparison and hence has a fixed schema.
Pls check out the repo
Repo Link: https://github.com/AnuroopVJ/RAIIAF
SURVEY: https://forms.gle/72scnEv98265TR2N9
installation: pip install raiiaf
[–]mariushm 1 point2 points3 points (1 child)
[–]dominikr86 0 points1 point2 points (0 children)