fal-image-to-image について
fal-image-to-imageは、画像編集や変換を行うクリエイターや開発者向けのfal.aiモデル資料スキルです。インペインティング、構造ガイド、アップスケーリング、背景除去、顔修復のモデルとパラメーターを扱います。
主な機能
- 01画像のスタイル変換と加工
- 02マスクによるインペインティング
- 03ControlNetによる生成ガイド
- 04画像の拡大とディテール強化
- 05画像の背景除去
- 06顔の修復
活用シーン
- 01構図を保ちながら画像のスタイルを変更
- 02マスクで画像の指定領域を編集
- 03エッジ、深度、ポーズを使った生成ガイド
- 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-image | strength: 0-1 |
| インペインティング | fal-ai/flux/dev/inpainting | mask_url |
| ControlNet | fal-ai/flux-controlnet-union | control_type |
| アップスケール | fal-ai/clarity-upscaler | scale_factor: 2-4 |
| 背景の削除 | fal-ai/birefnet | - |
| 顔の修復 | fal-ai/codeformer | fidelity: 0-1 |
| 強度の値 | 効果 |
|---|---|
| 0.2-0.3 | 控えめなスタイルのヒント |
| 0.5-0.7 | 中程度の変換 |
| 0.8-1.0 | 全面的な再生成 |
| ControlNet の種類 | 用途 |
|---|---|
canny | エッジのガイド |
depth | 3D 構造 |
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 |
マスク作成のヒント
- 輪郭をきれいにする:滑らかに合成するには、アンチエイリアス処理されたマスクを使用します
- ぼかし:マスクの輪郭を少しぼかすと、アーティファクトが軽減されます
- 範囲:必要な範囲より少し広めに含めます
- 形式:白=編集、黒=保持の 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
}
});