Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "ryla_generate_character_sheet" and "ryla_generate_video"
GenerateBuildathemulti-angle18-shotcharacteridentity reference sheetfromforaanbaseexistingimage.character (the live replacement of the retired character sheet; flat, no extra credits). Use ryla_list_characters to find a characterId. Returns ajobId;sheetJobId; poll with ryla_generation_status.
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"angles":{"description":"Optional list of angle presets","items":{"type":"string"},"type":"array"},"baseImageUrl":{"description":"Base image URL for PuLID character sheet generation","format":"uri","type":"string"},"characterId":{"description":"Character UUID","format":"uuid","type":"string"},"nsfw":{"default":false,"description":"EnableCharacter unrestrictedfanintentcontent(thegenerationsheet itself stays SFW)","type":"boolean"}},"required":["baseImageUrlcharacterId"],"type":"object"}
Generate aStudiovideoforfrom an existing character image (image-to-video, Wan 3.0). Character must already exist; use ryla_list_characters to find a characterId. By default the newest completed image of the character is animated; pass sourceImageId (imageIds from ryla_account_gallery_list) to pick one. Priced per second and resolution (720p = 240 credits/s, 480p 120, 1080p 470; unrestricted x2). Returns a jobId; poll with ryla_generation_status.
⟨33 unchanged words⟩ default":5,"description":"Video duration in whole seconds","enum":[5,10],"type":"number"},"fps":{"description":"Framesper second2(defaultto24)30
Added "ryla_character_reference_images", "ryla_list_templates" and "ryla_upscale_image"; changed the definition of "ryla_account_gallery_list", "ryla_generate_image", "ryla_generate_video" and 2 more (14 tools before, 17 now)
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"detail":{"default":"slim","description":"slim (default): status, output URLs and the inputs you set. full: raw job rows incl. internal dispatch fields (very large).","enum":["slim","full"],"type":"string"},"limit":{"description":"Max number of items ⟨14 unchanged words⟩
⟨24 unchanged words⟩ },"aspectRatio":{"description":"Image aspect ratio. Required unless templateId is given (then the template ratio is used).
Added "ryla_generate_avatar_video", "ryla_generate_lip_sync" and "ryla_generate_video_swap" (11 tools before, 14 now)
Generate a talking avatar video from a character face + an audio track (kie.ai InfiniTalk). Pro plan required. Character must already exist; use ryla_list_characters to find a characterId. Returns a jobId; poll with ryla_generation_status.
Generate a talking video by lip-syncing a portrait image to an audio track (kie.ai InfiniTalk). Both portraitImageUrl and audioUrl must be RYLA-hosted URLs you own. Pro plan required. This capability may not be available on your account yet (internal rollout, pricing not finalized) -- an unavailable-feature error means it is not yet live for you.
Swap a character face into an existing video (face swap onto uploaded footage). Pro plan required. videoUrl must be a video you already uploaded to your RYLA account. Character must already exist; use ryla_list_characters to find a characterId. Returns a jobId; poll with ryla_generation_status.
Certificate recorded, valid to 2026-12-02
Authorization not required
First tool surface recorded: 11 tools (server version 1.0.0)
Showing the latest 6 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
Only numbers and dates differ: this server embeds live figures in the definition, so the text moves without the contract changing.
⟨31 unchanged words⟩ ":"string"},"duration":{"default":45,"description":"Video duration in seconds","enum":[2,4,5,6,810],"type":"number"},"fps":{ ⟨63 unchanged words⟩
{"$schema":"http://json-schema.org/draft-07/schema#","additionalProperties":false,"properties":{"detail":{"default":"slim","description":"slim (default): status, output URLs and the inputs you set. full: the raw job row incl. internal dispatch fields (large; for debugging).","enum":["slim","full"],"type":"string"},"jobId":{"description":"The jobId returned by ⟨10 unchanged words⟩
⟨11 unchanged words⟩ pick a characterId for the other generation tools. `loraReady` tells you whether `useLora: true` has a trained LoRA to use. There is no tool to CREATE a character ⟨9 unchanged words⟩
Get fresh URLs of a character's reference material: its base image and the 16-shot reference sheet. Pass any of these as referenceImageUrl to ryla_generate_image to keep the face consistent. URLs expire after about an hour. Read only: never regenerates anything.
Find RYLA templates (ready-made looks: scene, outfit, pose) by name or tag. Returns template ids. Pass an id as `templateId` to ryla_generate_image to generate your character in that template. Unrestricted (NSFW) templates are only listed when `unrestricted` is true.
Upscale one of your own generated images (2x or 4x, faithful, no new content). Costs credits. imageId comes from ryla_generation_status (output.imageIds) or ryla_account_gallery_list. Returns a job; poll with ryla_generation_status.