Nodes/ComfyUI-BridgeLab/SD1.5 Folder To SDXL Embedding Batch Converter
ComfyUI Node

SD1.5 Folder To SDXL Embedding Batch Converter

Convert a whole folder of SD1.5 embeddings to SDXL in one run

By Kentskooking·Created 5 months ago·Updated a day ago· 1
SD1.5 Folder To SDXL Embedding Batch Converter
    • output_directory
    • converted_count
    • skipped_count
    • failed_count
    • fit_token_cosine
    • validation_hidden_cosine
    • validation_pooled_cosine
    • report
    input_folder_path/tmp/ComfyUI/models/embeddings
    sdxl_checkpoint
    name_suffix_sdxl
    recursivefalse
    overwritefalse
    run_ci_validationtrue
    validation_phrase_count128
    validation_batch_size32

    If you kept a 2022–2024 SD1.5 embedding library - style embeddings, negative-prompt helpers, a few character tokens you swore by - you already know your two options: convert them one at a time, or leave them dead on SDXL. This node is the one-at-a-time answer with the tedious part automated. Point it at a folder, pick an SDXL checkpoint, and it converts every SD1.5 embedding it finds into models/embeddings/converted_sd15-SDXL, mirroring your subfolder structure on the way out.

    It's the batch sibling of the pack's single-file SD1.5 To SDXL Embedding Converter, and it shares all the same machinery. The clever part is that the expensive step - fitting the CLIP-L-to-CLIP-G alignment against your chosen checkpoint - happens exactly once and gets reused for the whole folder. Same with validation: one run against the bundled CLIP Interrogator phrase lists, one set of cosine scores for the entire batch. Then each file is loaded, sanity-checked (768-wide CLIP-L, no existing CLIP-G), projected through the fitted transform, and saved with its source vectors intact. The result is a proper SDXL .safetensors embedding per input file.

    The inputs that matter: input_folder_path (defaults to your embeddings folder), sdxl_checkpoint, and name_suffix - default _sdxl, so easyneg.pt becomes easyneg_sdxl.safetensors and never collides with the original. recursive pulls in nested folders and preserves their relative structure. overwrite controls whether an existing output gets replaced. Everything else - the validation toggle, validation_phrase_count, validation_batch_size - you can leave at defaults.

    Outputs: output_directory (where things landed), converted_count, skipped_count, failed_count, the same fit and validation cosine scores, and a report string that lists up to 100 entries per section, one line per file. Don't read a skip as a dead end - the report says why each file was skipped, and the usual causes are benign (already converted, not a standard 1.5 embedding, output exists with overwrite off). The node also excludes its own converted_sd15-SDXL output directory from a recursive scan, so you can't accidentally feed it its own output.

    Install is the pack's standard path: ComfyUI Manager (search "ComfyUI-BridgeLab"), or clone into custom_nodes and restart. No dependencies beyond what ComfyUI ships, no model downloads. It sits under "embed_converter" in the menu.

    Where people get burned: pointing input_folder_path at the wrong directory and running a recursive conversion that sweeps up things that aren't embeddings. You'll get a wall of skips in the report, which is harmless but confusing the first time. And if run_ci_validation is on but the bundled phrase files are missing (a stripped install), validation fails up front - flip it off and the conversion still runs, you just lose the quality scores. Individual bad files are recorded and skipped rather than killing the whole run, so a folder with a few oddballs still converts cleanly.

    This is the one I'd reach for if you have a real library. The single-file converter is fine for testing one embedding; once you're at ten, the batch node is the whole point. ComfyUI refreshes its embedding list after the run, so the converted files are immediately usable as embedding:name triggers.

    Categoryembed_converter

    Inputs (8)

    NameTypeDefaultDescription
    input_folder_pathSTRING/tmp/ComfyUI/models/embeddings
    sdxl_checkpointCOMBO0 options:
    name_suffixSTRING_sdxl
    recursiveBOOLEANfalse
    overwriteBOOLEANfalse
    run_ci_validationBOOLEANtrue
    validation_phrase_countINT12816–4096
    validation_batch_sizeINT321–256

    Outputs (8)

    NameTypeDescription
    output_directorySTRING
    converted_countINT
    skipped_countINT
    failed_countINT
    fit_token_cosineFLOAT
    validation_hidden_cosineFLOAT
    validation_pooled_cosineFLOAT
    reportSTRING