Tool tree
gradeNot graded
nude.list_piecesAnswer
List all NUDE pieces with full construction detail — wire, cup, padding, straps, closure, material, colours, sizes and structure notes. Use this to work out which pieces fit a request such as 'nude-toned and smooth under a white shirt'. Returns no image data.
View tool JSON
{
"name": "nude.list_pieces",
"kind": "answer",
"impl": "imperative",
"description": "List all NUDE pieces with full construction detail — wire, cup, padding, straps, closure, material, colours, sizes and structure notes. Use this to work out which pieces fit a request such as 'nude-toned and smooth under a white shirt'. Returns no image data.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}nude.get_pieceAction
Open one piece in full: construction detail, sizes, description, its product page URL, and the actual garment image a try-on will send to cloth-v4. This is the step where you find out whether the colour you were about to promise is the colour that will render. Use it on every piece you are seriously considering before you render anything.
View tool JSON
{
"name": "nude.get_piece",
"kind": "act",
"impl": "imperative",
"description": "Open one piece in full: construction detail, sizes, description, its product page URL, and the actual garment image a try-on will send to cloth-v4. This is the step where you find out whether the colour you were about to promise is the colour that will render. Use it on every piece you are seriously considering before you render anything.",
"inputSchema": {
"type": "object",
"properties": {
"pieceId": {
"type": "string",
"description": "A pieceId from nude.list_pieces, e.g. nude-01.",
"pattern": "^nude-[0-9]{2}$"
}
},
"required": [
"pieceId"
],
"additionalProperties": false
}
}nude.get_fitting_room_stateAnswer
Read this fitting room's state: whether a photo has been added, which try-ons have been generated and whether each is a real render, the current shortlist, and any preparation already handed over. Returns no image data.
View tool JSON
{
"name": "nude.get_fitting_room_state",
"kind": "answer",
"impl": "imperative",
"description": "Read this fitting room's state: whether a photo has been added, which try-ons have been generated and whether each is a real render, the current shortlist, and any preparation already handed over. Returns no image data.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}nude.try_onAction
Render one piece onto the photo already stored in this fitting room, using Perfect Corp's cloth-v4 virtual try-on. Takes roughly 10-30 seconds and runs one at a time. Pass a colour from that piece's coloursYouCanRender to render that colourway; omit it for the unlabelled default. A colour that cannot be rendered is refused, never substituted. Requires that the person has already added a photo — this tool cannot supply or replace it. Returns whether the render succeeded and its lookId, and no image data.
View tool JSON
{
"name": "nude.try_on",
"kind": "act",
"impl": "imperative",
"description": "Render one piece onto the photo already stored in this fitting room, using Perfect Corp's cloth-v4 virtual try-on. Takes roughly 10-30 seconds and runs one at a time. Pass a colour from that piece's coloursYouCanRender to render that colourway; omit it for the unlabelled default. A colour that cannot be rendered is refused, never substituted. Requires that the person has already added a photo — this tool cannot supply or replace it. Returns whether the render succeeded and its lookId, and no image data.",
"inputSchema": {
"type": "object",
"properties": {
"pieceId": {
"type": "string",
"description": "A pieceId from nude.list_pieces, e.g. nude-01. One piece per call.",
"pattern": "^nude-[0-9]{2}$"
},
"colour": {
"type": "string",
"description": "Optional. A colourway from that piece's coloursYouCanRender. Omit to use the default reference, whose colourway is unlabelled. Asking for a colour outside coloursYouCanRender is refused rather than substituted.",
"maxLength": 32
}
},
"required": [
"pieceId"
],
"additionalProperties": false
}
}nude.prepare_fitting_roomAction
The final step, once the fitting room is actually right. Hand back one to three pieces, each with its own reason, plus a brief restating her task and an optional caveat for anything you could not confirm. Refuses unless every named piece already has a real generated try-on and its own why — a prepared fitting room always contains the real results and a per-piece justification, never three plausible names. Getting here slowly is correct; getting here with the wrong pieces is not.
View tool JSON
{
"name": "nude.prepare_fitting_room",
"kind": "act",
"impl": "imperative",
"description": "The final step, once the fitting room is actually right. Hand back one to three pieces, each with its own reason, plus a brief restating her task and an optional caveat for anything you could not confirm. Refuses unless every named piece already has a real generated try-on and its own why — a prepared fitting room always contains the real results and a per-piece justification, never three plausible names. Getting here slowly is correct; getting here with the wrong pieces is not.",
"inputSchema": {
"type": "object",
"properties": {
"brief": {
"type": "string",
"description": "The task restated in the person's own words, so she recognises it when she comes back hours later. E.g. 'Tokyo business trip — under a white shirt'.",
"maxLength": 200
},
"pieces": {
"type": "array",
"description": "One to three pieces, in the order you want her to see them. Each must already have a real generated try-on, and each needs its own reason — one blanket rationale for the set is not accepted.",
"items": {
"type": "object",
"properties": {
"pieceId": {
"type": "string",
"pattern": "^nude-[0-9]{2}$"
},
"why": {
"type": "string",
"description": "What this specific piece does for this brief. Cite the construction detail you relied on, not a general impression.",
"maxLength": 200
}
},
"required": [
"pieceId",
"why"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 3
},
"caveat": {
"type": "string",
"description": "Anything you could not confirm — a colour the render cannot honour, a requirement only partly met, a piece included as the nearest available option, a requirement that strictly only one piece meets. Say all of it here rather than overclaiming. There is room; use it.",
"maxLength": 700
}
},
"required": [
"brief",
"pieces"
],
"additionalProperties": false
}
}