RYLA
Generate AI influencer photos, face swaps, and character sheets with a consistent face.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen ryla_generate_face_swap
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"ryla": {
"url": "https://mcp.ryla.ai/mcp"
}
}
}Puntos de conexión remotos
https://mcp.ryla.ai/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (14)
⚪ryla_generate_base_image(niche, vibe, nsfwEnabled, promptInput)
Generate base character images from a niche/vibe/prompt. Returns a jobId; poll with ryla_generation_status.
Esquema de entrada
{
"type": "object",
"properties": {
"niche": {
"type": "string",
"description": "Content niche, e.g. \"fitness\""
},
"vibe": {
"type": "string",
"description": "Overall vibe/style descriptor"
},
"nsfwEnabled": {
"type": "boolean",
"default": false,
"description": "Enable unrestricted fan content generation"
},
"promptInput": {
"type": "string",
"description": "Free-form prompt text"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪ryla_generate_face_swap(characterId, baseImageUrl, prompt, nsfw, seed)
Swap a character face onto a reference base image. Returns the generation result.
Esquema de entrada
{
"type": "object",
"properties": {
"characterId": {
"type": "string",
"format": "uuid",
"description": "Character UUID"
},
"baseImageUrl": {
"type": "string",
"format": "uri",
"description": "Reference/base image URL to swap the face from"
},
"prompt": {
"type": "string",
"description": "Prompt for the target image"
},
"nsfw": {
"type": "boolean",
"default": false,
"description": "Enable unrestricted fan content generation"
},
"seed": {
"type": "integer",
"description": "Random seed for reproducibility"
}
},
"required": [
"baseImageUrl",
"prompt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪ryla_generate_character_sheet(characterId, baseImageUrl, nsfw, angles)
Generate a multi-angle character sheet from a base image. Returns a jobId; poll with ryla_generation_status.
Esquema de entrada
{
"type": "object",
"properties": {
"characterId": {
"type": "string",
"format": "uuid",
"description": "Character UUID"
},
"baseImageUrl": {
"type": "string",
"format": "uri",
"description": "Base image URL for PuLID character sheet generation"
},
"nsfw": {
"type": "boolean",
"default": false,
"description": "Enable unrestricted fan content generation"
},
"angles": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional list of angle presets"
}
},
"required": [
"baseImageUrl"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢ryla_generation_status(jobId)
Check the status of a generation job by its jobId.
Esquema de entrada
{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"description": "The jobId returned by a ryla_generate_* tool call"
}
},
"required": [
"jobId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢ryla_account_credits_balance
Check the authenticated user's current RYLA credit balance.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢ryla_account_gallery_list(limit)
List the authenticated user's most recent generated images/jobs.
Esquema de entrada
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Max number of items to return (default 20, max 50)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡ryla_list_characters
List the authenticated user's existing characters (AI influencers) so you can pick a characterId for the other generation tools. There is no tool to CREATE a character -- that happens in the RYLA app at app.ryla.ai.
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢ryla_generate_image(characterId, scene, environment, outfit, poseId, ...)
Generate 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.
Esquema de entrada
{
"type": "object",
"properties": {
"characterId": {
"type": "string",
"format": "uuid",
"description": "Character UUID to generate images for"
},
"scene": {
"type": "string",
"description": "Scene preset or description"
},
"environment": {
"type": "string",
"description": "Environment preset or description"
},
"outfit": {
"type": "string",
"description": "Outfit description"
},
"poseId": {
"type": "string",
"description": "Pose preset id, e.g. \"standing-casual\""
},
"lighting": {
"type": "string",
"description": "Lighting preset, e.g. \"natural.goldenHour\""
},
"expression": {
"type": "string",
"description": "Facial expression preset, e.g. \"positive.smile\""
},
"shotType": {
"type": "string",
"description": "Camera framing, e.g. \"close-up-portrait\", \"full-body\""
},
"aspectRatio": {
"type": "string",
"enum": [
"1:1",
"9:16",
"2:3",
"4:5",
"3:4",
"4:3",
"16:9",
"3:2"
],
"description": "Image aspect ratio"
},
"quality": {
"type": "string",
"description": "Quality tier: \"standard\" (HD, default) or \"ultra\" (4K)"
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 1,
"description": "Number of images to generate"
},
"nsfw": {
"type": "boolean",
"default": false,
"description": "Enable unrestricted fan content generation"
},
"promptEnhance": {
"type": "boolean",
"description": "Enable AI prompt enhancement (default true)"
},
"seed": {
"type": "integer",
"description": "Base seed; each image increments it"
},
"useLora": {
"type": "boolean",
"description": "Use the character LoRA for face consistency, if trained"
},
"loraId": {
"type": "string",
"description": "LoRA id to use, if not the default for this character"
},
"loraStrength": {
"type": "number",
"minimum": 0.1,
"maximum": 2,
"description": "LoRA strength, 0.1-2.0"
},
"referenceImageUrl": {
"type": "string",
"description": "Reference image URL for face consistency (InstantID/PuLID), as an alternative to LoRA"
},
"enableFaceSwap": {
"type": "boolean",
"description": "Route through face-swap for the reference image"
},
"referenceStrength": {
"type": "number",
"minimum": 0.1,
"maximum": 1,
"description": "Reference image strength, 0.1-1.0"
},
"referenceMethod": {
"type": "string",
"enum": [
"instantid",
"pulid",
"ipadapter"
],
"description": "Reference image method (default instantid)"
},
"socialMediaReady": {
"type": "boolean",
"description": "Apply anti-AI-detection post-processing"
},
"realismStyle": {
"type": "boolean",
"description": "Apply realism post-processing style"
},
"stylePreset": {
"type": "string",
"enum": [
"ultraRealistic",
"instagramReady",
"editorialFashion",
"casualSelfie",
"professionalPortrait"
],
"description": "Visual style preset (default ultraRealistic)"
},
"antiDetectPreset": {
"type": "string",
"enum": [
"subtle",
"moderate",
"aggressive",
"advanced",
"maximum"
],
"description": "Anti-detection intensity (default moderate); advanced/maximum require Pro"
}
},
"required": [
"characterId",
"scene",
"aspectRatio"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢ryla_generate_video(characterId, prompt, duration, fps, aspectRatio, ...)
Generate a Studio video for an existing character (image-to-video). Character must already exist; use ryla_list_characters to find a characterId. Returns a jobId; poll with ryla_generation_status.
Esquema de entrada
{
"type": "object",
"properties": {
"characterId": {
"type": "string",
"format": "uuid",
"description": "Character UUID to generate video for"
},
"prompt": {
"type": "string",
"description": "Optional prompt/description for the video"
},
"duration": {
"type": "number",
"enum": [
2,
4,
5,
6,
8
],
"default": 4,
"description": "Video duration in seconds"
},
"fps": {
"type": "number",
"enum": [
24,
30
],
"description": "Frames per second (default 24)"
},
"aspectRatio": {
"type": "string",
"enum": [
"1:1",
"9:16",
"16:9"
],
"description": "Video aspect ratio"
},
"nsfw": {
"type": "boolean",
"default": false,
"description": "Enable unrestricted fan content generation"
},
"seed": {
"type": "integer",
"description": "Optional seed for reproducibility"
},
"useLora": {
"type": "boolean",
"description": "Use character LoRA for face consistency (default true)"
},
"realismStyle": {
"type": "boolean",
"description": "Apply photorealism post-processing"
}
},
"required": [
"characterId",
"aspectRatio"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢ryla_generate_voice(characterId, text, emotion, speed, voiceIdentityId, ...)
Generate speech audio (TTS) in an existing character's voice. Character must already exist; use ryla_list_characters to find a characterId.
Esquema de entrada
{
"type": "object",
"properties": {
"characterId": {
"type": "string",
"format": "uuid",
"description": "Character UUID"
},
"text": {
"type": "string",
"maxLength": 1000,
"description": "Text to convert to speech (max 1000 chars)"
},
"emotion": {
"type": "string",
"enum": [
"neutral",
"happy",
"sad",
"whisper",
"laugh",
"seductive",
"angry"
],
"description": "Emotion style for the voice"
},
"speed": {
"type": "number",
"minimum": 0.5,
"maximum": 2,
"description": "Speech speed multiplier, 0.5-2.0"
},
"voiceIdentityId": {
"type": "string",
"description": "Specific voice identity id, if known (otherwise the character default is used)"
},
"gender": {
"type": "string",
"enum": [
"female",
"male"
],
"description": "Character gender, to pick a default voice when voiceIdentityId is absent"
}
},
"required": [
"characterId",
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢ryla_generate_avatar_video(characterId, audioUrl, voiceNoteId, prompt, duration, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"characterId": {
"type": "string",
"format": "uuid",
"description": "Character UUID to use as the avatar face"
},
"audioUrl": {
"type": "string",
"format": "uri",
"description": "URL of the audio file (MP3/WAV/M4A, max 5MB, 2-60s). Required unless voiceNoteId is set."
},
"voiceNoteId": {
"type": "string",
"format": "uuid",
"description": "UUID of a saved voice note to use as the audio track instead of audioUrl"
},
"prompt": {
"type": "string",
"description": "Optional prompt/description for the avatar video"
},
"duration": {
"type": "number",
"enum": [
5,
10
],
"default": 5,
"description": "Video duration in seconds"
},
"aspectRatio": {
"type": "string",
"enum": [
"1:1",
"9:16",
"16:9"
],
"description": "Video aspect ratio (default 16:9)"
},
"modelTier": {
"type": "string",
"enum": [
"standard",
"pro"
],
"description": "Model quality tier (default pro)"
},
"sourceImageId": {
"type": "string",
"format": "uuid",
"description": "UUID of a specific image to use as the face source. If omitted, the character base image is used."
}
},
"required": [
"characterId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢ryla_generate_video_swap(characterId, videoUrl, sourceType, outfitEnabled, outfitPrompt, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"characterId": {
"type": "string",
"format": "uuid",
"description": "Character UUID whose face is swapped into the video"
},
"videoUrl": {
"type": "string",
"format": "uri",
"description": "URL of the source video to swap (must be a RYLA-hosted storage URL you own)"
},
"sourceType": {
"type": "string",
"enum": [
"instagram",
"tiktok",
"youtube",
"upload"
],
"description": "Source type (default upload)"
},
"outfitEnabled": {
"type": "boolean",
"description": "Enable an outfit-change prompt"
},
"outfitPrompt": {
"type": "string",
"description": "Outfit description, used only when outfitEnabled is true"
},
"backgroundEnabled": {
"type": "boolean",
"description": "Enable a background-change prompt"
},
"backgroundPrompt": {
"type": "string",
"description": "Background description, used only when backgroundEnabled is true"
}
},
"required": [
"characterId",
"videoUrl"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪ryla_generate_lip_sync(portraitImageUrl, audioUrl, prompt)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"portraitImageUrl": {
"type": "string",
"format": "uri",
"description": "Portrait/face image URL (RYLA-hosted storage URL you own)"
},
"audioUrl": {
"type": "string",
"format": "uri",
"description": "Audio track URL (RYLA-hosted storage URL you own)"
},
"prompt": {
"type": "string",
"minLength": 1,
"description": "Prompt describing the desired output (required)"
}
},
"required": [
"portraitImageUrl",
"audioUrl",
"prompt"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢ryla_server_info
Get RYLA external MCP server configuration and connection info
Esquema de entrada
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Prompts recomendados
ryla_account_gallery_listryla_account_gallery_listComunidad
Evidencia