Defaults an administrator can actually set

There were none. `workflow.DEFAULTS` was the only source, so 512x512, euler and
twenty steps were what every instance got whatever card it was running on -- and
512 square on an SDXL checkpoint is precisely what the tool's own description
warns produces duplicated limbs. The two ways round it were both bad: bake
literals into a template where the placeholders should be, or write prose in the
instructions box and hope.

Three rungs now, most specific winning, with DEFAULTS staying underneath as the
floor so an instance that sets nothing behaves exactly as it did and a floor
improved in code still reaches everybody. An empty box is "no opinion" rather
than zero, which matters: read as a number it would set every instance to zero
steps, and ComfyUI refuses that in a way that looks like a broken model.

The right control for each, because a text box is wrong for most of them. The
samplers and schedulers were already being discovered by the Test button, stored,
and read by nothing at all -- they are the pickers now. A stored value missing
from the list is kept as an option anyway, or opening this page and pressing Save
would silently clear a working setting. Checkpoints are chosen rather than typed,
and the instance default is a rung of its own instead of "whatever happens to be
first in a textarea somebody filled in some order".

And batch, at last: `batch_size` was a literal 1 in the base template, so an
administrator whose card can comfortably make four had no way of saying so.
Deliberately not something a model may set -- one asking for six because it is
unsure is the exact cost this must not invite.

The tool's schema restates the defaults it quotes. Every "Default 20." in there
was written when there was one set of defaults in the world; left alone, an
instance drawing at 1024 would go on telling the model 512, and the model reasons
from that sentence rather than ignoring it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jaroslav Beneš
2026-08-06 11:50:37 +02:00
parent fb54a236ae
commit 6fcb9c9892
16 changed files with 784 additions and 39 deletions
+13 -7
View File
@@ -9,7 +9,7 @@ reasoning, tool calling with web search, custom HTTP tools and MCP servers,
agent chats that work on a machine over SSH, a knowledge library, notes, memory
and skills, speech in and out, image generation over ComfyUI, users and groups,
model administration, installable as an app, reports, messages, and scheduled
work that runs on its own. 1897 tests, `ruff` clean.
work that runs on its own. 1914 tests, `ruff` clean.
What remains before the first stable release is written out below, in phases,
under [The road to 1.0.0](#the-road-to-100).
@@ -439,14 +439,20 @@ seen working.
when a window of its own has focus
### Phase 2 — image generation admin (`0.9.2`)
- [ ] **Defaults an administrator can set** — steps, cfg, size, sampler,
scheduler, denoise, negative, batch. There were none: one hardcoded set
from the SD1.5 era, and prose in a box as the only way to change it
- [ ] The right control for each: samplers and schedulers as selects, from the
- [x] **Defaults an administrator can set** — steps, cfg, size, sampler,
scheduler, denoise, negative, checkpoint, batch. There were none: one
hardcoded set from the SD1.5 era, and prose in a box as the only way to
change it. An empty box means "no opinion" and falls through, so a floor
improved in code still reaches everyone
- [x] The right control for each: samplers and schedulers as selects, from the
lists ComfyUI has been discovering and nothing has been reading;
checkpoints picked rather than typed; sizes as numbers with presets
- [ ] A legend on the workflow editor saying what each placeholder fills and
what type it lands as
- [x] **`batch` at last** — `batch_size` was a literal `1` in the template.
Deliberately not something a model may set
- [x] **The tool's schema restates the defaults it quotes**, or it goes on
telling the model "Default 512" beside an instance that draws at 1024
- [x] A legend on the workflow editor saying what each placeholder fills, what
it lands as, and what it resolves to right now
### Phase 3 — subagents (`0.9.2`)
- [ ] **A model can delegate.** A bounded, unattended agent with the parent's