Seeded Persona LoRA Loader (CRT)
Pick a LoRA by seed — and get its matching persona text in the same stroke
- model
- model
- persona
Most LoRA loaders make you click a dropdown and pick the file. This one makes you pick a seed, and that small inversion changes how you think about the node. PGC_SeededPersonaLoraLoader selects a LoRA deterministically from a folder using seed % (number of LoRAs) - sort the folder's LoRAs alphabetically, count them, and the seed picks one. Bump the seed, get the next LoRA. That's the whole trick, and it's remarkably useful.
The persona half is the actual headline though. LoRA folders in the style this pack targets (the default points at KREA2\Turbo\PERSONA) are typically built as "one character, one LoRA, one matching .md persona file." This node loads the LoRA whose stem matches the .md file - and hands you the markdown contents as a string on the persona output. So one node gives you both the patched model and the character's writeup, ready to feed into a text pipeline, a prompt builder, or an LLM node that needs to know who it's talking about.
How it works
The mechanics are refreshingly grounded. It lists only LoRA files directly in the folder (no recursion - a deliberate choice so subfolders don't silently join the rotation), sorts them case-insensitively, computes seed % count to pick one, and applies it with comfy.sd.load_lora_for_models at your strength_model. It then looks for a .md file with the same stem and reads it. Both the lora_folder and any absolute path work; relative paths resolve under ComfyUI/models/loras.
The inputs that matter
seed- the selector. Hook this to ComfyUI's fixed / increment / decrement / randomize controls and you can scrub through the folder's LoRAs like a dial. This is the input you'll actually play with.lora_folder- which folder to draw from. Note it's a plain string, not a dropdown; the default is the KREA2 persona folder, which tells you what the author had in mind.strength_model- normal LoRA strength, default 1.0.
Outputs
model- your model with the selected LoRA applied, into the sampler.persona- the matching.mdfile's contents as a string. The node will error loudly if the stem-matched.mddoesn't exist, so keep your persona files named exactly like their LoRAs.
It works with any architecture - there's nothing KREA-specific in the loading logic, the default folder is just a hint. Where it shines is automation: a loop over seeds iterates LoRAs deterministically, and the persona string means you can caption or prompt from the same seed that chose the character.
Install
Standard pack:
cd ComfyUI/custom_nodes
git clone https://github.com/PGCRT/CRT-Nodes
pip install -r requirements.txt
Or ComfyUI Manager → search CRT-Nodes, then restart. No model downloads and no extra dependencies beyond ComfyUI's built-in LoRA loading.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | The diffusion model to patch with the selected LoRA. | |
| lora_folder | STRING | KREA2\Turbo\PERSONA | Folder relative to models/loras, or an absolute folder. Only LoRA files directly inside it are considered. |
| seed | INT | 00–18446744073709550000 | Selects the LoRA by seed modulo sorted LoRA count. Use ComfyUI's fixed, increment, decrement, or randomize control. |
| strength_model | FLOAT | 1.00-100–100 | Strength applied to the diffusion model. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| model | MODEL | The model with the selected LoRA applied. |
| persona | STRING | Contents of the .md file whose stem matches the selected LoRA. |