Nodes/ComfyUI-Studio-Fury/3️⃣ SF Director Engine (Batch)
ComfyUI Node

3️⃣ SF Director Engine (Batch)

Render every character on the bus in one run — ratios, saves and seeds handled for you

By FuryNocturn·Created 9 months ago·Updated 4 months ago· 0
3️⃣ SF Director Engine (Batch)
  • model
  • charged_bus
  • last_image
quality_preset
steps25
cfg8.00
sampler_name
scheduler
denoise1.00
seed0

This is the "3️⃣" - the batch renderer, and the node the pack is really built around. You registered five characters and three scenes with Add Entity, they're sitting on the bus as pre-encoded conditioning, and the Director Engine's entire job is to loop through all of them, generate each one, save it, and hand you the last image. One run, whole cast done. That's the pitch, and it mostly delivers.

Mechanically it's a KSampler wrapper with production touches. For each entity it computes the generation dimensions from the entity's type and aspect-ratio tag - characters render as a portrait at roughly 0.66× the base width, scenes use the ratio you picked (16:9 → 1.77×, 21:9 → 2.33×, and so on), all snapped to multiples of 8. The seed increments per entity (seed + i), so the batch is deterministic as long as your entity order doesn't change. After sampling and decoding, it auto-saves the .fury technical file and a preview PNG into output/StudioFury/<project>/Characters/ or Scenes/, pushes the image to the UI preview, and updates a progress bar. Memory handling is the interesting part: it frees tensors per iteration but only calls gc.collect() and torch.cuda.empty_cache() once at the end - a deliberate choice to avoid thrashing VRAM mid-batch.

The inputs that matter:

  • quality_preset - SD (512px), HD (720px), Full HD (1080px), 2K (1440px), 4K (2160px). This is the base dimension everything scales from. Be realistic here: "4K" on a portrait means generating around 1425×2160 natively, which most base checkpoints aren't trained to do well - treat the high presets as upscale-and-detail territory, not free resolution.
  • steps, cfg, denoise, seed - standard. The sampler list is the full ComfyUI menu (44 samplers, 9 schedulers), so unlike the FurySampler you get everything.
  • model - wired in directly; CLIP and VAE both ride the bus.

The output: last_image (IMAGE). This node is an output node, so it also previews everything in the UI as it goes. Wire last_image to a Save Image if you want the final frame kept separately - the engine already saved the per-entity assets itself.

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, all already in ComfyUI. No models to fetch.

Gotchas

An empty bus isn't an error - it's a black 512×512 image and a console message, which can read as a silent failure if you forgot to add any entities. If the bus is empty, this node does nothing visible. Also remember the engine is batch-only: if one entity's prompt is broken, it logs an error for that entity and keeps going - which is what you want in a batch, but it means the log is where you'll discover half your cast quietly failed. And because it auto-saves every render as .fury plus PNG, repeated runs accumulate files fast; the pack doesn't dedupe or clean, so name your project carefully or you'll have fifty Hero_01.fury iterations to sort through. It's the most ambitious node in the suite, and the one where the single-author roughness shows most - but for "render the whole cast and don't babysit it," it works.

Category🧩 Studio Fury/🎬 Director

Inputs (9)

NameTypeDefaultDescription
modelMODEL
charged_busSF_LINK
quality_presetCOMBO5 options: SD (512px), HD (720px), Full HD (1080px), 2K (1440px), 4K (2160px)
stepsINT25
cfgFLOAT8.00
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
denoiseFLOAT1.00
seedINT00–18446744073709550000

Outputs (1)

NameTypeDescription
last_imageIMAGE