- The Ways panel lists the ways that can run here as short rows that open,
then the skills, and folds the ways lacking a pack or a model at the bottom.
- The staged_picture skill keeps the judgment only: the ways of its uses come
from each block's "when", listed with the skill for what can run here. Its
answer had passed the 3,800 bytes an AI app shows in the chat (3,991); a test
keeps every skill under it.
- An Anima LLLite made for 28-block (2B) models stops a run on a 40-block
(2.9B) one: lllite_fit counts both from the files' headers, the AI's run is
refused with the nodes to change, and an example with a Tile opens on a model
it fits. The warning written into four ways and two examples is removed.
- What holds for a model family is written once: the profile's notes go with
each Anima example for an AI, the examples window says it once for the user;
a pack two nodes come from is named once.
- The Tile upscale is want="tile", no longer the name of another use.
Co-Authored-By: Claude <noreply@anthropic.com>
New way upscale_character (use "upscale", want "character"): an upscale model enlarges the whole picture 1.5x and
leaves the background alone; the character is cut out (refine_character's mask), only its crop (InpaintCrop, 20%
more around it, not resized) is redrawn with its own copy of the canvas's model, on Anima held by the optional
Tile at 0.7, and stitched back. In a comparison a whole Tile redraw drew the far tracks and trees sharp and lost
the depth; this kept the blur, and the crop took 153 s where the whole enlarged picture took 270 s.
The official example "Two passes" gains the version "Anima · blurred background, only the character redrawn"
(made by ComfyUI's own page, files blank, Anomalous's fingerprints left out). An example's packs are now looked
for among ComfyUI's nodes: only loaders were, so a pack of another node was always said to be missing. The
staged-picture skill gains the by-part way, as agreed with the user.
Anima's Tile LLLite fits the 2B Anima models only: on Harem 2.9B the run stops with "depth_embed slices
missing" (84 modules in the file, 120 in the model). The ways and the two Tile examples say so and what to do.
Both the way and the example ran through the real page on the test ComfyUI (Harem 1.5): 223 s for a whole run.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every block in api/blocks names what it gives a block after it ("gives": its sampler and its
output node; {} for one that changes the step it is put on) and its own model loader
("own_model"). api/block_chain.py builds a list of steps on a new tab: the picture first, each
next block anchored to what the step before gave, by near_node_id and a new page-only
save_node_id (canvas_roles.js findRoles pins the output node), so a canvas with several
samplers and outputs is no guess. add_nodes' answer names the block it built.
Redraw with another model and face/hand detailing now take the step before's picture
("$save.images") instead of the sampler's decode, which after an enlargement is the older
picture. The two-model routes are built as two-step chains; routes.json no longer names the
loaders.
Checked through the real page on the test ComfyUI: the Tile route on two Anima models (base on
Harem 1.5, Tile redraw on Kirazuri v4, from the base's picture and prompts), then face and hand
detailing after it took the Tile step's colour-matched picture.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upscale held by Tile takes in the tile upscale, the Anima Tile detail
upscale and the second-model upscale: its redraw has its own copy of the
canvas's model line (copy_of "$sampler.model": loader and LoRAs, titled
"Upscale model"), so a second model is one set_model and the LoRAs stay;
on Anima it is the user's tested route (latent 1.22x, Tile LLLite,
denoise 0.85). The iterative upscale goes. add_nodes no longer lists every
block name, and the repaint hints name the use, not a block.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The panel's text for each of the 18 blocks (about, zh and en) is one short sentence; where it came from and how it was tried stay under Details, the AI's instructions (after, notes) unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The 18 blocks are grouped into 7 uses (a block's "job": repaint,
new_background, upscale, refine, follow, detail, process); a block that is
not its use's default has a "want" word (best, 2x, pose, ...).
add_nodes(use=…, want=…) has reference_blocks.pick choose the first by rank
this ComfyUI can run (packs and models present, not turned off), the block
taking a second picture when one is given; block= by name still works.
begin_task's directory is a line a use with its wants, the rest by what it
needs ("LanPaint: repaint best"), so it no longer grows with the blocks and
the word budget tiers are gone. Tried live: use=new_background with two
pictures built place_in_scene.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
place_in_scene takes two pictures (add_nodes' new scene argument, $scene in
a block marked "scene"): the character is cut out (inspyrenet-rembg), the
place scaled and cropped to its size (GetImageSize, ImageScale), the
character pasted on (ImageCompositeMasked) and everything else redrawn at
denoise 0.5 with the edge grown 6 px, so shadow and ground meet it while
the place keeps its look. Tried on an RTX 4050 6 GB with SDXL (Illustrious)
832x1216: about 40 s.
The blocks' short words are shorter so begin_task stays under 4000
characters.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
change_scene cuts the character out of a handed picture (inspyrenet-rembg),
inverts it and redraws only the rest at denoise 1.0 from the prompt's new
scene; GrowMask lets 6 px of the edge be redrawn for the seam. Tried on an
RTX 4050 6 GB with SDXL (Illustrious) 832x1216: about 30 s, the character
kept, the forest replaced by a night street.
A picture handed to a block may be written "name.png [output]" as Load
Image shows it. Two block descriptions are shorter so begin_task stays
under 4000 characters.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- api/block_models.json: the 15 models the ways recommend, each with its
Hugging Face / Civitai / GitHub links, size, SHA256 (all checked against the
sites), licence and folder. A block's "models" names its recommended ones; the
Ways panel ticks those here (by name, or by size for a renamed copy) and
downloads a missing one in a click with model_download.downloadFrom, its hash
checked.
- A block's "tested": the card (RTX 4050 laptop, 6 GB), sizes and a whole run's
time, shown in the panel and told to the AI with the block (answer.tested).
- color_lineart gets an Anima variant with Anima's lineart LLLite.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- upscale_tile: the 1.25x upscale with a tile ControlNet holding the redraw
(the source's 0.6 to 80%), so it can redraw at 0.5; NoobAI's tile model for
NoobAI/Illustrious, the union one for SDXL, Anima's tile-repair LLLite on
Anima (slow on a 6 GB card, the AI is told to say so).
- color_lineart: a line drawing, inverted to white on black, steers a lineart
ControlNet; its lines are left as a preview.
- A union ControlNet gets SetUnionControlNetType for what it follows.
ControlNets not scanned yet take their base from their folder or name.
- MissingModel: a block's model not in ComfyUI's lists makes add_nodes read
them anew once (a model just downloaded into a subfolder), then try again.
- The upscales prefer the least enlarging model that reaches their size.
Live on the isolated 8199 ComfyUI: NoobAI tile upscale 77 s, Anima tile 710 s,
lineart colouring 34 s (the union model found after the lists were read anew).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>