Nodes/ComfyUI Eclipse/Character Sheet Pack
ComfyUI Node

Character Sheet Pack

The four-stage pipeline that builds a reference sheet from a face photo

By r-vage·Created 12 months ago·Updated 14 days ago· 38
Character Sheet Pack
  • layout
  • face
  • wardrobe
  • front_body
  • rear_body
  • front
  • rear
  • positive
  • negative
  • image_1
  • image_2
  • image_3
  • report
◄stagesheet►
◄generation_modePreset►
◄genderunspecified►
◄buildaverage►
◄muscularityunspecified►
◄breast_sizeunspecified►
◄chest_breadthunspecified►
◄hip_widthunspecified►
◄buttock_sizeunspecified►
◄width1536►
◄height864►
◄details►
◄use_front_bodytrue►
◄use_rear_bodytrue►
◄use_wardrobetrue►
◄use_reartrue►
◄positive_override—►
◄negative_override—►

Building a character reference sheet by hand is a chore: blank mannequin, then the outfit on the mannequin, then a three-panel front/rear/portrait sheet, then three separate crops you can actually feed a dataset or a LoRA training run. Character Sheet Pack [Eclipse] is that chore as one node with a stage dropdown - four tasks that each expect different inputs and produce up to three numbered images plus a prompt.

The four stages, and why the inputs change per stage

stage is the first widget and it's the one that matters:

  • mannequin - generate a blank body to dress later. Two modes here: generation_mode=Preset skips every image input and builds the figure from the body dropdowns (gender, build, muscularity, breast_size, chest_breadth, hip_width, buttock_size) plus a blank size-setting canvas; Reference ignores the presets and uses front_body (and optionally rear_body) as physique photographs. The README is careful about this: those body presets are qualitative prose instructions, not measurements, and unspecified adds nothing rather than guessing.
  • wardrobe - garment-only product views, from an outfit source photo. Wearers and mannequin supports are meant to be excluded; prints and openings on the source garment are preserved, as is whatever is visible through sheer fabric.
  • sheet - the actual three-panel character sheet. Needs the approved mannequin guide in image_1 and a face portrait, plus an optional wardrobe board. If you turn off use_wardrobe, you must supply a complete written outfit in details.
  • dataset - individual approved panels: front plus face, optionally rear.

The image numbering follows the stage and compacts. On the mannequin stage with only a rear physique photo supplied, that photo is image_2, not image_3. Read report before you trust a slot: it lists the actual label-to-role mapping, the omitted references and both the target canvas and each reference's real dimensions.

Inputs you'll touch

width/height (1536×864 by default) set the canvas, and the Qwen encoder must run at resolution 0 for that canvas size to be honoured. In the mannequin and sheet stages only the first image gets fitted to the canvas; supporting face and wardrobe references keep their aspect ratio, are never upscaled, and are capped at 1024px on the long side. Other stages pad without stretching.

details is the free-text field that changes job per stage: physique for mannequin, missing outfit pieces for wardrobe, identity and outfit continuity for sheet and dataset. The four toggles - use_front_body, use_rear_body, use_wardrobe, use_rear - are per-stage and skip their input branch when off, so an unrelated image left connected to the wrong socket gets ignored rather than silently polluting the prompt.

positive_override and negative_override replace the stage text from prompts/character_sheets.json, but the node still resolves roles and appends details. Keep uppercase role names like FACE, WARDROBE, FRONT BODY in any custom prompt - the Pack rewrites those to the real <imageN> labels.

Outputs

positive and negative go to the same encoder; on the dataset stage, positive is the thing you send to Character Shot Planner's character_lock. image_1/image_2/image_3 go to that same encoder's image inputs - unused slots return nothing. report is your map, and the reason to wire up Show Any.

Install

ComfyUI Manager → ComfyUI_Eclipse, or:

cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI_Eclipse
pip install -r ComfyUI_Eclipse/requirements.txt

Restart, then find it under 🌒 Eclipse/ Image. You'll also need a Qwen image encoder node - Eclipse's loaders and encoders moved to the sibling ComfyUI_SmartModelLoader pack, so install that too if a red missing-node box shows up on load.

Realistic expectations

This is a multi-pass pipeline at 1536×864 with up to three references. On 8–12GB you want the quantized/lightning Qwen-Edit path (nunchaku 2509 Lightning is the usual advice) or you'll be watching a very slow sampler. And don't expect free wins: sheets generated at 3 panels still need inspection - the sheet prompt asks for specific framing, but it can't enforce it, so if a divider lands in the wrong place or a figure goes missing, fix it before feeding the crops into a dataset. Generation instructions are not a geometric constraint, and the node says so itself.

Category🌒 Eclipse/ Image

Inputs (25)

NameTypeDefaultDescription
stageCOMBOsheetmannequin: choose Preset controls or Reference images; wardrobe: outfit source; sheet: approved mannequin + face + optional wardrobe; dataset: individual front + portrait + optional rear panels. Changing stage also requires updating connected prompt overrides.
generation_modeCOMBOPresetMannequin only. Preset skips every image input and uses a blank canvas plus selected attributes. Reference uses optional layout/front/rear images and ignores hidden body presets.
genderCOMBOunspecifiedMannequin: Gender applies in both modes; body attributes apply only in Preset. All attributes are independent of gender. Unspecified adds no instruction. Explicit details refine only named attributes. Selection names and descriptions come from mannequin_attributes in prompts/character_sheets.json. After adding entries, restart ComfyUI and refresh the browser.
buildCOMBOaverageMannequin: Gender applies in both modes; body attributes apply only in Preset. All attributes are independent of gender. Unspecified adds no instruction. Explicit details refine only named attributes. Selection names and descriptions come from mannequin_attributes in prompts/character_sheets.json. After adding entries, restart ComfyUI and refresh the browser.
muscularityCOMBOunspecifiedMannequin: Gender applies in both modes; body attributes apply only in Preset. All attributes are independent of gender. Unspecified adds no instruction. Explicit details refine only named attributes. Selection names and descriptions come from mannequin_attributes in prompts/character_sheets.json. After adding entries, restart ComfyUI and refresh the browser.
breast_sizeCOMBOunspecifiedMannequin: Gender applies in both modes; body attributes apply only in Preset. All attributes are independent of gender. Unspecified adds no instruction. Explicit details refine only named attributes. Selection names and descriptions come from mannequin_attributes in prompts/character_sheets.json. After adding entries, restart ComfyUI and refresh the browser.
chest_breadthCOMBOunspecifiedMannequin: Gender applies in both modes; body attributes apply only in Preset. All attributes are independent of gender. Unspecified adds no instruction. Explicit details refine only named attributes. Selection names and descriptions come from mannequin_attributes in prompts/character_sheets.json. After adding entries, restart ComfyUI and refresh the browser.
hip_widthCOMBOunspecifiedMannequin: Gender applies in both modes; body attributes apply only in Preset. All attributes are independent of gender. Unspecified adds no instruction. Explicit details refine only named attributes. Selection names and descriptions come from mannequin_attributes in prompts/character_sheets.json. After adding entries, restart ComfyUI and refresh the browser.
buttock_sizeCOMBOunspecifiedMannequin: Gender applies in both modes; body attributes apply only in Preset. All attributes are independent of gender. Unspecified adds no instruction. Explicit details refine only named attributes. Selection names and descriptions come from mannequin_attributes in prompts/character_sheets.json. After adding entries, restart ComfyUI and refresh the browser.
widthINT1536256–2048Output/reference canvas width. Use a landscape canvas for sheets and a portrait canvas for individual dataset shots. Qwen encoder resolution must be 0.
heightINT864256–2048Output canvas height. Mannequin/sheet stages: only the first image sets the canvas; supporting body, face and wardrobe references keep their own aspect ratios, are never enlarged, and are capped at 1024 pixels on the longest side. Other stages pad references without stretching. Without a mannequin template, width/height set the blank generation canvas. When using a template, match its aspect ratio for accurate panel splits.
detailsSTRINGAdditional task specification. Mannequin: physique; wardrobe: missing outfit choices; sheet: identity and outfit; dataset: identity/wardrobe continuity only, without fixed pose instructions. Required when sheet has no wardrobe image.
use_front_bodyBOOLEANtrueMannequin Reference mode only: use the connected frontal body image. Off skips this input branch. Has no effect on other stages.
use_rear_bodyBOOLEANtrueMannequin Reference mode only: use the connected rear body image. Off skips this input branch. No effect on the final sheet's rear panel, which is always generated.
use_wardrobeBOOLEANtrueSheet stage only: use the wardrobe board. Off uses the written outfit specification and skips this input branch unless another output separately requests it.
use_rearBOOLEANtrueDataset stage only: include the approved rear crop alongside front and face. Off can reduce rear-view influence while retaining front/portrait references. It does not change planner camera choices.
layoutoptIMAGEMannequin Reference mode: leave disconnected to generate from the written three-panel layout; the node supplies a blank size-setting canvas. Optionally connect a pose template for framing only. Sheet stage: the approved generated mannequin guide is required and supplies poses and proportions.
faceoptIMAGERequired for sheet/dataset: one identity portrait. Dataset normally uses the extracted portrait panel. Remains a separate image even when a rear reference is enabled.
wardrobeoptIMAGEWardrobe stage: source outfit photograph. Sheet stage: approved wardrobe board. Different board views describe one outfit. Ignored by mannequin/dataset stages.
front_bodyoptIMAGEOptional original frontal physique reference, used ONLY in mannequin Reference mode; Preset skips it. Never routed into dressed-character or dataset generation. No extraction or undressing required.
rear_bodyoptIMAGEMANNEQUIN Reference mode only (Preset skips it): original rear body photograph for visible physique/proportions. Its clothing and identity are ignored. Different from rear, which accepts the finished dressed character's rear panel for the dataset stage. Ignored by wardrobe/sheet/dataset stages.
frontoptIMAGEDataset: approved front panel, one image. Supplies established outfit and proportions. A contact sheet or image batch is not appropriate here.
rearoptIMAGEDATASET stage only: approved rear panel cropped from the finished dressed character sheet, preserving the chosen outfit and rear appearance. Different from rear_body, the original physique photograph. Ignored by mannequin/wardrobe/sheet stages. Does not request every shot to face away.
positive_overrideoptSTRINGReplace the stage's file task text with an editable String Multiline input. The Pack adds the reference-role map, fixed mannequin layout, Gender, active Preset selections and details, then resolves uppercase role names such as FRONT BODY, FACE and WARDROBE to the actual <image1>, <image2>, etc. throughout the final task text. This keeps optional-input numbering correct. Connect positive to Show Any to inspect the resolved prompt. Disconnect this input to load current file text.
negative_overrideoptSTRINGReplace this stage's file negative independently. An empty connected string intentionally clears it. File edits do not change connected workflow text.

Outputs (6)

NameTypeDescription
positiveSTRINGStage prompt plus actual reference mapping. In dataset stage, connect to the shot planner's character_lock; other stages connect directly to their encoder.
negativeSTRINGNegative for this stage's encoder. Sheet negatives allow exactly three panels; dataset negatives prohibit panels. At sampler CFG=1 the negative has no effect; higher CFG enables it.
image_1IMAGEConnect to the same encoder's image_1. Roles depend on stage and enabled inputs; check report. Unused slots return no image.
image_2IMAGEConnect to the same encoder's image_2. Roles depend on stage and enabled inputs; check report. Unused slots return no image.
image_3IMAGEConnect to the same encoder's image_3. Roles depend on stage and enabled inputs; check report. Unused slots return no image.
reportSTRINGLists actual image labels, role mapping, omitted references, target canvas and individual reference dimensions. No images are generated by this node.