RYLA
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Generate AI influencer photos, face swaps, and character sheets with a consistent face.
| Author | ai.ryla |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 161 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"RYLA": {
"url": "https://mcp.ryla.ai/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (17)
ryla_generate_base_imageGenerate base character images from a niche/vibe/prompt. Returns a jobId; poll with ryla_generation_status.
Parameters:
vibe— string — Overall vibe/style descriptorniche— string — Content niche, e.g. "fitness"nsfwEnabled— boolean — Enable unrestricted fan content generationpromptInput— string — Free-form prompt text
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_generate_face_swapSwap a character face onto a reference base image. Returns the generation result.
Parameters:
baseImageUrl(required) — string — Reference/base image URL to swap the face fromprompt(required) — string — Prompt for the target imagensfw— boolean — Enable unrestricted fan content generationseed— integer — Random seed for reproducibilitycharacterId— string — Character UUID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_generate_character_sheetBuild the 18-shot identity reference sheet for an existing character (the live replacement of the retired character sheet; flat, no extra credits). Use ryla_list_characters to find a characterId. Returns a sheetJobId; poll with ryla_generation_status.
Parameters:
characterId(required) — string — Character UUIDnsfw— boolean — Character unrestricted intent (the sheet itself stays SFW)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_generation_statusCheck the status of a generation job by its jobId.
Parameters:
jobId(required) — string — The jobId returned by a ryla_generate_* tool calldetail— string — slim (default): status, output URLs and the inputs you set. full: the raw job row incl. internal dispatch fields (large; for debugging).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_account_credits_balanceCheck the authenticated user's current RYLA credit balance.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_account_gallery_listList the authenticated user's most recent generated images/jobs.
Parameters:
limit— integer — Max number of items to return (default 20, max 50)detail— string — slim (default): status, output URLs and the inputs you set. full: raw job rows incl. internal dispatch fields (very large).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_list_charactersList the authenticated user's existing characters (AI influencers) so you can 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 -- that happens in the RYLA app at app.ryla.ai.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_generate_imageGenerate Studio-quality images for an existing character with full creative control (scene, outfit, pose, lighting, expression, style). This is the primary, full-featured image tool -- prefer it over ryla_generate_base_image. Character must already exist; use ryla_list_characters to find a characterId. Returns a jobId; poll with ryla_generation_status.
Parameters:
characterId(required) — string — Character UUID to generate images fornsfw— boolean — Enable unrestricted fan content generationseed— integer — Base seed; each image increments itcount— integer — Number of images to generatescene— string — Scene preset or description. Required unless templateId is given.loraId— string — LoRA id to use, if not the default for this characteroutfit— string — Outfit descriptionposeId— string — Pose preset id, e.g. "standing-casual"quality— string — Quality tier: "standard" or "2k" (HD, default), "ultra" or "4k" (4K, costs more credits)useLora— boolean — Use the character LoRA for face consistency, if trainedlighting— string — Lighting preset, e.g. "natural.goldenHour"shotType— string — Camera framing, e.g. "close-up-portrait", "full-body"requestId— string — Optional UUID for this generation intent. Omit it and one is created for you (returned in the result). Pass the SAME id when retrying after an error or a lost response, so the retry is not charged twice.expression— string — Facial expression preset, e.g. "positive.smile"templateId— string — Template id from ryla_list_templates. Fills scene, outfit, pose, style, lighting and aspect ratio from the template; anything you set yourself wins.aspectRatio— string — Image aspect ratio. Required unless templateId is given (then the template ratio is used).environment— string — Environment preset or descriptionstylePreset— string — Visual style preset (default ultraRealistic)loraStrength— number — LoRA strength, 0.1-2.0realismStyle— boolean — Apply realism post-processing styletemplateMode— string — With templateId: "exact" (default) keeps the template pose, outfit and background; "inspired" makes a similar but different image.promptEnhance— boolean — Enable AI prompt enhancement (default true)enableFaceSwap— boolean — Route through face-swap for the reference imagereferenceMethod— string — Reference image method (default instantid)antiDetectPreset— string — Anti-detection intensity (default moderate); advanced/maximum require ProsocialMediaReady— boolean — Apply anti-AI-detection post-processingreferenceImageUrl— string — Reference image URL for face consistency (InstantID/PuLID), as an alternative to LoRAreferenceStrength— number — Reference image strength, 0.1-1.0
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_upscale_imageUpscale 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.
Parameters:
imageId(required) — string — Image id (output.imageIds of a finished job)scale— number — Upscale factor, 2 or 4 (default chosen by the server)requestId— string — Optional UUID; pass the same one when retrying so you are not charged twice
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_character_reference_imagesGet 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.
Parameters:
characterId(required) — string — Character UUID
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_generate_videoGenerate a video from 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.
Parameters:
characterId(required) — string — Character UUID to generate video fornsfw— boolean — Enable unrestricted fan content generationprompt— string — Optional prompt/description for the motionduration— integer — Video duration in whole seconds, 2 to 30requestId— string — Idempotency key: the same id returns the same job and never charges twice. Generated when omitted.wantAudio— boolean — Generate sound with the videoresolution— string — Output resolution (drives the price)aspectRatio— string — Video aspect ratiosourceImageId— string — Image UUID to animate (default: newest completed image)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_generate_voiceGenerate speech audio (TTS) in an existing character's voice. Character must already exist; use ryla_list_characters to find a characterId.
Parameters:
characterId(required) — string — Character UUIDtext(required) — string — Text to convert to speech (max 1000 chars)speed— number — Speech speed multiplier, 0.5-2.0gender— string — Character gender, to pick a default voice when voiceIdentityId is absentemotion— string — Emotion style for the voicevoiceIdentityId— string — Specific voice identity id, if known (otherwise the character default is used)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_generate_avatar_videoGenerate 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.
Parameters:
characterId(required) — string — Character UUID to use as the avatar faceprompt— string — Optional prompt/description for the avatar videoaudioUrl— string — URL of the audio file (MP3/WAV/M4A, max 5MB, 2-60s). Required unless voiceNoteId is set.duration— number — Video duration in secondsmodelTier— string — Model quality tier (default pro)aspectRatio— string — Video aspect ratio (default 16:9)voiceNoteId— string — UUID of a saved voice note to use as the audio track instead of audioUrlsourceImageId— string — UUID of a specific image to use as the face source. If omitted, the character base image is used.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_generate_video_swapSwap 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.
Parameters:
characterId(required) — string — Character UUID whose face is swapped into the videovideoUrl(required) — string — URL of the source video to swap (must be a RYLA-hosted storage URL you own)sourceType— string — Source type (default upload)outfitPrompt— string — Outfit description, used only when outfitEnabled is trueoutfitEnabled— boolean — Enable an outfit-change promptbackgroundPrompt— string — Background description, used only when backgroundEnabled is truebackgroundEnabled— boolean — Enable a background-change prompt
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_generate_lip_syncGenerate 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.
Parameters:
portraitImageUrl(required) — string — Portrait/face image URL (RYLA-hosted storage URL you own)audioUrl(required) — string — Audio track URL (RYLA-hosted storage URL you own)prompt(required) — string — Prompt describing the desired output (required)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_list_templatesFind 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.
Parameters:
page— integer — Page, starting at 1limit— integer — Number of templates to return (default 10, max 30)search— string — Search text, e.g. "cafe", "boots", "selfie bed"unrestricted— boolean — Include unrestricted fan content templates
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
ryla_server_infoGet RYLA external MCP server configuration and connection info
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.