mcpField
F
fal-image-to-image

fal-image-to-image

github.com/josiahsiegelクリエイティブ・メディア5979 回インストール19 週間前に更新
リポジトリ

fal-image-to-image について

fal-image-to-imageは、画像編集や変換を行うクリエイターや開発者向けのfal.aiモデル資料スキルです。インペインティング、構造ガイド、アップスケーリング、背景除去、顔修復のモデルとパラメーターを扱います。

主な機能

  1. 01画像のスタイル変換と加工
  2. 02マスクによるインペインティング
  3. 03ControlNetによる生成ガイド
  4. 04画像の拡大とディテール強化
  5. 05画像の背景除去
  6. 06顔の修復

活用シーン

  1. 01構図を保ちながら画像のスタイルを変更
  2. 02マスクで画像の指定領域を編集
  3. 03エッジ、深度、ポーズを使った生成ガイド
  4. 04低解像度画像の拡大や古い写真の修復

インストール

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

$npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill fal-image-to-image

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

詳細

クイックリファレンス

タスクエンドポイント主なパラメーター
変換fal-ai/flux/dev/image-to-imagestrength: 0-1
インペインティングfal-ai/flux/dev/inpaintingmask_url
ControlNetfal-ai/flux-controlnet-unioncontrol_type
アップスケールfal-ai/clarity-upscalerscale_factor: 2-4
背景の削除fal-ai/birefnet-
顔の修復fal-ai/codeformerfidelity: 0-1
強度の値効果
0.2-0.3控えめなスタイルのヒント
0.5-0.7中程度の変換
0.8-1.0全面的な再生成
ControlNet の種類用途
cannyエッジのガイド
depth3D 構造
pose人物のポーズ
tileディテールの強化

このスキルを使う場面

画像の編集や変換に使用します:

  • 構造を維持しながらスタイルを変換する
  • 特定の領域を編集するインペインティング
  • ガイド付き生成に ControlNet を使用する
  • 低解像度の画像をアップスケールする
  • 背景を削除する
  • 古い写真の顔を修復する

関連スキル:

  • テキストから画像を生成する場合:fal-text-to-image を参照
  • 画像から動画を生成する場合:fal-image-to-video を参照
  • モデルを選択する場合:fal-model-guide を参照

fal.ai の画像間変換モデル

fal.ai の画像変換、編集、強化モデルの完全なリファレンスです。

FLUX 画像間変換

基本的な画像間変換

エンドポイント: fal-ai/flux/dev/image-to-image 最適な用途: スタイル変換、画像変換

構造を維持しながら既存の画像を変換します。

import { fal } from "@fal-ai/client";

const result = await fal.subscribe("fal-ai/flux/dev/image-to-image", {
  input: {
    prompt: "Transform into a watercolor painting style",
    image_url: "https://example.com/photo.jpg",
    strength: 0.75,  // 0-1, how much to transform
    num_inference_steps: 28,
    guidance_scale: 3.5,
    seed: 42
  }
});

console.log(result.images[0].url);
import fal_client

result = fal_client.subscribe(
    "fal-ai/flux/dev/image-to-image",
    arguments={
        "prompt": "Transform into a watercolor painting style",
        "image_url": "https://example.com/photo.jpg",
        "strength": 0.75,
        "num_inference_steps": 28,
        "guidance_scale": 3.5
    }
)
print(result["images"][0]["url"])

強度パラメーター:

  • 0.0:変更なし(元の画像)
  • 0.3-0.5:控えめな変更、スタイルのヒント
  • 0.5-0.7:中程度の変換
  • 0.7-0.9:大幅な変換、元の画像の一部を維持
  • 1.0:完全な再生成(元の画像を無視)
FLUX Pro 画像間変換

エンドポイント: fal-ai/flux-pro/v1/image-to-image 最適な用途: 本番品質の変換

const result = await fal.subscribe("fal-ai/flux-pro/v1/image-to-image", {
  input: {
    prompt: "Professional headshot, studio lighting",
    image_url: "https://example.com/casual-photo.jpg",
    strength: 0.6,
    guidance_scale: 3.5
  }
});

ControlNet モデル

FLUX ControlNet

エンドポイント: fal-ai/flux-controlnet 最適な用途: 精密な構造制御

const result = await fal.subscribe("fal-ai/flux-controlnet", {
  input: {
    prompt: "A modern house with large windows",
    control_image_url: "https://example.com/architecture-sketch.png",
    controlnet_conditioning_scale: 0.8,
    num_inference_steps: 28,
    guidance_scale: 3.5
  }
});
FLUX ControlNet Union

エンドポイント: fal-ai/flux-controlnet-union 最適な用途: 1つのモデルで複数の制御タイプに対応

対応:canny、depth、pose、tile、blur、gray、low_quality

const result = await fal.subscribe("fal-ai/flux-controlnet-union", {
  input: {
    prompt: "A beautiful woman in a red dress",
    control_image_url: "https://example.com/pose-reference.png",
    control_type: "pose",
    controlnet_conditioning_scale: 0.7,
    num_inference_steps: 28
  }
});

制御タイプ:

  • canny:エッジ検出によるガイド
  • depth:深度マップによるガイド
  • pose:人物のポーズによるガイド
  • tile:ディテールの強化
  • blur:ぼかしベースの制御
  • gray:グレースケール構造
  • low_quality:品質の向上
SDXL ControlNet

エンドポイント: fal-ai/fast-sdxl/controlnet 最適な用途: 構造制御を備えた SDXL

const result = await fal.subscribe("fal-ai/fast-sdxl/controlnet", {
  input: {
    prompt: "A futuristic cityscape",
    negative_prompt: "blurry, low quality",
    control_image_url: "https://example.com/depth-map.png",
    controlnet_type: "depth",
    controlnet_conditioning_scale: 0.8
  }
});
Canny エッジ検出

エンドポイント: fal-ai/flux-controlnet-canny 最適な用途: エッジベースの生成

const result = await fal.subscribe("fal-ai/flux-controlnet-canny", {
  input: {
    prompt: "A detailed architectural drawing",
    control_image_url: "https://example.com/building-photo.jpg",
    controlnet_conditioning_scale: 0.9
  }
});
深度ベースの制御

エンドポイント: fal-ai/flux-controlnet-depth 最適な用途: 3D を考慮した生成

const result = await fal.subscribe("fal-ai/flux-controlnet-depth", {
  input: {
    prompt: "A mystical forest scene",
    control_image_url: "https://example.com/depth-map.png",
    controlnet_conditioning_scale: 0.7
  }
});

インペインティングモデル

FLUX インペインティング

エンドポイント: fal-ai/flux/dev/inpainting 最適な用途: 特定の領域の編集

const result = await fal.subscribe("fal-ai/flux/dev/inpainting", {
  input: {
    prompt: "A golden retriever",
    image_url: "https://example.com/photo-with-pet.jpg",
    mask_url: "https://example.com/mask.png",  // White = edit area
    num_inference_steps: 28,
    guidance_scale: 3.5
  }
});
result = fal_client.subscribe(
    "fal-ai/flux/dev/inpainting",
    arguments={
        "prompt": "A golden retriever",
        "image_url": "https://example.com/photo.jpg",
        "mask_url": "https://example.com/mask.png"
    }
)

マスク形式:

  • 白いピクセル(255, 255, 255):編集/再生成する領域
  • 黒いピクセル(0, 0, 0):保持する領域
FLUX Pro Fill

エンドポイント: fal-ai/flux-pro/v1/fill 最適な用途: 高品質なインペインティングとアウトペインティング

const result = await fal.subscribe("fal-ai/flux-pro/v1/fill", {
  input: {
    prompt: "Seamless continuation of the landscape",
    image_url: "https://example.com/partial-image.jpg",
    mask_url: "https://example.com/outpaint-mask.png"
  }
});
SDXL インペインティング

エンドポイント: fal-ai/fast-sdxl/inpainting 最適な用途: SDXL ベースの領域編集

const result = await fal.subscribe("fal-ai/fast-sdxl/inpainting", {
  input: {
    prompt: "A beautiful flower arrangement",
    negative_prompt: "ugly, distorted",
    image_url: "https://example.com/vase.jpg",
    mask_url: "https://example.com/vase-mask.png"
  }
});

アップスケールモデル

ESRGAN 4x

エンドポイント: fal-ai/esrgan 最適な用途: 従来型の 4 倍アップスケール

const result = await fal.subscribe("fal-ai/esrgan", {
  input: {
    image_url: "https://example.com/low-res-image.jpg",
    scale: 4  // 2 or 4
  }
});

// Result is 4x the original resolution
console.log(result.image.url);
result = fal_client.subscribe(
    "fal-ai/esrgan",
    arguments={
        "image_url": "https://example.com/low-res.jpg",
        "scale": 4
    }
)
print(result["image"]["url"])
Clarity Upscaler

エンドポイント: fal-ai/clarity-upscaler 最適な用途: ディテール生成による AI 強化アップスケール

const result = await fal.subscribe("fal-ai/clarity-upscaler", {
  input: {
    image_url: "https://example.com/image.jpg",
    scale_factor: 2,  // 1-4
    prompt: "high quality, detailed, sharp",
    creativity: 0.3,  // 0-1, how much to add
    resemblance: 0.8  // 0-1, similarity to original
  }
});

パラメーター:

  • scale_factor:1-4、アップスケール倍率
  • creativity:0-1、AI がディテールを「想像」する度合い
  • resemblance:0-1、元の画像にどの程度似せるか
  • prompt:ディテール生成のための任意のガイド
Real-ESRGAN

エンドポイント: fal-ai/real-esrgan 最適な用途: 汎用アップスケール

const result = await fal.subscribe("fal-ai/real-esrgan", {
  input: {
    image_url: "https://example.com/image.jpg",
    scale: 4,
    face_enhance: true  // Enhance faces
  }
});
クリエイティブアップスケーラー

エンドポイント: fal-ai/creative-upscaler 最適な用途: 再生成を伴う芸術的なアップスケーリング

const result = await fal.subscribe("fal-ai/creative-upscaler", {
  input: {
    image_url: "https://example.com/image.jpg",
    scale: 2,
    prompt: "highly detailed, photorealistic"
  }
});

背景除去

BiRefNet

エンドポイント: fal-ai/birefnet 最適な用途: 高品質な背景除去

const result = await fal.subscribe("fal-ai/birefnet", {
  input: {
    image_url: "https://example.com/product-photo.jpg"
  }
});

// Returns image with transparent background
console.log(result.image.url);
result = fal_client.subscribe(
    "fal-ai/birefnet",
    arguments={
        "image_url": "https://example.com/photo.jpg"
    }
)
# PNG with transparent background
print(result["image"]["url"])
RemBG

エンドポイント: fal-ai/rembg 最適な用途: 高速な背景除去

const result = await fal.subscribe("fal-ai/rembg", {
  input: {
    image_url: "https://example.com/image.jpg"
  }
});
背景除去(BRIA)

エンドポイント: fal-ai/bria/background-removal 最適な用途: 商用レベルの背景除去

const result = await fal.subscribe("fal-ai/bria/background-removal", {
  input: {
    image_url: "https://example.com/image.jpg"
  }
});

顔の補正

GFPGAN

エンドポイント: fal-ai/gfpgan 最適な用途: 顔の復元

const result = await fal.subscribe("fal-ai/gfpgan", {
  input: {
    image_url: "https://example.com/old-photo.jpg",
    version: "1.4",  // or "1.3"
    scale: 2
  }
});
CodeFormer

エンドポイント: fal-ai/codeformer 最適な用途: 高度な顔の復元

const result = await fal.subscribe("fal-ai/codeformer", {
  input: {
    image_url: "https://example.com/damaged-photo.jpg",
    fidelity: 0.7  // 0-1, balance quality vs fidelity
  }
});

IP-Adapter(スタイル転送)

FLUX IP-Adapter

エンドポイント: fal-ai/flux-ip-adapter 最適な用途: 画像からスタイルを参照

const result = await fal.subscribe("fal-ai/flux-ip-adapter", {
  input: {
    prompt: "A modern living room",
    image_url: "https://example.com/style-reference.jpg",
    ip_adapter_scale: 0.7,  // 0-1, style strength
    num_inference_steps: 28
  }
});
IP-Adapter Face ID

エンドポイント: fal-ai/flux-ip-adapter-face-id 最適な用途: 生成画像間で顔の一貫性を維持

const result = await fal.subscribe("fal-ai/flux-ip-adapter-face-id", {
  input: {
    prompt: "A portrait in renaissance style",
    face_image_url: "https://example.com/face-reference.jpg",
    ip_adapter_scale: 0.8
  }
});

画像から画像への変換パラメーターリファレンス

共通パラメーター
interface ImageToImageInput {
  prompt: string;
  image_url: string;

  // Transformation strength
  strength?: number;  // 0-1, how much to change

  // Generation parameters
  num_inference_steps?: number;
  guidance_scale?: number;
  seed?: number;

  // Output
  output_format?: "jpeg" | "png";
}
ControlNet パラメーター
interface ControlNetInput {
  prompt: string;
  control_image_url: string;
  control_type?: "canny" | "depth" | "pose" | "tile" | "blur" | "gray";
  controlnet_conditioning_scale?: number;  // 0-1

  num_inference_steps?: number;
  guidance_scale?: number;
  seed?: number;
}
インペインティングパラメーター
interface InpaintingInput {
  prompt: string;
  image_url: string;
  mask_url: string;  // White = edit, Black = preserve

  num_inference_steps?: number;
  guidance_scale?: number;
  seed?: number;
}
アップスケーリングパラメーター
interface UpscalingInput {
  image_url: string;
  scale?: number;  // 2 or 4

  // For AI upscalers
  prompt?: string;
  creativity?: number;
  resemblance?: number;
}

ワークフローの例

商品写真の完全なパイプライン
// 1. Remove background
const bgRemoved = await fal.subscribe("fal-ai/birefnet", {
  input: { image_url: originalProductUrl }
});

// 2. Upscale
const upscaled = await fal.subscribe("fal-ai/clarity-upscaler", {
  input: {
    image_url: bgRemoved.image.url,
    scale_factor: 2,
    prompt: "product photography, studio lighting"
  }
});

// 3. Apply style transformation
const styled = await fal.subscribe("fal-ai/flux/dev/image-to-image", {
  input: {
    prompt: "Professional e-commerce product photo, white background, soft shadows",
    image_url: upscaled.image.url,
    strength: 0.3
  }
});
顔の復元パイプライン
// 1. Upscale
const upscaled = await fal.subscribe("fal-ai/real-esrgan", {
  input: {
    image_url: oldPhotoUrl,
    scale: 4,
    face_enhance: false
  }
});

// 2. Restore faces
const restored = await fal.subscribe("fal-ai/codeformer", {
  input: {
    image_url: upscaled.image.url,
    fidelity: 0.7
  }
});
構造を維持したスタイル転送
// Use ControlNet to maintain structure while changing style
const result = await fal.subscribe("fal-ai/flux-controlnet-canny", {
  input: {
    prompt: "oil painting style, impressionist, vibrant colors",
    control_image_url: originalPhotoUrl,
    controlnet_conditioning_scale: 0.9
  }
});

ベストプラクティス

強度の目安
タスク推奨される強度
色補正0.2-0.3
スタイルのヒント0.3-0.5
スタイル転送0.5-0.7
再構想0.7-0.9
全面再生成0.9-1.0
ControlNet スケールの目安
用途推奨されるスケール
厳密な構造0.9-1.0
バランス型0.7-0.8
緩やかな誘導0.4-0.6
マスク作成のヒント
  1. 輪郭をきれいにする:滑らかに合成するには、アンチエイリアス処理されたマスクを使用します
  2. ぼかし:マスクの輪郭を少しぼかすと、アーティファクトが軽減されます
  3. 範囲:必要な範囲より少し広めに含めます
  4. 形式:白=編集、黒=保持の PNG
大きな画像のファイルアップロード
// Upload file first for large images
const file = await fetch("local-image.jpg").then(r => r.blob());
const uploadedUrl = await fal.storage.upload(
  new File([file], "image.jpg", { type: "image/jpeg" })
);

// Then use in transformation
const result = await fal.subscribe("fal-ai/flux/dev/image-to-image", {
  input: {
    prompt: "...",
    image_url: uploadedUrl,
    strength: 0.5
  }
});

コメント