Show HN: Pixaven – modern GPU-powered image processing API
pixaven.com
pixaven.com
Pixaven is an image processing API that runs entirely on Mac Pros (cylindrical, 2nd gen) that we host ourselves in a Tier-3 data center in Frankfurt, Germany. The goal was to build a service that would enable developers to process huge amounts of images at blazing speed with a simple to use API. Since pixels nowadays belong to graphic cards all heavy processing takes place on the GPUs [1].
We wrote our image rendering engine from scratch and can rapidly deploy custom solutions that revolve around pixel manipulation, computer vision and machine learning.
Pixaven API currently supports:
- Resizing and scaling (with multiple modes) - Cropping (with multiple modes) - Face detection - Watermarking - Masking - Filtering (such as blurring, colour isolation, duotone, etc.) - Manual adjustments (such as brightness, contrast, exposure, etc.) - Automatic enhancements - External storage to AWS, GCP, Azure, IBM, DO and Rackspace
While Pixaven works like a standard API and can push processed images to object storage of choice, we also offer Storage and Delivery addon and can distribute visual content over a global 65+ Tbps content delivery network.
Developers can integrate the API right away with production-ready integration libraries for Node, Go, PHP, Java, Ruby and Python.
We also implemented some additional features around the Pixaven Account such as 2FA and SSO, team management, access control and detailed activity logs.
We'd love to get some feedback and I'm here to answer any questions
Here's what I don't quite get: why does the GPU differentiation matter to me as a user of your API? I get that you're faster than doing it myself using something like ImageMagick, but are you faster than the other image processing APIs out there because of this? If so, that's what I think you should be touting. If not, whether the images are being processed by GPUs or trained giraffes is not that important to me as a consumer of the API, but I could be way off-base.
With Metal Performance Shaders we have absolute control over pixels and direct access to the underlying hardware. For us that means we can rapidly test and deploy new CoreML models and also the ability to quickly respond to any feature-request.
So this was my point in bringing it up: "We're faster than the other APIs out there" is a much more direct benefit to communicate to me as an API user than "We use GPUs, which makes us fast, faster than the competition, who don't use GPUs". The latter version has me making assumptions and eventually getting to a conclusion that matters to me; why not take me there immediately?
The thing is, as a non-expert in this area, I don't even fully understand whether the real performance bottleneck in such an API is the latency of uploading the image and downloading the result, or the computational processing of the image. So if using GPUs cuts the overall request time by 70%, that's great! If it only affects the round-trip time by 5%, then it's not a huge deal to me. As the domain expert, I'm relying on Pixaven's marketing to educate me on this.
Congrats on launching, great work!
Also, even for your embedded 1st-party images, even if you really know every variation you want to deliver (putting you in a small minority), and you already have an asset pipeline you're happy with (a smaller minority), there are still potential use cases (test automation, R&D, prototyping, DX shortcuts...) I can think of off the top of my head.
No affiliation (I haven't even tried Pixaven), just replying to your question per se. :)
Edit: also, some of the listed features (eg face detection and blurring) might not be part of your extant pipeline's capabilities.
Pixaven is a service meant (ideally) for businesses running at scale. If you're a large e-commerce platform with literally millions of new images (and their variants) created per day you would be looking for a solid platform to process this visual content for you.
2. I don't care about speed. Image manipulation can never be instant, and while the operation may be super fast on your end, the image data still needs to travel the wire, and be rendered on the UI. Your performance argument therefore is mute for me.
3. I do care a lot about having smart features like face detection, auto rotation, optimization (e.g. optipng), this should be on your start page.
I'm curious, what's the connection between https://kraken.io/ and this; they seem to be connected, and similar?
I was also taken aback the 3.9bn images processed on your homepage. Then I looked at Kraken's, and its 3.5bn processed, but it launched in 2013? Is it the same image-processing engine, with GPU's?
So the benefit is, you can just use the API and get state of the art quality without spending three person-months tuning and debugging each and every op.
The foundation of any image processing pipeline on MacOS/iOS is Image IO that offers crazy fast codecs for over a dozen different image formats. Even though I had to write extra integrations for WebP and animated GIFs it was really worth the effort. Native HEIC/HEIF support (reading and writing) is also neat.
Apple's CoreML is another piece of software I am using more and more at Pixaven. The ease of testing and deployment of new ML models is just amazing (and yes, I am learning a lot along the way).
What would be great is if they offered similar capabilities to CoreImage (that is, quality-focused, flexible image processing) that I could use everywhere I can use CUDA.
So I'm not quite sure that I understand this reasoning in your case, as the operations performed (scaling, cropping, watermarking, flipping, filtering) are available in just about any image processing pipeline, and not really linked to anything that Quartz or Mac does particularly well.