String Hopper
Local models

Choose a model

String Hopper needs three things from a model: structured (JSON) output, vision for photos, and tool calling for chat. Below are models to try, by how much memory your Mac has.

What to look for

Model pages and server catalogues list what a model can do. Look for these three capabilities:

LabelUnlocksWithout it
Structured output / JSONLenses and the create-a-lens review.Lenses fail more often. Most current instruct models support it.
VisionReading your photos directly.Vision on your Mac reads the photos instead.
Tools / function callingChat: adding, searching, tagging, laying out looks.Lenses still work. Chat can reply but cannot add, search or change pieces.

A model with all three runs every feature. If you must drop one, drop vision, because the app has a fallback for it.

Models to try

As a guide, the model's download size should be no more than about half your Mac's memory, which leaves room for macOS and the app.

Your MacTryDownloadPhotosChat toolsWhat to expect
8 GB Gemma 4 E2Babout 4 GBYesYes Lenses on a small closet. Chat tool calls may fail occasionally.
Qwen3-VL 4Babout 3 GBYesCheck your server Reads photos with low memory use.
16 GB Gemma 4 E4Babout 6 GBYesYes Recommended first choice. Has all three capabilities.
Qwen3-VL 8Babout 6 GBYesCheck your server Lenses and adding pieces from photos.
Gemma 4 12Babout 7.5 GBYesYes Larger than E4B. Close other memory-heavy apps first.
32 GB or more Gemma 4 26B A4Babout 16 GBYesYes Tool calling is reported to be reliable at this size.
Qwen3.8 27Babout 18 GBYesYes A thinking model, so answers take longer.

Sizes are for the common 4-bit builds and vary by server and format. Capabilities are as the model publishers and server catalogues list them. This list will go out of date; use the check below to test any model.

Very small models

Below about 7 billion parameters, models tend to make occasional mistakes in tool calls, such as a missing field or an invalid piece id. In String Hopper, chat may then say it added something although no card appeared. Lenses tolerate these mistakes better than chat, so a small model can work for lenses and not for chat.

A five-minute check

Test the model on your own closet. With eight or more pieces added and the model connected:

  1. Test the connection

    In Settings, click Test connection. The status should read Local model ready with a green dot.

  2. Run The Curator

    It needs the most structured answer: six to ten pieces plus three looks made only from those pieces. If you get a full set and at least two looks, the model handles structured output. Run it twice.

  3. Add a piece from a photo

    If Settings shows that the model can look at photos, add a piece with an obvious colour. Check that the colour is the garment's and not the background's, and that the category is right.

  4. Ask chat a closet question

    Try “Do I already own a cream coat?” A model with working tools shows matching tiles from your closet. A model without them answers in text only.

  5. Ask chat to change something

    Try “Tag everything linen ‘summer’.” You should see an Updated… card for each piece, each with an undo.

If steps one to three pass but four and five fail, the model works for lenses and photos but not chat. For chat, switch to Apple's model or a larger local model.

Settings that help

  • Context window. A lens sends your closet as one line per piece, up to 90 pieces. Set your server's context length to 8,000 tokens or more so nothing is cut off.
  • Pick the “instruct” or “it” build. Base models are not trained to follow instructions.
  • 4-bit builds are enough. A 4-bit build of a larger model usually gives better results than an 8-bit build of a smaller one.
  • Thinking on or off. Reasoning makes every request slower. If your server lets you turn it off and lenses still work, leave it off.
  • Leave temperature alone. String Hopper sets it per request: higher for lenses, lower for reading photos.