mcpField
G
generate-image

generate-image

github.com/richardanayaクリエイティブ・メディア85 回インストール
リポジトリ

generate-image について

generate-imageは、fal.ai MCPゲートウェイ経由でxAIのGrok Imagineを使い、テキストから画像を作成するスキルです。画像数、アスペクト比、出力形式を指定できます。

主な機能

  1. 01テキストからの画像生成
  2. 02生成枚数の指定
  3. 03複数のアスペクト比
  4. 04JPEG、PNG、WebP出力
  5. 05修正後プロンプトの返却

活用シーン

  1. 01説明文からイラストを作成
  2. 02ポートレートやコンセプトアートの生成
  3. 03指定したアスペクト比で画像を作成

MCP 対応

fal.ai MCPゲートウェイを使って画像モデルを検索し、xAI Grok Imagineのエンドポイントを実行します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/richardanaya/agent-skills --skill generate-image

インストール後、Claude Code で/generate-imageを入力して読み込まれたか確認します。

詳細

画像生成スキル

説明

fal.ai MCP ゲートウェイを通じて、xAI の Grok Imagine を使用して画像を生成します。このスキルでは、フォトリアリスティックな画像、芸術的な画像、様式化された画像を、詳細なプロンプトを使ってテキストから生成できます。

使用するタイミング

ユーザーが次のことを希望する場合に、このスキルを使用します。

  • テキストの説明から画像を生成する
  • イラスト、アート作品、ビジュアルコンテンツを作成する
  • AI 画像生成ツールを使用する
  • コンセプトアート、ポートレート、シーン、抽象的な画像を作成する

前提条件

MCP サーバーが接続され、fal.ai サーバーが利用可能であることを確認します。

mcp({})  // Check server status

入力スキーマ

パラメーター型必須デフォルト説明
promptstringはい-生成したい画像のテキスト説明
num_imagesintegerいいえ1生成する画像の数
aspect_ratioAspectRatioEnumいいえ"1:1"生成する画像のアスペクト比
output_formatOutputFormatEnumいいえ"jpeg"生成する画像の形式
sync_modebooleanいいえfalsetrue の場合、メディアをデータ URI として返します
AspectRatioEnum の値
値説明
"2:1"超ワイドパノラマ
"20:9"シネマティックな超ワイド
"19.5:9"モバイル向け超ワイド
"16:9"HD ワイドスクリーン(動画標準)
"4:3"クラシックなディスプレイ比率
"3:2"写真プリント比率
"1:1"正方形(デフォルト)
"2:3"縦向き写真
"3:4"縦向きディスプレイ
"9:16"モバイル向け縦長
"9:19.5"モバイル向け縦長
"9:20"モバイル向け超縦長
"1:2"縦型パノラマ
OutputFormatEnum の値
値説明
"jpeg"JPEG 形式(デフォルト、圧縮率が最適)
"png"PNG 形式(可逆圧縮、透明度に対応)
"webp"WebP 形式(最新のウェブ向けに最適化)

出力スキーマ

フィールド型説明
imageslist生成された画像オブジェクトの配列
revised_promptstringモデルが使用した拡張済みプロンプト
ImageFile オブジェクト
フィールド型説明
urlstring生成された画像の URL

ツール

1. 画像生成モデルを検索する

まず、利用可能な画像生成モデルを確認します。

mcp({
  search: "image generation",
  server: "fal"
})

または、Grok を指定して検索します。

mcp({
  search: "grok",
  server: "fal"
})
2. 画像を生成する

xai/grok-imagine-image エンドポイントで fal_run_model ツールを使用します。

mcp({
  tool: "fal_run_model",
  server: "fal",
  args: {
    "endpoint_id": "xai/grok-imagine-image",
    "input": {
      "prompt": "Your detailed image description here",
      "num_images": 1,
      "aspect_ratio": "1:1",
      "output_format": "jpeg"
    }
  }
})
3. 画像を表示する

生成後、画像をユーザーに表示します。

show_image({
  url: "https://v3b.fal.media/files/.../image.jpg"
})

または、ローカルファイルの場合:

show_image({
  path: "/path/to/local/image.png"
})

リクエスト例

{
  "prompt": "Abstract human silhouette, golden particles ready to burst outward representing joy, data visualization style, emotional expression through particles, artistic scientific",
  "num_images": 1,
  "aspect_ratio": "1:1",
  "output_format": "jpeg"
}

レスポンス例

{
  "images": [
    {
      "url": "https://v3b.fal.media/files/b/0a8b90b7/9avg_nKJmcVinjQHJR_Ja.jpg"
    }
  ],
  "revised_prompt": ""
}

ベストプラクティス

効果的なプロンプトの書き方
  1. 具体的にする:被写体、スタイル、照明、雰囲気、品質を示す表現を含めます
  2. 芸術的な表現を使う:「シネマティックな照明」、「フォトリアリスティック」、「油絵」、「アニメ風」
  3. 技術的な品質を指定する:「8k 解像度」、「非常に精細」、「シャープなフォーカス」
  4. 構図を説明する:「クローズアップのポートレート」、「広大な風景」、「空撮」
  5. 雰囲気を含める:「ドラマチック」、「穏やか」、「未来的」、「ヴィンテージ」
カテゴリー別のプロンプト例

ポートレート:

Portrait of a wise elderly wizard with flowing white beard, wearing intricate 
blue robes embroidered with silver stars, mystical library background, warm 
candlelight, highly detailed face, 8k, photorealistic

SF:

Futuristic cyberpunk city at night, neon signs in Japanese, flying cars, rain 
streets reflecting lights, towering holographic advertisements, blade runner 
style, cinematic composition, 8k quality

自然:

Majestic snow-capped mountains at golden hour, crystal clear alpine lake with 
reflection, pine forest in foreground, dramatic clouds, landscape photography 
style, ultra detailed, 8k resolution

抽象:

Abstract human silhouette, golden particles ready to burst outward representing 
joy, data visualization style, emotional expression through particles, 
artistic scientific

キャラクター(例:フェレンギ):

A Star Trek Ferengi alien, humanoid with large ears, wrinkled forehead, sharp 
teeth grin, wearing traditional Ferengi business attire with dark tunic and 
collared shirt, standing in a sci-fi alien marketplace, detailed facial features, 
dramatic lighting, cinematic quality, 8k resolution, photorealistic

ワークフロー全体の例

画像を生成して表示するまでのワークフロー全体を以下に示します。

// Step 1: Generate the image
const result = await mcp({
  tool: "fal_run_model",
  server: "fal",
  args: {
    "endpoint_id": "xai/grok-imagine-image",
    "input": {
      "prompt": "A serene Japanese zen garden with raked sand patterns, moss-covered stones, cherry blossom tree in bloom, morning mist, tranquil atmosphere, traditional wooden pagoda in background, ultra detailed, 8k, photorealistic",
      "num_images": 1,
      "aspect_ratio": "16:9",
      "output_format": "jpeg"
    }
  }
});

// Step 2: Extract the image URL
const imageUrl = result.result.images[0].url;

// Step 3: Display to user
show_image({
  url: imageUrl
});

トラブルシューティング

問題解決策
モデルが見つからないmcp({ search: "grok", server: "fal" }) を実行してエンドポイントを確認します
接続エラーmcp({}) で MCP のステータスを確認し、再接続します
画像の品質が低いプロンプトに、より具体的な表現を追加します
アスペクト比が違う"1:1"、"16:9"、"9:16"、"4:3"、または "3:4" を使用します
生成がタイムアウトするより簡潔なプロンプトを試すか、fal.ai のステータスを確認します
同期モードが機能しないデータ URI を出力するには "sync_mode": true を設定します

代替モデル

Grok Imagine が利用できない場合は、代替モデルを検索してください。

mcp({
  search: "flux",
  server: "fal"
})

よく使われる代替モデル:

  • fal-ai/flux-2-pro - 高品質で、細部まで描写された画像
  • fal-ai/flux/dev - 高速な生成で、品質も良好
  • fal-ai/flux-1/schnell - 最速の推論

注意事項

  • 生成された画像は fal.media で一時的にホストされます
  • 画像 URL の有効期間は限られており、通常は 24~48 時間です
  • 永続的な保存が必要な場合は、画像をローカルに保存してください
  • 画像を生成する際は、コンテンツポリシーにご注意ください
  • revised_prompt フィールドには、プロンプトを改良した内容が含まれる場合があります

コメント