Nodes/ComfyUI-StoryMaker/StoryMakerSwapClothNode
ComfyUI Node

StoryMakerSwapClothNode

Cloth Transfer Without a ControlNet

By tanglaoya321·Created 2 years ago·Updated 2 years ago· 18
StoryMakerSwapClothNode
  • image
  • mask_image
  • cloth
  • IMAGE
prompt
negative_prompt
seed0

Clothing is the quiet killer of character consistency. Most identity tools nail the face and let the outfit wander off on its own - which is fine until your character is supposed to be wearing that jacket, not a plausible imitation of it. StoryMakerSwapClothNode is the node in the tanglaoya321/ComfyUI-StoryMaker pack that tries to fix that: same person, face pinned, but the garment comes from a reference image you supply.

It's a thin diffusers wrapper around RedAIGC's StoryMaker model (the pack is three nodes sharing one pipeline, so install and dependencies are identical to the single-portrait node - see that page for the full setup). The mechanism is the same SDXL-plus-identity-adapter recipe: InsightFace's buffalo_l finds the largest face in your image, converts it into an ArcFace embedding, and feeds both a face mask and a clothing reference through StoryMaker's adapter so identity and wardrobe stay put across the render.

What's different about this node

Three image inputs instead of two. Alongside image and mask_image (the face-region mask, same as the single-portrait node), there's cloth - a picture of the outfit you want transferred. It's not a pattern swatch and it's not a flat lay you can use directly; StoryMaker reads the garment from the photo and re-renders it on your character, with the prompt telling it the context. Example from the upstream repo: the person in the reference stays himself, but ends up in the outfit shown in a separate clothing photo, in a scene the prompt dictates.

The rest of the inputs are familiar: prompt, negative_prompt, and seed for reproducibility. The output is a single IMAGE - the full 1280×960 render, wired straight into a Save Image or Preview node. There's no control over resolution, steps, or sampler; the node hardcodes 25 steps at CFG 7.5.

Set your expectations before you try it

Here's the honest part. If you're picturing e-commerce virtual try-on - garment swapped pixel-perfectly onto a body - this isn't that. StoryMaker's clothing transfer is "the same character, influenced by the reference garment," and how well the influence lands depends on how clean your cloth photo is. A single garment shot on a plain background behaves far better than a busy scene. It's best used to keep a look consistent across a story (same person, same jacket, different locations), which is exactly the use case StoryMaker's "office worker" demo exists for. Expect to re-roll a few seeds and adjust the prompt before the outfit reads as the one you fed in.

Where it behaves like the rest of the pack, it behaves like the rest of the pack: it tears down and reloads the whole model after every generation (slow between runs), it wants ~10 GB VRAM, only the largest face in the reference is used, and the first run downloads the ~6.5 GB YamerMIX SDXL base plus the CLIP encoder from HuggingFace. You also have to drop the StoryMaker face adapter at StoryMaker/checkpoints/mask.bin yourself, and InsightFace's buffalo_l detector can need a manual download into StoryMaker/models/ if the auto-download link flakes out.

Two gotchas are more pointed here than elsewhere. First, the cloth image is a reference like any other - if it has a face in it, that face competes with your character's, so crop it to the clothing. Second, the pack's output skips the usual VAE denormalize (the upstream pipeline has it commented out), so a dark or washed-out render is the node's known quirk, not your prompt.

A closing note on expectations: this pack hasn't been updated since October 2024, and it leans anime because of its YamerMIX base model. Within that lane, though, the cloth-swap node is a legitimately rare capability - few local tools hold face and outfit simultaneously - and it's the one you'd reach for when "same person, new scene" isn't enough, because the scene isn't what changed.

CategoryStoryMaker

Inputs (6)

NameTypeDefaultDescription
imageIMAGE
mask_imageIMAGE
clothIMAGE
promptSTRING
negative_promptSTRING
seedINT00–18446744073709550000

Outputs (1)

NameTypeDescription
IMAGEIMAGE