Forked from vadimfedenko/analyze-images
Forked from vadimfedenko/analyze-images
README
README
English | 日本語 | ç®€ä½“ä¸æ–‡ | 한êµì–´ | Español
Version 0.6.0 — Find local images, analyze one image or compare several together, and automatically attach relevant images before the next model response.
This fork of Analyze Images works with Visit Website Advanced and DuckDuckGo Advanced, which download images and their source metadata into a working directory.
The plugin ID is yuanjumay/analyze-images-advanced. If installing from LM Studio Hub, use the available installation control. Features described here require version 0.6.0; the published revision may differ from your local copy.
To install from a local checkout, open a terminal in this plugin's directory. The examples use Windows PowerShell; on macOS/Linux, use npm instead of npm.cmd:
Enable the plugin in your chat. Use a vision-capable local model, or configure a vision-capable Strata endpoint. Set the chat's working directory when using local image tools. Disable earlier image-injection test plugins and test MCP servers to avoid duplicate processing.
Tool names and setting labels remain in English in all language guides.
| Tool | Purpose |
|---|---|
| List Local Images Advanced | List local image paths and available metadata. |
| Search Local Images Advanced | Find images by file name and source metadata, including captions and page URLs. |
| Analyze Local Image Advanced | Analyze one verified local image. |
| Multi Analyze Local Images Advanced | Analyze or compare 2–4 images together in one inference request. |
Confirm exact file names with List/Search before analysis. Analysis requires a sidecar JSON metadata file for each distinct image. Supported download plugins create these files. Never infer file identity from local numbering or JSON-LD image order. Relative paths are supported; absolute paths and parent traversal are rejected. Selecting a thumbnail attempts to use its full-size counterpart.
Example request:
Multi-analysis accepts imageNames, prompt and optional context. Input order defines Image 1, Image 2, etc.; the result includes the joint analysis, ordered images mapping and duplicatesRemoved. Byte-identical images are deduplicated. At least two distinct images must remain. Invalid or oversized batches are rejected before inference rather than analyzed partially.
With automatic page attachment enabled, including a page URL in your message fetches relevant images before the parent model starts generating. To request attachment explicitly, including when automatic URL handling is off:
Only the first HTTP(S) URL is processed. Selection prioritizes the matching JSON-LD Product.image list, then the first Product if none matches. If that provides no images, it falls back to OG/Twitter images, then images inside main/article. Source order and URL mapping are retained; page descriptions, alt text and reviews are not injected as image analysis.
Successful single or multi-analysis also makes its images candidates for the next user message. Priority is current manual attachments → recent Analyze targets in this chat → page images. Downloading or listing alone does not queue images. Images cannot be inserted into an already-running parent inference; Analyze returns its findings immediately as a tool result, while direct image attachment happens on a later user send.
Duplicate detection uses identical image bytes, not visual similarity. Manual images take priority and may be reattached intentionally even if present in earlier history. Images already delivered automatically are skipped within the inspected history. Failed candidates can be retried; manually attach the image if automatic handling fails. If a manual image cannot be read for comparison, it is preserved and automatic additions are deferred. Previously sent messages are not rewritten.
Existing chat settings take precedence over defaults.
| Label | Default | Meaning |
|---|---|---|
| Image analysis backend | Auto | Use Strata for the recognized UI helper; otherwise use the loaded local vision model. |
| Strata analysis model | strata | Model name for independent Strata analysis. |
| Automatically attach page images | On | Process the first URL before inference. |
| Attach analyzed images on the next turn | On | Carry eligible Analyze images into the next user message. |
| Default page URL | Empty | Fallback for @inject-url without a URL. |
| Maximum attached images | 2 | Automatic attachment slots, reduced by current manual image count; configurable from 1 to 4. |
| Start image number | 1 | First selected page-image position, counted from 1. |
| Strata analysis Base URL | http://127.0.0.1:8080/v1 | Global endpoint setting. |
| Strata analysis API key (optional) | Empty | Global credential setting. |
Strata settings are separate from those of a generator plugin. Explicit Strata (separate request) mode bypasses local model selection. Both single and multi-analysis wait for the completed Strata response; multi-analysis sends all images in one request. A UI helper does not perform that inference. If four images are analyzed but the attachment limit is two, remaining candidates are carried over in input order across subsequent user sends.
WebP is not generally unsupported by Gemma. In one tested environment, the same WebP worked via normal SDK upload but failed through raw base64: inline attachment; PNG worked through the inline route. The conversion is a workaround for that path. After updating, retry a failing old chat in a new chat or attach PNG/JPEG manually. See image input documentation and the GUI/API compatibility report.
Automatic failures show status/debug information and retain successful attachments. Explicit @inject-url failures stop preprocessing. Automatic page attachment does not save download files or sidecars into the working directory; use the download tools when local files are needed.
Tests exercise real SDK messages, image conversion, files and HTTP with substitute model/controller responses. They verify transport and behavior, not the quality of a real model's visual comparisons. Vision and multi-image support also depend on the selected model/backend.
English README.md is the main public guide; the other four versions have matching scope. See publication and language policy. Adding translations does not publish the plugin.
Fork of Analyze Images, original/reworked project: vadimfedenko/analyze-images. Advanced fork changes: Yuan Jumay. MIT; preserve the original copyright and license notices.
English | 日本語 | ç®€ä½“ä¸æ–‡ | 한êµì–´ | Español
Version 0.6.0 — Find local images, analyze one image or compare several together, and automatically attach relevant images before the next model response.
This fork of Analyze Images works with Visit Website Advanced and DuckDuckGo Advanced, which download images and their source metadata into a working directory.
The plugin ID is yuanjumay/analyze-images-advanced. If installing from LM Studio Hub, use the available installation control. Features described here require version 0.6.0; the published revision may differ from your local copy.
To install from a local checkout, open a terminal in this plugin's directory. The examples use Windows PowerShell; on macOS/Linux, use npm instead of npm.cmd:
Enable the plugin in your chat. Use a vision-capable local model, or configure a vision-capable Strata endpoint. Set the chat's working directory when using local image tools. Disable earlier image-injection test plugins and test MCP servers to avoid duplicate processing.
Tool names and setting labels remain in English in all language guides.
| Tool | Purpose |
|---|---|
| List Local Images Advanced | List local image paths and available metadata. |
| Search Local Images Advanced | Find images by file name and source metadata, including captions and page URLs. |
| Analyze Local Image Advanced | Analyze one verified local image. |
| Multi Analyze Local Images Advanced | Analyze or compare 2–4 images together in one inference request. |
Confirm exact file names with List/Search before analysis. Analysis requires a sidecar JSON metadata file for each distinct image. Supported download plugins create these files. Never infer file identity from local numbering or JSON-LD image order. Relative paths are supported; absolute paths and parent traversal are rejected. Selecting a thumbnail attempts to use its full-size counterpart.
Example request:
Multi-analysis accepts imageNames, prompt and optional context. Input order defines Image 1, Image 2, etc.; the result includes the joint analysis, ordered images mapping and duplicatesRemoved. Byte-identical images are deduplicated. At least two distinct images must remain. Invalid or oversized batches are rejected before inference rather than analyzed partially.
With automatic page attachment enabled, including a page URL in your message fetches relevant images before the parent model starts generating. To request attachment explicitly, including when automatic URL handling is off:
Only the first HTTP(S) URL is processed. Selection prioritizes the matching JSON-LD Product.image list, then the first Product if none matches. If that provides no images, it falls back to OG/Twitter images, then images inside main/article. Source order and URL mapping are retained; page descriptions, alt text and reviews are not injected as image analysis.
Successful single or multi-analysis also makes its images candidates for the next user message. Priority is current manual attachments → recent Analyze targets in this chat → page images. Downloading or listing alone does not queue images. Images cannot be inserted into an already-running parent inference; Analyze returns its findings immediately as a tool result, while direct image attachment happens on a later user send.
Duplicate detection uses identical image bytes, not visual similarity. Manual images take priority and may be reattached intentionally even if present in earlier history. Images already delivered automatically are skipped within the inspected history. Failed candidates can be retried; manually attach the image if automatic handling fails. If a manual image cannot be read for comparison, it is preserved and automatic additions are deferred. Previously sent messages are not rewritten.
Existing chat settings take precedence over defaults.
| Label | Default | Meaning |
|---|---|---|
| Image analysis backend | Auto | Use Strata for the recognized UI helper; otherwise use the loaded local vision model. |
| Strata analysis model | strata | Model name for independent Strata analysis. |
| Automatically attach page images | On | Process the first URL before inference. |
| Attach analyzed images on the next turn | On | Carry eligible Analyze images into the next user message. |
| Default page URL | Empty | Fallback for @inject-url without a URL. |
| Maximum attached images | 2 | Automatic attachment slots, reduced by current manual image count; configurable from 1 to 4. |
| Start image number | 1 | First selected page-image position, counted from 1. |
| Strata analysis Base URL | http://127.0.0.1:8080/v1 | Global endpoint setting. |
| Strata analysis API key (optional) | Empty | Global credential setting. |
Strata settings are separate from those of a generator plugin. Explicit Strata (separate request) mode bypasses local model selection. Both single and multi-analysis wait for the completed Strata response; multi-analysis sends all images in one request. A UI helper does not perform that inference. If four images are analyzed but the attachment limit is two, remaining candidates are carried over in input order across subsequent user sends.
WebP is not generally unsupported by Gemma. In one tested environment, the same WebP worked via normal SDK upload but failed through raw base64: inline attachment; PNG worked through the inline route. The conversion is a workaround for that path. After updating, retry a failing old chat in a new chat or attach PNG/JPEG manually. See image input documentation and the GUI/API compatibility report.
Automatic failures show status/debug information and retain successful attachments. Explicit @inject-url failures stop preprocessing. Automatic page attachment does not save download files or sidecars into the working directory; use the download tools when local files are needed.
Tests exercise real SDK messages, image conversion, files and HTTP with substitute model/controller responses. They verify transport and behavior, not the quality of a real model's visual comparisons. Vision and multi-image support also depend on the selected model/backend.
English README.md is the main public guide; the other four versions have matching scope. See publication and language policy. Adding translations does not publish the plugin.
Fork of Analyze Images, original/reworked project: vadimfedenko/analyze-images. Advanced fork changes: Yuan Jumay. MIT; preserve the original copyright and license notices.
npm.cmd ci
lms dev --install
Find the downloaded product images with List/Search, then use
Multi Analyze Local Images Advanced to compare two images together.
Compare their backgrounds, composition and surface appearance.
Distinguish visible evidence from information in the metadata.
@inject-url https://hoju.jp/rapunzel
Describe and compare the attached images without using other tools.
npm.cmd run check
npm.cmd test
npm.cmd run dev
npm.cmd ci
lms dev --install
Find the downloaded product images with List/Search, then use
Multi Analyze Local Images Advanced to compare two images together.
Compare their backgrounds, composition and surface appearance.
Distinguish visible evidence from information in the metadata.
@inject-url https://hoju.jp/rapunzel
Describe and compare the attached images without using other tools.
npm.cmd run check
npm.cmd test
npm.cmd run dev