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 最适合: 在单个模型中使用多种控制类型

支持: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
  }
});

最佳实践

Strength 指南
任务推荐 Strength
色彩校正0.2-0.3
风格提示0.3-0.5
风格迁移0.5-0.7
重新构想0.7-0.9
完全重新生成0.9-1.0
ControlNet Scale 指南
使用场景推荐 Scale
严格遵循结构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
  }
});

评论

支持 Markdown