Nodes/Mikey Nodes/Prompt With Style (Mikey)
ComfyUI Node

Prompt With Style (Mikey)

Inline styles, LoRAs, and wildcards from one text box

By bash-j·Created 3 years ago·Updated 10 months ago· 188
Prompt With Style (Mikey)
  • base_model
  • clip_base
  • clip_refiner
  • base_model
  • samples
  • base_pos_cond
  • base_neg_cond
  • refiner_pos_cond
  • refiner_neg_cond
  • positive_prompt
  • negative_prompt
positive_promptPositive Prompt
negative_promptNegative Prompt
ratio_selected
custom_sizefalse
fit_custom_size
custom_width1024
custom_height1024
batch_size1
seed0
target_mode4x

This is the node the pack's README leads with, and it's the more powerful sibling of Prompt With Style V2. Instead of picking a style from a dropdown, you type everything - prompt, style, and LoRAs - into the same text field using inline syntax, and the node parses all of it out for you. One box, three features.

How it works

Inside positive_prompt (or negative_prompt), you can drop in <lora:lora_name> or <lora:lora_name:0.8> to apply a LoRA at a given weight right from the prompt text, no separate LoRA loader node needed. <style:style_name> does the same for styles - instead of a dropdown widget, you type the style name inline, and the node's own text carries it. Wildcards use __word__ syntax pointing at files in your ComfyUI/wildcards folder, with a few extra tricks layered on: 2$$__wildcard__ pulls two lines instead of one, __wildcard|word__ searches for a specific line inside the file, and __!wildcard__, __+wildcard__, __-wildcard__, __*wildcard__ control whether the selection is locked, offset forward, offset backward, or re-randomized.

Beyond parsing that syntax, this node also handles the sizing side of the pipeline directly - target_mode sets how the SDXL refiner's target-resolution conditioning relates to your generation size (match the base resolution, or scale it 2x/4x, with -90 variants for the rotated aspect), which is the same "target size" micro-conditioning concept SDXL's own text encoder uses to tell the model what final resolution it's aiming for versus what it's generating at now. And unlike V2, this node also threads your base_model straight through - wire your checkpoint's MODEL in, get it back out the other side, so you don't need a separate noodle running the model past this node to your sampler.

The inputs and outputs that matter

  • positive_prompt / negative_prompt (multiline STRING) - where all the inline <lora:>, <style:>, and __wildcard__ syntax actually lives.
  • ratio_selected - one of SDXL's 15 trained aspect ratios, same list as V2, unless custom_size is enabled.
  • custom_size / fit_custom_size / custom_width / custom_height - an escape hatch from the preset ratio list for a specific resolution. V2 doesn't have this; it's strictly preset-driven.
  • batch_size, seed - standard controls.
  • target_mode (match, 2x, 4x, 2x90, 4x90, 2048, 2048-90, 4096, 4096-90; default 4x) - sets the refiner's target-size conditioning relative to generation size.
  • base_model, clip_base, clip_refiner - the model gets passed through, not just the two CLIP encoders.
  • Outputs: base_model (passed through unchanged), samples (LATENT), base_pos_cond / base_neg_cond / refiner_pos_cond / refiner_neg_cond (CONDITIONING), positive_prompt / negative_prompt (the parsed strings, useful for metadata).

How to install it

Bundled with the rest of Mikey Nodes. ComfyUI Manager: search "Mikey Nodes," install, restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/bash-j/mikey_nodes

then restart. Wildcards need a ComfyUI/wildcards folder with your own text files in it - the pack doesn't ship any wildcard content, just the parsing logic. Custom styles beyond the built-in list need a hand-created user_styles.json in the ComfyUI root, same file format and same caveat as V2.

Common issues & troubleshooting

<style:name> doesn't match anything. Style names have to match exactly what's defined - either one of the built-ins listed in the README (SAI-Photographic, SAI-Anime, and dozens more) or an entry in your own user_styles.json. A typo just silently fails to apply rather than erroring loudly, so if a style isn't showing up in your output, check the exact spelling first.

Wildcards not resolving. The wildcard folder location is fixed at ComfyUI/wildcards - files placed anywhere else won't be found. On a hosted or serverless ComfyUI, that folder needs to actually exist inside the execution environment; a wildcards folder on your local machine isn't visible to a remote executor.

LoRA syntax silently doing nothing. <lora:name:weight> needs the LoRA file to be discoverable the normal way ComfyUI finds LoRAs - if the name doesn't match a file in your loras folder, expect the tag to be ignored rather than an obvious error.

Custom resolution ignored. custom_width/custom_height only take effect when custom_size is enabled; otherwise ratio_selected wins. If you've set a specific size and it's not showing up, check that toggle first.

CategoryMikey

Inputs (13)

NameTypeDefaultDescription
positive_promptSTRINGPositive Prompt
negative_promptSTRINGNegative Prompt
ratio_selectedCOMBO15 options: 1:1 [1024x1024 square], 8:5 [1216x768 landscape], 4:3 [1152x896 landscape], 3:2 [1216x832 landscape], 7:5 [1176x840 landscape], 16:9 [1344x768 landscape], +9
custom_sizeCOMBOfalse2 options: true, false
fit_custom_sizeCOMBO2 options: true, false
custom_widthINT10241–8192
custom_heightINT10241–8192
batch_sizeINT11–64
seedINT00–18446744073709550000
target_modeCOMBO4x9 options: match, 2x, 4x, 2x90, 4x90, 2048, +3
base_modelMODEL
clip_baseCLIP
clip_refinerCLIP

Outputs (8)

NameTypeDescription
base_modelMODEL
samplesLATENT
base_pos_condCONDITIONING
base_neg_condCONDITIONING
refiner_pos_condCONDITIONING
refiner_neg_condCONDITIONING
positive_promptSTRING
negative_promptSTRING