{"record":{"id":"ae5b5a4e3e78d0ac","repo":"mudler/LocalAI","slug":"invalid-lora-apply-mode-s-using-default-n","errorCode":null,"errorMessage":"Invalid lora_apply_mode: %s, using default\\n","messagePattern":"Invalid lora_apply_mode: (.+?), using default\\\\n","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"backend/go/stablediffusion-ggml/cpp/gosd.cpp","lineNumber":568,"sourceCode":"                fprintf(stderr, \"Invalid sampler_rng_type: %s, using default\\n\", optval);\n            }\n        }\n        if (!strcmp(optname, \"prediction\")) {\n            prediction_t parsed = str_to_prediction(optval);\n            if (parsed != PREDICTION_COUNT) {\n                prediction = parsed;\n                fprintf(stderr, \"Found prediction: %s\\n\", optval);\n            } else {\n                fprintf(stderr, \"Invalid prediction: %s, using default\\n\", optval);\n            }\n        }\n        if (!strcmp(optname, \"lora_apply_mode\")) {\n            lora_apply_mode_t parsed = str_to_lora_apply_mode(optval);\n            if (parsed != LORA_APPLY_MODE_COUNT) {\n                lora_apply_mode = parsed;\n                fprintf(stderr, \"Found lora_apply_mode: %s\\n\", optval);\n            } else {\n                fprintf(stderr, \"Invalid lora_apply_mode: %s, using default\\n\", optval);\n            }\n        }\n        if (!strcmp(optname, \"wtype\")) {\n            sd_type_t parsed = str_to_sd_type(optval);\n            if (parsed != SD_TYPE_COUNT) {\n                wtype = parsed;\n                fprintf(stderr, \"Found wtype: %s\\n\", optval);\n            } else {\n                fprintf(stderr, \"Invalid wtype: %s, using default\\n\", optval);\n            }\n        }\n    }\n\n    fprintf(stderr, \"parsed options\\n\");\n\n    // Build embeddings vector from directory if provided\n    build_embedding_vec(embedding_dir);\n","sourceCodeStart":550,"sourceCodeEnd":586,"githubUrl":"https://github.com/mudler/LocalAI/blob/44413a9d06bf5bc52ce088ba8ca74e5a2e8bee26/backend/go/stablediffusion-ggml/cpp/gosd.cpp#L550-L586","documentation":"Warning from the option parser: 'lora_apply_mode=<value>' is not recognized by str_to_lora_apply_mode(), so the default LoRA application strategy (how LoRA weights are merged, e.g. at load vs per-generation) is used. Parse and load continue normally.","triggerScenarios":"Passing an invalid or version-mismatched lora_apply_mode string in the load options; some modes only exist in specific upstream stable-diffusion.cpp versions.","commonSituations":"Tuning LoRA behavior (apply-at-load for speed vs apply-per-prompt for flexibility) with a misspelled mode name; configs ported from sd.cpp forks.","solutions":["Use an exact enum name accepted by the vendored str_to_lora_apply_mode","Omit the option to keep the default behavior","Confirm via the 'Found lora_apply_mode:' log line"],"exampleFix":"# before\noptions: \"...,lora_apply_mode=AtLoad\"\n\n# after\noptions: \"...,lora_apply_mode=at_load\"","handlingStrategy":"validation","validationCode":"// Go caller: whitelist lora_apply_mode values\nvalidApplyMode := map[string]bool{\"at_load\": true, \"per_prompt\": true} // match vendored names\nif o, ok := opts.Raw[\"lora_apply_mode\"]; ok && !validApplyMode[o] {\n    return fmt.Errorf(\"invalid lora_apply_mode %q\", o)\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Document which LoRA apply modes the vendored build supports next to your model configs","Validate option strings once at config load, not per request"],"tags":["stablediffusion","options","lora","config"],"backgroundTag":null,"analyzedSha":"44413a9d06bf5bc52ce088ba8ca74e5a2e8bee26","analyzedAt":"2026-08-15T10:13:50.291Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}