Summary
Droid strips image inputs from requests to a custom BYOK model even though noImageSupport is explicitly false. The docs define this flag as "Set to true to disable image inputs for this model", so false/unset should keep image inputs enabled. Instead, Droid classifies the custom model as non-image and strips images anyway.
Environment
- droid CLI version: v0.205.1
- OS: macOS (Apple Silicon)
- Model configured via
customModels in ~/.factory/settings.json
Evidence
| Fact |
Expected |
Observed |
noImageSupport in current settings.json for model |
false → images should be sent to the endpoint |
false (set correctly) |
| Droid's behavior at send time |
Include image_url parts in the request |
[stripImagesFromConversation] Stripped images for non-image model — 55 times in one day |
| Docs (BYOK reference) |
"Set to true to disable image inputs" — i.e., false/unset should enable them |
Images stripped anyway |
The config had previously used noImageSupport: true (in a settings.json.bak0826 backup) and was corrected to false — yet the stripping persisted into sessions well after the change, so a stale-settings explanation is ruled out.
Relevant log line
[stripImagesFromConversation] Stripped images for non-image model with modelId: custom:model, isByok: true
Settings snippet (sanitized)
{
"model": "model",
"id": "custom:model-0",
"baseUrl": "http://127.0.0.1:8317/v1",
"apiKey": "redacted",
"displayName": "model",
"noImageSupport": false,
"provider": "generic-chat-completion-api"
}
Suspected cause
The model-capability logic (getTuiModelConfig / image-support detection, per the log) appears to classify custom BYOK models as non-image by default and ignore (or fail to re-read) noImageSupport: false for them. Two plausible variants:
- Capability detection bug: for custom models, Droid only trusts an explicit "image-capable" signal and treats "not flagged as vision" as "no vision" — inverting the documented
noImageSupport: false default.
- Provider quirk: this entry uses
"provider": generic-chat-completion-api` (Responses API path).
Expected behavior
With noImageSupport: false (or omitted), Droid should include image_url / image content parts in requests to custom BYOK models, matching the documented semantics of the flag.
Actual behavior
Droid strips images from the conversation before sending, logging [stripImagesFromConversation] Stripped images for non-image model, regardless of noImageSupport: false.
Additional context
- The endpoint itself is reachable and working (earlier 404/empty-response errors on a vision test entry were model-name issues, not image issues), so the stripping is not caused by the backend.
Summary
Droid strips image inputs from requests to a custom BYOK model even though
noImageSupportis explicitlyfalse. The docs define this flag as "Set totrueto disable image inputs for this model", sofalse/unset should keep image inputs enabled. Instead, Droid classifies the custom model as non-image and strips images anyway.Environment
customModelsin~/.factory/settings.jsonEvidence
noImageSupportin currentsettings.jsonformodelfalse→ images should be sent to the endpointfalse(set correctly)image_urlparts in the request[stripImagesFromConversation] Stripped images for non-image model— 55 times in one daytrueto disable image inputs" — i.e.,false/unset should enable themThe config had previously used
noImageSupport: true(in asettings.json.bak0826backup) and was corrected tofalse— yet the stripping persisted into sessions well after the change, so a stale-settings explanation is ruled out.Relevant log line
Settings snippet (sanitized)
{ "model": "model", "id": "custom:model-0", "baseUrl": "http://127.0.0.1:8317/v1", "apiKey": "redacted", "displayName": "model", "noImageSupport": false, "provider": "generic-chat-completion-api" }Suspected cause
The model-capability logic (
getTuiModelConfig/ image-support detection, per the log) appears to classify custom BYOK models as non-image by default and ignore (or fail to re-read)noImageSupport: falsefor them. Two plausible variants:noImageSupport: falsedefault."provider":generic-chat-completion-api` (Responses API path).Expected behavior
With
noImageSupport: false(or omitted), Droid should includeimage_url/ image content parts in requests to custom BYOK models, matching the documented semantics of the flag.Actual behavior
Droid strips images from the conversation before sending, logging
[stripImagesFromConversation] Stripped images for non-image model, regardless ofnoImageSupport: false.Additional context