ComfyUI Node

Grimoire Params

Load a model and hand out every sampler setting from one node

By omamesamba-del·Created 3 months ago·Updated 3 months ago· 1
Grimoire Params
    • MODEL
    • CLIP
    • VAE
    • sampler_name
    • scheduler
    • steps
    • cfg
    • seed
    • width
    • height
    • stop_at_clip_layer
    • batch_size
    • denoise
    • upscale_by
    checkpoint
    vae
    sampler_nameeuler
    schedulernormal
    steps20
    cfg7.0
    seed0
    width832
    height1216
    clip_skip2
    batch_size1
    denoise1.00
    upscale_by2.00

    The all-in-one that makes your prompt app the driver's seat

    Grimoire Params is the heavyweight of the comfyui-grimoire-bridge pack. Where Grimoire Slot lets an external app fill your prompt, this node lets it take over the generation settings too: checkpoint, VAE, sampler, scheduler, steps, CFG, seed, resolution, denoise, hires factor. It loads the checkpoint itself and then hands every one of those values out as outputs, so you wire them into a KSampler and EmptyLatentImage the way you'd wire a context bus - one source of truth instead of values typed into a dozen widgets.

    It's the node that makes the "Replaces the separate CheckpointLoader + KSampler + EmptyLatentImage setup" claim real, with one honest caveat: it replaces the loader and the hand-typed parameter wiring. The KSampler and EmptyLatentImage nodes still have to exist in your graph - this node just feeds them everything. Same deal as rgthree's context pattern: fewer places to update, but you're trusting one node to hold all the values.

    How it works

    The bridge keeps a gen_params dict, filled when grimoire (or anything else) POSTs to /pb/set-gen. On each execution the node merges those values over the widget defaults - anything grimoire sent wins, anything it didn't stays at what you set. It loads the checkpoint via ComfyUI's own loader, swaps in an external VAE if you picked one instead of Automatic, validates the sampler and scheduler against the ones ComfyUI actually knows, and emits everything downstream.

    The inputs that matter

    You'll set most of these like you would on a normal loader and KSampler, but four deserve a look:

    • checkpoint - a filename from your models/checkpoints folder. This is the one grimoire will override, so it's also the source of the pack's sneakiest trap (below).
    • vae - Automatic (use the checkpoint's bundled VAE) or the name of a standalone VAE file.
    • sampler_name / scheduler - full ComfyUI lists, defaults euler / normal. For SDXL-lineage models, DPM++ 2M with Karras is the safer habit if you're not sure.
    • clip_skip - default 2. Note the quirk: the input is called clip_skip, but the output is named stop_at_clip_layer. Same value, two names; the output name is just what a KSampler expects.

    The outputs

    MODEL, CLIP, and VAE go where the loader's would - CLIP into a CLIP Text Encode, VAE into the decoder, MODEL into KSampler. Then a long tail of typed values: sampler_name, scheduler, steps, cfg, seed, denoise for the KSampler; width, height, batch_size for EmptyLatentImage; and upscale_by, a hires factor the pack doesn't apply for you - you'd convert that to an input on a LatentUpscale node if you're building a hires pass.

    Installing it

    No pip dependencies, no model downloads, no requirements.txt:

    cd ComfyUI/custom_nodes
    git clone https://github.com/omamesamba-del/comfyui-grimoire-bridge.git
    

    Restart ComfyUI, look under PromptBuilder for Grimoire Params, and in grimoire enable Settings → Generation → Send Gen Settings.

    Where people get burned

    • The checkpoint fallback is a silent wrong-model trap. If grimoire sends a checkpoint filename you don't have, the node quietly loads your first checkpoint from the folder instead. No error, no warning - you just generate with a model you didn't pick. Keep your model names in sync with what grimoire sends.
    • It only outputs; it doesn't sample. New users wire it up and expect an image. You still need KSampler + EmptyLatentImage + VAE Decode + a conditioning, like any workflow.
    • In-memory params. Restart ComfyUI and grimoire's settings are gone; the node falls back to its widgets.
    • Another write door. /pb/set-gen is unauthenticated like the rest of ComfyUI's API. On localhost it's fine; exposed to the internet, anyone can silently swap your model and parameters.
    CategoryPromptBuilder

    Inputs (13)

    NameTypeDefaultDescription
    checkpointSTRING
    vaeSTRING
    sampler_nameCOMBOeuler44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
    schedulerCOMBOnormal9 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +3
    stepsINT201–150
    cfgFLOAT7.00–30
    seedINT00–18446744073709550000
    widthINT83264–8192
    heightINT121664–8192
    clip_skipINT21–12
    batch_sizeINT11–64
    denoiseFLOAT1.000–1
    upscale_byFLOAT2.001–8

    Outputs (14)

    NameTypeDescription
    MODELMODEL
    CLIPCLIP
    VAEVAE
    sampler_nameeuler,euler_cfg_pp,euler_ancestral,euler_ancestral_cfg_pp,heun,heunpp2,exp_heun_2_x0,exp_heun_2_x0_sde,dpm_2,dpm_2_ancestral,lms,dpm_fast,dpm_adaptive,dpmpp_2s_ancestral,dpmpp_2s_ancestral_cfg_pp,dpmpp_sde,dpmpp_sde_gpu,dpmpp_2m,dpmpp_2m_cfg_pp,dpmpp_2m_sde,dpmpp_2m_sde_gpu,dpmpp_2m_sde_heun,dpmpp_2m_sde_heun_gpu,dpmpp_3m_sde,dpmpp_3m_sde_gpu,ddpm,lcm,ipndm,ipndm_v,deis,res_multistep,res_multistep_cfg_pp,res_multistep_ancestral,res_multistep_ancestral_cfg_pp,gradient_estimation,gradient_estimation_cfg_pp,er_sde,seeds_2,seeds_3,sa_solver,sa_solver_pece,ddim,uni_pc,uni_pc_bh2
    schedulersimple,sgm_uniform,karras,exponential,ddim_uniform,beta,normal,linear_quadratic,kl_optimal
    stepsINT
    cfgFLOAT
    seedINT
    widthINT
    heightINT
    stop_at_clip_layerINT
    batch_sizeINT
    denoiseFLOAT
    upscale_byFLOAT