VNCCS Character Generator
Pose, upscale and cut out a character in one node
- poses
- character
- pipe
- sheet
- faces
- pose_generation
- upscaled
The node description tells you exactly what this replaces: "Replacement for VNCCS Pose Generation, Upscaler, and BG Remove subgraphs." Earlier VNCCS versions strung three separate subgraphs together to get from a character sheet to a finished, transparent sprite set. Character Generator collapses all three into one node - same job, fewer wires to keep track of.
What it does and where it sits
This is the base-character sibling of VNCCS_ClothesGenerator (which does the same thing for clothing outfits). You feed it a character source and a pose set, and it runs the generated poses through an upscale pass, then background removal, and hands you back a finished sheet. It's the node that actually turns "I designed a character" into "I have a sprite set I can drop into a game engine." It's is_output_node: true, so it writes to ComfyUI\output\VNCCS\Characters\ as part of running.
Inputs and outputs that matter
posesandcharacter(IMAGE) - pose set from Pose Studio, and the character source.pipe(VNCCS_PIPE) - comes from VNCCS Control Center. No downloaded models, no generation.background(enum: Green / Blue / White / Alpha) - chroma-key colour for the cutout. Pick the colour least present in your character's design so the key doesn't eat real detail.prompt(STRING) - additional text guidance on top of whatever the character/pose combo already implies.widget_data(STRING, JSON) - same shape as the Clothes Generator's: upscaler mode and quant (defaults to a Q4 GGUF build of SeedVR2), background-removal preset, SAM3 Details Recovery toggle, target resolution. Edit it through the node's widget UI rather than by hand.- Optional
sheets_path(STRING) - repoint at an existing character folder to regenerate in place instead of starting over. - Outputs:
sheet(the finished character sheet) andfaces(cropped face outputs, useful for the emotion-generation stage later), plus the intermediatespose_generationandupscaledso you can see which stage produced a bad frame.
Notice it outputs sheet where Clothes Generator outputs sprites - same shape, different name, because one produces a character base and the other an outfit.
Installing it
ComfyUI Manager: search "VNCCS - Visual Novel Character Creation Suite", install, restart. Manually, clone https://github.com/AHEKOT/ComfyUI_VNCCS.git into custom_nodes, restart, then use Manager's Install missing custom nodes - Pose Studio, which feeds this node's poses input, lives in the author's separate VNCCS-Utils repo and needs installing too.
Common issues & troubleshooting
Generation errors with nothing obviously wrong in your inputs. Start at VNCCS Control Center. Every generator node in this pack depends on its pipe output, and a partially downloaded model set fails downstream in confusing ways rather than at the source.
Upscale quality is disappointing on a mid-range card. The default upscaler quant is the light option, not the good one. It's the same GGUF trade-off you'd see on any large model - smaller file, some fidelity given up. If you have VRAM to spare, step it up to a heavier quant in Control Center.
Clothing or eye colour bleeds into the removed background. Turn on SAM3 Details Recovery in widget_data - it's slower but specifically fixes this. If it fails to run at all, check for Triton on Windows; that's the known blocker for SAM3 support in this generation of node packs.
You only need to fix one pose in a batch. Use sheets_path to point back at the existing output folder instead of rerunning the whole set - this node (and its Clothes Generator sibling) is built to regenerate into an existing character folder.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| poses | IMAGE | — | |
| character | IMAGE | — | |
| pipe | VNCCS_PIPE | — | |
| prompt | STRING | — | |
| background | COMBO | Green | 4 options: Green, Blue, White, Alpha |
| widget_data | STRING | {"common": {"target_size": 1024}, "upscaler": {"mode": "seedvr", "model": "seedvr2_3b_fp8_e4m3fn.safetensors", "vae": "ema_vae_fp16.safetensors", "gan_model": "", "device": "cuda:0", "offload_device": "cpu", "seed": 42, "inherit_pipe_seed": true, "resolution": 2048, "max_resolution": 3840, "batch_size": 1, "uniform_batch_size": false, "color_correction": "lab", "temporal_overlap": 0, "prepend_frames": 0, "input_noise_scale": 0, "latent_noise_scale": 0, "blocks_to_swap": 0, "swap_io_components": false, "cache_dit": true, "attention_mode": "sageattn_2", "attention_mode_manual": false, "encode_tiled": true, "encode_tile_size": 1024, "encode_tile_overlap": 128, "decode_tiled": true, "decode_tile_size": 1024, "decode_tile_overlap": 128, "tile_debug": "false", "cache_vae": false, "enable_debug": false}, "bg_remove": {"use_internal_rmbg": false, "preset": "balanced", "use_sam3_details_recovery": true, "use_preset_values": true, "tolerance": 0.15, "softness": 0.12, "despill_strength": 0.65, "edge_width": 3, "matte_cleanup": 0.1, "foreground_recover": 0.35, "edge_decontaminate": 0.75, "edge_choke": 0.08, "matte_method": "guided_edge", "screen_mode": "from_background", "output_mode": "straight_rgba", "sam3_model": "", "sam3_segmentor": "image", "sam3_device": "auto", "sam3_precision": "bf16", "sam3_prompt": "face, clothes, accessories, hat, boots, eyes", "sam3_threshold": 0.4, "sam3_add_background": "none", "sam3_detection_limit": -1, "sam3_erode_radius": 4, "sam3_min_foreground_overlap": 0.55}, "pose_generation": {"target_size": 1024, "upscale_method": "lanczos", "crop_method": "disabled", "image1_name": "image 1", "image2_name": "image 2", "image3_name": "image 3", "weight1": 1.0, "weight2": 1.0, "weight3": 1.0, "vl_size": 384, "background_color": "from_generator", "latent_image_index": 1, "instruction": "Describe the character and their key features (body shape, physical characteristics, clothing, items, accessories). Then explain how the user's text instruction should alter or modify the character. Generate a new image that meets the user's requirements while maintaining consistency with the original character where appropriate.", "qwen_2511": true}, "pose_sampler": {"inherit_pipe": true, "seed": 0, "steps": 20, "cfg": 1.0, "sampler_name": "euler", "scheduler": "simple", "denoise": 1.0}, "vae_decode": {"tile_size": 512, "overlap": 64, "temporal_size": 64, "temporal_overlap": 8}, "emotion_generation": {"task_batch_size": 0, "face_denoise": 0.55, "use_sam": true, "bbox_model": "bbox/face_yolov8m.pt", "segm_model": "bbox/face_yolov8m.pt", "sam_model": "sam_vit_b_01ec64.pth", "sam_device_mode": "AUTO", "guide_size": 1536, "guide_size_for": true, "max_size": 1536, "inherit_pipe_sampler": true, "sampler_name": "euler", "scheduler": "simple", "feather": 5, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.5, "bbox_dilation": 10, "bbox_crop_factor": 3.0, "sam_detection_hint": "center-1", "sam_dilation": 0, "sam_threshold": 0.93, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": true, "tiled_decode": true, "matte_expand_radius": 8, "matte_feather_radius": 4, "chroma_context": 16}, "remove_clothes": {"prompt": "Dress character: White underwear", "target_size": 1024, "upscale_method": "lanczos", "crop_method": "disabled", "image1_name": "image 1", "image2_name": "image 2", "image3_name": "image 3", "weight1": 1.0, "weight2": 1.0, "weight3": 1.0, "vl_size": 384, "background_color": "White", "latent_image_index": 1, "instruction": "Describe the character and their key features (body shape, physical characteristics, clothing, items, accessories). Then explain how the user's text instruction should alter or modify the character. Generate a new image that meets the user's requirements while maintaining consistency with the original character where appropriate.", "qwen_2511": true}, "remove_clothes_sampler": {"inherit_pipe": true, "seed": 0, "steps": 20, "cfg": 1.0, "sampler_name": "euler", "scheduler": "simple", "denoise": 1.0}} | — |
| sheets_pathopt | STRING | — |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| sheet | IMAGE | — |
| faces | IMAGE | — |
| pose_generation | IMAGE | — |
| upscaled | IMAGE | — |