Skip to content
MehranMarxian edited this page Sep 1, 2026 · 2 revisions

OpenLayer

Local AI layers, inside Photoshop

Developer Mehran Ahmadi
Initial release 22 June 2026
v0.1.8-alpha
Latest release v0.20.0-alpha
30 August 2026
Repository MehranMarxian/OpenLayer
Written in TypeScript
Platform Adobe Photoshop 2024+ (UXP)
Operating system Windows 11 (verified)
macOS untested
Backend ComfyUI, run locally
Type Raster graphics editor plugin
Generative image synthesis
License MIT
Website mehran-ahmadi.com/OpenLayer

OpenLayer is a free and open-source Adobe Photoshop plugin that connects the application to a locally running ComfyUI server, allowing generative image synthesis to be performed on the user's own hardware and returned into the open document as ordinary, editable Photoshop layers.[1]

It is distinguished from cloud-based generative tools by three design commitments: it performs no network transmission beyond 127.0.0.1, it requires no account or subscription, and it delivers results as named, positioned, maskable layers rather than as flattened images.[2] The project's most unusual capability, Unflatten, decomposes a single flat image into multiple separated layers with real alpha channels — a result its author describes as worth "very little in a web UI", and the reason the tool is built as a host-application plugin rather than a web interface.[3]

As of v0.20.0-alpha the software is in public alpha, described by its author as "a public testing checkpoint, not production software".

This wiki is maintained alongside the project. The README is the canonical source for installation and requirements; where the two disagree, the README is correct.


Contents

  1. Overview
  2. History
  3. Features
  4. Architecture
  5. Models and hardware
  6. Agent bridge
  7. Limitations
  8. Development
  9. See also
  10. References

Overview

OpenLayer is implemented as an Adobe UXP panel, the plugin architecture that succeeded Photoshop's older CEP extensions. The panel does not itself perform inference. It captures pixels from the active document through Photoshop's Imaging API, submits a prepared workflow graph to a ComfyUI server over HTTP, polls for the result, and imports the returned image as a new layer.[4]

All computation occurs on the user's machine. The plugin's manifest requests filesystem and network permissions solely for temporary files, Photoshop import tokens, and communication with a local server; the project states that no images, prompts, model names, or diagnostics are transmitted automatically, and that the software contains no telemetry.[2]

The project targets consumer hardware, explicitly a graphics card with 12 GB of video memory. That constraint has shaped its contents: full-precision model presets that could not run within it were removed rather than left disabled, on the stated principle that "every preset the panel lists is one you can actually run".[5]

History

OpenLayer's first public preview, v0.1.8-alpha, was released on 22 June 2026 as a minimal text-to-image bridge. Development proceeded in roughly weekly alpha releases, each documented in a detailed changelog.

Release Date Principal development
v0.1.8-alpha Jun 2026 First public MVP; text-to-image and layer import
v0.2.0–v0.4.1 Jun 2026 Image-to-image; sketch-to-image via ControlNet; selection-aware inpainting
v0.6.0-alpha Jul 2026 Interface release; compact dashboard designed for narrow Photoshop panels
v0.9.0-alpha Jul 2026 Layer Tools — the first tool that is not a generation
v0.10.0-alpha Jul 2026 Release archives rebuilt to the ZIP specification, correcting a defect that had made every prior release unusable on macOS
v0.11.0-alpha Aug 2026 Setup screen, listing every required model and node package with installation status
v0.13.0-alpha Aug 2026 Optional LoRA support across eleven presets; in-panel model downloading
v0.14.0-alpha Aug 2026 Modern sketch-to-image presets using Z-Image Fun ControlNet
v0.15.0-alpha Aug 2026 Agent Bridge (Model Context Protocol); FLUX.2 Klein 4B presets
v0.16.0-alpha Aug 2026 Artist-Friendly Dark theme; slider controls; Klein-based inpainting
v0.18.0-alpha Aug 2026 Prompt Wallet; Style Reference
v0.19.0-alpha Aug 2026 Multi-Reference composition
v0.20.0-alpha Aug 2026 Unflatten — decomposition of a flat image into separate layers

A recurring practice in the project is the gate: before a major feature is built, its central assumptions are tested with live generations and the results recorded. The Multi-Reference gate ran 48 generations and the Unflatten gate answered eight questions; in both cases the findings overturned assumptions in the original plan and reduced the scope of what shipped.[3][6]

Features

The panel presents eleven generation tools alongside utility and preference screens.

Tool Function
Text to Image Generates a new layer from a text prompt
Image to Image Uses the active layer as visual input
Sketch to Image Conditions generation on line art through ControlNet
Inpaint Repaints a Photoshop selection in place
Outpaint Extends canvas content beyond its original edges
Upscale Enlarges a layer using a pixel/model upscaler
Prompt from Layer Produces descriptive prompt text from an image (Florence-2)
Unflatten Separates one flat layer into several layers with alpha
Live Painting Regenerates continuously as the user paints
Style Reference Transfers palette and mood from a reference layer
Multi-Reference Composes a single image from several captured layers
Layer Tools Exports layers, selections and masks; requires no models

Supporting screens include History (previous generations with their parameters), Prompt Wallet (a shared library of saved prompt pairs), Setup (model and node requirements checked against the running server), and Settings.

Three visual themes are offered: Compact Adobe Dark, the default; Artist-Friendly Dark, a softer palette intended to sit behind artwork rather than match the application chrome, in which numeric parameters are rendered as sliders; and Classic v0.4.

Architecture

The plugin is written in TypeScript across approximately 90 source files and built with Vite into a UXP plugin package. Generation behaviour is declared in a preset registry, which as of v0.20.0-alpha defines 26 runnable presets.[5]

Each preset names an API-format ComfyUI graph, an editable GUI-format counterpart, the node classes it requires, and the model files those nodes load. An automated check compares each graph with its editable twin to prevent the two from diverging. The registry is the single source from which the Setup screen, the offline setup pack, and the Workflow Health report are all generated — the project's stated rule being that restating a model name or folder downstream "is how a setup guide drifts from the software it describes".[5]

Distribution is as an Adobe .ccx package, installable by double-click through the Creative Cloud desktop application. Because the plugin is neither signed nor distributed through Adobe Exchange, Creative Cloud presents an unverified-publisher prompt during installation.

Models and hardware

OpenLayer ships no model weights. Users install them into ComfyUI themselves, and the panel reports which are present, which are missing, and which are in the wrong folder.

Presets are organised around four principal model stacks. Because several presets share files — the 8 GB qwen_3_4b text encoder is read by nine presets across four tools — the deduplicated total for every preset, approximately 177 GB, is far smaller than the sum of the presets taken individually.[5]

Stack Approx. size Licence
FLUX.2 Klein 4B 12.5 GB Apache-2.0
Z_image_Turbo 20.7 GB ungated
Krea-2 Turbo 18.6 GB ungated
Flux Fill 34.2 GB non-commercial

The FLUX.2 Klein stack is the project's recommended starting point, enabling five tools for 12.5 GB and generating a 1024×1024 image in approximately twelve seconds on an NVIDIA RTX 4070 Ti at four sampling steps.[7]

See Choosing a Model and Hardware and Performance.

Agent bridge

Since v0.15.0-alpha, OpenLayer's tools can be operated by a language-model client through the Model Context Protocol. All ten generation tools are exposed. The bridge is disabled by default and is distributed in the source repository rather than in the plugin package, because a Photoshop plugin package cannot install or start a Node.js process.

Architecturally the bridge contains no Photoshop or ComfyUI logic. Its only operations are to request that the panel run a tool it already possesses, and to read back the reported outcome. Consequently an agent-initiated generation and a user-initiated one traverse identical code, and the same safety constraints — document binding, transactional import, and a single-run lockout — apply to both.[8]

Limitations

The project documents its boundaries explicitly rather than implicitly. Notable among them:

  • Unflatten requires a subject positioned in front of a background. An image filling the frame has no foreground and background to separate, and is returned unchanged. Testing established that composition, rather than whether the image was photographed or generated, determines the outcome. The decomposition runs at 640 pixels, a measured optimum at which separation is better than at 1024.[3]
  • Multi-Reference does not preserve facial likeness. Clothing, props, setting and lighting transfer from a reference image; a specific person's face returns as a plausible stranger. This was established across 48 test generations and is stated in the interface itself.[6]
  • macOS is unverified. No confirmed end-to-end installation has been reported.
  • Inpainting, outpainting, Unflatten and Multi-Reference are marked experimental.

A full account is maintained in what works and what does not.

Development

The repository maintains an automated test suite — 1,022 tests across 101 files as of v0.20.0-alpha — covering workflow validity, settings, model compatibility and error handling. Continuous integration runs type checking, linting and the tests; Photoshop, UXP and ComfyUI integration testing remains manual.

A dedicated test enforces version consistency across the seven locations the version number occupies, added after two releases shipped with a stale version displayed in the panel.[9]

Testing reports are welcomed, particularly from macOS users, through Discussions and Issues.

See also

References

  1. OpenLayer README — project overview and tool list.
  2. Privacy — statement of local-only operation.
  3. docs/unflatten-gate-findings.md — pre-build investigation of layered decomposition.
  4. docs/workflow-notes.md — capture, submission and import path.
  5. src/comfy/presetRegistry.ts and src/comfy/setupManifest.ts — preset and requirement definitions.
  6. docs/multi-reference-gate-findings.md — 48-generation likeness investigation.
  7. CHANGELOG, v0.15.0-alpha — FLUX.2 Klein timings.
  8. docs/mcp-bridge.md — bridge design.
  9. tests/scripts/versionConsistency.test.ts — version-drift enforcement.

OpenLayer™ — the name and logo may not be used by derivative works without permission. Software licensed under the MIT License.