{"record":{"id":"f115b306cc40b2b9","repo":"mudler/LocalAI","slug":"reference-image-must-have-at-least-3-channels-got","errorCode":null,"errorMessage":"Reference image must have at least 3 channels, got %d\\n","messagePattern":"Reference image must have at least 3 channels, got (.+?)\\\\n","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"backend/go/stablediffusion-ggml/cpp/gosd.cpp","lineNumber":949,"sourceCode":"        fprintf(stderr, \"Loading %d reference images\\n\", ref_images_count);\n\n        for (int i = 0; i < ref_images_count; i++) {\n            if (ref_images[i] == NULL || strlen(ref_images[i]) == 0) {\n                continue;\n            }\n\n            fprintf(stderr, \"Loading reference image %d: %s\\n\", i + 1, ref_images[i]);\n\n            int c = 0;\n            int ref_width = 0;\n            int ref_height = 0;\n            uint8_t* ref_image_buffer = stbi_load(ref_images[i], &ref_width, &ref_height, &c, 3);\n            if (ref_image_buffer == NULL) {\n                fprintf(stderr, \"Failed to load reference image from '%s'\\n\", ref_images[i]);\n                continue;\n            }\n            if (c < 3) {\n                fprintf(stderr, \"Reference image must have at least 3 channels, got %d\\n\", c);\n                free(ref_image_buffer);\n                continue;\n            }\n\n            // Resize reference image if dimensions don't match\n            if (ref_width != width || ref_height != height) {\n                fprintf(stderr, \"Resizing reference image from %dx%d to %dx%d\\n\", ref_width, ref_height, width, height);\n\n                uint8_t* resized_ref_buffer = (uint8_t*)malloc(height * width * 3);\n                if (resized_ref_buffer == NULL) {\n                    fprintf(stderr, \"Failed to allocate memory for resized reference image\\n\");\n                    free(ref_image_buffer);\n                    continue;\n                }\n\n                stbir_resize(ref_image_buffer, ref_width, ref_height, 0,\n                             resized_ref_buffer, width, height, 0, STBIR_TYPE_UINT8,\n                             3, STBIR_ALPHA_CHANNEL_NONE, 0,","sourceCodeStart":931,"sourceCodeEnd":967,"githubUrl":"https://github.com/mudler/LocalAI/blob/44413a9d06bf5bc52ce088ba8ca74e5a2e8bee26/backend/go/stablediffusion-ggml/cpp/gosd.cpp#L931-L967","documentation":"The reference image has fewer than 3 channels (e.g. grayscale). Guard: convert single-channel images to RGB or reject them up front with a validation error naming the channel count.","triggerScenarios":"Thrown at backend/go/stablediffusion-ggml/cpp/gosd.cpp:949 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Convert the reference image to RGB/RGBA (at least 3 channels) before submitting.","Avoid grayscale or single-channel images as reference input."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"44413a9d06bf5bc52ce088ba8ca74e5a2e8bee26","analyzedAt":"2026-08-15T10:13:50.291Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}