ComfyUI Node

DetailerX

The entire face-fix pipeline in one node (with a rerun button)

By haroonaslam·Created 5 months ago·Updated 4 days ago· 11
DetailerX
  • model
  • vae
  • clip
  • positive
  • negative
  • image
  • final_image
  • processor_images
  • detailer_masks
◄settings{"version": 8, "cache_epoch": 0, "ui": {}, "extra_detailers": {}, "order": ["upscaler", "face", "breast", "pussy", "hand", "foot", "hair", "anything", "brightness", "grain", "hsv", "levels", "sharpen", "rgb", "gamma", "color_balance", "temperature", "lens", "pixel_perturb", "neural_grain", "lut", "camera", "compression", "dlss5"], "visible": {"upscaler": true, "face": true, "breast": true, "pussy": true, "hand": true, "foot": true, "hair": true, "anything": true, "brightness": true, "grain": true, "hsv": true, "levels": true, "sharpen": true, "rgb": false, "gamma": false, "color_balance": false, "temperature": false, "lens": false, "pixel_perturb": false, "neural_grain": false, "lut": false, "camera": false, "compression": false, "dlss5": true}, "entry": {"pause": false, "skip": false, "pause_minutes": 5.0, "wait_indefinitely": false}, "global_seed": {"enabled": false, "mode": "fixed", "seed": 703203187737355}, "global_prompts": {"enabled": true, "positive": "", "negative": ""}, "sam": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "enabled": true, "keep_model_loaded": true}, "upscaler": {"enabled": true, "model": "internal:upscale_models/1x-ITF-SkinDiffDetail-Lite-v1.pth", "mode": "rescale", "rescale_factor": 1.5, "resize_width": 1024, "resampling_method": "bilinear", "supersample": false, "rounding_modulus": 8}, "brightness": {"enabled": true, "brightness": 1.0, "contrast": 1.0, "saturation": 1.0}, "grain": {"enabled": true, "grain_power": 0.08, "grain_scale": 1.0, "grain_sat": 1.0, "seed": 0, "seed_mode": "time"}, "hsv": {"enabled": true, "H": 0, "S": -10, "V": 0}, "levels": {"enabled": true, "channel": "RGB", "black_point": 0, "white_point": 249, "gray_point": 1.0, "output_black_point": 0, "output_white_point": 253}, "sharpen": {"enabled": true, "iterations": 1, "kernel_size": 3}, "dlss5": {"enabled": true, "upscaling_mode": "1x (DLAA / native)", "style": "default", "preset": 0, "model_preset": "Default", "enable_dlaa_reconstruction": true, "intensity": 1.0, "tone": 1.0, "structure": 1.25, "skin": -1.0, "auto_mask": "on", "motion": "auto", "scene_change_threshold": 0.24, "batch_mode": "temporal sequence", "warmup_frames": 0, "backend": "auto", "channel_order": "auto", "hdr": "off", "global_tone": -1.0, "detail": 0.3, "color": 0.3}, "rgb": {"enabled": false, "R": 0, "G": 0, "B": 0}, "gamma": {"enabled": false, "gamma": 1.0}, "color_balance": {"enabled": false, "adjust_type": "midtones", "cyan_red": 0.0, "magenta_green": 0.0, "yellow_blue": 0.0, "preserve_luminosity": true}, "temperature": {"enabled": false, "kelvin": 6500}, "lens": {"enabled": false, "lens_shape": "circle", "lens_edge": "around", "lens_curvy": 1.0, "lens_zoom": 1.0, "lens_aperture": 0.5, "blur_intensity": 2}, "pixel_perturb": {"enabled": false, "magnitude": 0.008, "seed": 0, "seed_mode": "random"}, "neural_grain": {"enabled": false, "grain_size": 0.1, "strength": 0.2, "seed": 0, "seed_mode": "random"}, "lut": {"enabled": false, "lut": "internal:luts/BlueArchitecture.cube", "color_space": "linear", "lut_strength": 100}, "camera": {"enabled": false, "initial_jpeg_quality": 98, "vignette_strength": 0.1, "chroma_aberr_strength": 1.0, "bayer_demosaic": true, "iso_noise_scale": 1.0, "sensor_read_noise": 2.0, "hot_pixel_prob": 1e-06, "banding_strength": 0.0, "motion_blur_kernel": 3, "seed": 0, "seed_mode": "random"}, "compression": {"enabled": false, "cycles": 4, "min_quality": 75, "max_quality": 95, "seed": 0, "seed_mode": "random"}, "face": {"enabled": true, "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "seed": 674025021604975, "seed_mode": "fixed", "steps": 15, "cfg": 2.0, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guidance_mode": "incoming", "guidance": 3.5, "denoise": 0.15, "feather": 15, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.5, "bbox_dilation": 15, "bbox_crop_factor": 2.5, "detector_proposal": "native", "sam_detection_hint": "center-1", "sam_dilation": 10, "sam_threshold": 0.93, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "prompt": "detailed realistic eyes, nose, lips and ears texture, detailed eyebrows and eyelashes", "prompt_mode": "replace", "negative_prompt": "", "negative_prompt_mode": "incoming", "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": false, "tiled_decode": false, "sam_strategy": "inherit", "sam_override": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "keep_model_loaded": true}, "sam3_constraint": "bounding_box", "catalog_revision": 0, "detector": "internal:ultralytics/bbox/face_yolov8m.pt", "label": "Face detailer", "catalog_id": "face", "class_ids": [0], "class_labels": ["face"], "mask_concept": "face", "sam3_mode": "refine_detector", "sam3_threshold": 0.5, "sam3_refine_iterations": 3}, "breast": {"enabled": true, "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "seed": 1077858824591479, "seed_mode": "fixed", "steps": 15, "cfg": 2.0, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guidance_mode": "incoming", "guidance": 3.5, "denoise": 0.45, "feather": 15, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.5, "bbox_dilation": 15, "bbox_crop_factor": 2.5, "detector_proposal": "native", "sam_detection_hint": "center-1", "sam_dilation": 10, "sam_threshold": 0.93, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "prompt": "detailed areola and nipple texture", "prompt_mode": "replace", "negative_prompt": "", "negative_prompt_mode": "incoming", "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": false, "tiled_decode": false, "sam_strategy": "inherit", "sam_override": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "keep_model_loaded": true}, "sam3_constraint": "bounding_box", "catalog_revision": 0, "detector": "internal:ultralytics/bbox/female-breast-v4.7.pt", "label": "Breast detailer", "catalog_id": "breast", "class_ids": [0, 1], "class_labels": ["breast_pair", "breast_single"], "mask_concept": "breast", "sam3_mode": "refine_detector", "sam3_threshold": 0.5, "sam3_refine_iterations": 3}, "pussy": {"enabled": true, "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "seed": 703203187737355, "seed_mode": "fixed", "steps": 15, "cfg": 2.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guidance_mode": "incoming", "guidance": 3.5, "denoise": 0.5, "feather": 10, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.4, "bbox_dilation": 10, "bbox_crop_factor": 3.0, "detector_proposal": "native", "sam_detection_hint": "center-1", "sam_dilation": 10, "sam_threshold": 0.85, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "prompt": "detailed realistic vagina and labia, anatomically correct pussy", "prompt_mode": "replace", "negative_prompt": "", "negative_prompt_mode": "incoming", "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": false, "tiled_decode": false, "sam_strategy": "inherit", "sam_override": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "keep_model_loaded": true}, "sam3_constraint": "bounding_box", "catalog_revision": 0, "detector": "internal:ultralytics/bbox/pussyV2.pt", "label": "Pussy detailer", "catalog_id": "pussy", "class_ids": [0], "class_labels": ["pussy"], "mask_concept": "pussy", "sam3_mode": "refine_detector", "sam3_threshold": 0.5, "sam3_refine_iterations": 3}, "hand": {"enabled": true, "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "seed": 703203187737355, "seed_mode": "fixed", "steps": 15, "cfg": 2.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guidance_mode": "incoming", "guidance": 3.5, "denoise": 0.5, "feather": 10, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.4, "bbox_dilation": 10, "bbox_crop_factor": 3.0, "detector_proposal": "native", "sam_detection_hint": "center-1", "sam_dilation": 10, "sam_threshold": 0.85, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "prompt": "detailed hands and fingers, defined natural fingernails", "prompt_mode": "replace", "negative_prompt": "", "negative_prompt_mode": "incoming", "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": false, "tiled_decode": false, "sam_strategy": "inherit", "sam_override": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "keep_model_loaded": true}, "sam3_constraint": "bounding_box", "catalog_revision": 0, "detector": "internal:ultralytics/bbox/Hands.pt", "label": "Hand detailer", "catalog_id": "hand", "class_ids": [0], "class_labels": ["hand"], "mask_concept": "hand", "sam3_mode": "refine_detector", "sam3_threshold": 0.5, "sam3_refine_iterations": 3}, "foot": {"enabled": true, "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "seed": 703203187737355, "seed_mode": "fixed", "steps": 15, "cfg": 2.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guidance_mode": "incoming", "guidance": 3.5, "denoise": 0.5, "feather": 10, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.4, "bbox_dilation": 10, "bbox_crop_factor": 3.0, "detector_proposal": "native", "sam_detection_hint": "center-1", "sam_dilation": 10, "sam_threshold": 0.85, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "prompt": "detailed realistic feet, toes and toenails", "prompt_mode": "replace", "negative_prompt": "", "negative_prompt_mode": "incoming", "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": false, "tiled_decode": false, "sam_strategy": "inherit", "sam_override": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "keep_model_loaded": true}, "sam3_constraint": "bounding_box", "catalog_revision": 0, "detector": "internal:ultralytics/bbox/Foot.pt", "label": "Foot detailer", "catalog_id": "foot", "class_ids": [0], "class_labels": ["foot"], "mask_concept": "foot", "sam3_mode": "refine_detector", "sam3_threshold": 0.5, "sam3_refine_iterations": 3}, "hair": {"enabled": false, "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "seed": 703203187737355, "seed_mode": "fixed", "steps": 15, "cfg": 2.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guidance_mode": "incoming", "guidance": 3.5, "denoise": 0.5, "feather": 10, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.4, "bbox_dilation": 10, "bbox_crop_factor": 3.0, "detector_proposal": "native", "sam_detection_hint": "center-1", "sam_dilation": 10, "sam_threshold": 0.85, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "prompt": "detailed realistic hair strands, natural hair texture and clean hairline", "prompt_mode": "replace", "negative_prompt": "", "negative_prompt_mode": "incoming", "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": false, "tiled_decode": false, "sam_strategy": "inherit", "sam_override": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "keep_model_loaded": true}, "sam3_constraint": "bounding_box", "catalog_revision": 0, "detector": "internal:ultralytics/segm/hair_yolov8n-seg_60.pt", "label": "Hair detailer", "catalog_id": "hair", "class_ids": [0], "class_labels": ["hair"], "mask_concept": "hair", "sam3_mode": "refine_detector", "sam3_threshold": 0.5, "sam3_refine_iterations": 3}, "anything": {"enabled": false, "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "seed": 703203187737355, "seed_mode": "fixed", "steps": 15, "cfg": 2.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guidance_mode": "incoming", "guidance": 3.5, "denoise": 0.5, "feather": 10, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.4, "bbox_dilation": 10, "bbox_crop_factor": 3.0, "detector_proposal": "native", "sam_detection_hint": "center-1", "sam_dilation": 10, "sam_threshold": 0.85, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "prompt": "", "prompt_mode": "incoming", "negative_prompt": "", "negative_prompt_mode": "incoming", "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": false, "tiled_decode": false, "sam_strategy": "inherit", "sam_override": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "keep_model_loaded": true}, "sam3_constraint": "bounding_box", "catalog_revision": 0, "detector": "", "label": "Anything detailer", "catalog_id": "anything", "class_ids": [], "class_labels": [], "mask_concept": "", "sam3_mode": "refine_detector", "sam3_threshold": 0.5, "sam3_refine_iterations": 3}, "preset": {"id": "qwen21", "label": "Qwen 2.1", "family": "qwen", "revision": 1, "values": {"face": {"steps": 15, "cfg": 2.0, "guidance_mode": "incoming", "guidance": 3.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "cycle": 1}, "breast": {"steps": 15, "cfg": 2.0, "guidance_mode": "incoming", "guidance": 3.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "cycle": 1}, "pussy": {"steps": 15, "cfg": 2.5, "guidance_mode": "incoming", "guidance": 3.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "cycle": 1}, "hand": {"steps": 15, "cfg": 2.5, "guidance_mode": "incoming", "guidance": 3.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "cycle": 1}, "foot": {"steps": 15, "cfg": 2.5, "guidance_mode": "incoming", "guidance": 3.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "cycle": 1}, "hair": {"steps": 15, "cfg": 2.5, "guidance_mode": "incoming", "guidance": 3.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "cycle": 1}, "anything": {"steps": 15, "cfg": 2.5, "guidance_mode": "incoming", "guidance": 3.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "cycle": 1}}}}►

You already know the loop. A face occupying 70 pixels of a 1024px frame comes out a smear, so you crop that region, resample it at a resolution the model can actually resolve, and paste it back. In ComfyUI that has meant a FaceDetailer with two dozen inputs, or a detect → SAM → crop → inpaint → paste chain you wired yourself. DetailerX puts the whole thing behind seven sockets and hands you nine cumulative images back.

What it is

One node in WorkflowX/Image that runs: an upscale, five automatic detail passes (face, breast, pussy, hands, feet - the NSFW anatomy detectors ship enabled, which is the ordinary state of that detector market), a stack of realism/finishing operations, and an optional DLSS stage. Every detailer is the classic detect-crop-sample-composite loop that Impact Pack made standard - "zooming in on a mask, upscaling the image, and then diffusing the upscaled image to add details," as one corpus comment nicely put it.

Reach for it when a good generation has bad small parts and you want the repair in one node instead of eleven - or when you want the intermediate stages exposed so you can see where the damage got fixed rather than guessing.

How it works

model, vae, clip, positive, negative and image go in. Internally it decodes, runs the stages in order, and re-encodes. For each enabled detailer: a YOLO detector (Ultralytics, bundled weights), a SAM refinement of the box into a mask, a crop using your crop factor and dilation, a sampling pass on that crop with its own prompt, steps, CFG, sampler, scheduler, denoise and seed, then a composite back with feathering and a noise mask.

Two details explain behavior that otherwise looks like a bug:

Steps are crop-sampling iterations, not full-noise steps. The node builds floor(steps / denoise) intervals and runs the last steps of them. At denoise 0.15 with 15 steps you are nowhere near a 15-step image from noise, and comparing your numbers to a model card is meaningless.

Negative conditioning is inert at CFG 1. Several presets (FLUX.1 Schnell, the Klein distilled entries, Z-Image Turbo, Krea 2 Turbo) run at CFG 1, which means no unconditional pass - the negative you wired in is connected and doing nothing. That's a property of guidance-distilled models, not of this node.

Everything on the node face serializes into the settings JSON string (schema version 3): stage order, visibility, shared SAM config, seeds, asset identifiers, the selected preset. Workflows carry all of it, so a shared workflow runs identically with no preset library installed. You won't hand-edit settings; the face writes it.

Inputs and outputs that matter

Wire model/vae/clip from the same loaders as your generation. The tooltips are blunt: presets do not load or replace the model or its attention patches. positive is what the per-detailer prompts replace or concatenate against - the default mode is replace.

Nine IMAGE outputs, and they are cumulative, not alternatives: upscaler_image, face_detailer_image, breast_detailer_image, pussy_detailer_image, hand_detailer_image, foot_detailer_image, realism_detailer_image, dlss5_image, final_image. Each is the chain result at that stage's position, even when the stage is disabled. Send final_image to your saver; use the earlier sockets to A/B a stage.

Installing it

Manager: search WorkflowX Configurator. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/haroonaslam/WorkflowX-Configurator
python -m pip install -r WorkflowX-Configurator/detailer_x/requirements.txt

That requirements file pulls ultralytics, segment-anything, opencv-python, spandrel, scipy and colour-science. Ultralytics is AGPL-3.0 and is the one package here with a demonstrated supply-chain incident to its name - a poisoned release shipped a cryptominer in December 2024 and reached ComfyUI users through a detailing pack. Pin it if that bothers you.

Then the step nobody expects: the models are not in the repo and are not downloaded. The internal: assets are local copies provisioned from files already on your disk:

cd ComfyUI/custom_nodes/WorkflowX-Configurator
python -m detailer_x.provision --comfy-root /path/to/ComfyUI

It copies five detector .pt files, sam_vit_b_01ec64.pth, the 1x-ITF-SkinDiffDetail-Lite-v1 upscaler, the grainnet grain model, a LayerStyle LUT and three NVIDIA DLSS runtime DLLs out of an existing install - so sources like Impact Pack's Ultralytics models, INSTARAW and ComfyUI-RH-DLSS5 need to exist first. Hashes are verified, different existing files are refused, nothing is downloaded.

Where people get burned

  • Fresh install, internal: asset missing. Provisioning never ran or its source packs aren't installed. Either provision properly or point the pickers at comfy: locations.
  • "Retained inputs exceed 2 GiB." The entry layer keeps CPU snapshots of inputs and boundary values in a shared 2 GiB budget. Big batches plus paused runs hit it.
  • Preset mismatch warnings, which are warnings. The default preset is Qwen 2.1. Run an SDXL model and the step/CFG/sampler numbers are wrong for it - switch the preset row before judging output.
  • DLSS5 on non-NVIDIA hardware. That stage runs NVIDIA's runtime through a bundled bridge and needs a compatible GPU and driver (plus Wine/DXVK on Linux). Turn it off and it never loads.
  • List-mapped inputs. Feed it a tensor batch, not a list-mapped image input. Entry controls and rerun reject list-mapped inputs outright.

The toolbar is the part that surprises people: Pause holds the run before the first stage (five minutes by default, or indefinite), Skip bypasses detailing entirely and passes the input through all nine outputs, and Rerun re-executes just this node and its downstream branch from retained inputs - no upstream regeneration. How that works without re-running your checkpoint is documented on the three internal nodes it uses: WorkflowX_DetailerXCapture, WorkflowX_DetailerXSnapshot and WorkflowX_DetailerXReplay.

One ecosystem note: the community ladder is generate → hi-res fix → face/hand detail pass → final upscale, and detailing docs are emphatic that you repair before baking a mangled face into more pixels. DetailerX's default order fits that. A soft source is a different problem - don't expect a detail pass to invent what isn't there.

CategoryWorkflowX/Image

Inputs (7)

NameTypeDefaultDescription
modelMODELAuthoritative sampling model; connect matching CLIP and VAE. Presets do not load or replace it or its attention patches.
vaeVAEVAE matching the supplied model. RGB/RGBA decoded images are supported; input alpha is preserved.
clipCLIPText encoder matching the model; used for node-wide global and local detailer prompts.
positiveCONDITIONINGIncoming positive conditioning. DetailerX composes incoming, node-wide global, and local detailer conditioning according to each detailer's prompt mode.
negativeCONDITIONINGIncoming negative conditioning. DetailerX composes incoming, node-wide global, and local detailer conditioning according to each detailer's negative mode; all negative conditioning is inactive at CFG 1.
imageIMAGERGB or RGBA image batch to process. final_image is completed; processor_images feeds DetailerX Preview; detailer_masks feeds DetailerX Masks.
settingsSTRING{"version": 8, "cache_epoch": 0, "ui": {}, "extra_detailers": {}, "order": ["upscaler", "face", "breast", "pussy", "hand", "foot", "hair", "anything", "brightness", "grain", "hsv", "levels", "sharpen", "rgb", "gamma", "color_balance", "temperature", "lens", "pixel_perturb", "neural_grain", "lut", "camera", "compression", "dlss5"], "visible": {"upscaler": true, "face": true, "breast": true, "pussy": true, "hand": true, "foot": true, "hair": true, "anything": true, "brightness": true, "grain": true, "hsv": true, "levels": true, "sharpen": true, "rgb": false, "gamma": false, "color_balance": false, "temperature": false, "lens": false, "pixel_perturb": false, "neural_grain": false, "lut": false, "camera": false, "compression": false, "dlss5": true}, "entry": {"pause": false, "skip": false, "pause_minutes": 5.0, "wait_indefinitely": false}, "global_seed": {"enabled": false, "mode": "fixed", "seed": 703203187737355}, "global_prompts": {"enabled": true, "positive": "", "negative": ""}, "sam": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "enabled": true, "keep_model_loaded": true}, "upscaler": {"enabled": true, "model": "internal:upscale_models/1x-ITF-SkinDiffDetail-Lite-v1.pth", "mode": "rescale", "rescale_factor": 1.5, "resize_width": 1024, "resampling_method": "bilinear", "supersample": false, "rounding_modulus": 8}, "brightness": {"enabled": true, "brightness": 1.0, "contrast": 1.0, "saturation": 1.0}, "grain": {"enabled": true, "grain_power": 0.08, "grain_scale": 1.0, "grain_sat": 1.0, "seed": 0, "seed_mode": "time"}, "hsv": {"enabled": true, "H": 0, "S": -10, "V": 0}, "levels": {"enabled": true, "channel": "RGB", "black_point": 0, "white_point": 249, "gray_point": 1.0, "output_black_point": 0, "output_white_point": 253}, "sharpen": {"enabled": true, "iterations": 1, "kernel_size": 3}, "dlss5": {"enabled": true, "upscaling_mode": "1x (DLAA / native)", "style": "default", "preset": 0, "model_preset": "Default", "enable_dlaa_reconstruction": true, "intensity": 1.0, "tone": 1.0, "structure": 1.25, "skin": -1.0, "auto_mask": "on", "motion": "auto", "scene_change_threshold": 0.24, "batch_mode": "temporal sequence", "warmup_frames": 0, "backend": "auto", "channel_order": "auto", "hdr": "off", "global_tone": -1.0, "detail": 0.3, "color": 0.3}, "rgb": {"enabled": false, "R": 0, "G": 0, "B": 0}, "gamma": {"enabled": false, "gamma": 1.0}, "color_balance": {"enabled": false, "adjust_type": "midtones", "cyan_red": 0.0, "magenta_green": 0.0, "yellow_blue": 0.0, "preserve_luminosity": true}, "temperature": {"enabled": false, "kelvin": 6500}, "lens": {"enabled": false, "lens_shape": "circle", "lens_edge": "around", "lens_curvy": 1.0, "lens_zoom": 1.0, "lens_aperture": 0.5, "blur_intensity": 2}, "pixel_perturb": {"enabled": false, "magnitude": 0.008, "seed": 0, "seed_mode": "random"}, "neural_grain": {"enabled": false, "grain_size": 0.1, "strength": 0.2, "seed": 0, "seed_mode": "random"}, "lut": {"enabled": false, "lut": "internal:luts/BlueArchitecture.cube", "color_space": "linear", "lut_strength": 100}, "camera": {"enabled": false, "initial_jpeg_quality": 98, "vignette_strength": 0.1, "chroma_aberr_strength": 1.0, "bayer_demosaic": true, "iso_noise_scale": 1.0, "sensor_read_noise": 2.0, "hot_pixel_prob": 1e-06, "banding_strength": 0.0, "motion_blur_kernel": 3, "seed": 0, "seed_mode": "random"}, "compression": {"enabled": false, "cycles": 4, "min_quality": 75, "max_quality": 95, "seed": 0, "seed_mode": "random"}, "face": {"enabled": true, "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "seed": 674025021604975, "seed_mode": "fixed", "steps": 15, "cfg": 2.0, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guidance_mode": "incoming", "guidance": 3.5, "denoise": 0.15, "feather": 15, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.5, "bbox_dilation": 15, "bbox_crop_factor": 2.5, "detector_proposal": "native", "sam_detection_hint": "center-1", "sam_dilation": 10, "sam_threshold": 0.93, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "prompt": "detailed realistic eyes, nose, lips and ears texture, detailed eyebrows and eyelashes", "prompt_mode": "replace", "negative_prompt": "", "negative_prompt_mode": "incoming", "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": false, "tiled_decode": false, "sam_strategy": "inherit", "sam_override": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "keep_model_loaded": true}, "sam3_constraint": "bounding_box", "catalog_revision": 0, "detector": "internal:ultralytics/bbox/face_yolov8m.pt", "label": "Face detailer", "catalog_id": "face", "class_ids": [0], "class_labels": ["face"], "mask_concept": "face", "sam3_mode": "refine_detector", "sam3_threshold": 0.5, "sam3_refine_iterations": 3}, "breast": {"enabled": true, "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "seed": 1077858824591479, "seed_mode": "fixed", "steps": 15, "cfg": 2.0, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guidance_mode": "incoming", "guidance": 3.5, "denoise": 0.45, "feather": 15, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.5, "bbox_dilation": 15, "bbox_crop_factor": 2.5, "detector_proposal": "native", "sam_detection_hint": "center-1", "sam_dilation": 10, "sam_threshold": 0.93, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "prompt": "detailed areola and nipple texture", "prompt_mode": "replace", "negative_prompt": "", "negative_prompt_mode": "incoming", "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": false, "tiled_decode": false, "sam_strategy": "inherit", "sam_override": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "keep_model_loaded": true}, "sam3_constraint": "bounding_box", "catalog_revision": 0, "detector": "internal:ultralytics/bbox/female-breast-v4.7.pt", "label": "Breast detailer", "catalog_id": "breast", "class_ids": [0, 1], "class_labels": ["breast_pair", "breast_single"], "mask_concept": "breast", "sam3_mode": "refine_detector", "sam3_threshold": 0.5, "sam3_refine_iterations": 3}, "pussy": {"enabled": true, "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "seed": 703203187737355, "seed_mode": "fixed", "steps": 15, "cfg": 2.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guidance_mode": "incoming", "guidance": 3.5, "denoise": 0.5, "feather": 10, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.4, "bbox_dilation": 10, "bbox_crop_factor": 3.0, "detector_proposal": "native", "sam_detection_hint": "center-1", "sam_dilation": 10, "sam_threshold": 0.85, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "prompt": "detailed realistic vagina and labia, anatomically correct pussy", "prompt_mode": "replace", "negative_prompt": "", "negative_prompt_mode": "incoming", "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": false, "tiled_decode": false, "sam_strategy": "inherit", "sam_override": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "keep_model_loaded": true}, "sam3_constraint": "bounding_box", "catalog_revision": 0, "detector": "internal:ultralytics/bbox/pussyV2.pt", "label": "Pussy detailer", "catalog_id": "pussy", "class_ids": [0], "class_labels": ["pussy"], "mask_concept": "pussy", "sam3_mode": "refine_detector", "sam3_threshold": 0.5, "sam3_refine_iterations": 3}, "hand": {"enabled": true, "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "seed": 703203187737355, "seed_mode": "fixed", "steps": 15, "cfg": 2.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guidance_mode": "incoming", "guidance": 3.5, "denoise": 0.5, "feather": 10, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.4, "bbox_dilation": 10, "bbox_crop_factor": 3.0, "detector_proposal": "native", "sam_detection_hint": "center-1", "sam_dilation": 10, "sam_threshold": 0.85, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "prompt": "detailed hands and fingers, defined natural fingernails", "prompt_mode": "replace", "negative_prompt": "", "negative_prompt_mode": "incoming", "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": false, "tiled_decode": false, "sam_strategy": "inherit", "sam_override": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "keep_model_loaded": true}, "sam3_constraint": "bounding_box", "catalog_revision": 0, "detector": "internal:ultralytics/bbox/Hands.pt", "label": "Hand detailer", "catalog_id": "hand", "class_ids": [0], "class_labels": ["hand"], "mask_concept": "hand", "sam3_mode": "refine_detector", "sam3_threshold": 0.5, "sam3_refine_iterations": 3}, "foot": {"enabled": true, "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "seed": 703203187737355, "seed_mode": "fixed", "steps": 15, "cfg": 2.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guidance_mode": "incoming", "guidance": 3.5, "denoise": 0.5, "feather": 10, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.4, "bbox_dilation": 10, "bbox_crop_factor": 3.0, "detector_proposal": "native", "sam_detection_hint": "center-1", "sam_dilation": 10, "sam_threshold": 0.85, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "prompt": "detailed realistic feet, toes and toenails", "prompt_mode": "replace", "negative_prompt": "", "negative_prompt_mode": "incoming", "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": false, "tiled_decode": false, "sam_strategy": "inherit", "sam_override": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "keep_model_loaded": true}, "sam3_constraint": "bounding_box", "catalog_revision": 0, "detector": "internal:ultralytics/bbox/Foot.pt", "label": "Foot detailer", "catalog_id": "foot", "class_ids": [0], "class_labels": ["foot"], "mask_concept": "foot", "sam3_mode": "refine_detector", "sam3_threshold": 0.5, "sam3_refine_iterations": 3}, "hair": {"enabled": false, "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "seed": 703203187737355, "seed_mode": "fixed", "steps": 15, "cfg": 2.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guidance_mode": "incoming", "guidance": 3.5, "denoise": 0.5, "feather": 10, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.4, "bbox_dilation": 10, "bbox_crop_factor": 3.0, "detector_proposal": "native", "sam_detection_hint": "center-1", "sam_dilation": 10, "sam_threshold": 0.85, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "prompt": "detailed realistic hair strands, natural hair texture and clean hairline", "prompt_mode": "replace", "negative_prompt": "", "negative_prompt_mode": "incoming", "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": false, "tiled_decode": false, "sam_strategy": "inherit", "sam_override": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "keep_model_loaded": true}, "sam3_constraint": "bounding_box", "catalog_revision": 0, "detector": "internal:ultralytics/segm/hair_yolov8n-seg_60.pt", "label": "Hair detailer", "catalog_id": "hair", "class_ids": [0], "class_labels": ["hair"], "mask_concept": "hair", "sam3_mode": "refine_detector", "sam3_threshold": 0.5, "sam3_refine_iterations": 3}, "anything": {"enabled": false, "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "seed": 703203187737355, "seed_mode": "fixed", "steps": 15, "cfg": 2.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guidance_mode": "incoming", "guidance": 3.5, "denoise": 0.5, "feather": 10, "noise_mask": true, "force_inpaint": true, "bbox_threshold": 0.4, "bbox_dilation": 10, "bbox_crop_factor": 3.0, "detector_proposal": "native", "sam_detection_hint": "center-1", "sam_dilation": 10, "sam_threshold": 0.85, "sam_bbox_expansion": 0, "sam_mask_hint_threshold": 0.7, "sam_mask_hint_use_negative": "False", "drop_size": 10, "prompt": "", "prompt_mode": "incoming", "negative_prompt": "", "negative_prompt_mode": "incoming", "cycle": 1, "inpaint_model": false, "noise_mask_feather": 20, "tiled_encode": false, "tiled_decode": false, "sam_strategy": "inherit", "sam_override": {"backend": "sam1", "model": "internal:sams/sam_vit_b_01ec64.pth", "device": "Prefer GPU", "keep_model_loaded": true}, "sam3_constraint": "bounding_box", "catalog_revision": 0, "detector": "", "label": "Anything detailer", "catalog_id": "anything", "class_ids": [], "class_labels": [], "mask_concept": "", "sam3_mode": "refine_detector", "sam3_threshold": 0.5, "sam3_refine_iterations": 3}, "preset": {"id": "qwen21", "label": "Qwen 2.1", "family": "qwen", "revision": 1, "values": {"face": {"steps": 15, "cfg": 2.0, "guidance_mode": "incoming", "guidance": 3.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "cycle": 1}, "breast": {"steps": 15, "cfg": 2.0, "guidance_mode": "incoming", "guidance": 3.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "cycle": 1}, "pussy": {"steps": 15, "cfg": 2.5, "guidance_mode": "incoming", "guidance": 3.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "cycle": 1}, "hand": {"steps": 15, "cfg": 2.5, "guidance_mode": "incoming", "guidance": 3.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "cycle": 1}, "foot": {"steps": 15, "cfg": 2.5, "guidance_mode": "incoming", "guidance": 3.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "cycle": 1}, "hair": {"steps": 15, "cfg": 2.5, "guidance_mode": "incoming", "guidance": 3.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "cycle": 1}, "anything": {"steps": 15, "cfg": 2.5, "guidance_mode": "incoming", "guidance": 3.5, "sampler_name": "dpmpp_2m", "scheduler": "beta", "guide_size": 1024, "guide_size_for": false, "max_size": 1024, "cycle": 1}}}}—

Outputs (3)

NameTypeDescription
final_imageIMAGE—
processor_imagesDETAILERX_PROCESSOR_IMAGES—
detailer_masksDETAILERX_MASKS—