Commit Graph
17 Commits
Author SHA1 Message Date
DemonGatanjieuandClaude Opus 5.5 71dca092b6 Mark the enlarge-then-fix hands way a fallback
In the user's tests Codex's FLUX-Fill redraw of one crop per hand did better.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 22:22:25 +08:00
DemonGatanjieuandClaude Opus 5.5 83dc2aed2f Enlarge a picture for fixing hands by its size: about 4 MP, 1x to 2x
1.5x left the Codex test picture's hand better but still soft; 2x gave
sharper fingers in the same seeds (about 105 s instead of 75 s on a 6 GB
card). The fix-hands way now enlarges to about 4.2 megapixels, never
smaller, at most 2x: reference_blocks.enlargement reads the picture's
size (add_nodes passes picture_size of its input copy). Tried through
AMB on an isolated ComfyUI: 2547x1656, no memory trouble, 2 clean hands
of 4.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 16:03:29 +08:00
DemonGatanjieuandClaude Opus 5.5 2a80e1e96d Add the fix-hands way: enlarge the picture, then redraw each hand
A block (detail, want hands) that takes a picture: enlarged 1.5x and
redrawn lightly by the canvas's sampler (denoise 0.4), then every hand
found by hand_yolov8 redrawn at guide 768, denoise 0.45 ("detailed
hand"), saved as hands_fixed. Tried on the Codex test picture on an RTX
4050: the hand pass alone fixed about half the seeds, enlarging first
about 3 in 4; the way built through AMB on an isolated ComfyUI gave 2-3
good hands of 4.

On an Anima model a variant adds the Anima Turbo LoRA (0.7) for 10 steps
at CFG 1, about 75 s; a variant's LoRA missing falls back to the plain
block with a word on what it would do. Its next step tells the AI to
make 4 tries, check the hands itself, retry at most twice, and let the
user pick in a zoomed panel. The Turbo LoRA joins the recommended models.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 15:35:10 +08:00
DemonGatanjieuandClaude Opus 5.5 88eaa77472 Make fixing one spot keep its size, and let picks zoom on it
Codex's hand tests (2026-10-29): at denoise 0.55-0.75 the repainted hand
filled its whole mark and came out too big, at 0.4 it kept its size. The
crop-and-stitch block now repaints at 0.45 (the built-in one at 0.5), and
its next step and the inpaint note tell the AI to mark tightly, keep the
strength low, make 4 tries and let the user pick.

Slider and picks blocks take a zoom {x, y, w, h}: every picture shows
only that part, enlarged, from the picture itself. The checks of block
parts move to ai_panel_parts.py (ai_panels.py was at the 600-line line).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 14:39:10 +08:00
DemonGatanjieuandClaude Opus 5.5 5f336d39cd Ways: each block says what it does in one sentence
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>
2026-10-29 02:19:59 +08:00
DemonGatanjieuandClaude Opus 5.5 0ea99a10f1 Ways by use: the AI names a use, Anomalous picks the block
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>
2026-10-29 00:09:49 +08:00
DemonGatanjieuandClaude Opus 5.5 d0de7cab54 Refine with another model: single-file checkpoints only, says so
Its CheckpointLoaderSimple takes any SD 1.5 or SDXL family checkpoint; a model in separate UNET, CLIP and VAE files (Anima) does not fit it, which the block and the changelog now say instead of "another family too".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:48:54 +08:00
DemonGatanjieuandClaude Opus 5.5 d0190a1eec Ways: new style, same layout
restyle reads a handed picture's outlines with ComfyUI's own Canny, holds
the layout with the union ControlNet (canny mode, 0.7 to 80% of the steps)
and redraws the whole picture in the prompt's new style. Tried on an RTX
4050 6 GB with SDXL (Illustrious) 832x1216: at denoise 0.8 it only got
lighter, at 1.0 it became a watercolour with the layout held, so 1.0 is
the default; about 41 s.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:29:16 +08:00
DemonGatanjieuandClaude Opus 5.5 6ccb93e385 Ways: refine with another model
refine_other_model redraws the made picture at denoise 0.4 with a second
checkpoint of its own (any family: its own CLIP and VAE, prompts copied from
the first, LoRAs added onto it with add_lora) and saves it beside it
(prefix refined), as the reference workflow's refiner keeps a loader and
LoRA stack apart. Tried on an RTX 4050 6 GB, Illustrious then NoobAI at
832x1216: about 66 s for the whole run, the composition kept, the style the
second model's.

A block node may be "like" a path ("$sampler.positive"): it takes the
settings of the node feeding it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 23:17:51 +08:00
DemonGatanjieuandClaude Opus 5.5 ce4b8a8a49 Ways: put a character into a given picture
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>
2026-10-28 23:08:16 +08:00
DemonGatanjieuandClaude Opus 5.5 d95b2b309f Ways: new scene, same character
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>
2026-10-28 22:52:30 +08:00
DemonGatanjieuandClaude Opus 5.5 78502e66c4 Ways: a maintained models list with links and SHA256, and how each was tried
- 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>
2026-10-27 17:14:48 +08:00
DemonGatanjieuandClaude Opus 5.5 ba1d124fc1 Tile-held upscale, line drawing colouring, union types, a second look for new models
- 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>
2026-10-27 16:55:35 +08:00
DemonGatanjieuandClaude Opus 5.5 8b51dffd2b Follow a pose reads it with DWPose; pose and depth maps left as previews
OpenPose misread anime characters; DWPose (torch detector: the onnx one found
nobody with this onnxruntime-gpu) reads a single anime character down to face
and fingers. A crowded, heavily stylised picture can still come out empty, so
both control blocks keep their map as a PreviewImage the AI sees in
run_status's previews, and their next step says what to do when it is empty.

Live on the isolated 8199 ComfyUI: DWPose followed a hand-behind-head pose
(64 s); the three-elf picture stays unreadable for both readers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 15:59:55 +08:00
DemonGatanjieuandClaude Opus 5.5 e34112463e Blocks built for the canvas's model: Anima LLLite for depth, pose and repaint
A block's "variants" rebuild it for the canvas model's family
(reference_blocks.build, which also returns its roles and next step): on an
Anima model control_depth and control_pose patch the model with an Anima
ControlNet-LLLite instead of a ControlNet, and inpaint_crop_stitch adds Anima's
repaint LLLite on the crop; the AI still only names the block. Base packs are
checked before the page is asked which model the canvas has.

Live-tested on the isolated 8199 ComfyUI with an Anima model: repaint changed
the marked hand (43.9) and nothing outside (0.0); depth steers gently, so the
Anima next step says the prompt has to agree with the picture.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 15:16:04 +08:00
DemonGatanjieuandClaude Opus 5.5 dd9c3ee2f5 Tags from a picture, run words to the AI, colour matching after upscales
- tags_from_picture: WD14 tagger (the source's model and thresholds) on a
  picture the user handed; run_status now carries what nodes showed as words
  (texts: a tagger's tags), with a summary and next step for a run that made
  words but no pictures.
- Optional nodes: a block node marked optional goes when its pack is missing,
  and a link "match|decode" takes the first one there. The four upscales end in
  KJNodes' ColorMatch (mkl, the source's) when it is installed; the panel says
  "better with" it otherwise.
- LanPaint's next step keeps the prompt about the whole picture; Follow a pose
  says OpenPose misreads anime (use control_depth), as the source's author did.
- The directory has a size cap: past it, block names alone, so collected ways
  never make begin_task long; shorter headings and few-word lines.

Live-tested on the isolated 8199 ComfyUI: LanPaint (area changed 14.6, outside
0.0, 82 s), tiled 2x (167 s), depth ControlNet (follows the layout), OpenPose
(misreads an anime picture), background removal (8 s), tags (166 s with the
model download), upscale with ColorMatch (73 s).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 03:31:04 +08:00
DemonGatanjieuandClaude Opus 5.5 22a58d3a83 Ways panel: blocks as data files, a switch each, greyed when something is missing
Each block is now api/blocks/<name>.json (nodes, packs, models, the AI's words
and the panel's in both languages), so a way collected later is one more file.
The AI workbench's side column has a Ways view: blocks by job, what each does
and where it came from, greyed with the pack (opens ComfyUI-Manager) or model it
lacks, and a switch (user/anomalous/ai_blocks.json) that keeps it from the AI;
begin_task lists only the blocks on and runnable here, the rest in one line.
New blocks: upscale_iterative (Impact Pack), upscale_two_models ($loader role,
a second loader "like" it), remove_background (inspyrenet-rembg).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 02:40:51 +08:00