Repository navigation
Releases: DenRakEiw/scumble
Releases · DenRakEiw/scumble
Release list
Scumble 0.1.42: Realism Pass, RTX upscaling, a portable zip
- Realism Pass (Windows only, RTX only). A new local recipe sends the selection's box at its own size through
DLSS 5 Neural Rendering on your own ComfyUI and lays the answer over it as a layer, so generated skin, hair and
fabric look less waxy. It needs a ComfyUI on Windows with an RTX 30, 40 or 50 card and the community node pack
ComfyUI-DLSS5-Enhancer with its runtime, installed there by you; Scumble ships none of it. The recipe comes with two
presets, L (the default) and M, for the DLSS model. Before anything is sent, Scumble checks the server and says why
it cannot run there (not Windows, no supported card, the pack missing, the selection with its surroundings smaller
than 64 px or larger than 7680 × 4320 or 27.9 megapixels); RTX 30 cards run with a note. The pack's own errors come back as plain
sentences that say what to do. There is no Comfy Cloud version of the pass. The manual has a chapter of the same
name: what the pass needs, how to install the pack and its runtime on your ComfyUI (with the workaround for the
runtime installer's download address and the antivirus exclusion the pack's README advises), and what each message
means. - Realism Pass (Windows only, RTX only) over the whole picture. Upscale (also Image › Realism Pass (Windows
only, RTX only)...) lists the pass beside the upscalers. At 1× it sends the whole visible picture through DLSS 5 on
your own ComfyUI and adds the answer as a new layer above it, at full size and without a colour match (the layer's
match slider, set to match the picture underneath, takes a colour shift back); the picture keeps its size. Filter layers at the top of the stack, such as a
film look or grain, stay live above the new layer and are not sent; reference layers stay out. A second run reads
the first pass layer with the rest and stacks its own above it. Style and Strength sit in the dialog's Realism Pass
row and count for the recipe on a selection too; the row's DLSS model preset is the whole-picture pass's own (on a
selection the recipe's Preset row picks it), and a preset the runtime refused shows as Default there and can be set
back. The dialog says why the pass cannot run before anything is sent (the requirements above, or a picture larger
than 7680 × 4320 or 27.9 megapixels: DLSS answers near 30 megapixels sometimes came back with broken colours when
it was measured). The title row's timer shows the pass and its Cancel ends it; closing the tab ends it too.
Agents run it with therealism_passcommand;list_recipessays whether the connected ComfyUI can run it and
statuswhether it can run on the document, with the reason when not. The in-app assistant asks before it runs
the pass, its card showing Style, Strength and the model preset; where the pass cannot run it gets the reason
instead and no card is shown. - While an API Generate, an API upscale or the Realism Pass (Windows only, RTX only) runs on a document, until its
result is in, a second Generate with an API model, an upscale or Generate new on it is refused with a note instead
of starting beside it (Generate new with a recipe on your own ComfyUI used to clear the document before it was
refused). Generate with a recipe on your own ComfyUI still queues, except while an upscale of the whole picture or
the Realism Pass (Windows only, RTX only) above 1× runs: those resize the document, so Generate, a selection by text,
a cutout, the object tool and Ctrl+Z of a crop, a resize or a turn are refused with the reason until the result is
in (they would land in the old size). - RTX Video Super Resolution on your ComfyUI. A new upscale recipe on NVIDIA's RTX Video Super Resolution node
(the node pack Nvidia_RTX_Nodes_ComfyUI, which you install on your ComfyUI): 1 to 4 times, with a Quality setting.
The Upscale dialog shows the box's size and the answer's, and refuses a box whose answer would pass 8192 px. - The whole picture on your ComfyUI. Upscale recipes on your own ComfyUI now enlarge the whole picture too: the
answer becomes the new base and every layer, mask and the selection scale along, in one undo step. A cut-out picture
comes back opaque on this route, black where it was transparent. For the whole picture the Upscale model (ComfyUI) recipe takes at most 2048 px on
the long side, so a 4× model answers at most 8192 px; a selection has no such cap. The whole picture at 1× is
refused before anything is sent (its answer would be the picture's own size): select all and upscale the selection
for a cleanup at 1×. While it runs, the title row's timer shows it and its Cancel takes the job off your ComfyUI;
pressed while the answer is fetched, nothing lands. - RTX Video Super Resolution on Comfy Cloud. The same upscaler on Comfy Cloud on your Comfy key, for the selection
or the whole picture, 1 to 4 times, with the Quality setting; a picture whose answer would pass 8192 px is refused
before anything is sent. - Realism Pass (Windows only, RTX only) at 1.5× to 3×. The pass's factor in the Upscale dialog now also offers
1.5×, 1.7×, 2× and 3× (DLSS 5's own modes; 1.7× is its Balanced mode, 1.724 times). The document is made that many
times larger, the base and every layer, mask and the selection scaled along as Resize scales them, and the pass
comes back on top as a new layer at the new size, in one undo step with the enlargement. The pass answers at most
7680 × 4320 and 27.9 megapixels: a picture whose answer would be larger is scaled down first, so it comes back as
large as the pass allows, and the dialog and the status line say to what. 1× stays a refiner at the picture's own size. Agents passfactor
torealism_pass; the assistant's question names it. - A portable copy. Each release now also comes as
Scumble-<version>-portable-win-x64.zip: unpack it into a
folder you can write to (it holds one folder, Scumble) and start the Scumble.exe in it. The file portable.txt beside
it makes Scumble keep everything it stores (settings, keys, autosave, the local files, plugins, recipes, helper
models, logs, the browser caches and the Comfy Cloud sign-in) in a data folder beside it, made at the first start,
so it runs beside an installed Scumble; a folder it cannot write to stops it with a message naming the folder. A
portable copy, and any other copy without the installer's uninstaller beside it, never installs an update: when a
new version is out it asks once, and Download opens the release page; unpack the new zip where you unpacked the old
one and the data folder stays. A portable copy adds nothing to the taskbar's jump list. The installer stays the
recommended download. - API keys that cannot be read on this PC or Windows account (Windows encrypts them for the account that stored them)
are marked stored on another PC or Windows account: type it again in Settings › API providers, and a run with
one says so instead of reporting no key. Once a portable copy has started on another PC or Windows account, its
stored keys may have to be typed again on both PCs, the first one included (Windows may replace the copy's own
encryption key at that start; not measured yet). - Recipes can ship presets. The Preset row in the Settings section shows a recipe's own presets first, then
yours; the shipped ones cannot be deleted. - Generate new no longer offers the local upscale recipe, which makes nothing from a prompt.
- Ctrl+Enter no longer starts a second Generate while an API run is going on the document: it is refused with a note,
as the Generate button is, and the seed stays as it was. Generate with a recipe on your own ComfyUI still queues
(not while a run that resizes the document goes, above). - The film look None (adjustments only) adds no grain any more; it used to add a light grain of its own.
- The key of the local OpenAI-compatible endpoint goes only to the URL saved under Settings › Local /
OpenAI-compatible endpoint (the Test button saves it first); any other address is asked without it. - Agents:
flip_layerwith axis x now mirrors the layer left to right, as its description says (both axes used to
flip it top to bottom); an agent that asked for the other axis to get a left-to-right mirror now gets the other flip.
remove_layer,flip_layerandcenter_layerrefuse a locked layer with the reason (flip_layerand
center_layera filter layer too) instead of answering as if done. - Agents: every MCP tool says correctly whether it only reads and whether it can lose something (a closed document, a
deleted layer, layers merged, a crop, a file written over, the recipe's settings), from flags on the commands
themselves; plugin commands can set them (docs/PLUGINS.md). Until now the plugins' reads were not marked read-only,
most commands that lose something were not marked destructive, and New document was. - Agents: four new commands.
transform_layerrotates a layer by any angle, turns it a quarter, distorts it to four
corners or warps it on a grid, as the move tool does (a text layer's rotation stays editable).copy_to_layerputs
the selected pixels of a layer, or of the visible picture, on a new layer at the same place, in this tab or another
(a cut takes them out of the layer); the clipboard your Ctrl+V reads stays as it was.resize_imageresizes the
whole document as Image › Canvas › Resize does, refused while a run is going on the document.cancel_runcancels
the runs in flight as the title row's Cancel does, for one tab or all; a command waiting on such a run ends at once,
and a run whose answer is already landing is named as such. Each change is one undo step (a cut is a step of its own
before the paste). - Agents:
list_recipessays for every recipe whether it can run now and why not (a missing key, the in-app model not
downloaded, not connected to ComfyUI, node types the server lacks), which of a ...
Scumble 0.1.41: ComfyUI inside Scumble, recipes for Comfy Cloud
- Cancel an API run. While a run waits on a provider, a Cancel button sits beside the timer in the title row.
Pressed while the selection is still being prepared, nothing is sent; pressed later, Scumble stops waiting at once
and says so. The provider may still finish a job it already has and charge it. - Your ComfyUI in a window of its own. A ComfyUI button in the top bar (Ctrl+Shift+K, also View › ComfyUI)
opens your ComfyUI's own page beside the editor, from the address and auth under Settings › ComfyUI: a local
install, a box in your network or a RunPod pod. Basic, bearer and custom-header auth reach the page and its live
connection; a wrong password shows the server's answer instead of a browser prompt. ComfyUI's own shortcuts work
there (Ctrl+S, Ctrl+Z, Ctrl+Enter), and Scumble's never fire from it. The page runs apart from Scumble: it cannot
reach the editor, your keys or your files. With no ComfyUI to show, the window says why and leads to the setting;
nothing connects anywhere until you open it, and Scumble needs no ComfyUI for anything else. - A recipe as its graph. Edit in ComfyUI, beside the recipe picker while a ComfyUI recipe is selected (also
View › Edit Recipe in ComfyUI and each ComfyUI recipe under Settings › Recipes), opens that recipe's graph in the
ComfyUI window, laid out by ComfyUI, with the result and the Settings rows wired to the Inpaint Canvas node as they
run. The window's bar names the recipe, and says so when the page cannot take a graph. - A graph as a recipe. In the ComfyUI window, Save to recipe writes the graph you changed back into the recipe
the window holds, and Save as new recipe makes a new one under the name you type in the bar; either way the
editor selects it. A shipped recipe is saved as your own copy under the same name, which stands in for it; removing
the copy under Settings › Recipes brings the shipped one back. The recipe keeps ComfyUI's layout, so it opens next
time as you left it, and its Settings rows keep their names and values. A graph without an Inpaint Canvas node cannot
replace a ComfyUI recipe; saved as a new recipe, it becomes a Comfy Cloud recipe (below). - Comfy Cloud in the same window. The window's Show picker switches between your ComfyUI and Comfy Cloud, and
keeps the choice. You sign in on Comfy Cloud's own page (by email or GitHub; Google may refuse a sign-in from an app
window), and the sign-in stays for the next time. Comfy Cloud runs no custom nodes, so Edit in ComfyUI opens a
recipe built on the Inpaint Canvas node on your own ComfyUI and a Comfy Cloud recipe on Comfy Cloud, whatever the
window showed last. - Recipes that run on Comfy Cloud. Cloud copy under Settings › Recipes turns a ComfyUI recipe into one without
the Inpaint Canvas node that runs on your Comfy Cloud key: Scumble crops and stitches itself, and the graph takes the
crop, the Original, the reference layers, the prompt and the seed through ComfyUI's own nodes. A workflow made on
Comfy Cloud becomes a recipe too: import its exported.json, or save it from the ComfyUI window. Before a run Scumble
checks that Comfy Cloud has every node of the graph and names a missing one. When a run fails, the message also names
any model file Comfy Cloud's node list does not show, with a close name it does show where there is one. - Comfy's templates as they are. A workflow without the Inpaint Canvas node needs no titles any more: Scumble reads
which picture is the crop, where the prompt, the negative and the seed go and which node gives the result, and says
what it read when it saves the recipe. Comfy's image-edit templates (Qwen Image Edit, Flux.2 Klein and more) save
straight from the ComfyUI window this way; titles are only needed to correct a wrong reading. - A Comfy Cloud mode. The mode picker next to Generate has a third choice, comfy cloud, beside local and
api: the recipe picker then lists your Comfy Cloud recipes alone, and they run on Comfy Cloud with your Comfy
Cloud key. The negative prompt field shows there as in local; a graph with a negative takes it. Each mode comes back with the recipe you
last used in it; with no Comfy Cloud recipe yet, the status line says how to make one. - Thirteen Comfy Cloud recipes come with Scumble, from Comfy's own templates. Image edits: Boogu Image 0.1 Edit,
Flux.2 Klein 9B base (one picture, or two), Flux.2 dev, Mage Flow Edit Turbo, Qwen Image 2.1 Edit and Qwen Image Edit
2509. Pick comfy cloud and one of them, add your Comfy Cloud key, and the selection renders there. Tried live
before the release: Qwen Image 2.1 Edit on a selection and a Generate new run; the others are built the same way. - Generate new on Comfy Cloud. The Generate new dialog has a Comfy Cloud choice with Comfy's text-to-image
templates: Anima base and preview, Flux.2 Klein 9B, Ideogram 4, Krea 2 Turbo, Mage Flow, Qwen Image 2.1 and Z-Image
Turbo, at 768 to 2048 px on the long side. A text-to-image workflow saved from the ComfyUI window or imported from
Comfy Cloud becomes such a recipe by itself: Scumble finds where the prompt, the seed and the size go. - Templates read more fully. A template's negative prompt is found when its control shows that name, when its
negative encoder has no control at all, or when the encoder has a negative field of its own; an empty negative in
the editor keeps the template's default instead of clearing it. A prompt behind a switch or a prompt enhancer is
followed to the text you write. Widgets with sub-options (an image format and its bit depth) and nodes newer than
Scumble's own list are read from the export by name, so such a graph no longer fails on Comfy Cloud for a missing
input; previews and before / after compares stay out of a cloud run. - A cloud copy keeps its wiring when saved back from the ComfyUI window: its prompt, negative and seed no longer
fall away on Save to recipe or Save as new recipe. - Importing workflows with subgraphs reads them correctly: a newer subgraph's inputs are matched by name (before,
a picture could land on a model loader's input), and a muted or bypassed subgraph adds none of its nodes. - Clearer texts in the Generate pane. A recipe without Settings rows now says so, instead of explaining how to wire
the ComfyUI node; in the comfy cloud mode the negative prompt's placeholder says that an empty field keeps the
recipe's own negative. - No Sample panel in every tab. The bundled Sample plugin no longer adds its panel to the Image pane. Its two
actions stay in the Plugins menu, its colour probe and Posterize filter stay, and so does its colour-reading command
that the assistant and agents use.
Scumble 0.1.40: A fix for Comfy Cloud
- Comfy Cloud runs bring their result back again. Comfy Cloud no longer answers the endpoint Scumble read the
finished picture from, so every run there (the partner models and the upscalers too) ended with "This endpoint is
not available on Comfy Cloud" after the job had run and been billed. Scumble now reads the result, and the cause of a
failed job, from the job's own details.
Scumble 0.1.39: Boxes for Ideogram 4, FLUX 3 on fal, Oxen.ai and WaveSpeed
- Boxes for Ideogram 4. The boxes in the prompt now go with Ideogram 4 on fal too, as Ideogram's own structured
caption: your prompt is the picture's summary, each New box an object in its place, each Text box the words it
renders, and on an edit each Keep box an element that stays. Move, Remove and From reference boxes have no place
in such a caption: they stay out of an Ideogram run, and the Boxes section and the status line say which. While the
boxes go, Prompt expansion goes as None, so nothing rewrites the caption. Tried live before the release: an edit
put a black cat into the grass of the selection, and a new image of a meadow put a red apple and a carved "SAUNA"
sign where their boxes were. On a new image the prompt also describes the background: without one, the model
painted a transparency checkerboard around the boxes, so Scumble says so when the prompt is empty. - Ideogram 4 ran live on fal for the first time (an edit and four new images), so its recipe no longer says it
is untried there. - FLUX 3 Image on fal.ai. The FLUX 3 Image recipe has fal.ai as a provider, on the fal key: edits with up to nine
more pictures, new images with up to ten references, and the boxes in the prompt. fal takes pictures of at most 4
megapixels and fourteen shapes, so Scumble holds the crop to that size, scales larger reference layers down and
picks the shape among those fourteen. There is no Grounding switch on fal; a Prompt expansion switch, on by
default, lets the model rewrite the prompt first, as Black Forest Labs' own API always does. Written from fal's
documentation; not yet tried against the live service. - FLUX 3 Image on Oxen.ai. The FLUX 3 Image recipe has Oxen.ai as a provider too, on the Oxen key: edits with up
to nine more pictures, new images with up to ten references, the boxes in the prompt, and the same Safety
tolerance and Grounding switches as on Black Forest Labs' own API (Grounding on by default; Oxen's own default is
off). The pictures go inline in the request, and Oxen keeps every picture it makes in your Oxen account. Written
from Oxen's documentation and model list; not yet tried against the live service. A run on Oxen.ai with a model
that takes no seed no longer reports the editor's seed as if it had been used. - FLUX 3 Image on WaveSpeedAI. The FLUX 3 Image recipe has WaveSpeedAI as a provider too, on the WaveSpeed key:
edits with up to nine more pictures, new images with up to ten references, and the boxes in the prompt. Like fal,
WaveSpeed takes pictures of at most 4 megapixels and fourteen shapes, so Scumble holds the crop to that size and
scales larger reference layers down; when the crop fits none of the shapes, the answer keeps the crop's own. The
Prompt expansion switch is on by default; there is no Grounding or Safety tolerance switch there. Written from
WaveSpeed's documentation; not yet tried against the live service.
Scumble 0.1.38: An update question, FLUX 3 on OpenRouter and Comfy Router
- A question when an update is ready. Once Scumble has downloaded a new version in the background, it asks:
Restart and update saves your documents, installs the new version and starts it with them; Later leaves it for
when you close Scumble, which installs it then; Skip this version leaves it out until a newer one comes, so
closing Scumble installs nothing (the Update to ... button in the title row and Settings › Updates still install
it). The question lists what changed since your version, one line per change, comes once per start, and waits
while you draw, type or answer another question, the assistant's included; a key you were typing when it opens
answers Later. Before a restart that would end a run in progress (on an API or on your ComfyUI), the assistant's
turn or an agent's session, it asks first; the button in the title row now does the same. It never asks after a
check you started in Settings › Updates, which shows the answer there, and never in the Microsoft Store copy,
which the Store updates. - Settings › Updates shows the whole release notes, of every version since yours: they were cut after 4,000
characters, and a jump over several versions showed only the newest one's. A check there now also looks again when
the downloaded version is one you skipped. - FLUX 3 Image on OpenRouter and Comfy Router. The FLUX 3 Image recipe has two more providers: OpenRouter, on
its own key, and Comfy Router, on the Comfy key you may already have for Comfy Cloud and billed in Comfy credits.
Both send the edits with up to nine more pictures, new images with up to ten references, and the boxes in the
prompt. On OpenRouter the prompt goes as you wrote it, the crop's shape and size class are the same as on Black
Forest Labs' own API, and the safety tolerance row works; grounding cannot be switched there. Tried live before the
release, two edits at 2K on each: a cow turned into a white horse in the same place, and with the selection as a
box a black cat sat in the box (about 40 to 110 seconds a run; OpenRouter charged $0.05 an edit, Comfy did not
report its credits). - FLUX 3 Image keeps the crop's shape. A crop widened to one of the model's shapes now always asks for that
shape; when the rounding of its size put it more than 3 % off, it went as "auto" and the answer was not fitted onto
the crop exactly. - Boxes: every box its own colour. A new box takes a colour no other box of the document has (ten in turn), keeps
it through every change, and its row in the Boxes section has the same colour at its edge, so six New boxes are six
colours now, not six greens. The kind shows in the shape and the tag instead: a Move box has a dashed source and an
arrow, a Remove box is hatched, a From reference box names its reference, a Text box carries a T, and Keep, Move
and Remove say their kind when the name does not. - Boxes: double-click a box to describe it on the picture. With the Boxes tool, a double-click on a box opens a
field over it with its description (on a Text box, its words): Enter keeps it, Shift+Enter starts a new line, Escape
cancels, a click elsewhere or another tool keeps what you typed. It goes into the prompt as words, never into the
picture. - Boxes: names from the noun, not the adjectives. A box named after its description takes the last two words of
its first phrase: "a small black cat sitting in the grass" isblack_cat_1(it wassmall_black_1), "the white
wall clock" iswall_clock_1, "a red ball under the chair" isred_ball_1, and a German description works too
("eine rote Lampe auf dem Tisch" isrote_lampe_1). A Text box keeps the first two words of its text
(big_sale_1). A name once made stays. - The seed
generatereports is the one the model got. A route that sends no seed (FLUX 3 Image; GPT Image,
Nano Banana and Seedream on their own APIs and on OpenRouter and Comfy Router; the Magnific and ToAPIs routes without
one) answersseed: nullto agents, and the result's row in the history says "no seed sent" instead of offering a
seed it never used. generatesays how long a run on an API took. It answered about half a second for every API run, since its
clock started once the result was in;secondsnow counts from the moment the run starts.
Scumble 0.1.37: Boxes for FLUX 3, Ideogram 4.5
- FLUX 3 Image: boxes in the prompt, behind one switch. A switch Boxes in a row of its own under the prompt
field decides whether a run sends bounding boxes in the prompt, in the form the model's documentation describes. It
shows while the selected recipe takes boxes and counts the document's boxes ("Boxes · 3"). On, Generate and
Generate new send the document's boxes; with none, Generate sends your selection as one box: the model is told
where in the crop the change goes and what to put there (your prompt), or, when the prompt names a reference with
@img1, that this reference goes into the box. Off, no box goes and the boxes stay with the document; the status
line says how many did not go. The switch is off in a new document and is saved with it; the first box you draw or
add turns it on, and the status line says so. Switching it off never deletes a box. The status line says "Sent
with 1 box.", the log keeps the prompt as it went out, and a very small selection gets a note, since the model
often leaves a box under about 40 pixels empty. Agents switch it withset_generation(boxes), andstatus
reports it. Tried live before the release, five edits at 1k: with the selection as a box a cat sat in the middle
of the box (without, at the selection's edge, where Paste would have cut it), a From reference box put a wall clock
from a reference layer exactly into its box, and a Remove box took out a street lamp and its glow. The model fills a
box: draw it at the size the thing should have. - Plugins can supply boxes for the prompt. Plugin API 3 adds
scumble.generate.register({ id, boxes(doc, ctx), count(doc) }): a plugin answers boxes in image pixels (new, keep, move, remove, or a reference layer placed) for a
Generate or Generate new run of a recipe that takes boxes while the Boxes switch is on, and Scumble maps them into
the crop, numbers duplicate ids, writes the model's rows and sends them with the prompt. The optionalcount(doc)
says how many boxes the plugin holds for the document: the switch counts them, and the selection goes as a box only
when no plugin holds one. A box outside the crop is left out with a note; a box that names a reference layer the
run does not send stops the run before anything is sent. Thegenerateandgenerate_newcommands answerboxes,
how many went. The sample plugin shows a source (sample.boxswitches it on). - Boxes: a panel for the boxes of a document. A new section Boxes in the Generate pane (a built-in plugin) keeps
boxes with the document: for each one its name, what it does (New adds what the description says in the box, Keep
holds an element where it is, Move takes it from a source box to a new one, Remove takes it out, From reference
places a reference layer or a part of it, Text renders words), the description and the position in image pixels.
Selection → box takes the selection's bounds (a From box when the prompt names a reference with @img1), Clear
removes them, Copy rows puts the model's rows on the clipboard for another tool. The boxes go out with Generate
and Generate new runs of a recipe that takes them (FLUX 3 Image) while the Boxes switch is on and stay with the
document otherwise, and the section says which is the case; they are saved in the.scumblefile, follow a crop, a
turn or a resize of the picture, and every change is one undo step. Agents and scripts haveboxes_add,
boxes_set,boxes_remove,boxes_list(which also says whether the switch is on),boxes_from_selectionand
boxes_clear; the assistant adds and changes boxes by itself and asks before it removes one or clears them. - Boxes: draw them on the canvas. The Boxes tool (X, under Plugins in the tool column) draws a box with a drag
on the picture; a click selects one (its row in the panel lights up, and a click on a row selects its box), a drag
moves it, the eight handles resize it. Delete removes the selected box, D duplicates it, the arrow keys nudge it by
a pixel (Shift: ten), Escape lets go of it, and Alt+click picks a box that lies under another. A Move box's source
and a From box's part get handles of their own once the box is selected. Each gesture is one undo step. The boxes
show on the picture in their kind's colour (New green, Keep grey, Move blue with an arrow from its source, Remove
red and hatched, From reference violet with the reference's name) with their name and the first words of their
description, while the tool is active or the Boxes section is open; while the Boxes switch is off they are drawn
dashed and paler. - Boxes: the crop on the canvas, and what it does to them. While the Boxes tool is active and something is
selected, the picture outside the crop Generate would send is dimmed, its size under the crop's edge (the crop as
the run plans it, the model's shapes and sizes included). While the Boxes switch is on, the Boxes section warns of a
box the crop leaves out, one whose edge it cuts, and one that changes the picture outside the selection while
Paste keeps the selection only, which would cut the result there; Paste the whole crop in that warning switches
Paste for the document. - Boxes: the prompt says where each box goes. A run with boxes now writes a sentence per box into the prompt with
its description and its place in words ("Place a red scarf <red_scarf_1> at the top left.", "Move the lamp
<old_lamp_1> up and to the left, larger."); a description written as an instruction goes in as it is. Your prompt
goes first, word for word; the selection's box, described by the prompt, only says where the change goes. With an
empty prompt, or the selection's box, the sentences end with "Leave the rest of the picture as it is.". Copy rows
writes the same text. - Boxes are named after their description. A box keeps its default name (box_1) only until it is described: then
it is called after the description's first two telling words (red_scarf_1), and the selection's box after the
prompt. A name of your own (not box_1, edit_2 and the like) stays, and so does one your prompt uses. Names may now
hold several words (red_scarf_1). - Boxes: warnings before a run, and a tool that takes the box you point at. The Boxes section warns of a New box
without a description and of a box too small for the model to place anything in; a run notes both. A click with the
Boxes tool takes the smallest box under the pointer, so a box inside another is picked directly. A box turned into
Move keeps its place as the source and its target steps aside, so the two can be told apart. - Plugins get a
cropevent when an app setting the crop of a run depends on changes (a node parameter, the API
size), andscumble.host.cropFrame(editor)says what that crop is. - Ideogram 4.5, a new recipe on your Replicate token, your WaveSpeed key or Comfy Router (your Comfy key, billed
in Comfy credits). Ideogram's precise edit model changes the selected area and leaves the rest of the crop as it
was, pixel for pixel, at the crop's own size, and is strong at lettering. Your selection goes as the model's mask; a
selection over the whole crop lets it edit the whole crop. Up to three more pictures go along (the Original and your
reference layers); the model takes them without a number, so the prompt cannot name them with@img1. A very narrow
selection is sent with more of its surroundings, since the model takes no picture steeper than 6:1. Generate new
makes a picture from the prompt at the closest of seven shapes on Replicate and WaveSpeed. The Settings panel has
Quality (very_low, low, medium, high; medium by default), which is also the price per picture: $0.008, $0.03,
$0.06 or $0.22 for an edit on Replicate and WaveSpeed, $0.03 to $0.10 for a new picture on Replicate, $0.03 to $0.22
on WaveSpeed (very_low goes as low there). On WaveSpeed the Settings panel also has Edit precision (high by
default, which keeps the unchanged pixels), a new picture comes in one of seven shapes at 1k or 2k by the size you
ask for, your prompt goes as written, and no seed goes, so two runs differ. On Comfy Router a new picture comes at
the closest of Ideogram's 1K or 2K sizes by the size you ask for, your prompt goes as written, and very_low goes as
low; Comfy had not published the price. Written from Replicate's, WaveSpeed's and Comfy Router's documentation and
not run against the live services yet.
Scumble 0.1.36: FLUX 3 Image
- FLUX 3 Image from Black Forest Labs, a new recipe on your Black Forest Labs key. It edits a selection by
instruction, with up to nine more pictures (the Original and your reference layers), and in Generate new it makes a
picture from the prompt with up to ten reference images.@imgtokens go out as the model's "image N": on an edit
the crop is image 1, so they start at "image 2"; on a new picture at "image 1". The model takes no pixel size:
Scumble widens the crop to one of its fifteen shapes and picks the size class from it, 1k or 2k for an edit, up to 4k
for a new picture (the larger class costs more). A reference layer under 256 px a side or over 16 megapixels is
scaled to fit before it goes. The Settings panel has Safety tolerance (0 to 4) and a Grounding switch, on by
default, which lets the model search the web and images for what the prompt names before it renders; turn it off
to keep your prompt away from search. There is no seed, so two runs of the same prompt differ, and the model
expands a short prompt itself (the log keeps that expanded prompt and what the run cost). Every Black Forest Labs
run, FLUX.2 included, now waits out a busy server instead of failing and says why a blocked request was refused.
Written from Black Forest Labs' documentation and tried live before the release: an edit with a reference layer
and a new picture with one, which took about one and a half minutes each. - Scumble asks in its own dialogs. The questions that came in the system's message boxes or the browser's plain box
now open inside the window, in the colours of the skin in use: Save / Don't Save when a tab closes, a file changed on
disk or made by a newer Scumble, Save with or without the history, quitting while the last changes are still being
saved, removing a recipe, a helper model or unused files, closing or restarting while a document works. Enter answers
the highlighted button, Escape cancels, the arrow keys move between the buttons; a question that deletes something
has Cancel highlighted. A skin can recolour them but cannot hide them or change the order of their buttons. When the
window is too busy to answer at once (a second close while it saves), the system's box asks instead. Clearing the
result history asks in the editor's own box now, like the editor's other questions (Enter clears, Escape cancels).
The file pickers and the crash message stay the system's own. Plugins getui.ask()for the app's dialog. - Generate new on Gemini keeps the aspect you ask for. With the recipe's Aspect row on its default auto, Nano
Banana through a Google key sent no aspect for a new picture without reference layers, and the model answered in its
own shape (16:9 came back square). The asked aspect goes now; an Aspect row set to a ratio still wins. - Each local recipe keeps its own model files. Switching between Qwen Image Edit 2.1 (ComfyUI) and Flux.2 Klein
4B / 9B (ComfyUI) kept the other recipe's Model, Text encoder and VAE in the Settings panel, so a run loaded the
wrong files. Now every local recipe starts from its own. Once after the update, the Settings rows of a local recipe
in an open or saved document go back to the recipe's defaults. - For agents:
--attach-onlybeside--mcp(or--cmd) makes an MCP registration drive a running Scumble and
never start one in the background. With no Scumble open it offerspingalone and says Scumble is not running; once
you start Scumble, the next call reaches it and the client gets every tool.
Scumble 0.1.35
- Select several layers. Ctrl+click a layer row to add it to the selection or take it out, Shift+click to select
the rows in between. With the transform tool the selected layers move together, scale together by the handles of the
box around them and nudge together with the arrow keys; Ctrl+E merges them into one layer at the place of the
topmost; Delete removes them; the eye and the lock of a selected row switch all of them. Moving, scaling, nudging, merging and
deleting are one undo step each; the eye and the lock take none, as always. Locked and filter layers stay where they
are when the others move, Ctrl+E refuses while one of them is selected, Delete keeps the locked ones, and rotate,
distort and warp still take one layer at a time. Agents select several with
set_active_layerlayers, andlist_layerssays which are selected. - Align and distribute layers. The transform tool's bar lines up the selected layers on their left, centre, right,
top, middle or bottom edge, and spaces them with equal gaps across or down, within the box around them or within the
canvas (one layer aligns to the canvas). They go by each layer's box, not by its painted pixels. Each click is one undo
step; locked and filter layers stay put. Agents do the same withalign_layers. - Show only one layer, and back. Alt+click on a layer's eye showed only that layer before; now it also works for
several selected layers, a right click on a row offers it as Show only this layer beside Show all layers, merge
and delete, and moving the solo from one layer to another keeps what was visible before the first one, so the way
back always ends where you started (it brought back the first solo before). Solo leaves reference layers alone: a
hidden reference is not sent, and solo hid them before. - Clip a layer to the layer below. Alt+click the line between two rows, press Ctrl+Alt+G or pick Clip to layer
below in a row's right-click menu, and the upper layer shows only where the layer under it has pixels: its own
pixels, its mask and its opacity decide how much. Several layers in a row can clip to the same layer; a filter layer
clipped this way filters only what lies under that layer's pixels. The row gets a small arrow and the layer it clips
to an underline. A hidden base hides its clipped layers too; over a filter layer, or as the bottom layer, a clip has no
effect (the arrow is dimmed); a fill layer counts as a filter layer here. The same again releases it; each switch is one undo step. Merging a clipped layer into
the layer it clips to bakes the clip in. The clip is saved with the document and kept in PSD files both ways (a
layer clipped to a group or to a layer Scumble leaves out opens unclipped, and says so); ORA has no clipping. Agents
switch it withset_layerclip, andlist_layerssays what each clipped layer clips to. - Groups. Ctrl+G (or Group in a row's right-click menu) puts the selected layers into a group, a folder in
the layer list with its own row: fold it open or shut, hide every layer in it with its eye (their own eyes stay as
they were), lock them all with its lock, rename it with a double click. A click on the group's row selects its layers,
so they move and scale together. Drag a layer onto a row to put it next to that row in the same group; drag it onto
the lower half of a group's row to put it into the group at its top; groups drag the same way, and groups go inside
groups. Ctrl+] and Ctrl+[ step a layer past the next one, into a group next to it or out of its own. Ungroup leaves
the layers where they are (those of a hidden or locked group stay hidden or locked); the group's trash deletes it with its layers. Each change of the list is one undo step, the
eye, lock and fold of a group take none, as a layer's do. A group has no opacity or blend mode of its own: the layers
in it are drawn as if it were not there. A clip stays inside its group. Groups are saved with the document and kept
in PSD files both ways (a group's opacity goes into its layers when a PSD opens, and says so); ORA gets the layers
without the groups, those of a hidden group hidden. Agents usegroup_layers,ungroup_layersandset_group, and
list_layerslists the groups and says which group each layer is in. - Fill layers. The new button beside the filter button in the layer list adds a layer of one colour, which starts in
the paint colour; its row switches it to a gradient, from that colour to transparent to start with: linear along an angle, reflected from the centre both ways, or
radial from the centre out, from one colour to another, each end with its own opacity, with a scale and a
centre set in per cent. The row's picker and sliders change it at any time, and each change is one undo step. A fill layer covers
what lies below it, and its blend mode, opacity and mask let the picture through: a gradient to transparent in
multiply darkens one side and leaves the other as it is. It stays sharp at any size and is saved with the document.
PSD and ORA files get it as a layer of pixels (PSD with its mask, ORA with the mask applied). Agents add one with
add_filterof typefillorgradient, andfilter_typesmarks the fill types.
Scumble 0.1.34
- Name a reference image in the prompt. The reference list, the layer panel and the canvas now label every shown
reference layer img1, img2 and so on from the top of the list (they said "ref 1" before). Write@img1in the prompt
and the request names that picture the way the chosen model counts its pictures: "image 3" when the crop and the
Original go first, say, and on a local recipe the name its workflow reads (below). The status line says what each
token went out as ("Named in the prompt:@img2→ image 3."). A token stays with its picture: a new reference now
goes below the others and takes the next number, so nothing is renumbered, and when references are moved, hidden,
shown, merged or deleted the tokens in the prompt are rewritten so each still names the same picture (hiding one
renumbers the others, and their tokens follow). A token whose reference is hidden or deleted waits, and Generate stops
and says why until you show the layer again, undo the delete or take the token out. The negative prompt takes tokens
too, as plain text. A run now reads the prompt and the references at the moment you click, so an edit made while it
starts no longer changes what goes out. An upscale sends no reference images, so there a token goes out as its layer's
name (the Upscale dialog fills its prompt that way), and Select by text, when it asks the language model what the
prompt is about, reads a token as "the reference image". - Reference chips in the prompt field. Each token shows as a chip: a small round picture of the reference and its
label. A chip whose reference is hidden is struck through and shows the layer's name; one whose reference was deleted,
or whose number no reference holds, is struck through in red. A chip counts as one character: the caret steps over it,
and Backspace or Delete takes it whole. A token becomes a chip once you type the space after it (so@img12can be
typed without a chip for@img1on the way), a word typed right against a chip gets a space between the two, and a
click on a chip puts the caret beside it. The prompt field keeps its own undo: Ctrl+Z and Ctrl+Y there take back
typing, a paste, Upsample, Revert or a prompt an agent set, never an edit of the picture. Its lines are a little
taller, to fit the chips. - The @ list, the reference bar and the card. Type @ at the start of a word and a list of the shown references opens
under the caret, each with its picture, label, layer name and what the model gets it as; what you type after the @
narrows it. The arrow keys move in it, Enter or Tab puts the reference in, Escape closes it (a second Escape leaves
the field). "+ Add reference" at the end of the list adds pictures as new reference layers and names them where the @
was, and a picture pasted into the prompt or dropped on it does the same (text still pastes as text). Above the field
a bar shows every reference as a chip (a hidden one dimmed), a + that adds pictures, and how many references the
recipe takes besides the crop and the Original ("2 of 3 for this recipe"); a click on a chip there names it at the
caret. A chip past what the recipe takes gets a yellow edge, and when the recipe sends no reference images at all (an
upscale, say) every chip in the prompt is struck through and the bar dims its chips and says the recipe sends none.
Rest the mouse on a chip for a moment and a card shows a larger picture, the layer's name and what the token goes out
as ("img2 · sent as image 3"), or why it does not go. The small arrow on a chip swaps it for another reference, shows
a hidden reference again or takes the token out; a chip can be dragged to another place in the text, and a selection
dragged inside the field moves there (hold Ctrl to copy it). - Generate new keeps the reference layers and sends them along. The new picture replaces the old one and every other
layer, but the reference layers stay, and the shown ones go to the models that take reference images for a new image:
FLUX.2, GPT Image, Nano Banana, Seedream and HY Image 3.5 on every provider that runs them here, Qwen Image Edit on
ToAPIs, WaveSpeed, Comfy Router and Oxen.ai (not on fal or Replicate), Qwen Image 2.1 on Oxen.ai, and Grok Imagine on
fal, OpenRouter and Oxen.ai. There is no crop before them, so@img1goes out as the model's first picture
("image 1",<image1>on Qwen Image 2.1); shown references the prompt does not name go along too, and a hidden one
stays in the tab without being sent. A model that makes pictures from the prompt alone (Ideogram, Recraft, Reve and
the others) sends none and keeps them in the tab, and stops the run when the prompt names one. Through a provider the
status line says what each token went out as and how many other layers were replaced. The dialog's prompt field works
like the Generate tab's, with chips, the @ list and the bar, and the card on each chip says what its reference goes
out as for the model and provider picked in the dialog; its Upsample keeps the tokens (next item) and has its own
Revert. In an empty tab, a reference added through the prompt field (its +, the @ list, a picture pasted or dropped
on it) first gets a white 1024 × 1024 canvas for Generate new to replace. On a local recipe the references follow the
white canvas the recipe renders on, so there@img1is the second picture (the third when Original is on with a
fill), and a local Generate new checks the tokens and the connection to ComfyUI before it replaces anything. - Upsampling keeps the tokens and sees the reference images. The language model is told which reference each token
names and to leave the tokens as they are. A token for a hidden or deleted reference, or a number no reference holds,
stops the upsampling with the reason. When a rewrite drops a token, adds one or names a picture by number instead
("image 3"), the status line says so ("Check the tokens: the rewrite dropped@img2."), and Revert brings your prompt
back; a reference moved, hidden or merged while the model answers keeps its tokens in the answer. With an API model or
the local endpoint, the language model also sees the reference images the prompt names (up to six, at most 512 px
each), so the rewrite knows what each token is; they go to that model's provider along with the crop. The switch that
keeps them back is in Settings › Prompt templates (on by default); the ComfyUI helper upsampler gets the names only.
On the local endpoint, ToAPIs, OpenRouter and Oxen.ai a model that turns the pictures down is asked again with the
crop alone, and the status line says "crop only". Prompt templates get a{references}placeholder, which the five
shipped ones use; a template of your own without it gets the names added at the end. - Local ComfyUI recipes name the pictures too. On a local recipe a token goes out as the name that recipe's model
reads for its picture:<image3>on Qwen Image Edit 2.1, "image 3" on FLUX.2 Klein; the prompt field keeps the token.
Klein now reads up to 4 pictures and Qwen Image Edit 2.1 up to 10, the crop and the Original included. Klein used to
read the crop and one more picture only, so with Original on no reference reached it at all, and both repeated the
last picture into the slots the batch left empty; they no longer do, so the same seed gives another result than in
0.1.33. A reference past what the recipe reads is left out with a note ("img3 is not sent"), and a token that names
one stops the run and says why. The status line says what each token went out as, and the app's log keeps the prompt
as it was sent whenever it named a reference. The References line at the foot of the Crop panel reads "img1 →
<image3>", and its batch count leaves the Original out on a refine pass, as the node does. A workflow of your own is
read the same way; where Scumble cannot tell how its graph numbers the pictures, it writes "image 3" by their place in
the batch and says the wording is guessed. Neither widened workflow has run on a real ComfyUI yet. - Every API route says what it sends. Where a route writes a sentence of its own around your prompt, it now numbers
the pictures the way the tokens do ("Edit image 1 and keep its size and framing. … Images 3 and 4 are reference
images."), with a sentence for the Original ("Image 2 is image 1 before the selected area was filled."). Nano Banana
on Google Gemini and on Comfy Router's Google route gets a label ("Image 1:") before each picture when more than one
goes. No reference is left out without a word any more: a route sends every picture; or it refuses before anything is
sent when there are more than the model takes, with the count and what to do ("… takes at most 8 pictures; this run
has 9 (the crop, the Original, 7 reference layers): hide reference layers or turn Original off."); or, where the
endpoint takes no reference at all (the FLUX.1 Fill and other fill endpoints, Replicate's Qwen Image Edit, Nano
Banana Pro on Comfy Cloud), it sends none and says so in the status line, and a prompt that names a reference there
stops the run. Ideogram Inpaint on Magnific sends the reference layers as style references, which have no number:
they go along, but a prompt that names one there stops the run. The limits follow each provider's documentation: on
Black Forest Labs FLUX.2 [klein] takes 4 pictures and [pro], [flex] and [max] 8 (it kept 7 references and dropped the
rest silently before), FLUX.2 on WaveSpeed 3 (a run with the Original and two references is refused now), Grok
Imagine on fal 5, Seedream on fal 10, Nano Banana 14 and GPT Image 16 on most providers. FLUX.1 Fill on Comfy Router
runs again while a reference layer is shown (it refused) and leaves the references out, as its note says, and Comfy
Cloud uploads only the pictures its node reads. None of this has run against a live API yet. - **The ...
Scumble 0.1.33
- Erasing is fast again. Since 0.1.32 the eraser, the brush, clone and heal got four to seven times slower with a
large brush (700 px and up) on a large picture whenever the pen, or a fast mouse, sent more points than the screen
showed frames, which a pen does all the time: each of those points was painted as a little stroke of its own, and
every slow frame made the next one slower still. It was felt most inside a selection. A move is one piece of the
stroke again: erasing and painting cost what they did in 0.1.31, clone and heal about a fifth of what they cost in
0.1.32. The stroke still follows every point the pen sends, and the pressure still sizes the brush point by point. - A soft brush under a pen is as even as under the mouse. 0.1.32 put a dab down twice at every point the pen sent,
and where the pressure changed within a frame it spaced the large dabs as the smallest, so a soft edge came out a
little harder with a pen than with the mouse. - Follow stroke turns an imported tip with the stroke again when the pen moves slowly; in 0.1.32 it could keep the
angle of the stroke before.