Documentation
Introduction
Ablo is a design tool purpose built for fashion designers. We utilize a set of Stable Diffusion models that are custom trained on different contemporary styles (e.g. Kidult or Graffiti). Using Ablo, fashion brands can give their in-house designers and even their customers the ability to create unique designs with the click of a button.
(If you're looking for a full-featured demo of our services, sign up on our Dashboard and go to the 'Demo' section.
Main Features
Here are the core entities in the platform
Templates are garments or other things with drawable areas on them. Each Template has multiple TemplateSides, TemplateColors, and Sizes.
A TemplateSide represents a part of the object is drawable. On the TemplateSide, we define the drawable area.
A TemplateColor is a Client defined color for their Template.
We support universal sizes for templates: XXS, XS, S, M, L, XL, and XXL
A Design represents the Template with an image and/or text in one or more of the drawable areas. Like Templates and TemplateSides, Designs are composed of multiple DesignSides.
A DesignSide is a TemplateSide with a drawable area with an image and/or text inside.
The Generator is the heart of the Ablo service. The Generator generates images based on text and Styles. It's also able to remove backgrounds on images. You'll want to get available Styles from the Styles API.
An Image is generated on all calls to /generate endpoints
In order to generate images, you must pass the Style you wish to use. You should request all Styles from GET /styles.
Authentication
Every Client is issued an API key. Every call you make to the Ablo API, must be authenticated with your API key. The API key should go in the x-api-key header.
Your usage will be tracked and you will be billed according to your API key usage so best practice would be to keep it secure only on your BE so that it's not exposed to the world. We recommend proxying calls to Ablo services through your own BE.
Error Handling
Here are some common error codes we return and their meaning:
- 400: Bad Request (e.g. input data of wrong type)
- 401: Unauthorized (e.g. Not sending x-api-key or Invalid x-api-key)
- 403: Forbidden (e.g. Accessing Template or Design not owned by Client orAccessing TemplateSide or DesignSide not owned by Client)
- 404: Not Found (e.g. Accessing Template or Design that doesn't exist or was deleted, Accessing TemplateSide or DesignSide that doesn't exist or was deleted, or Accessing a route that does not exist)
- 409: Conflict (e.g. Trying to create 2 Images for the same color / side combo)
- 500: Internal Server Error (We messed up or one of our downstream services messed up. Please reach out and tell us what happened! [email protected])
FAQs
Q: How do I create a Template?
A: You can create Templates and add TemplateSides and TemplateColors, and set Sizes all through the Client Dashboard. Or, if you prefer to do it in a more automated fashion, you do it all through the API as well.
Q: What is the DesignSide.canvasStateUrl field for?
A: This is utility field you can use if you've saved up some state / steps in your canvas that your users are drawing on and need to be able to retrieve or replay it later. It's optional.
Q: What's the difference between DesignSide.imageUrl and DesignSide.previewUrl?
A: DesignSide.imageUrl is the URL to just the image that goes on the Canvas, not including the TemplateSide image. DesignSide.previewUrl is the entire TemplateSide plus the Image on it.
Q: How do I get the available Styles I can use to generate images?
A: Call GET /styles