RYLA

Generate AI influencer photos, face swaps, and character sheets with a consistent face.

사용해야 할까요

품질 및 안전성

A
설명 품질
98%
스키마 완전성
84%
이름 품질
80%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (1)

  • LOWTool 'ryla_generate_face_swap' description lacks action verbryla_generate_face_swap에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,918토큰 (도구 정의)
~2.0 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.28%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "ryla": {
      "url": "https://mcp.ryla.ai/mcp"
    }
  }
}

원격 엔드포인트

https://mcp.ryla.ai/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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

입력 스키마

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

권장 프롬프트

list_items
List all [items] available in RYLA
예상 도구: ryla_account_gallery_list
browse_collection
Show me the [collection] from RYLA
예상 도구: ryla_account_gallery_list

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 14개
검증됨버전이 기록되지 않음도구 14개