Nodes/ComfyUI-Studio-Fury/🧙‍♂️ SF Generative Fusion
ComfyUI Node

🧙‍♂️ SF Generative Fusion

The img2img pass that makes your composited character actually belong in the scene

By FuryNocturn·Created 9 months ago·Updated 4 months ago· 0
🧙‍♂️ SF Generative Fusion
  • model
  • fury_bus
  • bus
  • fused_image
action_promptCinematic lighting, the character is fully integrated in the environment, dramatic shadows
denoise0.50
steps25
cfg7.00
sampler_name
scheduler
seed0

Scene Composer gives you a mathematically blended image - character glued onto background. It looks composited, because it is. Generative Fusion is the cleanup pass: a low-strength img2img run that re-lights the character, softens the cut edge, and makes the whole thing read as one coherent shot. This is the node that turns a montage into a scene.

The mechanism is exactly the two-pass pattern the ComfyUI ecosystem loves. It takes the bus's master_composition image (the one Scene Composer wrote), VAE-encodes it into latent space, encodes your action_prompt, and runs a KSampler on it at a low denoise - the default is 0.5, and the node's own comment says 0.4–0.6 alters light and edges without changing identity. Then it decodes, replaces the master composition with the fused result, and stamps the bus with a current_render so Smart Saver can persist it. The negative prompt is hardcoded (bad anatomy, rough transition, floating, disconnected, watermark) - you don't get a negative input, which is fine, because that list is exactly the artifact set you're trying to fix.

Why low denoise matters, from the mechanics: denoise strength controls how much of the starting image survives. At 0.5 you keep composition and identity but let the model reinterpret lighting and edges - precisely the "character integrated in the environment" request the default prompt makes. Crank it to 0.9 and you're re-rolling the whole image, character included. If you've fought with img2img before, you know the feel: the lower you go, the more the seams stay.

The inputs that matter:

  • action_prompt - the instruction for integration. The default ("Cinematic lighting, the character is fully integrated in the environment, dramatic shadows") is genuinely good; you'll mostly edit the lighting/style half rather than the integration half.
  • denoise - 0.1 to 1.0, step 0.05, default 0.5. The single most important dial here. Start at 0.5 and nudge down if identity drifts, up if seams persist.
  • steps / cfg / seed - normal. Defaults are sane (25 / 7). Full 44-sampler and 9-scheduler lists are available if you want them.

The outputs: bus (SF_LINK, master composition replaced with the fused image, plus current_render) and fused_image (IMAGE). Preview fused_image, feed the bus to Smart Saver.

Install

Part of StudioFury: ComfyUI Manager → ComfyUI-Studio-Fury → Install → restart, or:

cd ComfyUI/custom_nodes/
git clone https://github.com/FuryNocturn/ComfyUI-Studio-Fury

Dependencies are torch/Pillow/numpy/aiohttp - no model files to fetch.

Gotchas

It will flat-out error if you run it without a master_composition in the bus, which means it must come after a Scene Composer. And because it replaces the master image, chaining two fusions in a row compounds denoise passes - each one re-interprets the previous result, and identity erosion creeps in. Use it once, at the end of the pipeline, as the "make it real" step. Also worth knowing: this node's success depends on what your base checkpoint can do at the composed resolution. If your master composition is a 1080px-tall blend and your model is a 512-native checkpoint, the fusion will smear before it blends. Match the resolution to the model or you'll blame the node for what's really a model limitation.

Category🧩 Studio Fury/🎬 Director

Inputs (9)

NameTypeDefaultDescription
modelMODEL
fury_busSF_LINK
action_promptSTRINGCinematic lighting, the character is fully integrated in the environment, dramatic shadows
denoiseFLOAT0.500.1–1
stepsINT25
cfgFLOAT7.000.1–20
sampler_nameCOMBO44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
schedulerCOMBO9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
seedINT00–18446744073709550000

Outputs (2)

NameTypeDescription
busSF_LINK
fused_imageIMAGE