Skip to main content

Aquiles-Image.

Project description

Aquiles-Image

Aquiles-Image Logo

Easy, fast and cheap Diffusion Models that work for everyone.

🚀 FastAPI • Diffusers • Compatible with the OpenAI client

Python FastAPI OpenAI Compatible PyPI Version PyPI Downloads Docs

🔥 What's New in Aquiles-Image

Feature Description
3x Faster Advanced inference optimizations
🎨 More Models Support for FLUX, SD3-3.5, Flux2 and more
🔧 Better DevX Improved CLI and monitoring capabilities
🔌 OpenAI Compatible Drop-in replacement for OpenAI's image APIs

📋 Prerequisites

  • Python 3.8+
  • CUDA-compatible GPU with 24GB+ VRAM
  • 10GB+ free disk space

Generating an image with stabilityai/stable-diffusion-3.5-medium

https://github.com/user-attachments/assets/00e18988-0472-4171-8716-dc81b53dcafa

Generating an image with black-forest-labs/FLUX.1-Krea-dev

https://github.com/user-attachments/assets/00d4235c-e49c-435e-a71a-72c36040a8d7

Editing an image with black-forest-labs/FLUX.1-Kontext-dev

Edit Script Result
Edit Script Edit Result

⚙️ Installation

From Pypi

uv pip install aquiles-image

From source

git clone https://github.com/Aquiles-ai/Aquiles-Image.git
cd Aquiles-Image
uv pip install .

🚀 Launch your Aquiles-Image server

aquiles-image serve --host "0.0.0.0" --port 5500 --model "stabilityai/stable-diffusion-3.5-medium"

🎨 Supported Models

⚠️ VRAM Requirements: Most models require 24GB+ VRAM with an additional ~10GB free for processing. And for some reason, the diffusers/FLUX.2-dev-bnb-4bit model in Img2Img tasks tends to have high inference times, even when it is running entirely on CUDA.

🧪 Experimental: AutoPipeline Support

Experimental Diffusers Performance

Aquiles-Image now supports running additional models through the experimental AutoPipeline feature. This allows you to use any model compatible with AutoPipelineForText2Image from Hugging Face's Diffusers library.

What is AutoPipeline?

AutoPipeline automatically detects and loads compatible diffusion models without requiring manual configuration. While this provides greater flexibility, it comes with some trade-offs.

Supported Models

Any model that can be loaded with AutoPipelineForText2Image without extra configurations, including:

  • stable-diffusion-v1-5/stable-diffusion-v1-5
  • stabilityai/stable-diffusion-xl-base-1.0
  • And many more from HuggingFace Hub

Usage

aquiles-image serve --host "0.0.0.0" --port 5500 \
  --model "stabilityai/stable-diffusion-xl-base-1.0" \
  --set-steps 30 \
  --auto-pipeline

Example with OpenAI Python Client

from openai import OpenAI
import base64

client = OpenAI(base_url="http://127.0.0.1:5500", api_key="__UNKNOWN__")

result = client.images.generate(
    model="stabilityai/stable-diffusion-xl-base-1.0",
    prompt="a beautiful sunset over mountains",
    size="1024x1024"
)

print(f"Generated image: {result.data[0].url}")

# Download the image
image_bytes = base64.b64decode(result.data[0].b64_json)
with open("output.png", "wb") as f:
    f.write(image_bytes)

More Examples

Using Stable Diffusion v1.5:

aquiles-image serve --model "stable-diffusion-v1-5/stable-diffusion-v1-5" --set-steps 40 --auto-pipeline

Using SDXL Base:

aquiles-image serve --model "stabilityai/stable-diffusion-xl-base-1.0" --set-steps 30 --auto-pipeline

With custom port and API key:

aquiles-image serve \
  --model "stabilityai/stable-diffusion-xl-base-1.0" \
  --set-steps 30 \
  --auto-pipeline \
  --port 5500 \
  --api-key "your-secret-key"

⚠️ Important Limitations

Limitation Description
🐌 Slower Inference AutoPipeline models may have longer inference times compared to optimized native implementations
🚫 No LoRA Support LoRA adapters are not currently supported
🚫 No Adapters Other adapter types (ControlNet, T2I-Adapter, etc.) are not supported
🧪 Experimental This feature is in active development and may have stability issues
📦 Limited Configs Only models that work out-of-the-box with default AutoPipelineForText2Image settings

Troubleshooting

If you encounter errors with AutoPipeline:

  1. Check model compatibility: Ensure the model supports AutoPipelineForText2Image

    # Test locally first
    from diffusers import AutoPipelineForText2Image
    pipe = AutoPipelineForText2Image.from_pretrained("model-name")
    
  2. Verify VRAM: Some models may require more VRAM than expected

    • Check model card on Hugging Face for requirements
    • Monitor GPU memory usage during inference
  3. Use native implementations: For supported models (FLUX, SD3, etc.), use the optimized native pipelines instead

    # Instead of --auto-pipeline, use native support 
    aquiles-image serve --model "stabilityai/stable-diffusion-3.5-medium"
    
  4. Check logs: Enable verbose logging to see detailed error messages

    # The server logs will show detailed error information
    # Look for errors starting with "X" emoji
    

💡 Tip: If a model is frequently used in your workflow, consider requesting native support by opening an issue on our GitHub repository.

Reporting Issues

When reporting AutoPipeline issues, please include:

  • Model name and HuggingFace URL
  • Full error message and logs
  • GPU model and VRAM amount
  • Aquiles-Image version (pip show aquiles-image)

Create an issue at: https://github.com/Aquiles-ai/Aquiles-Image/issues

💻 Start your Aquiles-Image server in dev mode without loading models

Dev mode allows you to start the server without loading any AI models, ideal for rapid development, integration testing, or endpoint validation without requiring GPU or heavy computational resources.

aquiles-image serve --host "0.0.0.0" --port 5500 --no-load-model

What does dev mode do?

  • No model loading: Server starts instantly without downloading or loading AI models
  • Functional endpoints: All endpoints respond normally with test images
  • Realistic responses: Returns valid images that simulate model responses
  • Same format: Responses maintain the exact API format (URLs, base64, metadata)

Use cases

  • API integration development
  • Endpoint testing without GPU
  • Workflow validation
  • CI/CD environment testing
  • Development on machines without GPU resources

Note: Dev mode is for development only. For production, use the normal server with loaded models.

🎉 Generate your first image with Aquiles-Image

from openai import OpenAI
import requests

client = OpenAI(base_url="http://127.0.0.1:5500", api_key="__UNKNOWN__")

result = client.images.generate(
    model="stabilityai/stable-diffusion-3.5-medium",
    prompt="a white siamese cat",
    size="1024x1024"
)

print(f"URL of the generated image: {result.data[0].url}\n")

image_url = result.data[0].url
response = requests.get(image_url)

with open("image.png", "wb") as f:
    f.write(response.content)

print(f"Image downloaded successfully\n")

🎯 Perfect For

Use Case Description
🚀 AI Startups Building image generation features
👨‍💻 Developers Prototyping with Image Generation Models
🏢 Enterprises Scalable image AI infrastructure
🔬 Researchers Experimenting with multiple models

Built with ❤️ for the AI community

⭐ Star this project📖 Documentation💬 Community

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aquiles_image-0.1.91.tar.gz (2.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aquiles_image-0.1.91-py3-none-any.whl (2.7 MB view details)

Uploaded Python 3

File details

Details for the file aquiles_image-0.1.91.tar.gz.

File metadata

  • Download URL: aquiles_image-0.1.91.tar.gz
  • Upload date:
  • Size: 2.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for aquiles_image-0.1.91.tar.gz
Algorithm Hash digest
SHA256 1c4b221d64f861a3224302770a1d0d87f6496d7aee0aa323e24331ea63b859d9
MD5 bb7db469c22448479294d4dbf8d82671
BLAKE2b-256 a44f66f0e09b66aa4c28470a48ee93fdfab5e4e97791d1b5545fc18a1b9cca62

See more details on using hashes here.

File details

Details for the file aquiles_image-0.1.91-py3-none-any.whl.

File metadata

  • Download URL: aquiles_image-0.1.91-py3-none-any.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for aquiles_image-0.1.91-py3-none-any.whl
Algorithm Hash digest
SHA256 93e620de4235ac22b106b09aa58b707b43f88f210a3cf8cd96af39ee187478f1
MD5 b0b44adeef7150a44915bed1bf3f37d0
BLAKE2b-256 da5e2c05bbac0ac19ec6cdf5d5758413c5a7f627e7e7c7964a5d427c4440bb38

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page