fal.aiAI平台集成与开发Skill fal-ai

这个技能是关于使用fal.ai服务器less AI平台进行图像、视频和音频内容的生成与编辑。它支持多种AI模型如Flux、SDXL,并提供实时生成、背景移除、视频编辑等功能,适用于开发AI驱动的应用、内容创作和AIGC项目。关键词:AI图像生成、视频生成、服务器less AI、Flux、SDXL、实时AI、AIGC、AI平台集成。

AIGC 0 次安装 0 次浏览 更新于 3/22/2026

name: fal-ai description: 使用 fal.ai 服务器less AI 生成图像、视频和音频。在构建AI图像生成、视频生成、图像编辑或实时AI功能时使用。触发词:fal.ai, fal, AI图像生成, Flux, SDXL, 实时AI, 服务器less AI。

fal.ai - 服务器less AI 平台

使用 fal.ai 的快速服务器less推理生成图像、视频和音频。

快速开始

npm install @fal-ai/serverless-client
import * as fal from '@fal-ai/serverless-client';

fal.config({
  credentials: process.env.FAL_KEY,
});

// 使用 Flux 生成图像
const result = await fal.subscribe('fal-ai/flux/dev', {
  input: {
    prompt: '一个宁静的日本花园,有樱花',
    image_size: 'landscape_16_9',
    num_images: 1,
  },
});

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

认证

// 选项1:环境变量(推荐)
// 在 .env 中设置 FAL_KEY
fal.config({ credentials: process.env.FAL_KEY });

// 选项2:直接配置
fal.config({ credentials: '你的API密钥' });

// 选项3:代理(用于客户端应用)
// 在客户端使用 fal.config({ proxyUrl: '/api/fal/proxy' })

图像生成模型

Flux(最快,高质量)

// Flux Dev - 最佳质量
const result = await fal.subscribe('fal-ai/flux/dev', {
  input: {
    prompt: '商业高管的专业头像',
    image_size: 'square_hd',  // 1024x1024
    num_inference_steps: 28,
    guidance_scale: 3.5,
    num_images: 1,
    enable_safety_checker: true,
  },
});

// Flux Schnell - 超快(约0.5秒)
const fast = await fal.subscribe('fal-ai/flux/schnell', {
  input: {
    prompt: '一个可爱的机器人',
    image_size: 'square',
    num_inference_steps: 4,  // Schnell需要较少步数
  },
});

// Flux Pro - 最高质量
const pro = await fal.subscribe('fal-ai/flux-pro', {
  input: {
    prompt: '超写实肖像',
    image_size: 'portrait_4_3',
    safety_tolerance: '2',
  },
});

图像尺寸

type ImageSize = 
  | 'square_hd'      // 1024x1024
  | 'square'         // 512x512
  | 'portrait_4_3'   // 768x1024
  | 'portrait_16_9'  // 576x1024
  | 'landscape_4_3'  // 1024x768
  | 'landscape_16_9' // 1024x576
  | { width: number; height: number };  // 自定义

SDXL 与 Stable Diffusion

// SDXL
const sdxl = await fal.subscribe('fal-ai/fast-sdxl', {
  input: {
    prompt: '奇幻景观',
    negative_prompt: '模糊,低质量',
    image_size: 'landscape_16_9',
    num_inference_steps: 25,
    guidance_scale: 7.5,
    scheduler: 'DPM++ 2M Karras',
  },
});

// Stable Diffusion 3
const sd3 = await fal.subscribe('fal-ai/stable-diffusion-v3-medium', {
  input: {
    prompt: '日落时的山湖',
    negative_prompt: '丑陋,变形',
    image_size: 'landscape_16_9',
  },
});

图像到图像

使用 Flux 进行图像编辑

// 图像到图像
const result = await fal.subscribe('fal-ai/flux/dev/image-to-image', {
  input: {
    prompt: '转换为水彩画风格',
    image_url: 'https://example.com/photo.jpg',
    strength: 0.75,  // 改变程度(0-1)
    num_inference_steps: 28,
  },
});

// 修复(编辑特定区域)
const inpaint = await fal.subscribe('fal-ai/flux/dev/inpainting', {
  input: {
    prompt: '一辆红色跑车',
    image_url: 'https://example.com/street.jpg',
    mask_url: 'https://example.com/mask.png',  // 白色=编辑区域
  },
});

ControlNet

// 使用姿势/边缘控制生成
const controlled = await fal.subscribe('fal-ai/flux-controlnet', {
  input: {
    prompt: '一位专业舞者',
    control_image_url: 'https://example.com/pose.jpg',
    controlnet_conditioning_scale: 0.8,
  },
});

视频生成

Kling 视频

const video = await fal.subscribe('fal-ai/kling-video/v1/standard/text-to-video', {
  input: {
    prompt: '一只金毛犬跑过花田',
    duration: '5',  // 秒
    aspect_ratio: '16:9',
  },
});

console.log(video.video.url);

图像到视频

const i2v = await fal.subscribe('fal-ai/kling-video/v1/standard/image-to-video', {
  input: {
    prompt: '人物开始向前走',
    image_url: 'https://example.com/person.jpg',
    duration: '5',
  },
});

Luma Dream Machine

const luma = await fal.subscribe('fal-ai/luma-dream-machine', {
  input: {
    prompt: '云朵在山上移动的延时摄影',
    aspect_ratio: '16:9',
  },
});

实时生成

WebSocket 流式传输

import * as fal from '@fal-ai/serverless-client';

// 实时图像生成与流式传输
const stream = await fal.stream('fal-ai/flux/dev', {
  input: {
    prompt: '美丽的日落',
    image_size: 'landscape_16_9',
  },
});

for await (const event of stream) {
  if (event.images) {
    console.log('已生成:', event.images[0].url);
  }
}

实时 SDXL(低延迟)

// 交互式应用的超低延迟
const realtime = await fal.subscribe('fal-ai/fast-lcm-diffusion', {
  input: {
    prompt: '抽象艺术',
    image_size: 'square',
    num_inference_steps: 4,  // LCM需要非常少步数
  },
});

背景移除与编辑

// 移除背景
const nobg = await fal.subscribe('fal-ai/birefnet', {
  input: {
    image_url: 'https://example.com/photo.jpg',
  },
});

// 图像放大
const upscaled = await fal.subscribe('fal-ai/creative-upscaler', {
  input: {
    image_url: 'https://example.com/small.jpg',
    scale: 2,
    creativity: 0.5,
    prompt: '高质量,详细',
  },
});

// 换脸
const swapped = await fal.subscribe('fal-ai/face-swap', {
  input: {
    base_image_url: 'https://example.com/target.jpg',
    swap_image_url: 'https://example.com/face.jpg',
  },
});

Next.js 集成

API 路由(App Router)

// app/api/generate/route.ts
import * as fal from '@fal-ai/serverless-client';
import { NextRequest, NextResponse } from 'next/server';

fal.config({ credentials: process.env.FAL_KEY });

export async function POST(request: NextRequest) {
  const { prompt, model = 'fal-ai/flux/schnell' } = await request.json();
  
  try {
    const result = await fal.subscribe(model, {
      input: {
        prompt,
        image_size: 'landscape_16_9',
        num_images: 1,
      },
    });
    
    return NextResponse.json({ 
      imageUrl: result.images[0].url,
      seed: result.seed,
    });
  } catch (error) {
    return NextResponse.json({ error: '生成失败' }, { status: 500 });
  }
}

客户端代理路由

// app/api/fal/proxy/route.ts
import { route } from '@fal-ai/serverless-client/server-proxy';

export const { GET, POST, PUT, DELETE } = route;
// 客户端使用
'use client';
import * as fal from '@fal-ai/serverless-client';

fal.config({ proxyUrl: '/api/fal/proxy' });

async function generateImage(prompt: string) {
  const result = await fal.subscribe('fal-ai/flux/schnell', {
    input: { prompt, image_size: 'square_hd' },
  });
  return result.images[0].url;
}

长任务队列系统

// 提交到队列(立即返回)
const { request_id } = await fal.queue.submit('fal-ai/flux/dev', {
  input: { prompt: '复杂场景', num_images: 4 },
});

// 检查状态
const status = await fal.queue.status('fal-ai/flux/dev', {
  requestId: request_id,
});
console.log(status.status); // 'IN_QUEUE' | 'IN_PROGRESS' | 'COMPLETED'

// 准备就绪时获取结果
if (status.status === 'COMPLETED') {
  const result = await fal.queue.result('fal-ai/flux/dev', {
    requestId: request_id,
  });
}

// 或使用webhook
await fal.queue.submit('fal-ai/flux/dev', {
  input: { prompt: '场景' },
  webhookUrl: 'https://your-server.com/webhook',
});

模型比较

模型 速度 质量 最佳用途
flux/schnell ~0.5s 实时,预览
flux/dev ~3s 优秀 生产图像
flux-pro ~5s 最佳 专业工作
fast-sdxl ~2s 通用目的
sd-v3-medium ~4s 优秀 详细场景
kling-video ~60s 视频生成

资源