Pony Diffusion XL (custom model)
Every Pony checkpoint, one node
- seedImage
- maskImage
- outpaint
- lora
- controlNet
- ipAdapters
- embeddings
- refiner
- ultralytics
- acceleratorOptions
- advancedFeatures.watermark.image
- image
This is not a model node - it's a doorway node. RunwareArch_pony lives in the pack's Runware/Custom models folder, and its job is to let you run any community Pony-architecture checkpoint from the Runware catalog, without downloading a single file. You type (or search) a model AIR into the model field, and the node runs that exact checkpoint in the cloud. Pony Diffusion V6 XL is the SDXL fine-tune that owned 2024's stylized and NSFW generation - famous for anatomy, niche fetishes, and that botched score-tag system you had to paste into every prompt. Hundreds of merges (AutismMix, PonyRealism, and friends) made "Pony" a family, and this node is how you browse that family from inside ComfyUI.
Why would you use this instead of the pack's fixed image nodes? Flexibility. The dedicated nodes are pinned to one model; this one can point at any Pony checkpoint Runware hosts - including the merge you actually want for a specific look. If you already run Pony locally, this is also a nice escape hatch for when you're away from your GPU and just need a quick render.
What you set
Required: model (an AIR string like runware:257749@290640 - use the search button to browse the catalog), positivePrompt, width, height (128–2048, step 8).
Then the full SDXL feature set you'd expect:
negativePrompt- works here, unlike on the distilled models. Pony is classic guidance, so both prompts matter.CFGScaletoggle +CFGScale_value- Pony's sweet spot is around 4-6, lower than SD 1.5's 7+. The default is fine; you're mostly nudging, not launching.stepstoggle +steps_value- 20-30 is the Pony norm.clipSkip- the classic anime trick, 1-2 layers, because Pony's CLIP is overtrained on tags.vae- override the base VAE if a specific checkpoint wants one.promptWeighting-compelorsdEmbedssyntax for prompt weighting.- Sockets:
lora,controlNet,ipAdapters,embeddings,refiner,outpaint,maskImage,seedImage- the full builder-node spread. scheduler,seed,numberResults(up to 20),outputFormat,outputQuality, andadvanced_json(tooltip: for hiresFix).
Output is image (IMAGE).
How it works
Same pack machinery as everything else - the request carries the model AIR you chose, plus taskType, over REST via the Runware SDK, and the finished IMAGE comes back. The subtle part: because Pony checkpoints live in the catalog with known architectures, Runware picks the correct sampler settings for the architecture automatically. You still tune CFG and steps, but you don't fight the plumbing. The title bar shows cost, and Pony at 1024 is cheap enough that trying three merges to find your look is an afternoon hobby, not a budget crisis.
Installing
ComfyUI Manager → search Runware → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
No model downloads - the catalog hosts them. Dependencies are runware-sdk, pillow, soundfile. API key via Settings → Runware API key, RUNWARE_API_KEY, or runware auth login.
Troubleshooting
The model AIR is the failure point - a typo or stale AIR means a failed request, so use the search button. If your Pony output ignores the negative prompt, check CFGScale isn't ≤ 1 (negative is ignored there by design). And if you expected Pony's score-tag behavior, remember you still need those tags in the prompt - the node doesn't add them for you.
Inputs (45)
| Name | Type | Default | Description |
|---|---|---|---|
| model | STRING | runware:257749@290640 | AIR of any checkpoint of this architecture. Use the search button to browse the catalog. |
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| width | INT | 1024128–2048 | Width of the generated media in pixels. |
| height | INT | 1024128–2048 | Height of the generated media in pixels. |
| seedImageopt | IMAGE | — | |
| maskImageopt | IMAGE | — | |
| outpaintopt | RUNWARE_OUTPAINT | — | |
| loraopt | RUNWARE_LORA | — | |
| controlNetopt | RUNWARE_CONTROLNET | — | |
| ipAdaptersopt | RUNWARE_IPADAPTERS | — | |
| embeddingsopt | RUNWARE_EMBEDDINGS | — | |
| refineropt | RUNWARE_REFINER | — | |
| ultralyticsopt | RUNWARE_ULTRALYTICS | — | |
| acceleratorOptionsopt | RUNWARE_ACCELERATOROPTIONS | — | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| negativePromptopt | STRING | Prompt to guide what to exclude from generation. Ignored when guidance is disabled (CFGScale ≤ 1). | |
| seedopt | INT | 00–9223372036854776000 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| stepsopt | BOOLEAN | false | Enable to set steps. Off uses the model's default. |
| steps_valueopt | INT | 11–50 | Total number of denoising steps. Higher values generally produce more detailed results but take longer. |
| scheduleropt | COMBO | (default) | Scheduler to use for the diffusion process. |
| CFGScaleopt | BOOLEAN | false | Enable to set CFGScale. Off uses the model's default. |
| CFGScale_valueopt | FLOAT | 0.000–30 | Guidance scale representing how closely the output will resemble the prompt. Higher values produce results more aligned with the prompt. |
| strengthopt | BOOLEAN | false | Enable to set strength. This setting has usage rules in this model, so it is off unless you enable it. |
| strength_valueopt | FLOAT | 0.800–1 | Strength of the transformation. Lower values result in more influence from the original input. |
| maskMarginopt | BOOLEAN | false | Enable to set maskMargin. Off uses the model's default. |
| maskMargin_valueopt | INT | 3232–128 | Extra context pixels around the masked region during inpainting. The model zooms into the masked area with these additional pixels for better integration. |
| clipSkipopt | BOOLEAN | false | Enable to set clipSkip. Off uses the model's default. |
| clipSkip_valueopt | INT | 00–4 | Number of layers to skip in the CLIP model. |
| vaeopt | STRING | VAE model identifier. Overrides the default VAE included with the base model. | |
| promptWeightingopt | COMBO | (default) | Syntax used for prompt weighting. |
| numberResultsopt | INT | 11–20 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| advancedFeaturesopt | BOOLEAN | false | Enable to set advancedFeatures. Off uses the model's default. |
| advancedFeatures.watermark.bgColoropt | STRING | Background color in hex format. | |
| advancedFeatures.watermark.displayPositionopt | COMBO | (default) | Watermark position. |
| advancedFeatures.watermark.fontColoropt | STRING | Text color in hex format. | |
| advancedFeatures.watermark.opacityopt | BOOLEAN | false | Enable to set advancedFeatures.watermark.opacity. Off uses the model's default. |
| advancedFeatures.watermark.opacity_valueopt | FLOAT | 0.100.1–1 | Watermark opacity. |
| advancedFeatures.watermark.textopt | STRING | Watermark text. | |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | JPG | File format for the generated image. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
| advanced_jsonopt | STRING | Optional JSON merged into the request. For: hiresFix |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |