关于 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
最适合: 在单个模型中使用多种控制类型
支持: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 |
蒙版创建技巧
- 边缘清晰: 使用抗锯齿蒙版,实现平滑融合
- 羽化: 轻微模糊蒙版边缘可减少伪影
- 覆盖范围: 比所需范围略大一些
- 格式: 使用 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
}
});