Mintplex-Labs/anything-llm · error
No Lemonade image generation model was set.
Error message
No Lemonade image generation model was set.
What it means
The LemonadeImageGenerator constructor throws immediately when IMAGE_GEN_MODEL_PREF is unset or empty. AnythingLLM has no default image model for Lemonade, so the shared IMAGE_GEN_MODEL_PREF variable must be populated; its value is passed as `model` to every images.generate call. Fails fast at instantiation.
Solutions
- Set IMAGE_GEN_MODEL_PREF to an image model your Lemonade server actually serves.
- List the models available on the Lemonade server and copy the id exactly.
- Restart the server / recreate the container after saving.
- If you also use another image engine, remember this variable is shared — keep it valid for whichever engine is active.
Example fix
# .env — before IMAGE_GEN_ENGINE=lemonade IMAGE_GEN_LEMONADE_BASE_PATH=http://localhost:8000 # .env — after IMAGE_GEN_ENGINE=lemonade IMAGE_GEN_LEMONADE_BASE_PATH=http://localhost:8000 IMAGE_GEN_MODEL_PREF=<lemonade-image-model-id>
Defensive patterns
Strategy: validation
Validate before calling
if (!process.env.IMAGE_GEN_MODEL_PREF) {
throw new Error(
"Lemonade image engine selected but IMAGE_GEN_MODEL_PREF is missing."
);
}
const { LemonadeImageGenerator } = require("server/utils/ImageGenerators/lemonade");
const generator = new LemonadeImageGenerator(); Type guard
function hasImageModelPref(env = process.env) {
return (
typeof env.IMAGE_GEN_MODEL_PREF === "string" &&
env.IMAGE_GEN_MODEL_PREF.length > 0
);
} Try / catch
try {
new LemonadeImageGenerator();
} catch (err) {
if (err.message.includes("Lemonade image generation model")) {
// direct the user to pick an image model for Lemonade in settings
}
} Prevention
- Remember IMAGE_GEN_MODEL_PREF is shared across image engines — validate it whenever the engine changes.
- Prefill the model pref from the engine's model list when saving settings.
- Fail fast at boot instead of at first image request.
When it happens
Trigger: Selecting the Lemonade image engine without setting IMAGE_GEN_MODEL_PREF; the variable was cleared when switching image engines (it is shared across engines); .env edited but the process not restarted.
Common situations: Users who set only the base path when adopting Lemonade; switching from OpenAI to Lemonade and assuming the model pref carries over or defaults.
Understand the failure class
Background: "environment variable is not set" and "Missing keys in environment" errors: what missing required env var messages mean and how to fix them — this error's family across 28 libraries.
Related errors
- No Lemonade image generation base path was set.
- No Ollama image generation base path was set.
- No Ollama image generation model was set.
- No OpenAI image generation API key was set.
- No embedding model was set.
AI-assisted analysis of Mintplex-Labs/anything-llm@3aec848f28 (2026-08-18).
Data as JSON: /api/errors/068ce45d8640ace5.
Report an issue: GitHub.
Appendix: source
Thrown at server/utils/ImageGenerators/lemonade/index.js:9
const { parseLemonadeServerEndpoint } = require("../../AiProviders/lemonade");
const { BaseImageGenerator } = require("../base");
class LemonadeImageGenerator extends BaseImageGenerator {
constructor() {
if (!process.env.IMAGE_GEN_LEMONADE_BASE_PATH)
throw new Error("No Lemonade image generation base path was set.");
if (!process.env.IMAGE_GEN_MODEL_PREF)
throw new Error("No Lemonade image generation model was set.");
const { OpenAI: OpenAIApi } = require("openai");
super({
client: new OpenAIApi({
baseURL: parseLemonadeServerEndpoint(
process.env.IMAGE_GEN_LEMONADE_BASE_PATH,
"openai"
),
apiKey: process.env.IMAGE_GEN_LEMONADE_API_KEY || null,
}),
model: process.env.IMAGE_GEN_MODEL_PREF,
className: "LemonadeImageGenerator",
});
}
}
module.exports = { LemonadeImageGenerator };
View on GitHub (pinned to 3aec848f28)