halogen-flash-server, which runs local language models and auxiliary tasks on a single AMD Strix Halo machine, released 0.18.12 on October 20, 2026. According to the project announcement, startup waits for loaded auxiliary models are shorter, and edits can now combine multiple photos. Flash checkpoints (model weight files) are unchanged.

Four-image editing and shorter NPU startup waits

Multi-image editing. Multiple images can be submitted together for edits such as placing an object from one photo into another. /v1/images/edits now accepts 1~4 image parts. Prompts refer to images in submission order as "image 1", "image 2", and so on. The feature request came from GitHub issue #179, whose author wanted to place an object from one photo into another.

Shorter NPU startup waits. All NPU model bundles have been reissued with a fast startup path. According to the project announcement, warm requests are about 2% (1024x1024 images) to 36% (photo questions) faster, with unchanged answers. The new files require 0.18.12 or later.

Fewer GPU stalls during cache copies. Copies now go through a staging buffer, an intermediate area pinned in place by default. When the host moves GPU-connected memory, all GPU work queues stall. The new path halved this lost time in project tests.

Table: NPU image generation and editing times

Conditions: Editing output is 512×512; 1024×1024 is available only with one input photo

Unit: seconds (approximate values from the project documentation)

Four-image editing and shorter NPU startup waits
NPU image task (flux2-klein-4b)Time
Image generation 512×512약 3
Image generation 1024×1024약 10
Image editing, 512×512 (1 photo)약 5
Image editing, 512×512 (2 photos)약 7.5
Image editing, 512×512 (3 photos)약 10
Image editing, 512×512 (4 photos)약 12.5
Image editing, 1024×1024 (1 photo)약 12.5

These are approximate values from the project documentation (docs/NPU.md). Time increases evenly with each additional photo, up to four inputs. mask is unsupported, so edits targeting only part of an image must be described in the prompt.

Modest prompt processing and generation gains on the same machines

The project loaded one model on each of two Ryzen AI Max+ 395 (128GB) machines and tested default settings: cache enabled and reasoning generation disabled. bench tested 10 prompts with drafting, which generates candidate tokens in advance for joint verification, and greedy decoding, which picks the most likely token at each step. Average generation speed rose from 64.0→66.1 tok/s for v2 and 65.1→66.1 tok/s for ht43.

Table: v2 prompt processing speed, 0.18.11 and 0.18.12

Conditions: v2, about 85W sustained package power, A/B on the same machine and in the same session

Unit: tokens/second

v2 prompt processing speed by version (tokens/second)Cache off, 8,192 tokens: v2 0.18.11 1,833, v2 0.18.12 1,877; Cache off, 32,768 tokens: v2 0.18.11 1,783, v2 0.18.12 1,822; Cache on (cold), 8,192 tokens: v2 0.18.11 1,746, v2 0.18.12 1,787; Cache on (cold), 32,768 tokens: v2 0.18.11 1,808, v2 0.18.12 1,849v2 0.18.11v2 0.18.12Cache off, 8,192 tokens1,8331,877Cache off, 32,768 tokens1,7831,822Cache on (cold), 8,192 tokens1,7461,787Cache on (cold), 32,768 tokens1,8081,849
v2 prompt processing speed by version (tokens/second)
Modest prompt processing and generation gains on the same machines
Test conditionsv2 0.18.11v2 0.18.12
Cache off, 8,192 tokens1,8331,877
Cache off, 32,768 tokens1,7831,822
Cache on (cold), 8,192 tokens1,7461,787
Cache on (cold), 32,768 tokens1,8081,849

Table: ht43 prompt processing speed, 0.18.11 and 0.18.12

Conditions: ht43, about 120W default settings, A/B on the same machine and in the same session

Unit: tokens/second

ht43 prompt processing speed by version (tokens/second)Cache off, 8,192 tokens: ht43 0.18.11 1,762, ht43 0.18.12 1,835; Cache off, 32,768 tokens: ht43 0.18.11 1,808, ht43 0.18.12 1,865; Cache on (cold), 8,192 tokens: ht43 0.18.11 1,743, ht43 0.18.12 1,815; Cache on (cold), 32,768 tokens: ht43 0.18.11 1,809, ht43 0.18.12 1,864ht43 0.18.11ht43 0.18.12Cache off, 8,192 tokens1,7621,835Cache off, 32,768 tokens1,8081,865Cache on (cold), 8,192 tokens1,7431,815Cache on (cold), 32,768 tokens1,8091,864
ht43 prompt processing speed by version (tokens/second)
Modest prompt processing and generation gains on the same machines
Test conditionsht43 0.18.11ht43 0.18.12
Cache off, 8,192 tokens1,7621,835
Cache off, 32,768 tokens1,8081,865
Cache on (cold), 8,192 tokens1,7431,815
Cache on (cold), 32,768 tokens1,8091,864

Prompt processing improved by about 2.1~4.2%, while generation improved by about 3.3% for v2 and 1.5% for ht43. The release notes attribute improvements to reduced work in the stage that verifies multiple drafts together. Each table compares only changes between versions on the same machine.

Update NPU files with the new image tag

HALOGEN_DOWNLOAD in the 0.18.12 image downloads the new NPU files. The original example below combines two photos after loading the image model. It asks to place the cat from the second photo on the bench in the first.

curl -s localhost:8731/v1/images/edits -F model=flux2-klein-4b -F "image[]=@scene.png" -F "image[]=@cat.png" \
  -F prompt="put the cat from image 2 on the bench in image 1, matching its light" -F seed=7

Useful for teams running auxiliary tasks, but memory and power remain shared

Teams already running classification, embedding, reranking, moderation, streaming guards, speech recognition, image generation, and editing alongside Flash models benefit most. However, Flash models slow down slightly while the NPU is actively working. The two engines share the memory bus and the chip’s power budget.

According to the project release notes, output at temperature 0 remains byte-for-byte identical to 0.18.11.

For the performance improvements and new observability metrics, change the image tag to 0.18.12, and add flux2-klein-4b to HALOGEN_NPU_MODELS to use image editing as well.