关于 picture-it
picture-it 是供 Agent 使用的图像命令行技能,可通过组合操作生成和编辑图片。它同时提供 AI 处理,以及本地合成与后期处理命令。
主要功能
- 01使用 AI 生成和编辑图片
- 02移除或替换背景
- 03裁剪图片并调整色彩
- 04添加文字并合成图层
- 05使用模板并查看图片信息
适用场景
- 01制作带文字叠加的博客页眉图
- 02制作文字位于主体后方的视频缩略图
- 03将产品照片置于统一背景上
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ geongeorge/ picture-it --skill picture-it安装后在 Claude Code 中输入/picture-it确认已加载。
附带文件references/composition-guide.mdreferences/prompt-library.md
详细介绍
picture-it
面向 AI Agent 的 Photoshop。通过命令行组合图像操作。
来源:https://github.com/geongeorge/picture-it | npm:https://www.npmjs.com/package/picture-it
前置条件
必须安装并配置 picture-it。需要 Node.js 18+。
# Install (pick one)
npm install -g picture-it
pnpm add -g picture-it
bun install -g picture-it
# Setup
picture-it download-fonts
凭据
AI 操作(generate、edit、remove-bg、upscale)需要 FAL API 密钥。通过环境变量或 CLI 设置:
# Option 1: Environment variable (preferred — use platform-managed secrets)
export FAL_KEY=your-key-here
# Option 2: CLI config (stored in ~/.picture-it/config.json with 0600 permissions)
picture-it auth --fal <fal-api-key>
切勿将 API 密钥粘贴到聊天中。始终使用环境变量或 CLI 身份验证命令。从 https://fal.ai 获取 FAL 密钥。
注意:使用 generate、edit、remove-bg 或 upscale 命令时,用户图像会上传到 fal.ai 进行 AI 处理。本地命令(crop、grade、grain、vignette、text、compose、template、info)不会传输数据。
核心概念
每个命令都接收一张图像并输出一张图像。将命令串联起来即可构建任何效果。调用 picture-it 的 Agent 就是规划者——工具内部没有 AI 规划器。
生成任何内容之前——先思考
图像生成需要实际付费(每次 FAL 调用 $0.03–$0.15)。一个 4 轮工作流的费用为 $0.10 以上。不要为模糊的想法浪费预算——运行任何命令之前,先花时间规划。
步骤 1:了解用途
在使用 picture-it 之前,先充分了解用户的需求。问问自己:
- 这张图像有什么用途?(博客横幅、Instagram 广告、YouTube 缩略图、产品对比图、海报)
- 受众是谁?(开发者、消费者、企业买家)
- 人们看到它时应该有什么感受?(兴奋、信任、紧迫感、好奇)
- 核心信息是什么? 每张好图像都只传达一件事。
- 它会在哪里展示? 这决定了尺寸、文字大小和构图规则。
如果其中任何一点不明确,请先询问用户再继续。花 30 秒提问,就能省下浪费的 $0.15 生成费用。
步骤 2:规划构图
至少考虑 3 种不同方案后再做选择。考虑以下因素:
- 能否不使用 FAL 来完成? 模板和 Satori compose 都是免费的。简洁的渐变背景加上良好的排版往往就够了。
- 最少需要调用几次 FAL? 每次调用都要花钱。规划出达到目标所需的最少轮数。
- 哪种技巧最合适? 缩略图适合文字置于主体之后;产品照片适合 remove-bg + compose;电影感场景适合多轮处理。
简要向用户介绍你最推荐的 2–3 个想法——每个用一句话说明——并在生成前让他们选择。例如:
“这里有几个方向:
- 戏剧化产品镜头——生成暗色舞台,再编辑以发光的 3D 物体形式放置你的 logo($0.07)
- 简洁对比图——从两件产品中移除背景,在渐变背景上合成并添加文字($0.01)
- 文字置于主体之后——生成动作场景,再编辑以便标题穿插在主体后方($0.07)
你想选哪个方向,或者混合搭配?”
步骤 3:规划处理流程
运行第一个命令之前,先写出完整的处理流程:
1. generate (flux-dev $0.03) — dark stage scene
2. edit (seedream $0.04) — place logo into scene
3. compose (free) — add text overlay
4. grade + vignette (free) — post-process
Total: ~$0.07
这样可以避免中途才发现需要换一种方法,白白浪费之前的调用费用。
命令速查表
| 命令 | 功能 | 需要 FAL? |
|---|---|---|
generate | 根据文本提示词创建图像 | 是 |
edit | 使用 AI 编辑图像 | 是 |
remove-bg | 移除背景 | 是 |
replace-bg | 移除背景并生成新背景 | 是 |
crop | 调整大小/裁剪到精确尺寸 | 否 |
grade | 应用色彩分级 | 否 |
grain | 添加胶片颗粒 | 否 |
vignette | 添加边缘暗角 | 否 |
text | 在图像上渲染文字(Satori) | 否 |
compose | 根据 JSON 叠加图像/文字/形状 | 否 |
template | 内置模板(无需 AI) | 否 |
info | 分析图像尺寸/颜色 | 否 |
模型选择
为任务选择合适的模型——不要花冤枉钱。
仅用于生成的模型:
| 模型 | 费用 | 最适合 |
|---|---|---|
flux-schnell | $0.003 | 默认选择。快速草稿、背景、基础场景 |
imagineart | $0.03 | 高保真写实效果、准确的文字渲染 |
flux-dev | $0.03 | 细节丰富的场景、肖像、电影级画质 |
recraft-v3 | $0.04 | 图像中的文字、矢量艺术、品牌风格图形 |
fibo | $0.04 | 企业级、结构化/可控生成 |
recraft-v4 | $0.25 | 高端选择。构图、光线、材质效果最佳。请谨慎使用 |
仅用于编辑的模型:
| 模型 | 费用 | 最适合 |
|---|---|---|
reve-fast | $0.02 | 最便宜。快速迭代,优先速度而非精修 |
kontext-lora | $0.035 | 使用 LoRA 风格进行编辑,保持品牌风格一致的修改 |
kontext | $0.04 | 默认选择。局部定点编辑、场景变换、文字放置 |
reve | $0.04 | 风格变换、产品变体、上下文感知编辑 |
fibo-edit | $0.04 | 通过 JSON + 蒙版精确控制、添加/移除对象、重新设计风格 |
既能生成又能编辑(在 generate 或 edit 命令中使用 --model):
| 模型 | 费用 | 最适合 |
|---|---|---|
seedream-v4 | $0.03 | 经济之选。多图合成效果不错 |
seedream | $0.04 | 多图合成(最多 10 张输入图)、将对象放入场景 |
banana2 | $0.08 | 更好地保留图像、超过 10 张输入图、极端宽高比、网页搜索 |
banana-pro | $0.15 | 高端选择。写实效果、排版、最多 5 人的角色一致性最佳 |
如何选择合适的模型:
| 任务 | 最佳模型 | 费用 | 原因 |
|---|---|---|---|
| 快速制作背景/草稿 | flux-schnell | $0.003 | 速度最快、最便宜 |
| 高质量主视觉图 | flux-dev 或 imagineart | $0.03 | 质量与费用的平衡不错 |
| 生成大量文字 | recraft-v3 | $0.04 | 生成图像中的文字渲染效果最佳 |
| 快速迭代编辑 | reve-fast | $0.02 | 价格减半,制作草稿足够好 |
| 编辑单张图像(替换背景、添加文字) | kontext | $0.04 | 定点编辑效果最佳 |
| 将多张图像合成为一个场景 | seedream | $0.04 | 最多可处理 10 张输入图 |
| 风格迁移/产品变体 | reve | $0.04 | 上下文感知的变换 |
| 精确蒙版编辑(添加/移除对象) | fibo-edit | $0.04 | 通过 JSON + 蒙版控制 |
| 主体必须高度保真 | banana2 | $0.08 | 保留效果最佳 |
| 高端画质、复杂场景 | banana-pro | $0.15 | 综合效果最佳,但价格昂贵 |
背景移除:
bria(默认)——边缘质量最佳,抠图干净birefnet——通用效果不错pixelcut——替代选择rembg——最便宜
如何编写优质提示词
这决定了输出效果是平庸还是专业。完整的测试提示词库可参阅 references/prompt-library.md,其中的提示词可直接复制和改写。关键规则:
生成时: 明确描述光线(“来自右上方的戏剧性侧光”)、相机(“使用 Canon R5 70-200mm f2.8 拍摄”)和氛围(“光束中可见尘埃颗粒”)。模糊的提示词只会生成普通的结果。
文字置于主体后方: 关键短语是:“在 [主体] 后方添加大号粗体 [颜色] 字母‘[TEXT]’——[主体]的身体与字母重叠,并部分遮挡字母。” 如果没有“后方”和遮挡说明,文字就会浮在上面。
编辑时: 始终以 “其他所有内容都保持完全不变” 结尾,并列出需要保留的内容。否则,AI 会改动你不想修改的内容。
替换背景时: 使用真实、具体的地点(“白天的现代高档购物中心入口,自然温暖的日光”)。过于戏剧化的背景(“夜晚的城市,霓虹灯倒影”)看起来明显不真实。
字体排版
用于大标题和主视觉文案: 使用 FAL 模型搭配 edit——它能很好地处理大号文字,并自然地将文字融入场景。无需计算字号,只需在提示词中写“very large bold”。
用于精确的小字(署名、URL、徽章、封面标题):使用 compose 或搭配 Satori 的 text。这类场景需要注意字号——图片在手机上显示时会小很多。简单规则:在 1080px 的 Instagram 图片上,小于 36px 的内容都难以辨认。如果尚未安装字体,请先运行 picture-it download-fonts。
层级: 每张图片最多使用 3 种字号。品牌名称应大于标语。
字体搭配: 衬线字体 + 无衬线字体的效果最佳。对于 FAL 模型生成的文字,只需在提示词中描述风格。对于 Satori,已捆绑 3 种字体——将更多 .ttf 文件放入 ~/.picture-it/fonts/。如果尚未安装字体,请运行 picture-it download-fonts。字体搭配建议请参见 references/composition-guide.md。
构图技巧
阅读 references/composition-guide.md,了解详细的多轮工作流、产品摄影、杂志封面和叠加构图。
常见工作流
简单:生成图片
picture-it generate --prompt "dark cosmic background with nebula" --size 1200x630 -o bg.png
简单:为图片添加文字
picture-it text -i bg.png --title "Hello World" --font "Space Grotesk" --color white --font-size 64 -o hero.png
中等:带 AI 背景和文字的博客页眉
picture-it generate --prompt "abstract dark tech background" --size 1200x630 -o bg.png
picture-it text -i bg.png --title "My Blog Post" --font "DM Serif Display" --font-size 72 -o header.png
picture-it grade -i header.png --name cinematic -o header-graded.png
中等:编辑照片背景
picture-it edit -i photo.jpg --prompt "replace background with modern hotel entrance, keep subject identical" --model banana-pro -o edited.jpg
高级:文字置于主体后方(YouTube 缩略图风格)
# 1. Generate a scene
picture-it generate --prompt "runner on mountain trail at golden hour" --model flux-dev --size 1280x720 -o runner.png
# 2. Use FAL edit to add text BEHIND the subject
picture-it edit -i runner.png --prompt "Add 'RUN FASTER' in large bold black letters BEHIND the runner — the runner's body overlaps the text" --model seedream -o thumbnail.png
高级:使用真实照片进行产品比较
# 1. Remove backgrounds from product photos
picture-it remove-bg -i product-a.png --model bria -o a-cutout.png
picture-it remove-bg -i product-b.png --model bria -o b-cutout.png
# 2. Generate a background
picture-it generate --prompt "split gradient, blue left to orange right" --size 1200x630 -o bg.png
# 3. Compose cutouts onto background with text
picture-it compose -i bg.png --overlays overlays.json -o comparison.png
高级:多轮电影感构图
# 1. Generate base scene
picture-it generate --prompt "dark stage with green spotlight" --model flux-dev --size 2048x1080 -o stage.png
# 2. Edit scene to place objects
picture-it edit -i stage.png -i logo.png --prompt "Place Figure 2 as glowing 3D cube in the spotlight" --model seedream -o composed.png
# 3. Post-process
picture-it crop -i composed.png --size 1200x630 --position attention -o cropped.png
picture-it grade -i cropped.png --name cinematic -o graded.png
picture-it vignette -i graded.png --opacity 0.3 -o final.png
平台预设
在 generate 或 crop 中使用 --platform <name>:
| 预设 | 尺寸 |
|---|---|
blog-featured | 1200x630 |
og-image | 1200x630 |
youtube-thumbnail | 1280x720 |
instagram-square | 1080x1080 |
instagram-story | 1080x1920 |
twitter-header | 1500x500 |
输出行为
- stdout:仅输出文件路径
- stderr:进度日志
- 成功时退出码为 0,失败时退出码为 1
读取 stdout 以获取文件路径。这是串联命令的方式。
注意事项
- 对
remove-bg始终使用--model bria——默认的 birefnet 会留下矩形伪影,合成时会产生难看的光晕或阴影边缘。 - 在 compose 模式下,
glow效果会模糊整个矩形缓冲区,而不是形状本身。避免对抠图使用 glow——改用背景颜色或光线来营造发光效果。 shadow效果也有相同的矩形伪影问题。对于置于纯净背景上的抠图,请完全跳过阴影。- 使用 FAL 编辑时,模型可能会更改产品细节(徽标、文字、设计元素)。对于讲究准确性的产品图片,请使用
remove-bg+compose,而不是edit,以原样保留图片。 - SeedDream 每次生成约需 60 秒。如果耗时较长,不要以为它失败了。
- 使用 banana-pro 执行
edit时,不要传入resolution或limit_generations参数——系统会自动检测。 - 使用 FAL 生成后,始终通过
crop裁剪到精确尺寸——FAL 模型输出的尺寸只是近似值。 - 对图片质量有要求时(主视觉图片、人像),使用
flux-dev($0.03),而不是flux-schnell($0.003)。两者的质量差异很明显。 - Satori 不支持:display:grid、transforms、animations、box-shadow、filters。请仅使用 flexbox。
- 使用
edit将文字置于主体后方时,请在提示词中明确说明:“文字位于主体后方——主体的身体与文字重叠,并部分遮挡字母。”