このMCPでできること
Supports AI fashion photoshoot production with garments, outfits, avatars, locations, art direction, image generation, backdrops, and reusable creative assets.
ツール
入力スキーマ
{'type': 'object', 'oneOf': [{'required': ['uploaded_file_id']}, {'required': ['generation_result_id']}, {'required': ['image_url']}], 'required': ['avatar_id', 'slot'], 'properties': {'slot': {'enum': ['upper_body_front', 'full_body_front', 'full_body_side', 'full_body_back', 'detail_eyes', 'detail_skin'], 'type': 'string', 'description': 'Reference slot to fill or replace.'}, 'avatar_id': {'type': 'integer', 'description': 'Owned avatar to update.', 'exclusiveMinimum': 0}, 'image_url': {'type': 'string', 'default': None, 'maxLength': 4096, 'minLength': 1, 'description': 'Public HTTP(S) image URL. Use exactly one source field.'}, 'uploaded_file_id': {'type': 'integer', 'default': None, 'description': 'Owned workspace file ID. Use exactly one source field.', 'exclusiveMinimum': 0}, 'generation_result_id': {'type': 'integer', 'default': None, 'description': 'Owned image result ID. Use exactly one source field.', 'exclusiveMinimum': 0}}, 'description': 'Fill one slot from exactly one workspace file, generation, or URL.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['backdrop_mode'], 'properties': {'color_hex': {'type': 'string', 'default': None, 'description': 'Required for solid mode, for example #FFFFFF.'}, 'image_url': {'type': 'string', 'default': None, 'minLength': 1, 'description': 'Public HTTPS foreground image URL; provide exactly one source.'}, 'backdrop_mode': {'enum': ['transparent', 'solid', 'image'], 'type': 'string', 'description': 'transparent removes the background, solid uses color_hex, and image uses background_image_url.'}, 'background_image_url': {'type': 'string', 'default': None, 'minLength': 1, 'description': 'Required for image mode; public HTTPS replacement background.'}, 'generation_result_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'Existing generation result foreground; provide exactly one source.'}, 'clothing_item_asset_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'Exact owned garment asset foreground; provide exactly one source. Find asset IDs with get_garment or list_garments.'}}, 'description': 'Input schema for the free canonical backdrop generation capability.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$defs': {'ArtDirectionReferenceImage': {'type': 'object', 'required': ['source_type', 'source_id'], 'properties': {'source_id': {'type': 'integer', 'minimum': 1, 'description': 'ID of the referenced asset.'}, 'source_type': {'$ref': '#/$defs/ArtDirectionReferenceImageSourceType', 'description': 'Asset kind used only for ArtDirection authoring context.'}}, 'description': 'Authoring-only visual reference attached to an ArtDirection.\n\nThese references help regenerate or iterate the markdown document; they are\nnot passed to fashion generation requests just because the ArtDirection is\nselected.'}, 'ArtDirectionAuthoringSourceType': {'enum': ['text', 'image_url', 'reference_image_attachment', 'public_url', 'uploaded_file', 'website_crawl'], 'type': 'string'}, 'ArtDirectionAuthoringSourceInput': {'type': 'object', 'required': ['source_type'], 'properties': {'url': {'type': 'string', 'default': None, 'maxLength': 2048}, 'text': {'type': 'string', 'default': None, 'maxLength': 50000}, 'image_url': {'type': 'string', 'default': None, 'maxLength': 2048}, 'source_type': {'$ref': '#/$defs/ArtDirectionAuthoringSourceType'}, 'uploaded_file_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'reference_image_attachment': {'$ref': '#/$defs/ArtDirectionReferenceImage', 'default': None}}}, 'ArtDirectionReferenceImageSourceType': {'enum': ['uploaded_file', 'generation_result', 'clothing_item', 'avatar', 'location'], 'type': 'string'}}, 'properties': {'name': {'type': 'string', 'default': None, 'maxLength': 200, 'minLength': 1, 'description': 'Optional requested ArtDirection name'}, 'save': {'type': 'boolean', 'default': False, 'description': 'Set true when the user wants to create, build, or save a reusable ArtDirection. Set false when the user explicitly wants an unsaved draft or brainstorming pass.'}, 'sources': {'type': 'array', 'items': {'$ref': '#/$defs/ArtDirectionAuthoringSourceInput'}, 'maxItems': 50, 'description': 'Supported authoring sources such as text, public URLs, image URLs, uploaded files, or durable reference image attachments'}, 'user_text': {'type': 'string', 'default': '', 'description': 'Conversation text to compile into ArtDirection markdown'}, 'image_urls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Draft-only reference image URLs to analyze into the ArtDirection. For saved ArtDirections, first save/select assets and pass reference_image_attachments.'}, 'reference_image_attachments': {'type': 'array', 'items': {'$ref': '#/$defs/ArtDirectionReferenceImage'}, 'description': 'Persistent authoring references as asset IDs. Use for save=true so the user can iterate the ArtDirection later. These are not generation-time references.'}}, 'description': 'Input schema for drafting an ArtDirection from text and reference images.'}
入力スキーマ
{'type': 'object', 'properties': {'camera': {'type': 'string', 'default': None, 'description': 'Optional camera key for context, e.g. midshot'}, 'user_text': {'type': 'string', 'default': '', 'description': "User's rough description of the person/model. Leave empty when the user wants the backend to invent a unique avatar prompt."}, 'model_slug': {'type': 'string', 'default': None, 'description': 'Optional image model slug for context'}, 'aspect_ratio': {'type': 'string', 'default': None, 'description': 'Optional aspect ratio for context, e.g. 9:16'}, 'camera_label': {'type': 'string', 'default': None, 'description': 'Optional human-readable camera label'}}, 'description': 'Input schema for building a reusable avatar/model generation prompt.'}
入力スキーマ
{'type': 'object', 'required': ['brief_id'], 'properties': {'execute': {'type': 'boolean', 'default': True, 'description': "Execute the brief immediately after confirming. Defaults true because MCP 'confirm the brief' means approve and run. Set false only when the user explicitly wants to save approval without starting generation."}, 'brief_id': {'type': 'integer', 'description': 'ID of the persisted brief to confirm', 'exclusiveMinimum': 0}}, 'description': 'Confirm and optionally execute an immutable canonical-command brief.'}
入力スキーマ
{'type': 'object', 'required': ['template_id'], 'properties': {'template_id': {'type': 'integer', 'minimum': 1, 'description': 'Generation Template ID'}, 'contract_version': {'type': 'string', 'default': None, 'maxLength': 128, 'minLength': 1, 'description': 'Workflow contract to target; omit to use the current authoring contract'}}, 'description': 'Build a detached Workflow Generate config from a generation preset.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$defs': {'ArtDirectionReferenceImage': {'type': 'object', 'required': ['source_type', 'source_id'], 'properties': {'source_id': {'type': 'integer', 'minimum': 1, 'description': 'ID of the referenced asset.'}, 'source_type': {'$ref': '#/$defs/ArtDirectionReferenceImageSourceType', 'description': 'Asset kind used only for ArtDirection authoring context.'}}, 'description': 'Authoring-only visual reference attached to an ArtDirection.\n\nThese references help regenerate or iterate the markdown document; they are\nnot passed to fashion generation requests just because the ArtDirection is\nselected.'}, 'ArtDirectionReferenceImageSourceType': {'enum': ['uploaded_file', 'generation_result', 'clothing_item', 'avatar', 'location'], 'type': 'string'}}, 'required': ['name', 'content_markdown'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Name for the ArtDirection'}, 'content_markdown': {'type': 'string', 'maxLength': 50000, 'minLength': 1, 'description': 'Complete ArtDirection markdown document. Prefer author_art_direction for rough briefs. If writing directly, every reusable alternative that should rotate across generations must live under `## Variation Controls` as `###` controls with `A. Option` lines; do not leave selectable worlds, pose families, or shot-role plans only in prose.'}, 'reference_image_attachments': {'type': 'array', 'items': {'$ref': '#/$defs/ArtDirectionReferenceImage'}, 'description': 'Authoring reference image attachments to keep with the ArtDirection. These are for iterating the markdown only, not generation-time references.'}}, 'description': 'Input schema for creating a company ArtDirection.'}
入力スキーマ
{'type': 'object', '$defs': {'AvatarReferenceInput': {'type': 'object', 'oneOf': [{'required': ['uploaded_file_id']}, {'required': ['generation_result_id']}, {'required': ['image_url']}], 'properties': {'slot': {'enum': ['upper_body_front', 'full_body_front', 'full_body_side', 'full_body_back', 'detail_eyes', 'detail_skin'], 'type': 'string', 'default': None, 'description': 'Reference slot. Generation results can derive this from avatar_creator.view; the first URL or workspace file defaults to upper_body_front.'}, 'image_url': {'type': 'string', 'default': None, 'maxLength': 4096, 'minLength': 1, 'description': 'Public HTTP(S) image URL used as this reference source.'}, 'uploaded_file_id': {'type': 'integer', 'default': None, 'description': 'Owned workspace file ID used as this reference source.', 'exclusiveMinimum': 0}, 'generation_result_id': {'type': 'integer', 'default': None, 'description': 'Owned completed avatar-creator result ID used as this reference source.', 'exclusiveMinimum': 0}}, 'description': 'One slot source: exactly one workspace file, generation, or URL.', 'additionalProperties': False}}, 'required': ['name', 'references'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'build': {'type': 'string', 'default': None, 'maxLength': 100, 'description': 'Optional concrete physical build. Never inferred.'}, 'age_range': {'type': 'string', 'default': None, 'maxLength': 20, 'description': 'Optional concrete age or age range. Never inferred.'}, 'height_cm': {'type': 'integer', 'default': None, 'maximum': 220, 'minimum': 40, 'description': 'Optional height in centimeters. Never inferred.'}, 'references': {'type': 'array', 'items': {'$ref': '#/$defs/AvatarReferenceInput'}, 'maxItems': 6, 'minItems': 1, 'description': 'Ordered reference sources for the new avatar.'}}, 'description': 'Create one avatar from generated, workspace, or URL references.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['name', 'image_url'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'Name for the reusable location/scene reference'}, 'tag_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Optional tag IDs to assign after creating the location'}, 'image_url': {'type': 'string', 'description': 'URL of the location/reference image'}, 'description': {'type': 'string', 'default': None, 'description': 'Optional location description. If omitted, the system analyzes the image.'}, 'thumbnail_url': {'type': 'string', 'default': None, 'description': 'Optional thumbnail URL'}, 'source_metadata': {'type': 'object', 'default': None, 'description': 'Optional provenance metadata for the source image', 'additionalProperties': {'type': 'string'}}}, 'description': 'Input schema for creating a reusable location/scene reference.'}
入力スキーマ
{'type': 'object', 'required': ['clothing_item_ids'], 'properties': {'name': {'type': 'string', 'default': None, 'maxLength': 100, 'description': 'Optional human-readable outfit name'}, 'is_active': {'type': 'boolean', 'default': False, 'description': 'Whether the outfit should be immediately active'}, 'clothing_item_ids': {'type': 'array', 'items': {'type': 'integer'}, 'minItems': 1, 'description': 'IDs of clothing items to combine into an outfit'}}, 'description': 'Input schema for creating an outfit from existing clothing item IDs.'}
入力スキーマ
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'Tag name (unique within the company)'}, 'color': {'type': 'string', 'default': None, 'description': "Optional hex color, e.g. '#22C55E'"}}, 'description': 'Input schema for creating a tag.'}
入力スキーマ
{'type': 'object', 'required': ['template_id'], 'properties': {'template_id': {'type': 'integer', 'minimum': 1, 'description': 'Template ID'}}, 'description': 'Input schema for deleting one company template.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['art_direction_id'], 'properties': {'name': {'type': 'string', 'default': None, 'maxLength': 200, 'minLength': 1, 'description': 'Optional name for the copy'}, 'art_direction_id': {'type': 'integer', 'minimum': 1, 'description': 'The ArtDirection ID to duplicate'}}, 'description': 'Input schema for duplicating a system or company ArtDirection.'}
入力スキーマ
{'type': 'object', 'required': ['operation'], 'properties': {'model': {'type': 'string', 'default': None, 'description': 'Specific model to use'}, 'duration': {'type': 'integer', 'default': None, 'description': 'Video duration in seconds (video only, e.g. 4, 5, 6, 8, 10)'}, 'num_items': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Number of items/images'}, 'operation': {'type': 'string', 'description': 'Operation: generate, edit, upscale, video'}, 'resolution': {'type': 'string', 'default': None, 'description': 'Output resolution when supported by the selected image or video model'}, 'generate_audio': {'type': 'boolean', 'default': False, 'description': 'Whether to generate audio (video only, doubles cost for most models)'}}, 'description': 'Input schema for estimating operation cost.'}
入力スキーマ
{'type': 'object', 'required': ['garments'], 'properties': {'garments': {'type': 'array', 'items': {'type': 'object', 'required': ['assets'], 'properties': {'name': {'type': 'string', 'default': None, 'description': 'Name for the garment. If omitted, derived from the front image filename.'}, 'assets': {'type': 'array', 'items': {'type': 'object', 'required': ['upload_handle'], 'properties': {'asset_kind': {'enum': ['full', 'detail'], 'type': 'string', 'default': None, 'description': 'Asset kind: full garment view or detail crop.'}, 'asset_role': {'enum': ['front', 'back', 'side', 'detail'], 'type': 'string', 'default': None, 'deprecated': True, 'description': 'Deprecated role-only adapter. Prefer asset_kind and asset_view.'}, 'asset_view': {'enum': ['front', 'back', 'side', 'unspecified'], 'type': 'string', 'default': None, 'description': 'Visible garment view. New detail uploads require front, back, or side.'}, 'upload_handle': {'type': 'string', 'minLength': 1, 'description': 'Owned upload handle returned by prepare_local_garment_upload'}}, 'description': 'One classified garment asset previously prepared and uploaded directly.', 'additionalProperties': False}, 'minItems': 1, 'description': 'Uploaded garment assets. Exactly one full front is required; full front/back/side views are unique and detail views can repeat.'}, 'gender': {'type': 'string', 'default': None, 'description': 'Target gender: male, female, unisex'}, 'description': {'type': 'string', 'default': None, 'description': 'Optional item-level garment description hint'}, 'processing_mode': {'type': 'string', 'default': None, 'description': "Optional image processing. 'background_removal' removes the background (the platform upload default); 'none' stores the image as-is. Omit to use background removal."}}, 'description': 'One garment assembled from directly uploaded local assets.', 'additionalProperties': False}, 'maxItems': 10, 'minItems': 1, 'description': 'Garments assembled from owned upload handles returned by prepare_local_garment_upload'}}, 'description': 'Finish garments from owned direct-upload handles.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['prompt'], 'properties': {'name': {'type': 'string', 'default': None, 'description': 'Optional name to carry with the avatar generation'}, 'view': {'enum': ['upper_body_front', 'full_body_front', 'full_body_side', 'full_body_back', 'detail_eyes', 'detail_skin'], 'type': 'string', 'default': 'upper_body_front', 'description': 'Reference view to generate. Defaults to the upper-body identity anchor.'}, 'build': {'type': 'string', 'default': None, 'maxLength': 100, 'description': 'Optional concrete physical build. Never inferred.'}, 'model': {'type': 'string', 'default': None, 'description': 'Optional image model slug or display name. Defaults to the cheapest active image generation model available to the account.'}, 'prompt': {'type': 'string', 'minLength': 3, 'description': 'Description of the person to render as a reusable avatar reference'}, 'age_range': {'type': 'string', 'default': None, 'maxLength': 20, 'description': 'Optional concrete age or age range. Never inferred.'}, 'avatar_id': {'type': 'integer', 'default': None, 'description': 'Optional existing avatar whose anchor fixes identity for a slot view. Not required when identity_reference_urls are supplied.', 'exclusiveMinimum': 0}, 'height_cm': {'type': 'integer', 'default': None, 'maximum': 220, 'minimum': 40, 'description': 'Optional height in centimeters. Never inferred.'}, 'expression': {'type': 'string', 'default': None, 'maxLength': 500, 'description': 'Exact expression instruction for a supported reference view. Replaces the configured neutral expression default.'}, 'num_images': {'type': 'integer', 'default': 1, 'maximum': 4, 'minimum': 1, 'description': 'Number of avatar candidate images to generate'}, 'identity_reference_urls': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'maxItems': 5, 'description': 'Person-image URLs that fix identity for a slot view. In a draft flow, pass the generated bust URL here before the avatar has been saved.'}}, 'description': 'Input schema for generating reusable avatar/model candidates.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['art_direction_id'], 'properties': {'art_direction_id': {'type': 'integer', 'minimum': 1, 'description': 'The ArtDirection ID to retrieve'}}, 'description': 'Input schema for getting an ArtDirection.'}
入力スキーマ
{'type': 'object', 'required': ['job_id'], 'properties': {'job_id': {'type': 'integer', 'minimum': 1, 'description': 'ArtDirection authoring job ID returned by author_art_direction'}}, 'description': 'Input schema for reading an asynchronous ArtDirection authoring job.'}
入力スキーマ
{'type': 'object', 'required': ['brief_id'], 'properties': {'brief_id': {'type': 'integer', 'description': 'Real persisted brief ID to load unchanged. Do not use 0, guessed IDs, or this tool for editing a visible brief.', 'exclusiveMinimum': 0}}, 'description': 'Input schema for loading a persisted brief for UI rehydration.'}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {}}
入力スキーマ
{'type': 'object', 'required': ['garment_id'], 'properties': {'garment_id': {'type': 'integer', 'description': 'The garment ID to retrieve'}}, 'description': 'Input schema for getting a specific garment.'}
入力スキーマ
{'type': 'object', 'properties': {'kind': {'type': 'string', 'default': None, 'description': "Filter by type: 'Image', 'Edit', 'Upscale', 'Video'"}, 'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number for pagination'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Number of items per page'}, 'query': {'type': 'string', 'default': None, 'minLength': 2, 'description': 'Hybrid search across generated image content, originating item names, and SKUs.'}, 'tag_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter by tag IDs (results must have at least one)'}, 'decision': {'enum': ['approved', 'rejected', 'undecided'], 'type': 'string', 'default': None, 'description': 'Filter by the unified result verdict.'}, 'end_date': {'type': 'string', 'default': None, 'description': 'Filter results created on or before this ISO date/datetime, e.g. 2026-04-27.'}, 'model_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter results to images generated with these AI models'}, 'avatar_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter results to images generated with these avatars'}, 'outfit_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter results to images generated with these outfits'}, 'start_date': {'type': 'string', 'default': None, 'description': 'Filter results created on or after this ISO date/datetime, e.g. 2026-04-20.'}, 'qa_statuses': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Filter by QA statuses, e.g. pending, processing, completed, error.'}, 'location_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter results to images generated with these locations'}, 'generation_id': {'type': 'integer', 'default': None, 'description': 'Filter by parent generation ID (lists all result images from one generation job)'}, 'decision_source': {'enum': ['auto', 'human'], 'type': 'string', 'default': None, 'description': 'Filter by the verdict source.'}, 'art_direction_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter results to images generated with these art directions'}, 'clothing_item_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter results to images generated with these clothing items'}, 'generation_result_id': {'type': 'integer', 'default': None, 'description': 'Look up a single result image by its generation_result_id (the exact integer ID required by QA/edit/upscale/video tools). Returns that one result directly.'}}, 'description': 'Input schema for listing generation results.'}
入力スキーマ
{'type': 'object', 'required': ['generation_id'], 'properties': {'generation_id': {'type': 'integer', 'description': "The generation ID to check. Returns raw payload, generation_setting, avatar_id, model_id, model_slug, and use_case. UI 'Gemini Pro' maps to model_slug nano-banana-pro or nano_banana_pro_clothing."}}, 'description': 'Input schema for checking generation status.'}
入力スキーマ
{'type': 'object', 'required': ['tag_id'], 'properties': {'tag_id': {'type': 'integer', 'description': 'Tag ID to look up'}, 'item_types': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': "Filter to specific types: 'clothing_item', 'avatar', 'outfit', 'generation_result', 'location'. Omit to get all."}}, 'description': 'Input schema for querying items by tag across entity types.'}
入力スキーマ
{'type': 'object', 'required': ['location_id'], 'properties': {'location_id': {'type': 'integer', 'description': 'The location ID to retrieve'}}, 'description': 'Input schema for getting a specific reusable location.'}
入力スキーマ
{'type': 'object', 'required': ['outfit_id'], 'properties': {'outfit_id': {'type': 'integer', 'minimum': 1, 'description': 'ID of the outfit to retrieve'}}, 'description': 'Input schema for reading one outfit.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$defs': {'TemplateKind': {'enum': ['generation_preset', 'batch_workflow'], 'type': 'string', 'description': 'generation_preset is writable; batch_workflow is retained read-only history.'}}, 'properties': {'share_code': {'type': 'string', 'default': None, 'pattern': '^t-[a-z0-9]{4}$', 'description': 'Public t-xxxx share code'}, 'template_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'Template ID'}, 'expected_template_kind': {'$ref': '#/$defs/TemplateKind', 'default': None, 'description': 'Optional expected kind. A mismatch returns both expected and actual kinds.'}}, 'description': 'Input schema for loading one company template.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {}}
入力スキーマ
{'type': 'object', '$defs': {'ArtDirectionReferenceImage': {'type': 'object', 'required': ['source_type', 'source_id'], 'properties': {'source_id': {'type': 'integer', 'minimum': 1, 'description': 'ID of the referenced asset.'}, 'source_type': {'$ref': '#/$defs/ArtDirectionReferenceImageSourceType', 'description': 'Asset kind used only for ArtDirection authoring context.'}}, 'description': 'Authoring-only visual reference attached to an ArtDirection.\n\nThese references help regenerate or iterate the markdown document; they are\nnot passed to fashion generation requests just because the ArtDirection is\nselected.'}, 'ArtDirectionAuthoringSourceType': {'enum': ['text', 'image_url', 'reference_image_attachment', 'public_url', 'uploaded_file', 'website_crawl'], 'type': 'string'}, 'ArtDirectionAuthoringSourceInput': {'type': 'object', 'required': ['source_type'], 'properties': {'url': {'type': 'string', 'default': None, 'maxLength': 2048}, 'text': {'type': 'string', 'default': None, 'maxLength': 50000}, 'image_url': {'type': 'string', 'default': None, 'maxLength': 2048}, 'source_type': {'$ref': '#/$defs/ArtDirectionAuthoringSourceType'}, 'uploaded_file_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'reference_image_attachment': {'$ref': '#/$defs/ArtDirectionReferenceImage', 'default': None}}}, 'ArtDirectionReferenceImageSourceType': {'enum': ['uploaded_file', 'generation_result', 'clothing_item', 'avatar', 'location'], 'type': 'string'}}, 'required': ['art_direction_id', 'feedback'], 'properties': {'name': {'type': 'string', 'default': None, 'maxLength': 200, 'minLength': 1, 'description': 'Optional rename request'}, 'save': {'type': 'boolean', 'default': False, 'description': 'False returns an unsaved revision draft; true updates this same company ArtDirection'}, 'sources': {'type': 'array', 'items': {'$ref': '#/$defs/ArtDirectionAuthoringSourceInput'}, 'description': 'Optional new supported authoring sources such as text, public URLs, or uploaded files'}, 'feedback': {'type': 'string', 'maxLength': 50000, 'minLength': 1, 'description': 'What the ArtDirection author should preserve, change, add, or remove'}, 'image_urls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Draft-only new visual sources; use persistent attachments when save=true'}, 'art_direction_id': {'type': 'integer', 'minimum': 1, 'description': 'Existing ArtDirection ID to revise'}, 'reference_image_attachments': {'type': 'array', 'items': {'$ref': '#/$defs/ArtDirectionReferenceImage'}, 'description': 'New persistent authoring references to add alongside existing references'}}, 'description': 'Input schema for revising an existing ArtDirection from feedback.'}
入力スキーマ
{'type': 'object', 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number for pagination'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1, 'description': 'Number of compact ArtDirection summaries per page'}, 'query': {'type': 'string', 'default': None, 'minLength': 2, 'description': 'Hybrid search across saved ArtDirection names and creative content.'}}, 'description': 'Input schema for listing available ArtDirections.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number for pagination'}, 'sort': {'type': 'string', 'default': None, 'description': "Sort order: 'field:direction', e.g. 'created_at:desc'. Default: created_at:desc"}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 100, 'minimum': 1, 'description': 'Number of items per page'}, 'query': {'type': 'string', 'default': None, 'minLength': 2, 'description': 'Hybrid search across avatar/model names, metadata, and visual attributes.'}, 'tag_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter to avatars with any of these tags'}, 'end_date': {'type': 'string', 'default': None, 'description': 'Filter: created on or before this date (ISO format)'}, 'avatar_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter to specific avatar IDs'}, 'start_date': {'type': 'string', 'default': None, 'description': 'Filter: created on or after this date (ISO format)'}, 'include_image_url': {'type': 'boolean', 'default': False, 'description': 'Set true when you need to inspect or reuse the avatar/model image URL.'}}, 'description': 'Input schema for listing avatars.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number for pagination'}, 'sort': {'type': 'string', 'default': None, 'description': "Sort order: 'field:direction', e.g. 'created_at:desc', 'clothing_item_name:asc'. Default: created_at:desc"}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 100, 'minimum': 1, 'description': 'Number of items per page'}, 'query': {'type': 'string', 'default': None, 'minLength': 2, 'description': 'Hybrid search across garment names, SKUs, metadata, and visual attributes.'}, 'tag_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter to garments with any of these tags'}, 'category': {'type': 'array', 'items': {'enum': ['activewear', 'baby_and_childrens_clothing', 'blouses', 'bodysuits', 'cardigans', 'corset_tops', 'hoodies', 'overshirts', 'polos', 'shirts', 'sweaters', 'sweatshirts', 't_shirts', 'tank_tops', 'tunics', 'dresses', 'lingerie', 'maternity_clothing', 'mens_undergarments', 'one_pieces', 'outerwear', 'outfit_sets', 'pants', 'shorts', 'skirts', 'skorts', 'sleepwear_and_loungewear', 'socks', 'suits', 'swimwear', 'traditional_and_ceremonial_clothing', 'uniforms_and_workwear', 'wedding_and_bridal_party_dresses', 'clothing_accessories', 'costumes_and_accessories', 'handbag_and_wallet_accessories', 'handbags_wallets_and_cases', 'jewelry', 'shoe_accessories', 'shoes', 'other'], 'type': 'string'}, 'default': None, 'description': 'Filter to garments in any of these canonical categories; OR with body_zone when both are given.'}, 'end_date': {'type': 'string', 'default': None, 'description': 'Filter: created on or before this date (ISO format)'}, 'body_zone': {'type': 'array', 'items': {'enum': ['upper_body', 'lower_body', 'full_body', 'footwear', 'accessory', 'other'], 'type': 'string'}, 'default': None, 'description': 'Filter to categories in any of these body zones; OR with category when both are given.'}, 'start_date': {'type': 'string', 'default': None, 'description': "Filter: created on or after this date (ISO format, e.g. '2025-06-01')"}, 'clothing_item_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter to specific garment IDs'}, 'include_image_url': {'type': 'boolean', 'default': False, 'description': 'Set true when the garment image itself is needed for visual display or reuse.'}, 'include_uncategorized': {'type': 'boolean', 'default': False, 'description': 'Also include garments with no category when category and/or body_zone filters are used.'}, 'exclude_clothing_item_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'maxItems': 100, 'description': 'Exclude these garment IDs, for example the attached garment.'}}, 'description': 'Input schema for listing garments.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number for pagination'}, 'sort': {'type': 'string', 'default': None, 'description': "Sort order: 'field:direction', e.g. 'created_at:desc', 'location_name:asc'. Default: created_at:desc"}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 100, 'minimum': 1, 'description': 'Number of items per page'}, 'query': {'type': 'string', 'default': None, 'minLength': 2, 'description': 'Hybrid search across location names, metadata, and visual attributes.'}, 'tag_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter to locations with any of these tags'}, 'end_date': {'type': 'string', 'default': None, 'description': 'Filter: created on or before this date (ISO format)'}, 'start_date': {'type': 'string', 'default': None, 'description': 'Filter: created on or after this date (ISO format)'}, 'location_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter to specific location IDs'}, 'include_image_url': {'type': 'boolean', 'default': False, 'description': 'Set true when the location/reference image URL is needed for inspection or reuse.'}}, 'description': 'Input schema for listing reusable location/scene references.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['model_type'], 'properties': {'model_type': {'type': 'string', 'description': 'Type: generation, edit, upscale, video, backdrop'}}, 'description': 'Input schema for listing available models by type.'}
入力スキーマ
{'type': 'object', 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number for pagination'}, 'sort': {'type': 'string', 'default': None, 'description': "Sort: 'field:direction'. Use 'latest_generation_at:desc' to surface recently generated outfits. Default: created_at:desc"}, 'limit': {'type': 'integer', 'default': 10, 'maximum': 100, 'minimum': 1, 'description': 'Number of items per page'}, 'query': {'type': 'string', 'default': None, 'minLength': 2, 'description': 'Search outfit names and contained garments.'}, 'source': {'enum': ['manual', 'auto', 'proposed'], 'type': 'string', 'default': None, 'description': 'Filter by outfit source.'}, 'tag_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter to outfits with any of these tags'}, 'end_date': {'type': 'string', 'default': None, 'description': 'Filter: created on or before this date (ISO format)'}, 'is_active': {'type': 'string', 'default': None, 'description': "Filter by status: 'true', 'false', or 'both' (default: both)"}, 'outfit_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter to specific outfit IDs'}, 'start_date': {'type': 'string', 'default': None, 'description': 'Filter: created on or after this date (ISO format)'}, 'clothing_item_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Filter to outfits containing any of these garments'}}, 'description': 'Input schema for listing outfits.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'properties': {}, 'description': 'Input schema for listing available tags.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$defs': {'CatalogScope': {'enum': ['library', 'owner_only'], 'type': 'string'}, 'TemplateKind': {'enum': ['generation_preset', 'batch_workflow'], 'type': 'string', 'description': 'generation_preset is writable; batch_workflow is retained read-only history.'}}, 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': 'Page number for pagination'}, 'use_case': {'type': 'string', 'default': None, 'minLength': 1, 'description': 'Filter by a use_case present in any stored command'}, 'share_code': {'type': 'string', 'default': None, 'pattern': '^t-[a-z0-9]{4}$', 'description': 'Return the template assigned this public t-xxxx share code'}, 'catalog_scope': {'$ref': '#/$defs/CatalogScope', 'default': None, 'description': 'Filter by library or owner_only. Owner-only templates are hidden unless explicitly requested.'}, 'template_kind': {'$ref': '#/$defs/TemplateKind', 'default': None, 'description': 'Filter generation presets or read-only historical batch_workflow records'}, 'items_per_page': {'type': 'integer', 'default': 50, 'maximum': 100, 'minimum': 1, 'description': 'Number of templates per page'}}, 'description': 'Input schema for listing company templates.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['context_items'], 'properties': {'context_items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'type'], 'properties': {'id': {'oneOf': [{'type': 'integer'}, {'type': 'string'}]}, 'key': {'type': 'string'}, 'name': {'type': 'string'}, 'refs': {'type': 'object'}, 'type': {'enum': ['clothing', 'models', 'outfits', 'generations', 'files', 'locations'], 'type': 'string'}, 'isVideo': {'type': 'boolean'}, 'mediaUrl': {'type': ['string', 'null']}, 'posterUrl': {'type': ['string', 'null']}, 'thumbnailUrl': {'type': ['string', 'null']}, 'schemaVersion': {'type': 'integer'}}}, 'description': 'Shoot Board items to append to the current list'}}}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'type': {'enum': ['clothing', 'models', 'outfits', 'generations', 'file', 'files', 'location', 'locations'], 'type': 'string', 'description': 'Context type to remove; omit to clear the entire Shoot Board'}}}
入力スキーマ
{'type': 'object', 'required': ['clips', 'aspect_ratio', 'base_resolution', 'fit_mode'], 'properties': {'clips': {'type': 'array', 'items': {'type': 'object', 'required': ['generation_result_id', 'order'], 'properties': {'muted': {'type': ['boolean', 'null']}, 'order': {'type': 'integer', 'minimum': 0}, 'speed': {'type': ['number', 'null']}, 'in_point': {'type': ['number', 'null']}, 'out_point': {'type': ['number', 'null']}, 'generation_result_id': {'type': 'integer', 'minimum': 1}}}, 'minItems': 1, 'description': 'Ordered generation-result clips to stitch into the montage'}, 'fit_mode': {'type': 'string', 'description': 'How each clip fits the output frame: contain or cover'}, 'aspect_ratio': {'type': 'string', 'description': 'Output video aspect ratio in W:H format'}, 'base_resolution': {'type': 'integer', 'minimum': 1, 'description': 'Output base resolution in pixels'}}}
入力スキーマ
{'type': 'object', 'required': ['model'], 'properties': {'model': {'type': 'string', 'description': 'Video model slug or supported model name'}, 'prompt': {'type': ['string', 'null'], 'description': 'Optional motion prompt for the video clip'}, 'duration': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Video duration in seconds; defaults to 5'}, 'image_url': {'type': ['string', 'null'], 'description': 'HTTPS source image URL; provide exactly one source'}, 'resolution': {'type': ['string', 'null'], 'description': 'Optional output resolution; defaults to 480p'}, 'generate_audio': {'type': ['boolean', 'null'], 'description': 'Include audio in the delivered video. False delivers a silent file; fixed-audio providers are muted after generation at the same credits.'}, 'last_frame_url': {'type': ['string', 'null'], 'description': 'Optional final-frame image URL for supported video models'}, 'uploaded_file_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Uploaded file ID to use as the source image; provide exactly one source'}, 'generation_result_id': {'type': ['integer', 'null'], 'minimum': 1, 'description': 'Existing generation result ID to use as the source image; provide exactly one source'}}}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {}}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'page': {'type': 'integer', 'minimum': 1, 'description': 'Page number for uploaded file results'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Maximum number of uploaded files per page'}}}
入力スキーマ
{'type': 'object', 'required': [], 'properties': {'context_items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'type'], 'properties': {'id': {'oneOf': [{'type': 'integer'}, {'type': 'string'}]}, 'key': {'type': 'string'}, 'name': {'type': 'string'}, 'refs': {'type': 'object'}, 'type': {'enum': ['clothing', 'models', 'outfits', 'generations', 'files', 'locations'], 'type': 'string'}, 'isVideo': {'type': 'boolean'}, 'mediaUrl': {'type': ['string', 'null']}, 'posterUrl': {'type': ['string', 'null']}, 'thumbnailUrl': {'type': ['string', 'null']}, 'schemaVersion': {'type': 'integer'}}}, 'description': 'Shoot Board items that replace the current list when context_state is omitted'}, 'context_state': {'type': 'object', 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'type'], 'properties': {'id': {'oneOf': [{'type': 'integer'}, {'type': 'string'}]}, 'key': {'type': 'string'}, 'name': {'type': 'string'}, 'refs': {'type': 'object'}, 'type': {'enum': ['clothing', 'models', 'outfits', 'generations', 'files', 'locations'], 'type': 'string'}, 'isVideo': {'type': 'boolean'}, 'mediaUrl': {'type': ['string', 'null']}, 'posterUrl': {'type': ['string', 'null']}, 'thumbnailUrl': {'type': ['string', 'null']}, 'schemaVersion': {'type': 'integer'}}}}, 'revision': {'type': 'integer'}, 'updatedAt': {'type': 'string'}, 'schemaVersion': {'type': 'integer'}, 'pendingRequest': {'type': ['object', 'null']}, 'draftSelectionKeys': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Complete Shoot Board state to sanitize and persist; takes precedence over context_items'}}}
入力スキーマ
{'type': 'object', 'required': ['parent_generation_result_id', 'image_base64'], 'properties': {'file_name': {'type': ['string', 'null'], 'description': 'Optional filename for the saved retouched image'}, 'mime_type': {'type': ['string', 'null'], 'description': 'Optional image MIME type; inferred from a data URL or defaults to image/png'}, 'operations': {'description': 'Optional retouch operation metadata stored with the child result'}, 'image_base64': {'type': 'string', 'description': 'Retouched image encoded as base64 or an image data URL'}, 'parent_generation_result_id': {'type': 'integer', 'minimum': 1, 'description': 'Generation result ID of the original image'}}}
入力スキーマ
{'type': 'object', 'required': ['files'], 'properties': {'files': {'type': 'array', 'items': {'type': 'object', 'required': ['file_name', 'content_type', 'content_length'], 'properties': {'file_name': {'type': 'string', 'maxLength': 255, 'minLength': 1, 'description': 'Local image filename only; never include its filesystem path'}, 'content_type': {'enum': ['image/jpeg', 'image/png', 'image/webp', 'image/avif', 'image/gif', 'image/bmp', 'image/tiff'], 'type': 'string', 'description': 'Image MIME type used by the direct upload'}, 'content_length': {'type': 'integer', 'maximum': 26214400, 'description': 'Exact local image size in bytes; maximum 25 MB', 'exclusiveMinimum': 0}}, 'description': 'Metadata for one client-local image that will be uploaded directly.', 'additionalProperties': False}, 'maxItems': 20, 'minItems': 1, 'description': 'Local image metadata in a stable order. The local paths never leave the client.'}}, 'description': 'Create direct-upload targets for client-local garment images.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$defs': {'GenerationIntent': {'type': 'object', 'required': ['num_images', 'model_slug'], 'properties': {'seed': {'type': 'integer', 'default': None}, 'do_qa': {'type': 'boolean', 'default': None, 'description': 'When true, enqueue QA after result storage and gate acceptance on QA.'}, 'camera': {'type': 'string', 'default': ''}, 'prompt': {'type': 'string', 'default': '', 'description': "Scene brief for this shot: setting, lighting, mood, camera/framing, pose — 2-5 compact positive sentences. Without art_direction_id this prompt reaches the image model as-is and is the entire creative direction: carry the shoot's world, lighting, and atmosphere here. With art_direction_id, the saved direction carries reusable style; add only per-shot intent. Supplied garment/avatar/reference images carry product appearance: refer to them semantically ('the supplied jacket'), never by image number — the backend appends the numbered reference map at dispatch. Styling intent (fit, tuck, drape, opening state) belongs here when it matters; re-described garment construction, product-fidelity warnings, and negative 'do not ...' blocks do not — with good references they degrade output. Say what to show, not what to avoid. Video commands: describe motion and camera movement. Video does not inherit the source generation's ArtDirection; omit art_direction_id to use only the source frame and this prompt. May be empty for upscale; generation routes validate separately."}, 'tag_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None}, 'children': {'type': 'array', 'items': {'$ref': '#/$defs/GenerationIntent'}, 'default': None, 'description': 'Nested generation requests to run after this generation completes. Every child must provide model_slug.'}, 'duration': {'type': 'integer', 'default': None}, 'use_case': {'type': 'string', 'default': None}, 'alignment': {'enum': ['left', 'center', 'right', 'top', 'bottom'], 'type': 'string', 'default': None}, 'avatar_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'color_hex': {'type': 'string', 'default': None, 'description': 'Canonical Backdrop solid or fallback color.'}, 'image_url': {'type': 'string', 'default': None}, 'outfit_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'model_slug': {'type': 'string', 'minLength': 1, 'description': 'Active AI model slug. Required for every generation command.'}, 'num_images': {'type': 'integer', 'minimum': 1}, 'resolution': {'type': 'string', 'default': None, 'maxLength': 32, 'minLength': 2, 'description': 'Model-defined output resolution. Legacy image tiers are normalized to 1K, 2K, or 4K; video and exact pixel presets retain their model-defined casing.'}, 'location_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'aspect_ratio': {'type': 'string', 'default': None}, 'extra_params': {'type': 'object', 'default': None, 'description': 'Model-specific extension parameters. Backdrop controls are not accepted here; use backdrop_mode, color_hex, and background_image_url.', 'additionalProperties': True}, 'img_ref_urls': {'type': 'array', 'items': {'type': 'string'}, 'default': None}, 'backdrop_mode': {'enum': ['transparent', 'solid', 'image'], 'type': 'string', 'default': None, 'description': 'Canonical Backdrop mode for new generation requests.'}, 'audio_ref_urls': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Public audio URLs supplied as model references. Only models that declare a positive max_reference_audio capability accept them.'}, 'camera_edit_id': {'type': 'string', 'default': None}, 'generate_audio': {'type': 'boolean', 'default': False, 'description': 'Include audio in the delivered video. False delivers a file with no audio stream; fixed-audio providers are muted after generation, without reducing native-generation credits.'}, 'last_frame_url': {'type': 'string', 'default': None}, 'max_qa_retries': {'type': 'integer', 'default': None, 'maximum': 5, 'minimum': 0, 'description': 'Maximum QA-triggered retry generations after the initial attempt.'}, 'upscale_factor': {'type': 'number', 'default': None}, 'video_ref_urls': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Public video URLs supplied as model references. Only models that declare a positive max_reference_videos capability accept them.'}, 'negative_prompt': {'type': 'string', 'default': None}, 'art_direction_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'clothing_item_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None}, 'target_resolution': {'type': 'string', 'default': None}, 'enhance_user_prompt': {'ui': {'editable': False, 'visibility': ['rest']}, 'type': 'boolean', 'default': None, 'deprecated': True, 'description': 'Deprecated REST compatibility alias. true is normalized at command preparation to the legacy prompt-enhancement ArtDirection ID; false has no effect. Prefer art_direction_id. Removal requires 90 consecutive days without production use; usage was last observed on 2026-07-26.'}, 'background_image_url': {'type': 'string', 'default': None, 'description': 'Canonical Backdrop background image URL.'}, 'last_frame_attachment': {'$ref': '#/$defs/GenerationReferenceAttachmentInput', 'default': None, 'description': "Durable reference to the photo the clip closes on, resolved to a URL at dispatch. The durable form of last_frame_url, for callers that hold an id rather than a link — a workflow wiring a step's output into a later step's last frame cannot know the URL when the graph is authored."}, 'reference_attachments': {'type': 'array', 'items': {'$ref': '#/$defs/GenerationReferenceAttachmentInput'}, 'default': None}, 'generation_result_parent_id': {'type': 'integer', 'default': None, 'minimum': 1}}, 'description': 'Caller-owned model-generation intent shared by every public adapter.\n\nAuthentication-derived identity deliberately does not belong here. REST,\nAgent, MCP, batch, and integrations all submit this exact contract; the\ncommand planner combines it with server-owned execution context later. MCP omits webhook callback configuration, which remains API-only.', 'additionalProperties': False}, 'GenerationCommand': {'type': 'object', 'required': ['schema_version', 'input'], 'properties': {'input': {'$ref': '#/$defs/GenerationIntent'}, 'source': {'type': 'object', 'oneOf': [{'type': 'object', 'required': ['type', 'generation_result_id'], 'properties': {'type': {'type': 'string', 'const': 'generation_result'}, 'generation_result_id': {'type': 'integer', 'minimum': 1}}}, {'type': 'object', 'required': ['type', 'uploaded_file_id'], 'properties': {'type': {'type': 'string', 'const': 'uploaded_file'}, 'uploaded_file_id': {'type': 'integer', 'minimum': 1}}}, {'type': 'object', 'required': ['type', 'image_url'], 'properties': {'type': {'type': 'string', 'const': 'public_url'}, 'image_url': {'type': 'string', 'minLength': 1}}}, {'type': 'object', 'required': ['type', 'post_claim_reference', 'step_index', 'output_index'], 'properties': {'type': {'type': 'string', 'const': 'pipeline_step'}, 'step_index': {'type': 'integer', 'minimum': 0}, 'output_index': {'type': 'integer', 'minimum': 0}, 'post_claim_reference': {'type': 'string', 'minLength': 1}}, 'description': 'Durable identity for a source produced by an earlier pipeline step.'}], 'default': None, 'properties': {'type': {'enum': ['generation_result', 'uploaded_file', 'public_url', 'pipeline_step'], 'type': 'string'}, 'image_url': {'type': 'string', 'minLength': 1}, 'step_index': {'type': 'integer', 'minimum': 0}, 'output_index': {'type': 'integer', 'minimum': 0}, 'uploaded_file_id': {'type': 'integer', 'minimum': 1}, 'generation_result_id': {'type': 'integer', 'minimum': 1}, 'post_claim_reference': {'type': 'string', 'minLength': 1}}, 'discriminator': {'propertyName': 'type'}}, 'schema_version': {'type': 'integer', 'const': 2}}, 'description': "Versioned command shared by REST, Agent, MCP, jobs, and briefs.\n\nThe nested ``input`` is intentionally the API's public intent model. A\nfield added there therefore appears automatically in this command's JSON\nschema, serialization, and persisted brief representation.", 'additionalProperties': False}, 'GenerationReferenceAttachmentInput': {'type': 'object', 'required': ['type'], 'properties': {'side': {'enum': ['front', 'back'], 'type': 'string', 'default': None}, 'type': {'enum': ['uploaded_file', 'generation_result', 'location', 'avatar', 'clothing_item', 'outfit'], 'type': 'string'}, 'avatar_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'outfit_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'Outfit reference. The generation uses the front image of every garment in the outfit, as if each were attached as clothing_item.'}, 'location_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'clothing_item_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'uploaded_file_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'generation_result_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'clothing_item_asset_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'Exact durable clothing asset reference. Provide with clothing_item_id; preferred over the deprecated side selector for repeated detail assets.'}}}}, 'required': ['commands'], 'properties': {'commands': {'type': 'array', 'items': {'$ref': '#/$defs/GenerationCommand'}, 'minItems': 1, 'description': "Canonical generation commands. Each command contains the MCP-safe GenerationIntent fields and a durable source reference. Write each input.prompt as a compact positive scene description (setting, lighting, mood, camera, pose — for video, motion and camera movement); without art_direction_id the prompt is the entire creative direction, so give it the full scene. The attached garment/avatar/reference images carry product appearance, so never pad prompts with restated garment construction details, product-fidelity warnings, or negative 'do not' instruction blocks; styling intent (fit, tuck, drape) is fine. For video commands, attach available full back or side garment assets that the camera may reveal through input.reference_attachments when capacity permits. Do not combine reference_attachments with img_ref_urls; uploaded garment assets are not attached automatically. Webhook callback configuration is API-only."}, 'creative_context': {'type': 'string', 'default': None, 'description': "Required for photoshoot proposals and brief rewrites. Summarize the shoot-level creative approach that guided garment combos, avatars, prompts, and pipeline steps. By default prefer one cohesive art direction across the photoshoot, e.g. 'urban summer editorial', 'standard grey e-commerce', or 'sporty studio catalog'. Per-look prompts may differ for garment details, pose, framing, or avatar, but should feel part of the same shoot unless the user explicitly asks for multiple art directions, split concepts, A/B routes, or varied campaign directions. The assistant should explain this art direction to the user after proposing the brief and ask if they want changes."}, 'execute_immediately': {'type': 'boolean', 'default': False, 'description': 'Set true only when the user explicitly asks to prepare/create/generate/run the photoshoot without another review step. When true, Uwear persists the brief, confirms it, and executes it directly if credits and validation allow; otherwise it falls back to the editable BriefProposal.'}}, 'description': 'Propose a brief made exclusively of canonical generation commands.'}
入力スキーマ
{'type': 'object', '$defs': {'MontageItemInput': {'type': 'object', 'required': ['type'], 'properties': {'type': {'enum': ['video', 'image'], 'type': 'string', 'description': "'video' for existing video, 'image' for an image that needs video generation first"}, 'muted': {'type': 'boolean', 'default': False, 'description': 'Mute audio for this item'}, 'speed': {'type': 'number', 'default': 1.0, 'maximum': 4.0, 'minimum': 0.25, 'description': 'Playback speed multiplier (0.25-4.0)'}, 'prompt': {'type': 'string', 'default': None, 'description': 'Per-image motion prompt for video generation. Make it specific to this image and the requested movement, camera motion, vibe, and pacing.'}, 'duration': {'type': 'integer', 'default': None, 'description': 'Exact generated video duration in seconds for image items. If omitted, target_duration can be used instead.'}, 'end_time': {'type': 'number', 'default': None, 'description': 'Optional trim end time in seconds for this clip', 'exclusiveMinimum': 0}, 'image_url': {'type': 'string', 'default': None, 'description': 'URL of image to use as first frame (alternative to image_result_id)'}, 'start_time': {'type': 'number', 'default': None, 'minimum': 0, 'description': 'Optional trim start time in seconds for this clip'}, 'video_model': {'type': 'string', 'default': None, 'description': "Video model slug (required when type='image'). Use list_models(model_type='video') to see options."}, 'generate_audio': {'type': 'boolean', 'default': False, 'description': 'Generate audio with the video'}, 'last_frame_url': {'type': 'string', 'default': None, 'description': 'URL of last frame image for first-to-last video generation'}, 'image_result_id': {'type': 'integer', 'default': None, 'description': "ID of image GenerationResult to use as first frame (required when type='image')"}, 'target_duration': {'type': 'number', 'default': None, 'description': 'Desired final clip length in seconds. For existing videos, this trims from the start by default. For image items, this becomes the generated video duration.', 'exclusiveMinimum': 0}, 'video_result_id': {'type': 'integer', 'default': None, 'description': "ID of video GenerationResult (required when type='video')"}}, 'description': 'A single item in a montage proposal. Either an existing video or an image to generate video from.'}}, 'required': ['items'], 'properties': {'items': {'type': 'array', 'items': {'$ref': '#/$defs/MontageItemInput'}, 'maxItems': 10, 'minItems': 1, 'description': 'Ordered list of montage items. Each is either an existing video or an image needing video generation. Min 1, max 10.'}, 'aspect_ratio': {'type': 'string', 'default': '9:16', 'description': "Output aspect ratio (e.g. '9:16', '16:9', '1:1')"}, 'base_resolution': {'type': 'integer', 'default': 1080, 'maximum': 4320, 'minimum': 360, 'description': 'Output resolution height in pixels'}}, 'description': 'Input schema for proposing a montage (mix of existing videos and images to generate).'}
入力スキーマ
{'type': 'object', 'required': ['clothing_item_ids'], 'properties': {'max_outfits': {'type': 'integer', 'default': 6, 'maximum': 24, 'minimum': 1, 'description': 'Maximum number of outfit proposals to return'}, 'instructions': {'type': 'string', 'default': None, 'maxLength': 2000, 'description': 'Optional styling brief, occasion, season, constraints, or vibe'}, 'clothing_item_ids': {'type': 'array', 'items': {'type': 'integer'}, 'maxItems': 100, 'minItems': 1, 'description': 'Accessible clothing item IDs to combine into outfit proposals'}}, 'description': 'Input schema for proposing outfit combinations from selected garments.'}
入力スキーマ
{'type': 'object', 'required': ['generation_result_ids'], 'properties': {'max_qa_retries': {'type': 'integer', 'default': 0, 'maximum': 5, 'minimum': 0, 'description': 'Maximum QA-triggered retry generations to allow. Retry generations can cost additional generation credits.'}, 'generation_result_ids': {'type': 'array', 'items': {'type': 'integer'}, 'maxItems': 50, 'minItems': 1, 'description': 'Generation result IDs to QA. Queued or requeued QA costs 1 credit per result.'}}, 'description': 'Input schema for queueing QA on existing generation results.'}
入力スキーマ
{'type': 'object', 'required': ['generation_result_ids'], 'properties': {'generation_result_ids': {'type': 'array', 'items': {'type': 'integer'}, 'maxItems': 50, 'minItems': 1, 'description': 'Generation result IDs to read QA for'}}, 'description': 'Input schema for reading QA rows for generation results.'}
入力スキーマ
{'type': 'object', 'required': ['prompt', 'expected_types'], 'properties': {'prompt': {'type': 'string', 'description': "Instruction shown to the user, e.g. 'Select the clothing items you want to use and add them to the Shoot Board'"}, 'min_items': {'type': 'integer', 'default': 1, 'description': 'Minimum number of items the user must provide'}, 'expected_types': {'type': 'array', 'items': {'type': 'string'}, 'description': "Accepted item types (match panel tabs): 'clothing', 'models', 'outfits', 'generations', 'files'. Legacy 'file' is accepted as an alias for 'files'."}}, 'description': 'Input schema for requesting user-selected items from the MCP app/gallery.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['generation_result_id', 'name'], 'properties': {'name': {'type': 'string', 'description': 'Name for the saved avatar/model'}, 'generation_result_id': {'type': 'integer', 'description': 'Completed image result ID returned by generate_avatar. Normal text-to-image results are not eligible because they do not contain reopenable avatar-creator inputs.', 'exclusiveMinimum': 0}, 'additional_result_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'maxItems': 5, 'description': 'Other completed generate_avatar result IDs to save into their own avatar_creator.view slots in the same avatar.'}}, 'description': 'Input schema for saving a completed avatar generation result.'}
入力スキーマ
{'type': 'object', '$defs': {'OpenAIFile': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string'}, 'file_name': {'type': 'string'}, 'mime_type': {'type': 'string'}, 'download_url': {'type': 'string'}}, 'additionalProperties': False}, 'ReferenceChatFileUploadItem': {'type': 'object', 'properties': {'name': {'type': 'string', 'default': None, 'description': 'Alternate display name for the saved reference file'}, 'file_name': {'type': 'string', 'default': None, 'description': 'Display name for the saved reference file'}, 'image_url': {'type': 'string', 'default': None, 'description': 'Resolved download URL. Used by the Uwear app when recovering a chat file ID.'}, 'mime_type': {'type': 'string', 'default': None, 'description': 'MIME/content type, e.g. image/png'}}, 'description': 'One reference file upload item for chat-file batch upload.'}}, 'properties': {'files': {'type': 'array', 'items': {'$ref': '#/$defs/ReferenceChatFileUploadItem'}, 'default': None, 'maxItems': 10, 'description': 'Reference file metadata in the same order as image_file_1, image_file_2, etc. No base64.'}, 'file_name': {'type': 'string', 'default': None, 'description': 'Single recovered display name'}, 'image_url': {'type': 'string', 'default': None, 'description': 'Single resolved download URL used by automatic opaque-file recovery.'}, 'mime_type': {'type': 'string', 'default': None, 'description': 'Single recovered MIME/content type, e.g. image/png'}, 'image_file_1': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_2': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_3': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_4': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_5': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_6': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_7': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_8': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_9': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_10': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}}, 'description': 'Input schema for saving reference files from chat file references.'}
入力スキーマ
{'type': 'object', '$defs': {'CatalogScope': {'enum': ['library', 'owner_only'], 'type': 'string'}, 'TemplateKind': {'enum': ['generation_preset', 'batch_workflow'], 'type': 'string', 'description': 'generation_preset is writable; batch_workflow is retained read-only history.'}, 'TemplatePayload': {'type': 'object', 'required': ['payload_schema_version', 'commands'], 'properties': {'commands': {'type': 'array', 'items': {'$ref': '#/$defs/GenerationCommand'}, 'minItems': 1}, 'pairing_policy': {'type': 'string', 'const': 'one_workflow_per_row', 'default': None}, 'payload_schema_version': {'type': 'integer', 'const': 1}}, 'additionalProperties': False}, 'GenerationIntent': {'type': 'object', 'required': ['num_images', 'model_slug'], 'properties': {'seed': {'type': 'integer', 'default': None}, 'do_qa': {'type': 'boolean', 'default': None, 'description': 'When true, enqueue QA after result storage and gate acceptance on QA.'}, 'camera': {'type': 'string', 'default': ''}, 'prompt': {'type': 'string', 'default': '', 'description': "Scene brief for this shot: setting, lighting, mood, camera/framing, pose — 2-5 compact positive sentences. Without art_direction_id this prompt reaches the image model as-is and is the entire creative direction: carry the shoot's world, lighting, and atmosphere here. With art_direction_id, the saved direction carries reusable style; add only per-shot intent. Supplied garment/avatar/reference images carry product appearance: refer to them semantically ('the supplied jacket'), never by image number — the backend appends the numbered reference map at dispatch. Styling intent (fit, tuck, drape, opening state) belongs here when it matters; re-described garment construction, product-fidelity warnings, and negative 'do not ...' blocks do not — with good references they degrade output. Say what to show, not what to avoid. Video commands: describe motion and camera movement. Video does not inherit the source generation's ArtDirection; omit art_direction_id to use only the source frame and this prompt. May be empty for upscale; generation routes validate separately."}, 'tag_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None}, 'children': {'type': 'array', 'items': {'$ref': '#/$defs/GenerationIntent'}, 'default': None, 'description': 'Nested generation requests to run after this generation completes. Every child must provide model_slug.'}, 'duration': {'type': 'integer', 'default': None}, 'use_case': {'type': 'string', 'default': None}, 'alignment': {'enum': ['left', 'center', 'right', 'top', 'bottom'], 'type': 'string', 'default': None}, 'avatar_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'color_hex': {'type': 'string', 'default': None, 'description': 'Canonical Backdrop solid or fallback color.'}, 'image_url': {'type': 'string', 'default': None}, 'outfit_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'model_slug': {'type': 'string', 'minLength': 1, 'description': 'Active AI model slug. Required for every generation command.'}, 'num_images': {'type': 'integer', 'minimum': 1}, 'resolution': {'type': 'string', 'default': None, 'maxLength': 32, 'minLength': 2, 'description': 'Model-defined output resolution. Legacy image tiers are normalized to 1K, 2K, or 4K; video and exact pixel presets retain their model-defined casing.'}, 'location_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'aspect_ratio': {'type': 'string', 'default': None}, 'extra_params': {'type': 'object', 'default': None, 'description': 'Model-specific extension parameters. Backdrop controls are not accepted here; use backdrop_mode, color_hex, and background_image_url.', 'additionalProperties': True}, 'img_ref_urls': {'type': 'array', 'items': {'type': 'string'}, 'default': None}, 'backdrop_mode': {'enum': ['transparent', 'solid', 'image'], 'type': 'string', 'default': None, 'description': 'Canonical Backdrop mode for new generation requests.'}, 'audio_ref_urls': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Public audio URLs supplied as model references. Only models that declare a positive max_reference_audio capability accept them.'}, 'camera_edit_id': {'type': 'string', 'default': None}, 'generate_audio': {'type': 'boolean', 'default': False, 'description': 'Include audio in the delivered video. False delivers a file with no audio stream; fixed-audio providers are muted after generation, without reducing native-generation credits.'}, 'last_frame_url': {'type': 'string', 'default': None}, 'max_qa_retries': {'type': 'integer', 'default': None, 'maximum': 5, 'minimum': 0, 'description': 'Maximum QA-triggered retry generations after the initial attempt.'}, 'upscale_factor': {'type': 'number', 'default': None}, 'video_ref_urls': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Public video URLs supplied as model references. Only models that declare a positive max_reference_videos capability accept them.'}, 'negative_prompt': {'type': 'string', 'default': None}, 'art_direction_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'clothing_item_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None}, 'target_resolution': {'type': 'string', 'default': None}, 'enhance_user_prompt': {'ui': {'editable': False, 'visibility': ['rest']}, 'type': 'boolean', 'default': None, 'deprecated': True, 'description': 'Deprecated REST compatibility alias. true is normalized at command preparation to the legacy prompt-enhancement ArtDirection ID; false has no effect. Prefer art_direction_id. Removal requires 90 consecutive days without production use; usage was last observed on 2026-07-26.'}, 'background_image_url': {'type': 'string', 'default': None, 'description': 'Canonical Backdrop background image URL.'}, 'last_frame_attachment': {'$ref': '#/$defs/GenerationReferenceAttachmentInput', 'default': None, 'description': "Durable reference to the photo the clip closes on, resolved to a URL at dispatch. The durable form of last_frame_url, for callers that hold an id rather than a link — a workflow wiring a step's output into a later step's last frame cannot know the URL when the graph is authored."}, 'reference_attachments': {'type': 'array', 'items': {'$ref': '#/$defs/GenerationReferenceAttachmentInput'}, 'default': None}, 'generation_result_parent_id': {'type': 'integer', 'default': None, 'minimum': 1}}, 'description': 'Caller-owned model-generation intent shared by every public adapter.\n\nAuthentication-derived identity deliberately does not belong here. REST,\nAgent, MCP, batch, and integrations all submit this exact contract; the\ncommand planner combines it with server-owned execution context later. MCP omits webhook callback configuration, which remains API-only.', 'additionalProperties': False}, 'GenerationCommand': {'type': 'object', 'required': ['schema_version', 'input'], 'properties': {'input': {'$ref': '#/$defs/GenerationIntent'}, 'source': {'type': 'object', 'oneOf': [{'type': 'object', 'required': ['type', 'generation_result_id'], 'properties': {'type': {'type': 'string', 'const': 'generation_result'}, 'generation_result_id': {'type': 'integer', 'minimum': 1}}}, {'type': 'object', 'required': ['type', 'uploaded_file_id'], 'properties': {'type': {'type': 'string', 'const': 'uploaded_file'}, 'uploaded_file_id': {'type': 'integer', 'minimum': 1}}}, {'type': 'object', 'required': ['type', 'image_url'], 'properties': {'type': {'type': 'string', 'const': 'public_url'}, 'image_url': {'type': 'string', 'minLength': 1}}}, {'type': 'object', 'required': ['type', 'post_claim_reference', 'step_index', 'output_index'], 'properties': {'type': {'type': 'string', 'const': 'pipeline_step'}, 'step_index': {'type': 'integer', 'minimum': 0}, 'output_index': {'type': 'integer', 'minimum': 0}, 'post_claim_reference': {'type': 'string', 'minLength': 1}}, 'description': 'Durable identity for a source produced by an earlier pipeline step.'}], 'default': None, 'properties': {'type': {'enum': ['generation_result', 'uploaded_file', 'public_url', 'pipeline_step'], 'type': 'string'}, 'image_url': {'type': 'string', 'minLength': 1}, 'step_index': {'type': 'integer', 'minimum': 0}, 'output_index': {'type': 'integer', 'minimum': 0}, 'uploaded_file_id': {'type': 'integer', 'minimum': 1}, 'generation_result_id': {'type': 'integer', 'minimum': 1}, 'post_claim_reference': {'type': 'string', 'minLength': 1}}, 'discriminator': {'propertyName': 'type'}}, 'schema_version': {'type': 'integer', 'const': 2}}, 'description': "Versioned command shared by REST, Agent, MCP, jobs, and briefs.\n\nThe nested ``input`` is intentionally the API's public intent model. A\nfield added there therefore appears automatically in this command's JSON\nschema, serialization, and persisted brief representation.", 'additionalProperties': False}, 'GenerationReferenceAttachmentInput': {'type': 'object', 'required': ['type'], 'properties': {'side': {'enum': ['front', 'back'], 'type': 'string', 'default': None}, 'type': {'enum': ['uploaded_file', 'generation_result', 'location', 'avatar', 'clothing_item', 'outfit'], 'type': 'string'}, 'avatar_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'outfit_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'Outfit reference. The generation uses the front image of every garment in the outfit, as if each were attached as clothing_item.'}, 'location_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'clothing_item_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'uploaded_file_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'generation_result_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'clothing_item_asset_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'Exact durable clothing asset reference. Provide with clothing_item_id; preferred over the deprecated side selector for repeated detail assets.'}}}}, 'required': ['name', 'template_kind', 'payload'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Template name'}, 'payload': {'$ref': '#/$defs/TemplatePayload', 'description': 'Versioned template payload containing canonical generation commands'}, 'description': {'type': 'string', 'default': None, 'description': 'Optional sentence explaining when to use the template'}, 'template_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'Template ID when replacing an existing template'}, 'catalog_scope': {'$ref': '#/$defs/CatalogScope', 'default': 'library', 'description': 'Template catalog scope: library or owner_only'}, 'template_kind': {'$ref': '#/$defs/TemplateKind', 'description': 'Template kind: generation_preset. Legacy batch_workflow writes are retired.'}, 'expected_revision': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'Current revision when replacing an existing template; omit for create'}}, 'description': 'Create a template or fully replace one at an expected revision.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Maximum number of hybrid matches to return'}, 'query': {'type': 'string', 'minLength': 2, 'description': 'Short keyword query: 2 to 5 words, one concept per call, or an exact name/SKU/ID. Every word must match for lexical results, so long sentences can return no lexical matches. Describing a garment finds that garment, not pieces to pair with it.'}, 'item_types': {'type': 'array', 'items': {'enum': ['clothing_item', 'avatar', 'location', 'art_direction', 'uploaded_file', 'generation_result'], 'type': 'string'}, 'default': None, 'description': 'Optional item types to search. Omit to search clothing, avatars/models, locations, art directions, uploaded files, and generation results.'}, 'refresh_index': {'type': 'boolean', 'default': False, 'description': 'Deprecated compatibility input. No index refresh is performed, even when true. Search uses the maintained index and current lexical metadata. Leave false.'}, 'exclude_clothing_item_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'maxItems': 100, 'description': 'Exclude these garment IDs after ranking and before the result limit; other item types are unaffected.'}}, 'description': 'Input schema for universal hybrid library search.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', 'required': ['request_id', 'feedback_type', 'message'], 'properties': {'message': {'type': 'string', 'maxLength': 10000, 'minLength': 1, 'description': 'The report the user explicitly approved. Include useful reproduction details, but never add secrets, credentials, full conversation history, raw provider payloads, or private URLs.'}, 'subject': {'type': 'string', 'default': None, 'maxLength': 200, 'minLength': 1, 'description': 'Short summary of the confirmed report.'}, 'request_id': {'type': 'string', 'maxLength': 128, 'minLength': 8, 'description': 'Stable unique ID for this submission. Reuse the same value only when retrying the same report.'}, 'feedback_type': {'enum': ['bug_report', 'feature_request'], 'type': 'string', 'description': 'Use bug_report for broken behavior or feature_request for an idea or improvement.'}, 'related_generation_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'Optional Uwear generation ID directly related to the report.'}, 'related_generation_result_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'Optional Uwear generation-result ID directly related to the report.'}}, 'description': 'Input schema for confirmed product feedback submissions.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$defs': {'ArtDirectionReferenceImage': {'type': 'object', 'required': ['source_type', 'source_id'], 'properties': {'source_id': {'type': 'integer', 'minimum': 1, 'description': 'ID of the referenced asset.'}, 'source_type': {'$ref': '#/$defs/ArtDirectionReferenceImageSourceType', 'description': 'Asset kind used only for ArtDirection authoring context.'}}, 'description': 'Authoring-only visual reference attached to an ArtDirection.\n\nThese references help regenerate or iterate the markdown document; they are\nnot passed to fashion generation requests just because the ArtDirection is\nselected.'}, 'ArtDirectionReferenceImageSourceType': {'enum': ['uploaded_file', 'generation_result', 'clothing_item', 'avatar', 'location'], 'type': 'string'}}, 'required': ['art_direction_id'], 'properties': {'name': {'type': 'string', 'default': None, 'maxLength': 200, 'minLength': 1, 'description': 'Updated ArtDirection name'}, 'art_direction_id': {'type': 'integer', 'minimum': 1, 'description': 'The ArtDirection ID to update'}, 'content_markdown': {'type': 'string', 'default': None, 'maxLength': 50000, 'minLength': 1, 'description': 'Updated complete ArtDirection markdown. If editing directly, every reusable alternative that should rotate across generations must live under `## Variation Controls` as `###` controls with `A. Option` lines; do not leave selectable worlds, pose families, or shot-role plans only in prose.'}, 'reference_image_attachments': {'type': 'array', 'items': {'$ref': '#/$defs/ArtDirectionReferenceImage'}, 'default': None, 'description': 'Replacement authoring reference image attachments. These are for iterating the markdown only, not generation-time references.'}}, 'description': 'Input schema for updating a company ArtDirection.'}
入力スキーマ
{'type': 'object', '$defs': {'GenerationIntent': {'type': 'object', 'required': ['num_images', 'model_slug'], 'properties': {'seed': {'type': 'integer', 'default': None}, 'do_qa': {'type': 'boolean', 'default': None, 'description': 'When true, enqueue QA after result storage and gate acceptance on QA.'}, 'camera': {'type': 'string', 'default': ''}, 'prompt': {'type': 'string', 'default': '', 'description': "Scene brief for this shot: setting, lighting, mood, camera/framing, pose — 2-5 compact positive sentences. Without art_direction_id this prompt reaches the image model as-is and is the entire creative direction: carry the shoot's world, lighting, and atmosphere here. With art_direction_id, the saved direction carries reusable style; add only per-shot intent. Supplied garment/avatar/reference images carry product appearance: refer to them semantically ('the supplied jacket'), never by image number — the backend appends the numbered reference map at dispatch. Styling intent (fit, tuck, drape, opening state) belongs here when it matters; re-described garment construction, product-fidelity warnings, and negative 'do not ...' blocks do not — with good references they degrade output. Say what to show, not what to avoid. Video commands: describe motion and camera movement. Video does not inherit the source generation's ArtDirection; omit art_direction_id to use only the source frame and this prompt. May be empty for upscale; generation routes validate separately."}, 'tag_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None}, 'children': {'type': 'array', 'items': {'$ref': '#/$defs/GenerationIntent'}, 'default': None, 'description': 'Nested generation requests to run after this generation completes. Every child must provide model_slug.'}, 'duration': {'type': 'integer', 'default': None}, 'use_case': {'type': 'string', 'default': None}, 'alignment': {'enum': ['left', 'center', 'right', 'top', 'bottom'], 'type': 'string', 'default': None}, 'avatar_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'color_hex': {'type': 'string', 'default': None, 'description': 'Canonical Backdrop solid or fallback color.'}, 'image_url': {'type': 'string', 'default': None}, 'outfit_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'model_slug': {'type': 'string', 'minLength': 1, 'description': 'Active AI model slug. Required for every generation command.'}, 'num_images': {'type': 'integer', 'minimum': 1}, 'resolution': {'type': 'string', 'default': None, 'maxLength': 32, 'minLength': 2, 'description': 'Model-defined output resolution. Legacy image tiers are normalized to 1K, 2K, or 4K; video and exact pixel presets retain their model-defined casing.'}, 'location_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'aspect_ratio': {'type': 'string', 'default': None}, 'extra_params': {'type': 'object', 'default': None, 'description': 'Model-specific extension parameters. Backdrop controls are not accepted here; use backdrop_mode, color_hex, and background_image_url.', 'additionalProperties': True}, 'img_ref_urls': {'type': 'array', 'items': {'type': 'string'}, 'default': None}, 'backdrop_mode': {'enum': ['transparent', 'solid', 'image'], 'type': 'string', 'default': None, 'description': 'Canonical Backdrop mode for new generation requests.'}, 'audio_ref_urls': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Public audio URLs supplied as model references. Only models that declare a positive max_reference_audio capability accept them.'}, 'camera_edit_id': {'type': 'string', 'default': None}, 'generate_audio': {'type': 'boolean', 'default': False, 'description': 'Include audio in the delivered video. False delivers a file with no audio stream; fixed-audio providers are muted after generation, without reducing native-generation credits.'}, 'last_frame_url': {'type': 'string', 'default': None}, 'max_qa_retries': {'type': 'integer', 'default': None, 'maximum': 5, 'minimum': 0, 'description': 'Maximum QA-triggered retry generations after the initial attempt.'}, 'upscale_factor': {'type': 'number', 'default': None}, 'video_ref_urls': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Public video URLs supplied as model references. Only models that declare a positive max_reference_videos capability accept them.'}, 'negative_prompt': {'type': 'string', 'default': None}, 'art_direction_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'clothing_item_ids': {'type': 'array', 'items': {'type': 'integer'}, 'default': None}, 'target_resolution': {'type': 'string', 'default': None}, 'enhance_user_prompt': {'ui': {'editable': False, 'visibility': ['rest']}, 'type': 'boolean', 'default': None, 'deprecated': True, 'description': 'Deprecated REST compatibility alias. true is normalized at command preparation to the legacy prompt-enhancement ArtDirection ID; false has no effect. Prefer art_direction_id. Removal requires 90 consecutive days without production use; usage was last observed on 2026-07-26.'}, 'background_image_url': {'type': 'string', 'default': None, 'description': 'Canonical Backdrop background image URL.'}, 'last_frame_attachment': {'$ref': '#/$defs/GenerationReferenceAttachmentInput', 'default': None, 'description': "Durable reference to the photo the clip closes on, resolved to a URL at dispatch. The durable form of last_frame_url, for callers that hold an id rather than a link — a workflow wiring a step's output into a later step's last frame cannot know the URL when the graph is authored."}, 'reference_attachments': {'type': 'array', 'items': {'$ref': '#/$defs/GenerationReferenceAttachmentInput'}, 'default': None}, 'generation_result_parent_id': {'type': 'integer', 'default': None, 'minimum': 1}}, 'description': 'Caller-owned model-generation intent shared by every public adapter.\n\nAuthentication-derived identity deliberately does not belong here. REST,\nAgent, MCP, batch, and integrations all submit this exact contract; the\ncommand planner combines it with server-owned execution context later. MCP omits webhook callback configuration, which remains API-only.', 'additionalProperties': False}, 'GenerationCommand': {'type': 'object', 'required': ['schema_version', 'input'], 'properties': {'input': {'$ref': '#/$defs/GenerationIntent'}, 'source': {'type': 'object', 'oneOf': [{'type': 'object', 'required': ['type', 'generation_result_id'], 'properties': {'type': {'type': 'string', 'const': 'generation_result'}, 'generation_result_id': {'type': 'integer', 'minimum': 1}}}, {'type': 'object', 'required': ['type', 'uploaded_file_id'], 'properties': {'type': {'type': 'string', 'const': 'uploaded_file'}, 'uploaded_file_id': {'type': 'integer', 'minimum': 1}}}, {'type': 'object', 'required': ['type', 'image_url'], 'properties': {'type': {'type': 'string', 'const': 'public_url'}, 'image_url': {'type': 'string', 'minLength': 1}}}, {'type': 'object', 'required': ['type', 'post_claim_reference', 'step_index', 'output_index'], 'properties': {'type': {'type': 'string', 'const': 'pipeline_step'}, 'step_index': {'type': 'integer', 'minimum': 0}, 'output_index': {'type': 'integer', 'minimum': 0}, 'post_claim_reference': {'type': 'string', 'minLength': 1}}, 'description': 'Durable identity for a source produced by an earlier pipeline step.'}], 'default': None, 'properties': {'type': {'enum': ['generation_result', 'uploaded_file', 'public_url', 'pipeline_step'], 'type': 'string'}, 'image_url': {'type': 'string', 'minLength': 1}, 'step_index': {'type': 'integer', 'minimum': 0}, 'output_index': {'type': 'integer', 'minimum': 0}, 'uploaded_file_id': {'type': 'integer', 'minimum': 1}, 'generation_result_id': {'type': 'integer', 'minimum': 1}, 'post_claim_reference': {'type': 'string', 'minLength': 1}}, 'discriminator': {'propertyName': 'type'}}, 'schema_version': {'type': 'integer', 'const': 2}}, 'description': "Versioned command shared by REST, Agent, MCP, jobs, and briefs.\n\nThe nested ``input`` is intentionally the API's public intent model. A\nfield added there therefore appears automatically in this command's JSON\nschema, serialization, and persisted brief representation.", 'additionalProperties': False}, 'GenerationReferenceAttachmentInput': {'type': 'object', 'required': ['type'], 'properties': {'side': {'enum': ['front', 'back'], 'type': 'string', 'default': None}, 'type': {'enum': ['uploaded_file', 'generation_result', 'location', 'avatar', 'clothing_item', 'outfit'], 'type': 'string'}, 'avatar_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'outfit_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'Outfit reference. The generation uses the front image of every garment in the outfit, as if each were attached as clothing_item.'}, 'location_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'clothing_item_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'uploaded_file_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'generation_result_id': {'type': 'integer', 'default': None, 'minimum': 1}, 'clothing_item_asset_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'Exact durable clothing asset reference. Provide with clothing_item_id; preferred over the deprecated side selector for repeated detail assets.'}}}}, 'required': ['commands'], 'properties': {'commands': {'type': 'array', 'items': {'$ref': '#/$defs/GenerationCommand'}, 'minItems': 1, 'description': "Canonical generation commands. Each command contains the MCP-safe GenerationIntent fields and a durable source reference. Write each input.prompt as a compact positive scene description (setting, lighting, mood, camera, pose — for video, motion and camera movement); without art_direction_id the prompt is the entire creative direction, so give it the full scene. The attached garment/avatar/reference images carry product appearance, so never pad prompts with restated garment construction details, product-fidelity warnings, or negative 'do not' instruction blocks; styling intent (fit, tuck, drape) is fine. For video commands, attach available full back or side garment assets that the camera may reveal through input.reference_attachments when capacity permits. Do not combine reference_attachments with img_ref_urls; uploaded garment assets are not attached automatically. Webhook callback configuration is API-only."}, 'creative_context': {'type': 'string', 'default': None, 'description': "Required for photoshoot proposals and brief rewrites. Summarize the shoot-level creative approach that guided garment combos, avatars, prompts, and pipeline steps. By default prefer one cohesive art direction across the photoshoot, e.g. 'urban summer editorial', 'standard grey e-commerce', or 'sporty studio catalog'. Per-look prompts may differ for garment details, pose, framing, or avatar, but should feel part of the same shoot unless the user explicitly asks for multiple art directions, split concepts, A/B routes, or varied campaign directions. The assistant should explain this art direction to the user after proposing the brief and ask if they want changes."}}, 'description': 'Input schema for updating a visible brief without immediate execution.'}
入力スキーマ
{'type': 'object', '$defs': {'OpenAIFile': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string'}, 'file_name': {'type': 'string'}, 'mime_type': {'type': 'string'}, 'download_url': {'type': 'string'}}, 'additionalProperties': False}, 'UpdateGarmentAssetInput': {'type': 'object', 'properties': {'asset_url': {'type': 'string', 'default': None, 'description': 'Public HTTP(S) image URL for this asset'}, 'file_name': {'type': 'string', 'default': None, 'description': 'Original file name for this asset'}, 'mime_type': {'type': 'string', 'default': None, 'description': 'MIME/content type for this asset, e.g. image/png'}, 'asset_kind': {'enum': ['full', 'detail'], 'type': 'string', 'default': None, 'description': 'Asset kind: full garment view or detail crop.'}, 'asset_role': {'enum': ['front', 'back', 'side', 'detail'], 'type': 'string', 'default': None, 'deprecated': True, 'description': 'Deprecated role-only adapter. Prefer asset_kind and asset_view.'}, 'asset_view': {'enum': ['front', 'back', 'side', 'unspecified'], 'type': 'string', 'default': None, 'description': 'Visible garment view. New detail uploads require front, back, or side.'}, 'image_file': {'default': None, 'description': 'MCP host file object, or the name of a generic top-level file param such as image_file_1.'}}, 'description': 'One classified garment asset patch.'}}, 'required': ['clothing_item_id'], 'properties': {'name': {'type': 'string', 'default': None, 'minLength': 1, 'description': 'Updated garment name'}, 'assets': {'type': 'array', 'items': {'$ref': '#/$defs/UpdateGarmentAssetInput'}, 'default': None, 'description': 'Asset patch for garment product photos. A provided full front/back/side replaces that unique view; provided detail assets are added. Omitted existing assets are preserved.'}, 'gender': {'type': 'string', 'default': None, 'description': 'Updated target gender: male, female, or unisex'}, 'category': {'enum': ['activewear', 'baby_and_childrens_clothing', 'blouses', 'bodysuits', 'cardigans', 'corset_tops', 'hoodies', 'overshirts', 'polos', 'shirts', 'sweaters', 'sweatshirts', 't_shirts', 'tank_tops', 'tunics', 'dresses', 'lingerie', 'maternity_clothing', 'mens_undergarments', 'one_pieces', 'outerwear', 'outfit_sets', 'pants', 'shorts', 'skirts', 'skorts', 'sleepwear_and_loungewear', 'socks', 'suits', 'swimwear', 'traditional_and_ceremonial_clothing', 'uniforms_and_workwear', 'wedding_and_bridal_party_dresses', 'clothing_accessories', 'costumes_and_accessories', 'handbag_and_wallet_accessories', 'handbags_wallets_and_cases', 'jewelry', 'shoe_accessories', 'shoes', 'other'], 'type': 'string', 'default': None, 'description': 'Updated canonical garment category'}, 'description': {'type': 'string', 'default': None, 'description': 'Updated item-level garment description, or a hint to use when patching images'}, 'image_file_1': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_2': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_3': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_4': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_5': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_6': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_7': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_8': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_9': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_10': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_11': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_12': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_13': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_14': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_15': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_16': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_17': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_18': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_19': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'image_file_20': {'$ref': '#/$defs/OpenAIFile', 'description': 'Generic top-level MCP file object for assets[].image_file references'}, 'clothing_item_id': {'type': 'integer', 'description': 'The garment ID to update'}}, 'description': 'Input schema for updating garment metadata and images.'}
入力スキーマ
{'type': 'object', '$defs': {'MontagePatchOpInput': {'type': 'object', 'required': ['op'], 'properties': {'op': {'enum': ['remove', 'clear_trim', 'set_duration', 'set_trim_range', 'set_speed', 'set_muted', 'set_prompt', 'set_video_model', 'set_generate_audio', 'set_last_frame', 'set_aspect_ratio', 'set_base_resolution'], 'type': 'string', 'description': 'Patch operation to apply to the montage proposal.'}, 'muted': {'type': 'boolean', 'default': None, 'description': 'Muted value for set_muted.'}, 'speed': {'type': 'number', 'default': None, 'maximum': 4.0, 'minimum': 0.25, 'description': 'Playback speed multiplier for set_speed.'}, 'prompt': {'type': 'string', 'default': None, 'description': 'Motion prompt for set_prompt.'}, 'end_time': {'type': 'number', 'default': None, 'description': 'Trim end time in seconds for set_trim_range.', 'exclusiveMinimum': 0}, 'start_time': {'type': 'number', 'default': None, 'minimum': 0, 'description': 'Trim start time in seconds for set_trim_range.'}, 'clip_number': {'type': 'integer', 'default': None, 'minimum': 1, 'description': '1-based clip number target.'}, 'video_model': {'type': 'string', 'default': None, 'description': 'Video model for set_video_model.'}, 'apply_to_all': {'type': 'boolean', 'default': False, 'description': 'Apply this operation to every clip in the current montage proposal.'}, 'aspect_ratio': {'type': 'string', 'default': None, 'description': 'Aspect ratio value for set_aspect_ratio.'}, 'clip_numbers': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Optional list of 1-based clip numbers to target together.'}, 'generate_audio': {'type': 'boolean', 'default': None, 'description': 'Generate-audio value for set_generate_audio.'}, 'last_frame_url': {'type': 'string', 'default': None, 'description': 'Last-frame URL for set_last_frame.'}, 'base_resolution': {'type': 'integer', 'default': None, 'maximum': 4320, 'minimum': 360, 'description': 'Resolution value for set_base_resolution.'}, 'target_duration': {'type': 'number', 'default': None, 'description': 'Desired final clip length in seconds for set_duration.', 'exclusiveMinimum': 0}}, 'description': 'A typed montage patch operation applied in order.'}}, 'properties': {'muted': {'type': 'boolean', 'default': None, 'description': 'Mute or unmute the selected clip(s).'}, 'speed': {'type': 'number', 'default': None, 'maximum': 4.0, 'minimum': 0.25, 'description': 'Playback speed multiplier.'}, 'prompt': {'type': 'string', 'default': None, 'description': 'Update the motion prompt for image-to-video montage items.'}, 'remove': {'type': 'boolean', 'default': False, 'description': 'Remove the selected clip(s) from the proposal.'}, 'end_time': {'type': 'number', 'default': None, 'description': 'Trim end time in seconds for legacy trim-range updates.', 'exclusiveMinimum': 0}, 'clear_trim': {'type': 'boolean', 'default': False, 'description': 'For video clips, remove trim bounds and restore the full clip length in the proposal.'}, 'operations': {'type': 'array', 'items': {'$ref': '#/$defs/MontagePatchOpInput'}, 'default': None, 'description': 'Ordered montage patch operations. Preferred over the legacy flat fields below.'}, 'start_time': {'type': 'number', 'default': None, 'minimum': 0, 'description': 'Trim start time in seconds for legacy trim-range updates.'}, 'clip_number': {'type': 'integer', 'default': None, 'minimum': 1, 'description': '1-based clip number to update. Omit when apply_to_all=true.'}, 'video_model': {'type': 'string', 'default': None, 'description': 'Update the video model for image-to-video montage items.'}, 'apply_to_all': {'type': 'boolean', 'default': False, 'description': 'Apply changes to every clip in the current montage proposal.'}, 'aspect_ratio': {'type': 'string', 'default': None, 'description': 'Update the montage output aspect ratio.'}, 'clip_numbers': {'type': 'array', 'items': {'type': 'integer'}, 'default': None, 'description': 'Optional list of 1-based clip numbers to update together.'}, 'generate_audio': {'type': 'boolean', 'default': None, 'description': 'Enable or disable generated audio for image-to-video montage items.'}, 'last_frame_url': {'type': 'string', 'default': None, 'description': 'Optional last-frame URL for image-to-video montage items.'}, 'base_resolution': {'type': 'integer', 'default': None, 'maximum': 4320, 'minimum': 360, 'description': 'Update the montage output resolution height.'}, 'target_duration': {'type': 'number', 'default': None, 'description': 'Desired final clip length in seconds.', 'exclusiveMinimum': 0}}, 'description': 'Patch the latest montage proposal shown in the UI.'}
入力スキーマ
{'type': 'object', 'properties': {'add_prompt': {'type': 'object', 'default': None, 'description': 'Prompt to save: {text, category, is_favorite}', 'additionalProperties': True}, 'preferences': {'type': 'object', 'default': None, 'description': 'Preference key-value updates. Model fields (default_model, default_edit_model, default_upscale_model, default_video_model, and process-level model) are explicit pins only; leave them unset for backend defaults. Prefer a generation-preset template for reproducible concrete shoot settings and a batch-workflow template for an ordered multi-shot flow. Other fields include default_aspect_ratio, preferred_camera, default_resolution, photoshoot_processes, etc. Processes format: [{name, model, camera, aspect_ratio, resolution, prompt, num_images, pipeline: [{type, editModel, editPrompt, ...}], is_default}]', 'additionalProperties': True}}, 'description': 'Input schema for updating user preferences.'}
入力スキーマ
{'type': 'object', '$defs': {'OpenAIFile': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string'}, 'file_name': {'type': 'string'}, 'mime_type': {'type': 'string'}, 'download_url': {'type': 'string'}}, 'additionalProperties': False}, 'AvatarChatFileUploadItem': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Name for the avatar/model'}, 'build': {'type': 'string', 'default': None, 'maxLength': 100, 'description': 'Optional concrete physical build. Never inferred.'}, 'age_range': {'type': 'string', 'default': None, 'maxLength': 20, 'description': 'Optional concrete age or age range. Never inferred.'}, 'file_name': {'type': 'string', 'default': None, 'description': 'Original file name'}, 'height_cm': {'type': 'integer', 'default': None, 'maximum': 220, 'minimum': 40, 'description': 'Optional height in centimeters. Never inferred.'}, 'image_url': {'type': 'string', 'default': None, 'description': 'Resolved download URL. Used by the Uwear app when recovering a chat file ID.'}, 'mime_type': {'type': 'string', 'default': None, 'description': 'MIME/content type, e.g. image/png'}, 'description': {'type': 'object', 'default': None, 'description': 'Avatar metadata: {gender, age, body, ethnicity, hair_color, etc.}', 'additionalProperties': True}}, 'description': 'One avatar/model upload item for chat-file batch upload.', 'additionalProperties': False}}, 'properties': {'name': {'type': 'string', 'default': None, 'description': 'Single recovered avatar/model name'}, 'build': {'type': 'string', 'default': None, 'maxLength': 100, 'description': 'Optional concrete physical build. Never inferred.'}, 'avatars': {'type': 'array', 'items': {'$ref': '#/$defs/AvatarChatFileUploadItem'}, 'default': None, 'maxItems': 10, 'description': 'Avatar/model metadata in the same order as image_file_1, image_file_2, etc. No base64.'}, 'age_range': {'type': 'string', 'default': None, 'maxLength': 20, 'description': 'Optional concrete age or age range. Never inferred.'}, 'file_name': {'type': 'string', 'default': None, 'description': 'Single recovered original file name'}, 'height_cm': {'type': 'integer', 'default': None, 'maximum': 220, 'minimum': 40, 'description': 'Optional height in centimeters. Never inferred.'}, 'image_url': {'type': 'string', 'default': None, 'description': 'Single resolved download URL used by automatic opaque-file recovery.'}, 'mime_type': {'type': 'string', 'default': None, 'description': 'Single recovered MIME/content type, e.g. image/png'}, 'description': {'type': 'object', 'default': None, 'description': 'Single recovered avatar metadata', 'additionalProperties': True}, 'image_file_1': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_2': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_3': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_4': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_5': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_6': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_7': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_8': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_9': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}, 'image_file_10': {'$ref': '#/$defs/OpenAIFile', 'description': 'Host-provided uploaded file reference for the matching item index when it has no image_url. Use the file object supplied by the host, not a bare file_... ID.'}}, 'description': 'Input schema for uploading avatars/models from chat file references.', 'additionalProperties': False}
入力スキーマ
{'type': 'object', '$defs': {'OpenAIFile': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string'}, 'file_name': {'type': 'string'}, 'mime_type': {'type': 'string'}, 'download_url': {'type': 'string'}}, 'additionalProperties': False}, 'GarmentChatFileAssetInput': {'type': 'object', 'required': ['image_file'], 'properties': {'file_name': {'type': 'string', 'default': None, 'description': 'Original file name for this asset'}, 'mime_type': {'type': 'string', 'default': None, 'description': 'MIME/content type for this asset, e.g. image/png'}, 'asset_kind': {'enum': ['full', 'detail'], 'type': 'string', 'default': None, 'description': 'Asset kind: full garment view or detail crop.'}, 'asset_role': {'enum': ['front', 'back', 'side', 'detail'], 'type': 'string', 'default': None, 'deprecated': True, 'description': 'Deprecated role-only adapter. Prefer asset_kind and asset_view.'}, 'asset_view': {'enum': ['front', 'back', 'side', 'unspecified'], 'type': 'string', 'default': None, 'description': 'Visible garment view. New detail uploads require front, back, or side.'}, 'image_file': {'type': 'string', 'description': 'Name of the top-level ChatGPT file param for this asset, e.g. image_file_1.'}}, 'description': 'One classified garment asset for chat-file upload.'}, 'GarmentChatFileUploadItem': {'type': 'object', 'properties': {'name': {'type': 'string', 'default': None, 'description': 'Name for the garment. If omitted, derived from the image filename.'}, 'assets': {'type': 'array', 'items': {'$ref': '#/$defs/GarmentChatFileAssetInput'}, 'default': None, 'description': 'Full garment asset set. Each asset references a top-level image_file_N field and declares asset_kind/asset_view. Exactly one full front is required; full front/back/side are unique and detail views can repeat.'}, 'gender': {'type': 'string', 'default': None, 'description': 'Target gender: male, female, unisex'}, 'file_name': {'type': 'string', 'default': None, 'description': 'Original file name'}, 'mime_type': {'type': 'string', 'default': None, 'description': 'MIME/content type, e.g. image/png'}, 'image_file': {'type': 'string', 'default': None, 'description': 'Legacy shortcut: top-level ChatGPT file param for the front image, e.g. image_file_1.'}, 'description': {'type': 'string', 'default': None, 'description': 'Optional item-level garment description hint'}, 'back_image_file': {'type': 'string', 'default': None, 'description': 'Legacy shortcut: optional top-level ChatGPT file param for the back image.'}, 'processing_mode': {'type': 'string', 'default': None, 'description': "Optional image processing. 'background_removal' removes the background (the platform upload default); 'none' stores the image as-is. Omit to use background removal."}, 'side_image_file': {'type': 'string', 'default': None, 'description': 'Legacy shortcut: optional top-level ChatGPT file param for the side image.'}, 'detail_image_files': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Legacy shortcut: optional top-level ChatGPT file params for detail images.'}}, 'description': 'One garment upload item for chat-file batch upload.'}}, 'required': ['garments'], 'properties': {'garments': {'type': 'array', 'items': {'$ref': '#/$defs/GarmentChatFileUploadItem'}, 'maxItems': 10, 'minItems': 1, 'description': 'Garment metadata. Put files in top-level image_file_1..image_file_20 and reference those exact field names inside each garment. No base64.'}, 'image_file_1': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_2': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_3': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_4': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_5': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_6': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_7': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_8': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_9': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_10': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_11': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_12': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_13': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_14': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_15': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_16': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_17': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_18': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_19': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}, 'image_file_20': {'$ref': '#/$defs/OpenAIFile', 'description': "Top-level ChatGPT file attachment. In garments[], reference this exact field name from assets[].image_file, e.g. image_file='image_file_1'. Do not rely on item order."}}, 'description': 'Input schema for uploading garments from chat file references.'}
入力スキーマ
{'type': 'object', '$defs': {'GarmentPublicUrlAssetInput': {'type': 'object', 'properties': {'asset_url': {'type': 'string', 'default': None, 'description': 'Public HTTP(S) image URL for this asset'}, 'file_name': {'type': 'string', 'default': None, 'description': 'Original file name for this asset'}, 'image_url': {'type': 'string', 'default': None, 'description': 'Alias for asset_url'}, 'mime_type': {'type': 'string', 'default': None, 'description': 'MIME/content type for this asset, e.g. image/png'}, 'asset_kind': {'enum': ['full', 'detail'], 'type': 'string', 'default': None, 'description': 'Asset kind: full garment view or detail crop.'}, 'asset_role': {'enum': ['front', 'back', 'side', 'detail'], 'type': 'string', 'default': None, 'deprecated': True, 'description': 'Deprecated role-only adapter. Prefer asset_kind and asset_view.'}, 'asset_view': {'enum': ['front', 'back', 'side', 'unspecified'], 'type': 'string', 'default': None, 'description': 'Visible garment view. New detail uploads require front, back, or side.'}}, 'description': 'One classified garment asset for public URL upload.'}, 'GarmentPublicUrlUploadItem': {'type': 'object', 'properties': {'name': {'type': 'string', 'default': None, 'description': 'Name for the garment. If omitted, derived from the image filename.'}, 'assets': {'type': 'array', 'items': {'$ref': '#/$defs/GarmentPublicUrlAssetInput'}, 'default': None, 'description': 'Full garment asset set using asset_kind/asset_view. Exactly one full front is required; full views are unique and detail views can repeat.'}, 'gender': {'type': 'string', 'default': None, 'description': 'Target gender: male, female, unisex'}, 'file_name': {'type': 'string', 'default': None, 'description': 'Original file name'}, 'image_url': {'type': 'string', 'default': None, 'description': 'Legacy shortcut: public HTTP(S) front image URL'}, 'mime_type': {'type': 'string', 'default': None, 'description': 'MIME/content type, e.g. image/png'}, 'description': {'type': 'string', 'default': None, 'description': 'Optional item-level garment description hint'}, 'back_image_url': {'type': 'string', 'default': None, 'description': 'Legacy shortcut: optional public HTTP(S) back image URL'}, 'side_image_url': {'type': 'string', 'default': None, 'description': 'Legacy shortcut: optional public HTTP(S) side image URL'}, 'processing_mode': {'type': 'string', 'default': None, 'description': "Optional image processing. 'background_removal' removes the background (the platform upload default); 'none' stores the image as-is. Omit to use background removal."}, 'detail_image_urls': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Legacy shortcut: optional public HTTP(S) detail image URLs'}}, 'description': 'One garment upload item for public URL batch upload.'}}, 'properties': {'name': {'type': 'string', 'default': None, 'description': 'Single garment name'}, 'assets': {'type': 'array', 'items': {'$ref': '#/$defs/GarmentPublicUrlAssetInput'}, 'default': None, 'description': 'Single garment full asset set. Use asset_kind/asset_view. Exactly one full front is required; full views are unique and detail views can repeat.'}, 'gender': {'type': 'string', 'default': None, 'description': 'Single garment gender: male, female, unisex'}, 'garments': {'type': 'array', 'items': {'$ref': '#/$defs/GarmentPublicUrlUploadItem'}, 'default': None, 'maxItems': 50, 'description': 'Garments to upload from public HTTP(S) URLs. No chat file objects and no base64.'}, 'file_name': {'type': 'string', 'default': None, 'description': 'Single original file name'}, 'image_url': {'type': 'string', 'default': None, 'description': 'Single public HTTP(S) front image URL'}, 'mime_type': {'type': 'string', 'default': None, 'description': 'Single MIME/content type, e.g. image/png'}, 'description': {'type': 'string', 'default': None, 'description': 'Single item-level garment description hint'}, 'back_image_url': {'type': 'string', 'default': None, 'description': 'Single optional public HTTP(S) back image URL'}, 'side_image_url': {'type': 'string', 'default': None, 'description': 'Single optional public HTTP(S) side image URL'}, 'processing_mode': {'type': 'string', 'default': None, 'description': "Optional image processing. 'background_removal' removes the background (the platform upload default); 'none' stores the image as-is. Omit to use background removal."}, 'detail_image_urls': {'type': 'array', 'items': {'type': 'string'}, 'default': None, 'description': 'Single optional public HTTP(S) detail image URLs'}}, 'description': 'Input schema for uploading garments from public URLs.'}
入力スキーマ
{'type': 'object', 'required': ['question'], 'properties': {'question': {'type': 'string', 'maxLength': 4000, 'minLength': 1, 'description': "What to analyze: e.g. 'Is this a flat lay or worn on a model?', 'Does this need background removal?', 'Describe the garment details'. Do not use this as the primary tool for generation-result QA; use queue_generation_result_qa and read_generation_result_qa for QA requests."}, 'image_url': {'type': 'string', 'default': None, 'description': 'Public HTTPS image URL to analyze. Optional if generation_result_id or uploaded_file_id is provided.'}, 'attachment_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'ID of the workspace record to view. Supply together with attachment_type.'}, 'attachment_type': {'enum': ['uploaded_file', 'generation_result', 'clothing_item', 'outfit'], 'type': 'string', 'default': None, 'description': 'Type of an attached workspace record. Supply together with attachment_id, without another image source.'}, 'uploaded_file_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'ID of an uploaded file to analyze. Use for items from the Files library.'}, 'generation_result_id': {'type': 'integer', 'default': None, 'minimum': 1, 'description': 'ID of an existing generation result to analyze. Preferred for Shoot Board generation items because the server resolves the HTTPS image URL.'}}, 'description': 'Input schema for viewing and analyzing any image using AI vision.', 'additionalProperties': False}
最近のツール変更
類似のMCPサーバー
MiOffice — AI-Powered Workspace Studio
Provides browser-based tools for processing PDFs, images, video, and audio, including generation, enhancement, conversion, transc…
BlitzReels Video Editor
Creates and edits short-form videos, including timelines, captions, transitions, AI-generated visuals, music, voiceovers, sound e…
Morpha
Enables creating, animating, and exporting layered short-form video projects.
switch
Enables management and exploration of an account-scoped library of AI-generated images and videos.
framesail
Creates long-form YouTube videos through script generation, storyboarding, visual assets, voiceover, music, scene composition, an…
Magnific
Provides image enhancement and design tools, AI image and audio generation, text-to-speech, creation management, and reusable cre…
Creative Claw
Generates and edits branded images, video, audio, speech, and 3D-related creative assets, with media processing and reusable them…
RegiAI
Generates and edits images, videos, audio, music, speech, subtitles, avatars, and related media asynchronously.