mcpField
P
picture-it

picture-it

github.com/geongeorge创意与媒体13362 次安装29 周前更新
代码仓库

关于 picture-it

picture-it 是供 Agent 使用的图像命令行技能,可通过组合操作生成和编辑图片。它同时提供 AI 处理,以及本地合成与后期处理命令。

主要功能

  1. 01使用 AI 生成和编辑图片
  2. 02移除或替换背景
  3. 03裁剪图片并调整色彩
  4. 04添加文字并合成图层
  5. 05使用模板并查看图片信息

适用场景

  1. 01制作带文字叠加的博客页眉图
  2. 02制作文字位于主体后方的视频缩略图
  3. 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 个想法——每个用一句话说明——并在生成前让他们选择。例如:

“这里有几个方向:

  1. 戏剧化产品镜头——生成暗色舞台,再编辑以发光的 3D 物体形式放置你的 logo($0.07)
  2. 简洁对比图——从两件产品中移除背景,在渐变背景上合成并添加文字($0.01)
  3. 文字置于主体之后——生成动作场景,再编辑以便标题穿插在主体后方($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-featured1200x630
og-image1200x630
youtube-thumbnail1280x720
instagram-square1080x1080
instagram-story1080x1920
twitter-header1500x500

输出行为

  • 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 将文字置于主体后方时,请在提示词中明确说明:“文字位于主体后方——主体的身体与文字重叠,并部分遮挡字母。”

评论

支持 Markdown