🧙♂️ SF Generative Fusion
The img2img pass that makes your composited character actually belong in the scene
- model
- fury_bus
- bus
- fused_image
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.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| fury_bus | SF_LINK | — | |
| action_prompt | STRING | Cinematic lighting, the character is fully integrated in the environment, dramatic shadows | — |
| denoise | FLOAT | 0.500.1–1 | — |
| steps | INT | 25 | — |
| cfg | FLOAT | 7.000.1–20 | — |
| sampler_name | COMBO | 44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38 | |
| scheduler | COMBO | 9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3 | |
| seed | INT | 00–18446744073709550000 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| bus | SF_LINK | — |
| fused_image | IMAGE | — |