用途
fal-image 用于通过 Fal.ai 的 API 生成 AI 图像、艺术作品、视觉内容等。Fal.ai 是一个被广泛使用的 AI 图像生成 API 平台,可在 Flux Pro、Stable Diffusion 等主流模型上提供快速推理。
准备工作
需要在 fal.ai/dashboard/keys 创建一个免费 API Key,并将其添加到 .env 文件中,变量名为 FAL_API_KEY。
主要能力
支持调用多种模型端点,按质量、速度与适用场景区分:
| 端点 | 质量 | 速度 | 适用场景 |
|---|---|---|---|
| fal-ai/flux-pro/v1.1-ultra | ⭐⭐⭐⭐⭐ | ~8s | Hero shots、campaign images |
| fal-ai/flux-pro/v1.1 | ⭐⭐⭐⭐ | ~5s | 批量内容、迭代 |
| fal-ai/flux/dev | ⭐⭐⭐ | ~3s | 快速原型 |
| fal-ai/flux-realism | ⭐⭐⭐⭐ | ~6s | 照片级写实图像 |
默认使用 flux-pro/v1.1-ultra,除非速度比质量更重要。
支持的图像尺寸包括:
| 取值 | 像素 | 适用场景 |
|---|---|---|
| square_hd | 1024×1024 | Instagram 信息流(1:1) |
| portrait_4_3 | 768×1024 | Instagram 竖版信息流 |
| portrait_16_9 | 576×1024 | Instagram Stories / Reels 封面 |
| landscape_4_3 | 1024×768 | 宽幅格式 |
| landscape_16_9 | 1024×576 | YouTube 缩略图 |
使用方式
快速用法示例:
import fal_client, os
os.environ['FAL_KEY'] = os.environ['FAL_API_KEY'] # required alias
result = fal_client.run(
'fal-ai/flux-pro/v1.1-ultra', # best model
arguments={
'prompt': 'your prompt here',
'image_size': 'square_hd', # 1:1 for Instagram feed
'num_images': 1,
'output_format': 'jpeg',
'safety_tolerance': '5' # 1=strict, 6=permissive
}
)
url = result['images'][0]['url'] # direct CDN URL, download with requests
完整响应结构:
result = {
'images': [{'url': str, 'width': int, 'height': int, 'content_type': str}],
'timings': {'inference': float},
'seed': int,
'has_nsfw_concepts': [bool],
'prompt': str # may be refined by model
}
下载图像:
import requests
response = requests.get(url)
with open('output/image.jpg', 'wb') as f:
f.write(response.content)
品牌提示词公式
针对符合 Starchild 品牌的内容,提示词应包含:
- 基础氛围:深黑背景、暗色电影感氛围
- 色彩强调:琥珀橙光晕、#F84600 橙色光
- 风格:抽象、极简、几何、高对比
- 避免:产品模型图、写实 UI、图库照片风格、人物、面孔
推荐提示词模板:
[abstract concept], deep black background, [specific visual element],
amber orange light refraction, cinematic, ultra detailed,
8k, high contrast, minimal composition, no text
合成层(Pillow)
生成之后,可应用品牌合成脚本:skills/fal-image/scripts/compose_instagram.py
该脚本会添加:
- Starchild logo + 文字标志
- 橙色顶部装饰条
- 底部渐变遮罩,提升文字可读性
- 可选标题/副文本
注意事项
- 必须设置 os.environ['FAL_KEY'] = os.environ['FAL_API_KEY'],因为客户端查找的是 FAL_KEY,而非 FAL_API_KEY。
- URL 是临时 CDN 链接(约 1 小时),生成后需立即下载。
- safety_tolerance: '5' 对抽象/艺术内容足够;若内容接近真实人物,应调低该值。
- 支持异步批量任务:使用 fal_client.submit() + fal_client.result()。