LiquidAI: d1-ultra vs Nace.AI: Drex Max
A side-by-side comparison of LiquidAI: d1-ultra ($0.15 / 1M tokens) and Nace.AI: Drex Max ($0.21 / 1M tokens) using current USD prices and capabilities from the api14 catalog. Both run through the same OpenAI-compatible API.
Specifications
| LiquidAI: d1-ultra | Nace.AI: Drex Max | |
|---|---|---|
| Provider | LiquidAI | Nace.AI |
| Input | $0.15 / 1M tokens | $0.21 / 1M tokens |
| Cache read | $0.15 / 1M tokens | $0.21 / 1M tokens |
| Context window | 32,768 | 262,144 |
| Max output | 29,491 | 235,929 |
| Input | text, image | text, image |
| Output | decisions | decisions |
| Tool calling | ||
| Structured output | ||
| Reasoning control | ||
| Added | Oct 15, 2026 | Oct 21, 2026 |
Key differences
- LiquidAI: d1-ultra is 30% cheaper on input tokens.
- Nace.AI: Drex Max reads 8.0× more context (262,144 tokens).
- A request with 1,000 input and 500 output tokens costs $0.000147 with LiquidAI: d1-ultra and $0.000210 with Nace.AI: Drex Max.
In depth
LiquidAI: d1-ultra is a decisions model from LiquidAI, released on 15 October 2026. Nace.AI: Drex Max is a decisions model from Nace.AI, released on 21 October 2026. Both sit in the same category, so they are aimed at the same kind of job: taking an input and returning a decision rather than free form prose. Neither is a general chat model, and neither is positioned as one.
The clearest difference between them is context. Drex Max accepts up to 262144 tokens, while d1-ultra accepts up to 32768, so the Nace.AI model can hold roughly eight times as much material in a single call. Both take text and image as input, and both return decisions as output. Neither lists any supported parameters, so you should not expect to tune sampling settings or similar options on either one. On price, d1-ultra is the cheaper of the two for input. The qualitative data does not distinguish them on output cost, so treat output pricing as about the same or unknown rather than assuming an advantage either way.
For practical work, the choice mostly comes down to how much context your decision needs. If you are classifying a short document, routing a ticket, or making a call from a prompt plus a screenshot, d1-ultra fits comfortably inside its 32768 token window and is the cheaper input option, which makes it the sensible default for high volume, small payload decisions. If the decision depends on a long contract, a full log, a large codebase excerpt, or several images plus extensive text in one request, Drex Max is the better fit because d1-ultra would force you to truncate or split the input, and splitting a decision task across calls can change the answer. Reach for Drex Max when the material itself is the hard part; reach for d1-ultra when it is not.
Calling either model through api14 works the same way. The API is OpenAI compatible, so you keep your existing client, request shape and authentication, and change only the model id. Use "liquid/d1-ultra" for the LiquidAI model and "nace-ai/drex-max" for the Nace.AI model. Because both return decisions and neither exposes supported parameters, a switch between them should not require changes to your request body beyond that one string, though you should still validate the response against your parser since the two providers may format decisions differently.
There is one case where the cheaper model is still the right pick even with a long input: if your task can be reduced to a compact summary or a shortlist of candidate passages before the decision step, you can do that reduction yourself and send the result to d1-ultra, keeping input costs down. That only works when the reduction is safe, so for decisions where every token of the source could matter, stay with Drex Max and its larger window.
Switch with one string
Both models use the same endpoint and request shape. Change the model value from "liquid/d1-ultra" to "nace-ai/drex-max" and prompts, streaming and tools keep working.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.post("/decisions", { body: {
"model": "nace-ai/drex-max",
"state": "Customer: I was charged twice for my order and want my money back.",
"questions": {
"team": {
"type": "choice",
"instructions": "Which team should handle this message?",
"criteria": {
"billing": "Payments, refunds, invoices",
"support": "Product questions and bugs",
"sales": "Pricing and new purchases"
}
},
"urgent": {
"type": "noul",
"instructions": "Does this need a reply today?",
"criteria": {
"true": "Money, outage or legal risk",
"false": "Can wait"
}
}
}
} });
console.log(result.answers);
More comparisons
- LiquidAI: d1 Latest vs LiquidAI: d1-ultra Latest
- LiquidAI: d1 Latest vs Baseten: Joey 1
- LiquidAI: d1 Latest vs LiquidAI: d1.1
- LiquidAI: d1 Latest vs Morph: Reflex
- LiquidAI: d1-ultra Latest vs Baseten: Joey 1
- LiquidAI: d1-ultra Latest vs LiquidAI: d1.1
- LiquidAI: d1-ultra Latest vs Morph: Reflex
- Baseten: Joey 1 vs LiquidAI: d1.1