RS MultiCharacter Load Image
Your PNG is the save file
- image
- mask
- character_pipe
- generation_info
The sampler's autosave writes PNG or WebP with the character data baked into the metadata. This node reads it back. That's the entire pitch, and it's more useful than it sounds: a saved two-character image with a look you liked becomes a re-runnable scene in one drag, complete with both prompts, both centres, and which LoRA each character was using.
It is not img2img. Get that straight before you build a workflow around it.
What comes back
Four outputs, and they're all business:
image- the pixels, as a normal IMAGE.mask- the alpha channel inverted, so it's nonzero where the image is transparent, and all zeros if the file has no alpha.character_pipe- theRS_MC_CHARACTER_PIPErebuilt from metadata. This is the point of the node. Wire it into RS MultiCharacter Sampler or straight into the Detailer.generation_info- a text report of what was found and restored. Read this first when a result looks off; it's where the pack tells you what it could and couldn't recover.
The only input is image, a dropdown of files in ComfyUI's input folder. Drop your PNG or WebP in ComfyUI/input/, refresh, pick it.
Metadata round-trip, with an honest boundary
The sampler's autosave doesn't embed a ComfyUI workflow - the author says so directly and repeatedly. What it writes instead is generation metadata plus per-character data: prompts, coordinates, LoRA filenames and their strengths. So restoring is a text-and-seed regeneration, not a graph replay. If you need workflow embedding, send the sampler's image output to ComfyUI's ordinary Save Image node.
Model files are informational only. The filenames are recorded, and this node reports them so you know what you used, but it will not load or download a checkpoint, CLIP, VAE or global LoRA. You connect those yourself, and if you want the run to actually match, you need the same assets on disk. Local per-character LoRAs are different: those are looked up by name when sampling, and a missing file is an explicit error rather than a quiet fallback.
The prompts and characters always come from the image. Everything else - seed, dimensions, CFG, sampler, scheduler, region settings - only restores if you flip use_image_settings on the sampler. Leave it off and the sampler's own widgets win, which is the sane default when you're deliberately reusing a scene at a different size.
The NovelAI angle
This loader also understands NAI V4-style character captions with one centre per character, which makes importing NovelAI output with several characters a workable starting point locally. Select NovelAI syntax on the sampler for text you typed in that style; imported NAI images select it automatically.
What you can't do is replay NAI settings as local settings - the pipelines have nothing in common. For those images, keep use_image_settings off and only take the prompts and layout.
Install
Same pack, same install. Manager → RS MultiCharacter Sampler, or:
cd ComfyUI/custom_nodes
git clone https://github.com/raspie10032/ComfyUI_RS_MultiCharacter_Sampler.git
Restart ComfyUI. This node needs nothing beyond ComfyUI's own Pillow/NumPy - the requirements-detailer.txt extras are only for the detailer and tagger half of the pack.
Where people get burned
Social platforms eat the metadata. If you saved the image from a phone or a feed, the character data is gone and this node will give you pixels with an empty or minimal report. Always restore from the original file on disk.
EXIF-rotated files are refused. The loader errors on an image whose EXIF orientation isn't flat, because the stored coordinates assume the saved orientation - rotate and re-export first. Autosave also drops unrelated EXIF like GPS, so keep your originals if that matters.
Lossy WebP moves pixels. For anything you plan to restore and compare, use PNG or lossless WebP; lossy compression can change the areas outside the applied mask, and the sampler lets you choose.
The image is the prompt, so re-running is re-generating. Same seed, same settings, same models gets you the same characters and a very similar image. Different seed gets you the same scene description and different faces. That's the actual capability here - it's a scene recipe, not a character memory. For real identity across images you still want a LoRA or an edit-model workflow; that problem has been rerouted rather than solved.
Finally: two characters, one image, restored from a file, is the mode this whole pack is validated on. Six characters restored from metadata and expected to re-compose identically is not.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | COMBO | 1 options: example.png |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |
| character_pipe | RS_MC_CHARACTER_PIPE | — |
| generation_info | STRING | — |