Extensions/ComfyUI-LZNodes
ComfyUI Extension

ComfyUI-LZNodes

Custom nodes for ComfyUI

By liz-ils·Created 7 months ago·Updated 12 days ago· 1
liz-ils/ComfyUI-LZNodes
Nodes44
On cloudLocal install
CategoryMyCustomNodes/Prompt, MyCustomNodes/Conditioning
Stars1
Updated12 days ago

Nodes (44)

LZ Advanced Negative Prompt

Keep the junk out of your negatives without retyping the boilerplate

MyCustomNodes/Prompt
LZ Advanced Positive Prompt

Stop hand-stitching artist tags, quality tags, and prompt soup

MyCustomNodes/Prompt
LZ Dual CLIP Text Encode

The two-in-one CLIP encode

MyCustomNodes/Conditioning
LZ Checkpoint Loader & Encode

The all-in-one loader that encodes both prompts before you ask

MyCustomNodes/Loaders
LZ Anima Artist Cross-Attn (v2)

Inject artist styles straight into cross-attention instead of hoping the tags blend

MyCustomNodes/Anima
LZ Anima Artist Node

Pack, encode, and inject in a single node

MyCustomNodes/Anima
LZ Anima Artist Options (Advanced)

The advanced controls cabinet for the Anima artist mixer

MyCustomNodes/Anima
LZ Anima Artist Pack (Split + Encode)

The artist-chain node that makes Anima artist mixing actually work

MyCustomNodes/Anima
LZ Anima Loader

Three parts, one node

MyCustomNodes/Loaders
LZ Append Log to CSV

Track every generation in a spreadsheet, automatically

MyCustomNodes/Log
LZ Artist Chain Text

Your Artist List as One Tag String, Without Going Cross-Eyed

MyCustomNodes/Anima
LZ Batch Save With Labels

Batch-save XY plot grids with the labels baked into every filename

MyCustomNodes/IO
LZ CLIP Text Encode

The plain CLIP Text Encode that also hands you the text back

MyCustomNodes/Conditioning
LZ Krea2 Loader

The one node that stops you tripping over Krea 2's three files

MyCustomNodes/Loaders
LZ KSampler & Decode

KSampler and VAEDecode merged into one node that reads your pipe

MyCustomNodes/Sampling
LZ Log Reader

Rebuild a generation from its .txt log — no image needed

MyCustomNodes/Log
LZ LoRA Loader (Model Only)

A LoRA loader for when the LoRA shouldn't touch your CLIP

MyCustomNodes/Loaders
LZ LoRA Stacker

Stack ten LoRAs in one node without a ten-loader rat's nest

MyCustomNodes/Loaders
LZ Merge Recipe Manual

Hand-build a 19-block merge recipe with one slider per layer

MyCustomNodes/Merge
LZ Merge Recipe Random

One click, 19 random block weights

MyCustomNodes/Merge
LZ Merge Recipe Random Advanced

Pick the range and the step

MyCustomNodes/Merge
LZ Pipe Info

A pipe debugger that shows you what's actually inside

MyCustomNodes/Pipe
LZ Pipe Merge

Stitch two pipes together without the spaghetti

MyCustomNodes/Pipe
LZ Pipe Pack

The bundle that turns twenty wires into one

MyCustomNodes/Pipe
LZ Pipe Pack XL

The pipe that carries your XY plot config too

MyCustomNodes/Pipe
LZ Pipe Unpack

Get your fourteen values back out of one wire

MyCustomNodes/Pipe
LZ Prompt Replace Multi

Five wildcard slots in one prompt, no regex required

MyCustomNodes/Text
LZ Prompt Replace Single

Swap one wildcard in your prompt from a CSV

MyCustomNodes/Text
LZ Prompt Replace String

Inline wildcard swapping with zero files

MyCustomNodes/Text
LZ Prompt Weight

Stop hand-typing (tag:1.2) everywhere

MyCustomNodes/Text
LZ Save Image & Log

The save node that writes your whole recipe to a .txt

MyCustomNodes/IO
LZ Save String to CSV

Log a row of parameters to a spreadsheet

MyCustomNodes/Text
LZ Simple Checkpoint Loader

The lean loader that also gives you a pipe and a hash

MyCustomNodes/Loaders
LZ String Sanitize

Make a prompt safe to use as a filename

MyCustomNodes/Text
LZ String Select

Pick one of ten strings by index

MyCustomNodes/Text
LZ Tag Editor

Ten named tag slots with per-tag strength and on/off

MyCustomNodes/Text
LZ Text Preview

Actually see the string your nodes are building

MyCustomNodes/Text
LZ XY Grid Output

Turn a batch of comparisons into a labeled grid

MyCustomNodes/XY
LZ XY Plot

The config node that sets up a sweep without sampling

MyCustomNodes/XY
LZ XY Plot & Sampler

One node that sweeps, samples, and spits out a batch

MyCustomNodes/XY
LZ XY Sampler

The flexible sweep sampler that can live off raw text

MyCustomNodes/XY
LZ Preset Empty Latent Image

Presets that keep you at ~1MP

MyCustomNodes/Latent
LZ String Concat

Join prompt parts without thinking about joins

MyCustomNodes/Text
LZ String Output

The String node that just holds text — boring, and you'll use it constantly

MyCustomNodes/Text
Readme

ComfyUI-LZNodes

ComfyUI-LZNodes is a collection of custom nodes for ComfyUI designed to simplify complex node workflows and enhance the image generation process.

日本語版 (Japanese Version)

Features

This extension provides several quality-of-life nodes that condense common workflows:

  • LZ Pipe System (LZPipePack / LZPipePackXL / LZPipeUnpack / LZPipeMerge / LZPipeInfo): Simplifies "spaghetti" node connections by bundling MODEL, CLIP, VAE, CONDITIONING, LATENT, and generation parameters into a single lz_pipe connection.
  • Smart Loaders:
    • EZCheckpointLoader: Loads a checkpoint and automatically encodes positive/negative prompts in a single node.
    • LZSimpleCheckpointLoader: A lightweight loader strictly for extracting model components.
    • LZLoRAStacker: Easily stack up to 10 LoRAs with built-in caching for faster generation. Outputs lora_model / lora_weight (comma-joined names/weights, also carried in lz_pipe).
    • LZAnimaLoader: Specialized loader for Anima models that loads the diffusion model, text encoder, and VAE separately.
    • LZKrea2Loader: One-node loader for the Krea 2 architecture (12B SingleStreamDiT + Qwen3-VL-4B text encoder + Qwen-Image VAE). Pipe-ready with weight_dtype selection, and negative_mode="auto" zero-outs the negative when unused (Krea 2 Turbo runs at CFG 1.0, matching the official template). Requires ComfyUI v0.26.0+.
  • Anima Artist Mixer:
    • LZAnimaArtistNode: Combined node that splits/encodes artist chains and applies cross-attention injection in one step. Outputs (MODEL, CONDITIONING, STRING) with the base prompt text as positive_text for direct connection to the pipe system.
    • LZAnimaArtistPack / LZAnimaArtistCrossAttn: Separate split-encode and cross-attn injection nodes for advanced workflows. LZAnimaArtistCrossAttn also outputs positive_text (STRING).
    • LZAnimaArtistOptions: Advanced options for fine-tuning block ranges, fusion modes, EMA smoothing, low-rank injection, static capture, and anchor Q.
    • LZArtistChainText: Green-colored helper node for the artist_chain input. Converts a line-separated artist list into a comma-joined artist_tag (and also outputs the original text and the lz_pipe unchanged).
  • Prompt Management:
    • AdvancedPositivePrompt / AdvancedNegativePrompt: Cleanly separate base prompts, artist tags, and quality tags. Automatically concatenates and encodes them.
    • DualCLIPTextEncode: Encodes both positive and negative prompts simultaneously.
    • LZPromptWeight: Automatically wraps prompt tags with weight syntax (tag:weight).
    • LZTagEditor: Visually edit up to 10 tags with individual strength and on/off toggles.
    • LZPromptReplaceSingle / LZPromptReplaceMulti / LZPromptReplaceString: Dynamically replace placeholders in prompts using CSV files or inline candidate lists.
  • Text Utilities:
    • StringNode / StringConcatNode: Basic string output and multi-input concatenation.
    • LZTextPreview: Display string values directly in the node UI.
    • LZStringSanitize: Remove or replace illegal filename characters.
    • LZStringSelect: Select one string from multiple inputs by index.
    • LZSaveStringToCSV: Save or append string rows to a CSV file (header written only when the file is created).
  • All-In-One Sampling (LZKSamplerDecode): Combines KSampler and VAEDecode into a single step, pulling directly from the lz_pipe routing. It can also accept raw text and perform CLIP encoding dynamically if conditioning isn't explicitly provided.
  • XY Plot System (LZXYPlot / LZXYPlotSampler / LZXYSampler / LZXYGridOutput): Grid comparison system for checkpoints, diffusion models (DiT-only, e.g. Krea 2 / Anima / Flux), LoRAs, samplers, schedulers, and prompt variations. Supports replacement keys and automatic grid image generation with labels.
  • Comprehensive Image Saving & Logging:
    • LZSaveImageAndLog: Saves generated images (PNG/WEBP/JPG) alongside a highly detailed .txt log file capturing everything from Seed and Steps to Checkpoint Hash and full Prompt text. It also injects this data into PNG metadata invisibly.
    • LZBatchSaveWithLabels: Batch-save images with XY labels embedded in filenames and metadata, plus automatic batch log output.
    • LZAppendLogToCSV: Append generation parameters to a CSV file for spreadsheet tracking.
    • LZLogReader: Read back .txt log files generated by LZSaveImageAndLog to restore parameters as node outputs.
  • Model Merge Recipe (LZMergeRecipeRandom / LZMergeRecipeManual / LZMergeRecipeRandomAdvanced): Generate 19-block merge recipes (IN00-IN08, M00, OUT00-OUT08) compatible with Model Merge tools.
  • Preset Latent (PresetEmptyLatentImage): Quickly create empty latent images using common SDXL resolutions. Supports both SDXL (4ch) and Anima (16ch) latent formats.

Node List

| Category | Nodes | |---|---| | Loaders | EZCheckpointLoader, LZSimpleCheckpointLoader, LZLoRAStacker, LZAnimaLoader, LZKrea2Loader | | Anima | LZAnimaArtistNode, LZAnimaArtistPack, LZAnimaArtistCrossAttn, LZAnimaArtistOptions, LZArtistChainText | | Prompt | DualCLIPTextEncode, AdvancedPositivePrompt, AdvancedNegativePrompt, LZPromptWeight, LZTagEditor | | Text | StringNode, StringConcatNode, LZTextPreview, LZStringSanitize, LZStringSelect, LZSaveStringToCSV, LZPromptReplaceSingle, LZPromptReplaceMulti, LZPromptReplaceString | | Latent | PresetEmptyLatentImage | | Pipe | LZPipePack, LZPipePackXL, LZPipeUnpack, LZPipeInfo, LZPipeMerge | | Sampling | LZKSamplerDecode | | XY Plot | LZXYPlot, LZXYPlotSampler, LZXYSampler, LZXYGridOutput | | IO | LZSaveImageAndLog, LZBatchSaveWithLabels | | Log | LZAppendLogToCSV, LZLogReader | | Merge | LZMergeRecipeRandom, LZMergeRecipeManual, LZMergeRecipeRandomAdvanced |

Krea 2 Quick Guide

LZKrea2Loader supports the Krea 2 architecture natively (requires ComfyUI v0.26.0+).

Model files (download the ComfyUI-repackaged versions from Comfy-Org/Krea-2):

| Type | File example | Folder | |---|---|---| | Diffusion model (DiT) | krea2_turbo_fp8_scaled.safetensors | models/diffusion_models | | Text encoder | qwen3vl_4b_fp8_scaled.safetensors | models/text_encoders | | VAE | qwen_image_vae.safetensors | models/vae | | Style LoRAs (optional) | krea2_darkbrush.safetensors etc. | models/loras |

Recommended settings (per the official krea-2 repository):

| Variant | Steps | CFG | Sampler | Scheduler | |---|---|---|---|---| | Krea 2 Turbo | 8 | 1.0 | euler | simple | | Krea 2 Raw | 52 | 3.5 | euler | simple |

  • Krea 2 Turbo is guidance-distilled: negative prompts have no effect at CFG 1.0. negative_mode="auto" (default) zero-outs the positive as the negative, matching the official template's ConditioningZeroOut pattern and skipping wasted text-encoder work.
  • Sizes from 1K to 2K are supported. Use PresetEmptyLatentImage (16ch mode) or the built-in ResolutionSelector node connected to its width/height inputs.
  • For XY plots with Krea 2, use the diffusion_model axis (the checkpoint axis only loads full checkpoints).
  • For negative prompts on Turbo, community nodes such as ComfyUI-krea2-negpip can be used alongside this pack.

Installation

  1. Navigate to your ComfyUI custom_nodes directory:
    cd ComfyUI/custom_nodes
    
  2. Clone this repository:
    git clone https://github.com/liz-ils/ComfyUI-LZNodes
    
  3. Restart ComfyUI.

Usage

Once installed, the nodes can be found in the ComfyUI add-node menu under the MyCustomNodes category (e.g., MyCustomNodes/Loaders, MyCustomNodes/Prompt, MyCustomNodes/Sampling, etc.).

Tip: A great starting point is connecting an EZCheckpointLoader through an LZPipePack to an LZKSamplerDecode, and finishing with LZSaveImageAndLog.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About Third-Party Nodes

Anima Artist Mixer - LZAnimaArtistNode, LZAnimaArtistPack, LZAnimaArtistCrossAttn, and LZAnimaArtistOptions are modified versions of the code from Anima-Artist-Mixer (by An1X3R and 汐浮尘).

  • Used under the MIT License:
MIT License

Copyright (c) 2026 An1X3R and 汐浮尘

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.