Nodes/babydjac Nodes/Grok to PonyXL Prompt
ComfyUI Node

Grok to PonyXL Prompt

Freeform Idea to PonyXL Tags — Plus a Wan Video Prompt Bonus

By babydjac·Created 7 months ago·Updated 5 months ago· 12
Grok to PonyXL Prompt
    • ponyxl_prompt
    • wan_prompt
    • negative_prompt
    description
    api_key
    motion_typehair swaying slightly

    PonyXL doesn't understand "a woman with long hair in a library, kind of moody." It understands long_hair, library, moody_lighting, score_9, score_8_up, source_realistic. Translating between the two by hand is the daily tax of using a tag-based model (pony.md - the model is "pretty much a base model" with its own prompting language). Grok to PonyXL Prompt automates the translation: you type plain English, Grok rewrites it into PonyXL booru tags, and - bonus - also produces a Wan video prompt and a negative.

    It's from the babydjacNODES pack, and it's one of the friendlier Grok nodes: if you leave the API key empty, it degrades gracefully instead of erroring.

    How it works

    The node sends your description to grok-3-latest (temperature 0 - deliberately deterministic) with a system prompt that demands a JSON object with four keys:

    • ponyxl_prompt - comma-separated Danbooru tags, explicitly including score_9, score_8_up, score_7_up, source_realistic, rating_mature, and forbidding vague tags like ultra_detailed (Pony chokes on those).
    • wan_prompt - a short video prompt starting with "a video of," with the subject, primary action, and your chosen motion_type (default "hair swaying slightly") worked in.
    • negative_prompt - Pony negatives like blurry, low_quality, bad_anatomy, oversaturated.
    • explanation - a brief note on the optimization.

    It parses the JSON and returns the first three as outputs. The wan_prompt is a nice cross-model bonus - the same description feeds both a PonyXL image and a Wan video workflow.

    No-key behavior is worth knowing: if api_key is empty, the node just returns your description as the ponyxl_prompt with a default negative - a graceful passthrough rather than an error. You can literally build a workflow without a key and have it "work" (badly) until you add one.

    The inputs that matter

    • description - required, your freeform idea. The better you describe subject + scene, the better the tags.
    • api_key - required for the actual Grok call (no env-var fallback in this one).
    • motion_type - your Wan motion phrase; this is where you express what's moving.

    Outputs: ponyxl_prompt, wan_prompt, negative_prompt - all STRING, node marked as an output node.

    Install

    ComfyUI Manager → babydjacNODES, or git clone https://github.com/babydjac/babydjacNODES into ComfyUI/custom_nodes, restart, hard-refresh. No extra pip deps.

    Gotchas

    • The explicit tags are requested by design. The system prompt asks for rating_mature and detailed body tags; the pack is unapologetically NSFW-oriented. If that's not your use case, this node is fighting its own system prompt.
    • Parsing is strict-ish. If Grok returns prose instead of clean JSON, the node falls back to returning your raw description with the default negative - so a bad parse looks like "nothing happened," not an error. Check the ponyxl_prompt before you trust it.
    • Temperature 0 means boring but stable. You can't tune it here; every run of the same description produces essentially the same tags. That's a feature for reproducibility, a limit for variety.

    For "one description, Pony image + Wan video, minimal thinking," this node is a genuinely time-saving bridge between three different prompting languages.

    CategorybabydjacNODES/Prompting/PonyXL

    Inputs (3)

    NameTypeDefaultDescription
    descriptionSTRING
    api_keySTRING
    motion_typeSTRINGhair swaying slightly

    Outputs (3)

    NameTypeDescription
    ponyxl_promptSTRING
    wan_promptSTRING
    negative_promptSTRING