H3 Character Sheet Designer Reference
Two extra switches, and the one you should leave OFF
- prompt
- width
- height
- layout_image
This is the version of H3 Character Sheet Designer the author tells you to run. Underneath it's the same node - a deterministic prompt compiler that feeds ComfyUI's core MiniMaxH3ReferenceToVideo with a sheet prompt plus canvas dimensions - with two additions: a style picker and a layout_image output that can act as a second image reference. The telling detail is that the second one defaults to off, and the README opens by recommending you keep it there.
The two switches
use_layout_image is a boolean, default false. The author's own tooltip spells out the trade: OFF keeps your character reference plus an optimized version of the original Designer prompt, and layout_image returns None so H3 skips the second picture automatically while both wires stay connected. ON renders a framed layout sheet - white canvas, black panel borders, gray mannequin figures - and sends it as <Picture 2>. Handy when you need a specific panel arrangement matched closely, risky because the model can start copying the mannequin's proportions or leave gray mannequin parts in the result.
That matches where all of this has landed. The community stopped trying to encode identity and started handing models the reference and letting them look at it, because identity survives when the model never re-invents it. The corollary: every reference you add is a vote, and a low-poly mannequin is a very loud vote about anatomy. OFF means one reference, one voice.
style is a ten-item dropdown: none, anime, photo, realistic_painting, semi_realistic_anime, oil_painting, watercolor, gouache, colored_pencil, 3d. It's not a model swap and not a LoRA - each choice appends one sentence to the prompt and instructs H3 to change rendering technique only, keeping face, proportions, outfit and colors. none keeps the reference's own look. Start there.
Defaults, outputs and wiring
The default state_json here is schema version 2 with an empty part_prompts object and five views - face_front, face_left, body_front, body_left, body_back - where the original node defaults to four. At the default 1120-pixel panel height that five-view sheet compiles to 2816 × 1280. Views, presets, manual dimensions and the eight part fields behave exactly as on the original node, with each field capped at 1000 UTF-16 units and passed through verbatim in whatever language you type.
You get four outputs: prompt, width, height, and layout_image (IMAGE). The first three behave identically to the original.
Order matters, and the node description is emphatic about it: character image first into ref_image_0 / <Picture 1>, then layout_image into ref_image_1 / <Picture 2>. Swap them and you've asked H3 to treat a mannequin diagram as the appearance reference. Also, layout_image is not a first frame - it's a reference slot, so don't try image-to-video with it. With the switch off, leave that wire connected anyway; the None is intentional.
cd ComfyUI/custom_nodes
git clone https://github.com/ukr8b3g-cmyk/H3-Character-Sheet-Designer.git
Restart and refresh - or install the same pack through ComfyUI Manager by searching its title. No pip install: the designer is pure Python, and the layout renderer's Pillow, numpy and torch are already in ComfyUI. You need a build with native MiniMaxH3ReferenceToVideo (the maintainer's baseline is Core 0.38.0 / frontend 1.53.10), the H3 diffusion model, Qwen3-VL text encoder and video VAE in their usual folders - and for use_layout_image ON, a Ref2VA checkpoint that can actually use a second reference.
Where people get burned
- Mannequin bleed. The documented failure of the ON path: bodies pulled toward mannequin proportions, or leftover gray parts. Switch OFF and ask whether you needed the layout at all.
- The Hands panel is not a gloves request. It adds a hand close-up; users have reported unwanted gloves anyway, even from a kimono reference. If hands must be bare, say so in the
handsfield and check both the full-body and detail panels. - The footwear detail gets a small frame - roughly 258 × 381 pixels at a 1120 panel height in the legacy six-view geometry. The maintainer flags the size as a possible adherence factor, explicitly not a proven cause.
- Part prompts are literal text. No translation, no image analysis, no pulling quoted lettering into a separate field. If something gets ignored, add only that missing detail and re-run.
- Template sampler confusion. The README text says Euler / simple / 20 steps; the shipped workflow actually has
res_multistepselected with a simple schedule at 20 steps. Both are fine - just don't change it mid-comparison and then wonder what moved. - Licence. The H3 weights themselves exclude the US, EU, UK and South Korea from their "Applicable Territory". No node changes that.
And a practical one: the node's preview uses a same-server, read-only endpoint. If it errors, your queue still works, because the compiler validates the saved state independently.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| state_json | STRING | {"schema_version":2,"views":["face_front","face_left","body_front","body_left","body_back"],"size":{"mode":"auto","body_height":1120,"manual_width":2208,"manual_height":1280},"part_prompts":{}} | — |
| use_layout_imageopt | BOOLEAN | false | OFF (recommended): character reference with optimized original Designer prompt; layout_image=None (H3 skips it). ON: framed layout reference, which may influence body proportions. Keep the character on ref_image_0 and layout_image on ref_image_1. |
| styleopt | COMBO | none | 10 options: none, anime, photo, realistic_painting, semi_realistic_anime, oil_painting, +4 |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| width | INT | — |
| height | INT | — |
| layout_image | IMAGE | — |