Announcing Tiny Dream: The Future of Stable Diffusion Inference in C++

PixLab, a leading provider of Machine Vision is thrilled to unveil our latest creation: Tiny Dream. This header only, C++ library represents a significant leap forward in the realm of Stable Diffusion Inference, all neatly packaged into a C++ framework.

Principle of diffusion models where Tiny Dream is based on

What is Tiny Dream 🔥

Tiny Dream is a header only, dependency free, partially uncensored, Stable Diffusion implementation written in C++ with primary focus on CPU efficiency, and smaller memory footprint. Tiny Dream runs reasonably fast on the average consumer hardware, require only 1.7 ~ 5.5 GB of RAM to execute, does not enforce Nvidia GPUs presence, and is designed to be embedded on larger codebases (host programs) with an easy to use C++ API. The possibilities are literally endless, or at least extend to the boundaries of Stable Diffusion's latent manifold.

Features 🔥

For the extensive list of features, please refer to the official documentation here.

  • OpenCV Dependency Free: Only stb_image_write.h from the excellent stb single-header, public domain C library is required for saving images to disk.
  • Smallest, Run-Time Memory Footprint for Running Stable Diffusion in Inference.
  • Straightforward to Integrate on Existing Codebases: Just drop tinydream.hpp and stb_image_write.h on your source tree with the Pre-trained Models & Assets.
  • Reasonably fast on Intel/AMD CPUs (Benchmarks): With TBB threading and SSE/AVX vectorization.
  • Support Real-ESRGAN, A Super Resolution Network Upscaler.
  • Full Support for Words Priority: Instruct the model to pay attention, and give higher priority to word (keywords) surrounded by parenthesis ().
  • Support for Output Metadata: Link meta information to your output images such as copyright notice, comments, or any other meta data you would like to see linked to your image.
  • Support for Stable Diffusion Extra Parameters: Adjust Seed resizing & Guidance Scale.

Documentation & Resources to Get Started 🔥

Dive Deeper with GitHub

For those eager to explore the intricacies of Tiny Dream, we've made the entire project available on GitHub. Dive into the code, explore its features, and join our community of contributors. Check out the project here: Tiny Dream on GitHub.

Related Projects 🔥

You may find useful the following production-ready projects developed & maintained by PixLab | Symisc Systems:

  • SOD - An Embedded, Dependency-Free, Computer Vision C/C++ Library.
  • FACEIO - Cross Browser, Passwordless Facial Authentication Framework.
  • PixLab Annotate - Online Image Annotation, Labeling & Segmentation Tool.
  • ASCII Art - Real-Time ASCII Art Rendering C Library.
  • UnQLite - An Embedded, Transactional Key/Value Database Engine.

In Conclusion:

The release of Tiny Dream marks a pivotal moment for us. We believe in pushing the boundaries of what's possible, and with Tiny Dream, we're one step closer to redefining the future of Stable Diffusion inference. We invite you to join us on this exciting journey, explore Tiny Dream, and witness the future of C++ libraries.

Thank you for your continued support and enthusiasm. Here's to many more innovations ahead!

Stay tuned for more updates and announcements. Your feedback and contributions are always welcome!

Introducing the Pixel Generate API Endpoint

PixLab Logo

The PixLab Computer Vision Team is pleased to introduce the Pixel Generate API endpoint (/pixelgenerate) which let you in a single call, generate on the fly, images filled with random pixels of desired width & height using a mix of standard Image Processing and soon Machine Learning algorithms.

This endpoint is similar to /newimage except that the image contents is filled with random pixels. This is very useful for generating background (negative) samples for feeding Machine Learning training algorithms for example.

By default, this endpoint return a JSON object holding a link to the generated image output. But, you can set it via the Blob parameters to return the image binary contents instead.

Below, a Python snippet which generate on the fly a new image of height & width of 300x300 filled with random pixels using a single call to /pixelgenerate:

The code sample used to achieve such result is available to consult via the following Github link: