Nodes/WarpPipe Nodes/πŸŒ€ Warp Provider
ComfyUI Node

πŸŒ€ Warp Provider

One node that sets every knob and hands you a blank canvas

By gregory-richardΒ·Created 11 months agoΒ·Updated 2 days agoΒ· 0
πŸŒ€ Warp Provider
    • latent
    • batch_size
    • seed
    • steps_1
    • steps_2
    • steps_3
    • cfg
    • sampler_name
    • scheduler
    • width
    • height
    β—„batch_size1β–Ί
    β—„seed0β–Ί
    β—„steps_120β–Ί
    β—„steps_20β–Ί
    β—„steps_30β–Ί
    β—„cfg7.00β–Ί
    β—„sampler_nameeulerβ–Ί
    β—„schedulernormalβ–Ί
    β—„size_presetSquare (SDXL native) | 1:1 | 1024 Γ— 1024 | 1.05 MPβ–Ί
    β—„custom_width1024β–Ί
    β—„custom_height1024β–Ί

    Warp Provider is the one node in the WarpPipe pack that actually generates something. It produces an empty latent at the resolution you pick, and alongside it hands you every sampling parameter you'd otherwise set by hand - seed, steps, CFG, sampler, scheduler, batch size. It's basically an Empty Latent Image and a pile of KSampler settings merged into a single node, with a resolution picker that's actually pleasant to use.

    Why you'd reach for it

    The pitch is 31 preset resolutions, each labeled with its aspect ratio, exact pixel size, and megapixel count, sorted from portrait to widescreen. That sounds trivial until you've spent an evening trying to remember whether "portrait high-res" was 1152Γ—1536 or 1024Γ—1536 - or worse, rendered at a non-multiple-of-8 size and gotten the latent-dimension error from hell. The presets run 9:16 phone sizes (576Γ—1024 up to 1152Γ—2048) through square and landscape all the way to 16:9 1920Γ—1080, with the SDXL native 1024Γ—1024 as default. And because the outputs are individual typed ports, you can wire them straight into a KSampler - or feed the whole thing into a Warp so the settings travel as a bundle.

    How it works

    Mechanically it's unglamorous and that's fine. Pick a size_preset and it parses the width/height out of the label (a "Custom" preset uses custom_width and custom_height instead, in steps of 8, 64–8192). It then builds an empty latent tensor - that's just torch.zeros at width/8 Γ— height/8, the usual VAE-compressed latent space - and returns it alongside batch_size, seed, steps_1, steps_2, steps_3, cfg, sampler_name, scheduler, width, and height. The sampler and scheduler go through the pack's coercion layer, so they come out as values ComfyUI will actually accept.

    The inputs worth setting yourself:

    • size_preset - the star of the show; 31 aspect-ratio-labeled options.
    • seed - plain integer, default 0, full 64-bit range.
    • steps_1 - primary step count (default 20, 1–200). steps_2/steps_3 (default 0) are for multi-pass workflows that want extra step counts carried along.
    • cfg - default 7.0, 0–50.
    • sampler_name / scheduler - default euler / normal.

    Installing it

    It ships in the WarpPipe pack, one repo, zero external dependencies:

    cd ComfyUI/custom_nodes
    git clone https://github.com/gregory-richard/ComfyUI-WarpPipe.git
    

    Restart ComfyUI, then find it via ComfyUI Manager (search "WarpPipe") or the registry (comfy node install warppipe). No models, no pip install.

    Honest caveats

    The latent it hands you is empty - it's the blank canvas you sample from, not a secret sauce. You still need a model and conditioning (typically through a Warp bundle) before that latent does anything. Also, don't expect the presets to be magic for non-SDXL models: they're tuned around SDXL native resolutions, and while the 1:1 square is a fine starting point for most things, a 1920Γ—1080 latent on an SD 1.5-era checkpoint will probably need more steps, not just a bigger canvas. Think of it as a tidy parameter hub, not an upscaler.

    CategoryCustom/WarpPipe Nodes

    Inputs (11)

    NameTypeDefaultDescription
    batch_sizeoptINT11–64β€”
    seedoptINT00–18446744073709550000β€”
    steps_1optINT201–200β€”
    steps_2optINT00–200β€”
    steps_3optINT00–200β€”
    cfgoptFLOAT7.000–50β€”
    sampler_nameoptCOMBOeuler44 options: euler, euler_cfg_pp, euler_ancestral, euler_ancestral_cfg_pp, heun, heunpp2, +38
    scheduleroptCOMBOnormal11 options: simple, sgm_uniform, karras, exponential, ddim_uniform, beta, +5
    size_presetoptCOMBOSquare (SDXL native) | 1:1 | 1024 Γ— 1024 | 1.05 MP31 options: Mobile/Stories (small) | 9:16 | 576 Γ— 1024 | 0.59 MP, Mobile/Stories (HD) | 9:16 | 720 Γ— 1280 | 0.92 MP, Mobile/Stories (Full HD) | 9:16 | 1080 Γ— 1920 | 2.07 MP, Mobile/Stories (max) | 9:16 | 1152 Γ— 2048 | 2.36 MP, Portrait (classic) | 3:4 | 768 Γ— 1024 | 0.79 MP, Portrait (high-res) | 3:4 | 1152 Γ— 1536 | 1.77 MP, +25
    custom_widthoptINT102464–8192β€”
    custom_heightoptINT102464–8192β€”

    Outputs (11)

    NameTypeDescription
    latentLATENTβ€”
    batch_sizeINTβ€”
    seedINTβ€”
    steps_1INTβ€”
    steps_2INTβ€”
    steps_3INTβ€”
    cfgFLOATβ€”
    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,beta57,bong_tangentβ€”
    widthINTβ€”
    heightINTβ€”