Skip to content
dancockrellPublic

About

Production platform on top of ComfyUI for batch image, video and audio generation, driven by scripts rather than the node graph.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

THE FORGE

A production platform on top of ComfyUI — image, video, audio

Built for: game art, film pre-vis, graphic novels, animated graphic novels, and authentic sound design. Everything here is driven from a terminal or a script, not from the node graph — the graph is where you design a workflow, the API is where you run ten thousand of them.


WHY IT IS BUILT THIS WAY

The node editor is the wrong tool for production. It is excellent for inventing a pipeline and useless for executing one: you cannot batch it, you cannot diff it, you cannot review it, and you cannot hand it to a machine.

So The Forge treats ComfyUI as a render server:

workflows/*.json      the pipelines, authored once in the GUI, exported as API format
presets/*.json        house style — the prompt fragments and settings that make it OURS
jobs/*.jsonl          the work, one line per output
forge.py              submits, polls, retrieves, names, and files the results

A job file is reviewable. A job file is diffable. A job file can be written by another program — which is the whole point, because the thing that makes a graphic novel or a game expensive is not the render, it is the thousand consistent renders.


INSTALL

From the ComfyUI terminal (Comfy Desktop → the >_ icon in the bottom-left sidebar → Terminal), one line:

powershell -ExecutionPolicy Bypass -File "$env:USERPROFILE\Downloads\gf-forge\bootstrap.ps1"

It is idempotent — run it again any time. It resumes interrupted downloads, skips anything already present, and prints a manifest at the end.

Selective install if you do not want all of it:

.\bootstrap.ps1 -Skip video          # image + audio only
.\bootstrap.ps1 -Only audio          # just the sound stack
.\bootstrap.ps1 -DryRun              # print what it would fetch, and how big

WHAT IT INSTALLS, AND WHY EACH ONE

Image

model licence why
FLUX.1-schnell fp8 Apache-2.0 The quality tier. Four steps, no CFG, and it understands a paragraph. Fits 12 GB in fp8. This is the default for concept art, splash plates and covers.
SDXL base 1.0 CreativeML Open RAIL++ The workhorse. Enormous ControlNet and IP-Adapter ecosystem, which is what you need for consistency, and consistency is what a graphic novel is made of.
ControlNet Union SDXL Apache-2.0 One model, every control: depth, canny, lineart, openpose, scribble, tile. Pose control is how you get the same character in a different panel.
IP-Adapter Plus SDXL + CLIP-ViT-H Apache-2.0 The most important model in this list for you. It transfers style from reference images. Point it at the existing Ghost Front plates and new art comes back in the same hand. This is how you extend an art library instead of restarting it.
4x-UltraSharp + RealESRGAN x4 GPL / BSD Upscale. Tile-upscale a 1024 plate to 4096 for print.
SAM + GroundingDINO Apache-2.0 Text-prompted segmentation. "Cut the figure out of every cell of this sheet" becomes one command.

Video

model licence why
Wan 2.1 T2V 1.3B Apache-2.0 The best open text-to-video that fits 12 GB. This is your animated-graphic-novel engine.
Wan 2.1 I2V (14B, offloaded) Apache-2.0 Image-to-video: take a finished panel and move it. Slower, worth it.
SVD XT 1.1 Stability Community Short image-to-video with excellent camera coherence. Good for the "the panel drifts" look.
AnimateDiff v3 + motion LoRAs Apache-2.0 Loops, and camera-motion LoRAs (pan/zoom/tilt/roll) you can direct.
RIFE + FILM interpolation MIT / Apache-2.0 8 fps → 24/60. Essential: generate few frames, interpolate the rest.

Audio

model licence why
ACE-Step v1 3.5B Apache-2.0 Full music generation with lyrics, structure and instrument control. This is your orchestra and your guitars. Genuinely good at a scored cue rather than a loop.
Stable Audio Open 1.0 Stability Community Trained on Freesound — it is a sound effects model first. "Bolt action rifle, close, indoor, concrete" comes back as that. This is your authentic SFX engine.
MMAudio MIT Video-to-audio: give it a shot, get foley that hits the cuts. For film work this is the one that feels like magic.
MusicGen Melody CC-BY-NC (check before commercial use) Melody-conditioned: hum it, or feed it a MIDI-ish reference, get it orchestrated.

Custom nodes

ComfyUI-Manager, VideoHelperSuite, KJNodes, Impact Pack, rgthree-comfy, ComfyUI_essentials, Frame Interpolation, ControlNet Aux, IPAdapter Plus, Segment Anything, ACE-Step nodes, MMAudio nodes.


USE

# one image
python forge.py run workflows/txt2img_flux.json \
    --set prompt="a ruined Normandy farmhouse at night, painted plate, 16:6" \
    --out art/plates/

# a batch, from a job file
python forge.py batch jobs/chapter_plates.jsonl --out art/plates/

# the same character, twelve poses, consistent, via IP-Adapter + pose control
python forge.py sheet --ref art/hawke_ref.png --poses poses/walk8.json \
    --out art/sheets/hawke_walk/

# a music cue
python forge.py audio workflows/music_ace.json \
    --set prompt="slow funeral march, solo horn, muffled timpani, 1944, 52 bpm" \
    --set seconds=90 --out audio/cues/

# a sound effect, ten variants for round-robin
python forge.py audio workflows/sfx_stable.json \
    --set prompt="M1911 pistol shot, close, outdoor, night, no reverb tail" \
    --n 10 --out audio/sfx/m1911/

# a panel, animated
python forge.py video workflows/i2v_wan.json \
    --set image=art/panels/p014.png \
    --set prompt="slow push in, ash falling, the figure does not move" \
    --out film/panels/

forge.py handles: queueing over the HTTP API, progress, retry, seed management, deterministic filenames, sidecar .json metadata for every output (so you can always reproduce a frame), and a --contact flag that builds a contact sheet of the batch so you can review a hundred images in one look.


THE HOUSE STYLE

presets/ghostfront.json carries the project's own look as prompt fragments and settings, so every generation starts inside the art direction rather than next to it: the flat three-value gouache cel, above-right key, indigo shadows, #2A2A2E ground, no outlines, the division colour grammar (oxblood for FLESH, gunmetal-and-brass for STAHL, radium green for CHEMIE, arc-light blue for GLOCKE), and the sheet geometry the cutter expects — 160×160 cells, 8 columns, feet on y=148, mass on x=80.

Add your own under presets/. A preset is the difference between a tool and a studio.

About

Production platform on top of ComfyUI for batch image, video and audio generation, driven by scripts rather than the node graph.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages