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

  1. Set IMAGE_GEN_MODEL_PREF to an image model your Lemonade server actually serves.
  2. List the models available on the Lemonade server and copy the id exactly.
  3. Restart the server / recreate the container after saving.
  4. 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

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


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)