Nodes/ComfyUI-Prompto/Prompto Profile
ComfyUI Node

Prompto Profile

The node that knows each model wants a different prompt

By EY4O·Created 7 days ago·Updated 3 days ago· 0
Prompto Profile
    • positive
    • negative
    • steps
    • cfg
    • width
    • height
    • sampler
    • scheduler
    ◄profile▾►
    ◄text►
    ◄seed0►

    Somewhere in the last two years, prompting stopped being one skill and became four. masterpiece, best quality, very aesthetic earns its place on Illustrious and is inert on anything with a Qwen3 or T5 encoder. (word:1.3) quietly does nothing on those same models.

    Prompto Profile carries those per-model conventions around with you. You give it text; it gives the text back the way that model wants it, along with that model's negative and sampler settings.

    What it is

    A profile is a small card of model conventions: a prefix of quality tags, an artist-naming style, a negative, and a settings block. Prompto ships four - Illustrious, Anima, Flux Krea, Qwen Image - and syncs more from the extension once you're on Prompto 0.24 or newer.

    So this is not a model loader and not a magic prompt improver. It's the thing that stops you typing the same six quality tags in front of every Illustrious prompt, and stops you typing them at all on a model where they do nothing.

    How it works

    profile picks the card. text is your prompt - type it, or wire in a Prompto Character, Snippet or Wildcards node, which is the intended way to use this. Then:

    Quality tags go first, and duplicates are skipped. The prefix is prepended, but each tag is compared against what's already in your text after normalising case, underscores and whitespace - so Best Quality in your text means you don't get best quality glued in front of it. That's a small thing that separates "written by someone who prompts" from "string concatenation".

    Artist tags get the model's house style. Profiles can ask for artists written @name; the node strips the @ for profiles that don't want it. It also knows about @_@, the emoticon, and leaves that alone - which is either careful engineering or the author getting bitten by it once, and either way it's the kind of detail you only get from someone who actually uses the thing.

    Prose profiles get no prefix at all. Flux Krea and Qwen Image are format: prose in the shipped set - empty prefix, because on a distilled prose model a wall of rating tags is noise. If you've wondered why your Flux Krea output looks slightly worse with masterpiece, best quality in front, this is the node agreeing with you.

    Settings come from the profile, not from you. The shipped cards are opinionated: Illustrious comes back 832×1216, 28 steps, CFG 5, euler_ancestral; Anima 896×1152, 30 steps, CFG 4, er_sde; Flux Krea CFG 1 at 1024²; Qwen Image 1328², 40 steps, CFG 4. Treat those as a starting point you can overwrite at the KSampler, not as law.

    seed rolls any {a|b} or __snippet__ wildcards left in the text you wired in. Handy when the upstream node wasn't a wildcard node itself.

    The inputs and outputs that matter

    Three in: profile, text, seed.

    Eight out: positive and negative (into your text encoders), steps and cfg (into the KSampler), width and height (into the Empty Latent), and sampler / scheduler as typed dropdown values. It's the same output signature as Prompto Recipe minus the seed, which makes the two interchangeable in front of one KSampler.

    See the singular in negative: you have no say in it. That's fine on tag models and a genuine caveat on CFG-1 models, where the negative pass doesn't run anyway.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/EY4O/ComfyUI-Prompto.git
    

    Restart. No Python dependencies beyond ComfyUI, no model downloads, nothing to configure. ComfyUI Manager → search Prompto if you prefer; the clone is what the README recommends.

    The node lives under the Prompto category and works before you've synced anything - the four profiles above are the ones in the pack's samples.json, and they're what you get with an older Prompto too. Press R after the extension syncs new profiles.

    Where people get burned

    A profile can't fix a prompt that's wrong for the model. Illustrious profile on a Flux checkpoint gives you rating tags on a prose model - the node applies the prefix, and the prefix hurts. Profiles are per-family, so pick the one that matches the model in your loader, not the one you like the sound of.

    Sampler names it doesn't recognise fall back silently. If a profile names a sampler your ComfyUI doesn't list, the node outputs the first sampler in ComfyUI's list instead of erroring. Same for scheduler.

    @name stripping isn't a style recommendation. It's a serialisation convention - some training sets name artists with the @. Adding @ to your prompt by hand won't make the node do anything clever with it.

    The negative is the profile's, verbatim. On Flux Krea the profile's negative is empty, which is correct at CFG 1 and probably not what you wanted if you're running it higher for some reason.

    CategoryPrompto

    Inputs (3)

    NameTypeDefaultDescription
    profileCOMBO4 options: Illustrious, Anima, Flux Krea, Qwen Image
    textSTRINGYour prompt: wire in Prompto Character, Snippet or Wildcards, or type
    seedINT00–4294967295Seed for any {a|b} and __snippet__ wildcards left in the text

    Outputs (8)

    NameTypeDescription
    positiveSTRING—
    negativeSTRING—
    stepsINT—
    cfgFLOAT—
    widthINT—
    heightINT—
    samplereuler,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—