diff --git a/.gitignore b/.gitignore index 3ddd699..e4343ac 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,9 @@ Thumbs.db .env .env.* +# Draft shooting script for a promo video -- not part of the product. +docs/video-01-intro-shooting-script.md + # Assistant tooling, not project configuration. launch.json describes how to # start dev servers for a Claude Code session and settings.local.json holds # per-machine permissions; nothing in npm, the plugin, UXP, or CI reads either. diff --git a/CHANGELOG.md b/CHANGELOG.md index aadf1e1..197cc0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,13 +1,26 @@ # Changelog +## Unreleased + +### Added + +- **Setup and Workflow Health rows can open the page they are talking about.** An **Open** button sits beside Copy Link and opens the model card or the node package's repository in your own browser, through `uxp.shell.openExternal`. Copy Link stays exactly where it was: a panel that hands you a URL is still the only thing that works when the host refuses to open one, and Copy Folder Path was never a link at all. Open appears only where there is a human-readable page to open — never built from a model's direct download URL, because handing that to a browser starts fetching the file, and several of these are tens of gigabytes. A Workflow Health row for a node that ships with ComfyUI itself gets no button either, since there is nothing to install and therefore nothing to open. A missing model that is really just sitting in the wrong folder gets no button for the same kind of reason: it needs moving, not fetching. + ## v0.13.0-alpha - 2026-08-07 LoRAs, at last: every preset that loads a model and a text encoder — eleven of them, across Text to Image, Image to Image and Sketch to Image — now takes an optional LoRA. The panel has been able to list the LoRAs on your disk since long before it could use one. Two presets that were quietly broken are fixed. Sketch to Image fed ControlNet a blank control image for light-on-dark art, so the sketch was ignored with no error at all. The Flux.2 dev (GGUF) preset that headlined v0.12.0 could not actually be run: its model dropdown never listed a `.gguf` file, and choosing it and pressing Generate failed outright. Both were reported by a tester using the release, which is what the alpha is for. +The Setup screen also downloads models now, which ends the withholding that ran through v0.12.0. It does not go through ComfyUI-Manager's catalogue — the thing that made the original design impossible — it downloads from the registry's own pinned URLs itself. + ### Added +- **The Setup screen downloads missing models itself.** A missing model's row offers **Download** beside Copy Link, and OpenLayer fetches the file directly from the URL the registry pins, not from a third-party catalogue. The transfer is a sequence of 8 MiB ranged chunks appended straight to disk, so memory never holds more than one chunk and an 18.7 GiB model is no harder than a 700 MiB one — and an interrupted download resumes from where it stopped rather than starting over. One model at a time, only the one that was confirmed, and nothing starts until a confirmation names the file size, the destination folder, and the host it comes from. The host is on that confirmation deliberately: it is the only part of a long Hugging Face URL that says who is being trusted, and it is the part the path hides. When the bytes have landed, the claim that it worked is made by re-reading ComfyUI's own inventory rather than by the download reporting success, because a file on disk and a model ComfyUI can load are not the same fact. + + Every refusal written during the withholding is still in force, and each one is decided before the button is offered rather than discovered mid-download. Licence-gated weights are never fetched anonymously, because an unauthenticated request saves an HTML sign-in page under the model's filename and that is indistinguishable from a corrupt model until ComfyUI tries to load it. A model already on disk in a different folder asks you to move it instead of downloading a second copy. An entry published as a repository folder rather than a single file is refused and points at the model page. So is anything the registry has no direct URL for. A server that ignores the Range header and starts sending the whole file is refused too, rather than tolerated. + + **Still not automated:** custom node packages, licence-gated files, ComfyUI itself, and its Python dependencies. - **An optional LoRA on eleven presets.** One dropdown and one strength control per tool. Choosing nothing leaves the workflow byte-identical to the one that ships, because a LoRA cannot be a permanently wired node whose value is merely set: ComfyUI's `LoraLoader` has no "none" entry, so a wired-in loader would force everyone to own and load a LoRA they may not want. The loader is spliced into the graph only when a LoRA is actually chosen, and the model and text-encode inputs downstream are rewired to it. This is the first time building a workflow changes its shape rather than its values, so each preset declares its own wiring rather than having it guessed — three genuinely different shapes turned up among the eleven, including one where the LoRA must be applied before a sampling-mode wrapper rather than at the sampler. - **A Depth ControlNet Sketch to Image preset.** LineArt and Scribble both hold the drawn stroke; neither carries depth. This one conditions on estimated scene depth, so it holds perspective and the relative distance of forms — the preset to reach for when a generated element has to sit inside an existing composite at the right camera angle. It works from any shaded image, not only a line drawing, and needs one new ControlNet model. No new custom node package: the depth estimator comes from `comfyui_controlnet_aux`, which the sketch presets already required. - **A Scribble Sketch to Image preset**, on the PiDiNet edge detector and the Scribble ControlNet, for loose gestural strokes where LineArt holds the drawn line too tightly. Its ControlNet model was already installed for most users and it needs no new node package. @@ -28,12 +41,11 @@ Two presets that were quietly broken are fixed. Sketch to Image fed ControlNet a - **Whether a Krea-2 LoRA trained on Raw behaves correctly on the Turbo checkpoint is unverified.** Krea's own guidance is to train on Raw and marks Turbo as not recommended for training, but no source addresses applying the result at Turbo's 8 steps. - **The Depth preset downloads its depth estimator on first use.** The ControlNet weight is a normal setup download, but `DepthAnythingV2Preprocessor` fetches its own estimator the first time it runs, so the first generation is much slower than later ones. Depth estimation also needs tonal variation — a flat line drawing gives it little to read. - Batch generation is designed but not built; the design note is in `docs/BATCH_GENERATION.md`. Image to Image cannot batch at all without further work, because it builds its latent from the captured layer. -- **Assisted install remains withheld, and the Setup screen still only reports and copies.** ComfyUI-Manager's `install_model` endpoint only accepts entries from its own curated catalogue, which holds 7 of the 16 model files this project pins, and for several of those its download URL is not the one the registry pins. Unchanged from v0.12.0. +- **Custom node packages still cannot be installed from the panel — only models.** Node rows keep Copy Link and go through ComfyUI-Manager: the git-URL route needs its non-default `allow_git_url_install` flag, and the queue route needs registry id, channel and mode fields OpenLayer does not carry. - **The Flux.2 GGUF preset is slow on a 12 GB card, by a wide margin** — an 18.7 GB quantised model plus a 16.8 GB text encoder means ComfyUI streams most of it from system RAM. It also needs `mistral_3_small_flux2_fp8.safetensors`, which is licence-gated: accept the licence in a browser and download it by hand. - **Live Painting is experimental.** The live tier needs an SD 1.5 LCM LoRA in `models/loras/`; the Refine tier additionally needs the three Krea-2 Turbo files. - Setup and Workflow Health overlap on purpose for now. Setup answers "what do I need and where does it go"; Health answers "can I run this preset right now". - "What will run well" reads the VRAM ComfyUI reports for its primary device. With ComfyUI stopped, every preset falls back to "Not known". -- The panel still cannot open a browser, which is why rows offer Copy Link rather than a button that opens the page. - **The `.ccx` one-click install is verified on one configuration only** — Windows 11, Photoshop 2025 (26.1.0). macOS and every other Photoshop version remain untested. - The Layer Tools card on Home does not dim when ComfyUI is unreachable, unlike the generation tools. - Layer, canvas, selection, and mask capture is limited to 16 megapixels (4096 x 4096) until a downscale option is added. diff --git a/README.md b/README.md index f42f37f..dc81eee 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ OpenLayer is an open-source Adobe Photoshop UXP plugin that connects Photoshop t New in `v0.13.0-alpha`: +- **The Setup screen downloads missing models.** A missing model's row offers **Download** beside Copy Link, and the panel fetches the file from the URL the registry pins — resumable, one model at a time, and never before a confirmation naming the size, the destination folder and the download host. Licence-gated weights and custom node packages are still yours to install; see the boundaries below. - **An optional LoRA on eleven presets**, across Text to Image, Image to Image and Sketch to Image. One dropdown and one strength control per tool. Choosing nothing leaves the shipped workflow untouched — the loader is spliced into the graph only when you actually pick a LoRA. - **A Depth ControlNet Sketch to Image preset.** LineArt and Scribble hold the drawn stroke; this one holds the scene's perspective, which is what you want when a generated element has to sit in an existing composite at the right camera angle. Needs one new ControlNet model, no new node package. - **Sketch to Image no longer ignores your sketch.** Light-on-dark art and solid filled shapes produced a blank control image, so ControlNet had no signal and the preset quietly became plain text-to-image. Fixed, and both sketch preprocessors now run at 1024 instead of 512. @@ -157,7 +158,7 @@ Also worth rechecking from v0.9.0-alpha: Known v0.13.0-alpha boundaries: -- **The Setup screen reports and copies. It does not download or install anything.** Assisted install was built for this release and withheld: ComfyUI-Manager's install endpoint only accepts models from its own curated catalogue, matched exactly on `save_path`, `base` and `filename`, so every request OpenLayer could build was rejected. Only 7 of the 16 models this project pins are in that catalogue, and for several of those the catalogue's URL is not the one the registry verified — so the fix is a download path that honours our own URLs, not a field mapping. Full reasoning in the CHANGELOG. +- **The Setup screen downloads missing models, but not custom nodes.** A missing model's row offers **Download** beside Copy Link, and OpenLayer fetches the file from the URL the registry pins — in resumable 8 MiB chunks, one model at a time, and never before a confirmation naming the size, the destination folder and the download host. What it will not do is unchanged and deliberate: licence-gated weights are never fetched anonymously, because an unauthenticated request saves an HTML sign-in page under the model's filename; a model already on disk in the wrong folder asks you to move it rather than downloading a second copy; and an entry published as a repository folder rather than a single file points you at the model page. Custom node packages keep Copy Link and go through ComfyUI-Manager. Full reasoning in the CHANGELOG. - The **Flux.2 GGUF preset is slow on a 12 GB card**: minutes per image, not seconds, and its text encoder is licence-gated, so accept the licence in a browser and download it by hand. - "What will run well" rates on published model weight sizes against reported VRAM. It is not a measurement of VRAM use during a run, and a preset with an unpublished model size is reported as unknown rather than guessed at. - Setup and Check Workflow Health overlap on purpose. Setup answers what you need and where it goes; Health answers whether a given preset can run right now. diff --git a/docs/become-a-tester.html b/docs/become-a-tester.html index 5489a90..faf887d 100644 --- a/docs/become-a-tester.html +++ b/docs/become-a-tester.html @@ -44,7 +44,7 @@
-

Alpha v0.12.0 · testers wanted

+

Alpha v0.13.0 · testers wanted

Five minutes to
your first AI layer.

OpenLayer is an alpha. It works on the author's machine, and that is exactly the problem — @@ -53,7 +53,7 @@

Five minutes to
your first AI layer.
    @@ -73,9 +73,12 @@

    What you need on the machine.

    Photoshop 2024 or newer (the plugin manifest requires host version 25.0.0) and a running ComfyUI with at least one SD 1.x or SDXL checkpoint installed. No developer tools — installing is a double-click now. - If you do not have a checkpoint yet, the setup pack attached to the release - lists every model OpenLayer's presets need, with download URLs and the exact folder each one - belongs in. + If you do not have a checkpoint yet, you no longer have to go and find one: the panel's + Setup screen lists every model the presets need and downloads it for you, one at a + time and resumable, after a confirmation naming the file size, the folder it lands in, and the host + it comes from. Licence-gated weights and custom node packages are the exceptions and stay manual — + the screen says which is which. The setup pack attached to the release carries the same list if you + would rather download by hand.

@@ -90,8 +93,8 @@

Install, connect, generate, import, report.

1

Install OpenLayer

-

Download openlayer-v0.12.0-alpha.ccx from the release and double-click it. Creative Cloud installs the panel — no developer tool, nothing to unzip. Creative Cloud will warn that the plugin is not verified by Adobe, because it is not from Adobe Exchange; that prompt is expected. Keep the file on the same drive as Photoshop. Then open Photoshop: Plugins > OpenLayer.

-

If double-clicking does nothing at all — a known Windows 11 quirk — the release also has openlayer-v0.12.0-alpha.zip, which loads through the UXP Developer Tool: Add Plugin, select the unzipped manifest.json, then Load. And if that is what you had to do, please say so in your report — the one-click path is new and only verified on Windows 11 with Photoshop 2025 so far.

+

Download openlayer-v0.13.0-alpha.ccx from the release and double-click it. Creative Cloud installs the panel — no developer tool, nothing to unzip. Creative Cloud will warn that the plugin is not verified by Adobe, because it is not from Adobe Exchange; that prompt is expected. Keep the file on the same drive as Photoshop. Then open Photoshop: Plugins > OpenLayer.

+

If double-clicking does nothing at all — a known Windows 11 quirk — the release also has openlayer-v0.13.0-alpha.zip, which loads through the UXP Developer Tool: Add Plugin, select the unzipped manifest.json, then Load. And if that is what you had to do, please say so in your report — the one-click path has only ever been verified on Windows 11 with Photoshop 2025.

2 @@ -191,7 +194,7 @@

Ready?

talk it through than file a report, the discussion board has a Setup Help category.

@@ -199,7 +202,7 @@

Ready?