Atlas Assess Image π§
A VLM reads your plate before you wire anything
- image
- image
- report
- settings_json
- sam_prompt_sky
- sam_prompt_far
- sam_prompt_bg
- sam_prompt_mid
- sam_prompt_fg
- geom_far
- geom_bg
- geom_mid
- geom_fg
- band_far
- band_bg
- band_mid
- band_fg
Atlas Assess Image π§ is the pack's pre-flight check: a vision-language model looks at your photograph before anything else consumes it and tells you what the scene actually needs. Scene type, depth-model choice, how to separate sky, where the depth bands should sit, which geometry each layer wants, whether a camera move is even viable and what breaks first. It turns the "what settings do I use?" question from guesswork into a recommendation with a score.
How it works
The node sends your photo to a VLM with an expert instruction prompt encoding Atlas's full settings knowledge - the same rules the documentation teaches. The VLM doesn't change anything itself; it recommends. That's the pack's LLM-confirm principle and it's worth internalizing: you wire the advice downstream, but the artist stays in charge.
Providers are the same set as AtlasVLMScaleCues: ollama (default), lmstudio, and llamacpp for local servers, plus openai for any OpenAI-compatible cloud endpoint (OpenRouter etc. via base_url). Blank model defaults to the provider's pick - for Ollama that's gemma3:4b.
What comes out
The outputs are the genuinely clever part - the assessment is staged into the pack's five-layer master workflow:
sam_prompt_*(sky, far, bg, mid, fg) - one SAM3 segmentation prompt string per layer, wired straight into the sky SAM node and the four scope rows. No hand-typing prompts. A layer the photo doesn't have yields""; only sky falls back to the literal word "sky".geom_*(far/bg/mid/fg) - per-layer geometry recommendations (relief/card/ground), wired into the clean-plate layers'geometry_overridestring input.band_*(far/bg/mid/fg) - subject-aware depth-band boundaries, jointly derived so adjacent bands always share edges.settings_json- the machine-readable recommended settings block, for anything that wants the whole plan at once.report- the human-readable version, including an honest camera-move rubric (score, max orbit degrees, what breaks first). Wire it to a Show Text node.
The extra_instructions box is a sleeper hit: tell it "the camera move is a slow dolly-in on the tower" and the band and patch advice tailors itself to the intended move.
The gate behavior
By default (auto_continue ON) the node is advisory: the assessment runs, its outputs flow downstream, and the same queue continues - the solve gate and patch gate become the workflow's checkpoints. Turn auto_continue OFF and you get the hard per-image gate: the image output returns an ExecutionBlocker until you approve via the βΆ Continue Workflow button. The assessment is cached per image, so approving never re-runs the VLM.
Two operational notes. First, offload_model (default off) frees the VLM's VRAM after a successful assessment so the heavy pipeline - depth, SAM, LaMa - doesn't fight it for memory; on llama.cpp it isn't possible (the server owns its model). Second: if you use the openai provider, prefer the OPENAI_API_KEY environment variable over the api_key field - the field gets saved into the workflow file, and you don't want a key traveling around in shared JSON.
Install is the pack's clone-and-go; this node itself needs no heavy extras (it's an HTTP client), but the SAM prompts it emits expect a SAM3 setup downstream.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| provideropt | COMBO | ollama | VLM backend. ollama/lmstudio/llamacpp are local servers; 'openai' is any OpenAI-compatible CLOUD endpoint (api.openai.com by default, OpenRouter etc. via base_url) for users without local models β needs api_key. Blank model/base_url use each provider's own defaults (same conventions as AtlasVLMScaleCues). |
| modelopt | STRING | Vision model id; blank = provider default (ollama: gemma3:4b). | |
| base_urlopt | STRING | β | |
| extra_instructionsopt | STRING | Optional artist notes appended to the assessment request β e.g. 'the camera move is a slow dolly-in on the tower'. The VLM tailors band/patch advice to the intended move. | |
| proceedopt | BOOLEAN | false | OFF = the image output is paused (downstream skipped) so you can read the report and apply settings first. Turn ON (or click βΆ Continue Workflow) and re-queue to run the full pipeline. A βΆ Continue click approves THIS image only (see approved_for); a manual toggle here is an unconditional override. |
| approved_foropt | STRING | Managed by βΆ Continue Workflow: the fingerprint of the image the current proceed=True was approved for. When the input image changes, the gate re-arms automatically instead of running a stale approval. Leave empty when toggling proceed by hand (empty = unconditional). | |
| api_keyopt | STRING | API key for the 'openai' cloud provider (ignored by local providers). SAVED INTO THE WORKFLOW FILE β prefer leaving this blank and setting the OPENAI_API_KEY environment variable so shared workflows never carry your key. | |
| offload_modelopt | BOOLEAN | false | Free the VLM's VRAM after a SUCCESSFUL assessment so the heavy pipeline (depth/SAM/LaMa) doesn't fight it for memory β the assessment is cached per image, so βΆ Continue never reloads the model. Per provider: ollama = keep_alive:0 (clean unload); lmstudio = request ttl for JIT loads + the 'lms' CLI when on PATH for GUI-loaded models; llamacpp = NOT possible (the server owns its model β restart it to free VRAM); openai = nothing local. A failed assessment keeps the model warm for the retry. The report shows what actually happened. |
| auto_continueopt | BOOLEAN | true | ON (default): advisory mode β the assessment runs, its SAM prompts/geometry flow downstream, and the SAME queue continues without a βΆ Continue click; the β solve gate (and the later π patch gate) become the workflow's checkpoints. Turn OFF to restore the hard per-image gate: the image output blocks until βΆ Continue Workflow approves THIS image. |
| offload_ttl_sopt | INT | 21β3600 | LM Studio only, with offload_model ON: idle seconds before the VLM auto-evicts. 2 = free RAM immediately after each assessment. 120-300 = linger so a BATCH of plates skips the ~10-20s reload per image, then free. Reload is automatic (JIT) either way β the next assessment brings it back. |
Outputs (16)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |
| report | STRING | β |
| settings_json | STRING | β |
| sam_prompt_sky | STRING | β |
| sam_prompt_far | STRING | β |
| sam_prompt_bg | STRING | β |
| sam_prompt_mid | STRING | β |
| sam_prompt_fg | STRING | β |
| geom_far | STRING | β |
| geom_bg | STRING | β |
| geom_mid | STRING | β |
| geom_fg | STRING | β |
| band_far | STRING | β |
| band_bg | STRING | β |
| band_mid | STRING | β |
| band_fg | STRING | β |