ComfyUI Node

P-Image-Try-On

A fitting room in a node

By Runware·Created 2 years ago·Updated about a month ago· 140
P-Image-Try-On
  • referenceImages
  • advancedFeatures.watermark.image
  • image
positivePrompt
seed0
numberResults1
advancedFeaturesfalse
advancedFeatures.watermark.bgColor
advancedFeatures.watermark.displayPosition(default)
advancedFeatures.watermark.fontColor
advancedFeatures.watermark.opacityfalse
advancedFeatures.watermark.opacity_value0.10
advancedFeatures.watermark.text
settings.preserveInputSizetrue
safetyfalse
safety.checkContentfalse
settings.turbofalse
ttlfalse
ttl_value60
outputFormatJPG
outputQuality95

P-Image-Try-On is the most specialized node in the Pruna line: a virtual fitting room. You give it an image of a garment and an image of a person, and it composites the clothing onto the person - drape, folds, lighting and all - returning a native IMAGE. This is the node fashion folks and creators reach for when they want to see a jacket on a model without staging a shoot, and it's the kind of task generic diffusion models are bad at because clothing fit is all about structure, not texture.

The distinguishing detail is in the inputs. referenceImages is typed as RUNWARE_REFERENCEIMAGES - the plural builder socket - because this model takes multiple references: typically the garment flat-lay and the person. That's why it works where a single-image edit node flails.

What you actually set

  • referenceImages - required, the RUNWARE_REFERENCEIMAGES builder socket. Wire in your garment image and your person image. Which one is which matters, and the positivePrompt below is there to disambiguate.
  • positivePrompt - optional, but the tooltip explains it perfectly: experimental guidance for non-flatlay garment images, for example which garment from which image to use. For a standard flat-lay, leave it blank; for a hanger shot or a worn garment, tell it what to use and from where.
  • settings.preserveInputSize - default True: return output at the original input resolution. Turn it off and you get the model's internal working resolution instead, which is usually smaller. Keep it on.
  • settings.turbo - faster generation, may drop subtle details.
  • seed, numberResults - the usuals.
  • outputFormat - JPG, PNG, WEBP.

Output: one image socket, type IMAGE.

Install

One-time pack install: ComfyUI Manager → search Runware → install → restart, or

cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt

API key into ComfyUI Settings → Runware API key or RUNWARE_API_KEY. Nothing heavy installs; the model lives in the cloud.

Where people get burned

  • Input quality is everything. A crumpled, poorly lit garment flat-lay produces a crumpled, poorly lit result. Clean, evenly lit, full-garment shots are the difference between "try-on" and "AI mashup."
  • It's a try-on, not a dress-up. This node is built for the garment-on-person task and it does that well; it's not a general character editor. Don't force other jobs through it.
  • Watch preserveInputSize. If your output comes back smaller than expected, this is why - something turned it off.
  • Per-run cost, same as the family. The title bar shows it; batch runs add up.

The verdict: niche, but genuinely good at its niche. If your work involves putting clothes on people - product mockups, outfit previews, costume tests - this is the node you didn't know you needed. If not, skip it; the rest of the Pruna line is more generally useful.

CategoryRunware/Image/prunaai

Inputs (20)

NameTypeDefaultDescription
referenceImagesRUNWARE_REFERENCEIMAGES
advancedFeatures.watermark.imageoptIMAGE
positivePromptoptSTRINGExperimental guidance for non-flatlay garment images, for example which garment from which image to use.
seedoptINT00–9223372036854776000Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.
numberResultsoptINT11–20Number of results to generate. Each result uses a different seed, producing variations of the same parameters.
advancedFeaturesoptBOOLEANfalseEnable to set advancedFeatures. Off uses the model's default.
advancedFeatures.watermark.bgColoroptSTRINGBackground color in hex format.
advancedFeatures.watermark.displayPositionoptCOMBO(default)Watermark position.
advancedFeatures.watermark.fontColoroptSTRINGText color in hex format.
advancedFeatures.watermark.opacityoptBOOLEANfalseEnable to set advancedFeatures.watermark.opacity. Off uses the model's default.
advancedFeatures.watermark.opacity_valueoptFLOAT0.100.1–1Watermark opacity.
advancedFeatures.watermark.textoptSTRINGWatermark text.
settings.preserveInputSizeoptBOOLEANtrueReturn the output at the original input resolution. When disabled, the output keeps the model's internal working resolution, which may differ from the input because inputs are dynamically resized for quality and speed.
safetyoptBOOLEANfalseEnable to set safety. Off uses the model's default.
safety.checkContentoptBOOLEANfalseEnable or disable content safety checking.
settings.turbooptBOOLEANfalseEnable turbo mode for faster generation. May reduce subtle details in complex tasks.
ttloptBOOLEANfalseEnable to set ttl. Off uses the model's default.
ttl_valueoptINT60Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.
outputFormatoptCOMBOJPGFile format for the generated image.
outputQualityoptINT9520–99Compression quality of the output. Higher values preserve quality but increase file size.

Outputs (1)

NameTypeDescription
imageIMAGE