关于 image-studio
Image Studio 是通过 fal.ai 生成或编辑图像的技能,面向需要先探索构图、再制作成品的创作者。它按任务区分新图生成、图像编辑和照片修整,并在付费调用前确认授权;输出文件保存在本地供审核,不会代为发布。
主要功能
- 01按三种图像任务选择流程
- 02先构思提示词并确认方案
- 03低成本原型迭代与定向编辑
- 04通过 Nano Banana Pro 制作成品
- 05将生成文件保存在本地供审核
- 06调用前检查授权、密钥和路径
适用场景
- 01探索新图像的构图与风格
- 02修改现有照片中的元素或风格
- 03修正曝光、反光和透视等问题
- 04为网页、社交媒体或印刷准备图像
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ moonlight-lupin/ agent-skills --skill image-studio安装后在 Claude Code 中输入/image-studio确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdexamples/example-run.mdreferences/cleanup-checklist.mdfal-models.mdmoss-layout.mdscripts/falgen.pyLICENSE-APACHE-2.0moss_compile_prompt.pytests/test_falgen.pytest_moss_compile_prompt.py详细介绍
图像工作室
通过三个有计划的阶段,使用 fal.ai 将想法变成完成的图像——构思 → 低成本原型 → 制作最终成品。分阶段的目的是控制成本并掌控流程:先用快速模型低成本迭代,与用户敲定概念,然后只针对双方认可的图像使用高质量模型生成一次。
此技能会在本地生成文件,供用户审阅和使用。它绝不会将任何内容作为最终品牌素材发布、公布或发送。
适用范围和路由
仅在以下所有条件都满足时使用此技能:
- 任务是生成图像或编辑图像,而非布局/设计自动化、图表制作、仪表板、流程图或幻灯片/演示文稿制作。
- 用户接受通过 fal.ai 向外传输数据并支付 API 使用费用。
- 本地辅助工作流可用,或用户希望你为该工作流准备提示词/简介。
不要在以下情况使用此技能:
- Canva 模板、PowerPoint 演示文稿、品牌演示文稿布局、数据图表、仪表板、流程图、架构图或流程图示。
- 视频生成。
- 机密或敏感的图像/文档处理。
- 明确要求使用原生图像生成/编辑工具的宿主环境。
三种模式——先选择
工作流取决于你是在创建图像、修改现有图像,还是清理现有图像——它们的步骤并不相同:
- 路径 A · 从零开始创建(没有源图像)。构图尚未确定,因此先低成本制作原型进行探索,再以高质量完成定稿——使用下方的阶段 1 → 2 → 3。
- 路径 B · 编辑/叠加到现有图像上(在房间中添加人物、为照片重新设计风格、添加或移除元素)。源照片已经确定了构图,因此低成本原型只会带来偏差和瑕疵,无法预测最终质量——跳过原型阶段。 先构思并确认提示词(阶段 1),然后直接对原图进行高质量编辑(阶段 3)。对于注重成本的多轮迭代,请使用同系列的
fal-ai/nano-banana/edit(忠实预览),而不是 Kontext dev。“原型”是双方认可的提示词,而不是图像。 - 路径 C · 清理/增强现有照片(将业余/手机拍摄的照片提升为专业水准——修复眩光、反射、白平衡、曝光、透视/扭曲、噪点和杂物)。机制与路径 B 相同(不制作原型;一次全面处理,直接高质量编辑原图),但目标是忠实校正,而非改变——根据
references/cleanup-checklist.md编写提示词,并完整保留每一项真实特征。适用于任何主体——室内场景、人像、产品、食物、风景。通常按清单处理一轮即可。请参阅下方的清理部分。
阶段 1–3 对路径 A 作了完整说明;路径 B 和 C 复用阶段 1(构思/确认),然后直接进入阶段 3(高质量编辑原图),跳过阶段 2 的原型制作。
开始之前 — 出站数据传输与预检查
生成图像会将提示词发送到 fal.ai。编辑、放大或移除背景也会将你提供的图像发送到 fal.ai。fal.ai 是一家美国第三方服务,生成的图像会从其 CDN 下载。这属于向外部传输数据。
进行任何 API 调用之前:
- 确认任务在范围内。
- 在会话中首次生成之前,确认用户明确同意向 fal.ai 传输数据并使用付费 API。
- 在成本更高的 Stage-3 生产运行之前,再次确认用户明确同意。
- 检查
scripts/falgen.py是否存在、依赖项是否已安装、是否已设置FAL_KEY,以及工作目录是否可写。 - 对于编辑、放大和移除背景,只使用非机密、非敏感且用户有权通过 fal.ai 处理的图像。
- 使用
falgen.py打印的确切输出路径;不要根据示例推断文件名。
绝不要将机密或敏感图像、文档交给 fal.ai 处理,例如某人的照片、机密报告、交易材料、财务文件、投资者材料、租户材料、估值材料或任何受 NDA 约束的内容。如果用户要求编辑敏感内容,请停止操作,并指出数据传输问题,而不是上传内容。
Stage 1 的头脑风暴纯粹在聊天中进行,不涉及数据传输,因此可以先起草提示词,再确认是否发送。
所需设置: 一个已开通账单功能的 fal.ai 账户,以及 FAL_KEY——可以是环境变量,也可以直接保存在工作文件夹中的文本文件里(任意文件名,例如 fal key.txt)。辅助程序会自动查找密钥——先查环境变量,再查工作文件夹中的任意小型文本文件(包含 FAL_KEY=your-key 的一行,或符合 fal 的 id:secret 格式的原始密钥),最后查找主目录(仅检查文件名包含 fal/key/api/env 的文件,且只接受明确写有 FAL_KEY=… 的行——不会从主目录读取裸令牌,因此不会误取其他服务的凭据)。因此,检查之前不要向用户索要密钥;只有在找不到密钥时才提示用户。它使用 fal-client 软件包(pip install fal-client requests)。如果找不到密钥,辅助程序会显示清晰的错误消息并退出——没有密钥就无法继续生成,但 Stage 1 仍可正常使用。(密钥文件应保留在本地;绝不要提交它。)
阶段 1 — 构思提示词(不调用 API)
好的输出始于好的提示词,因此在投入任何费用前,先花时间打磨提示词。通过询问用户,整理出一份结构化的提示词简报,涵盖:
- 主体 — 具体说明图像中的内容。
- 风格 / 媒介 — 照片级写实、3D 渲染、扁平插画、线稿、水彩等。
- 构图 — 取景、焦点、布局,以及文字或留白的位置。
- 光线 / 氛围 — 柔和、戏剧化、整洁专业、温暖、忧郁。
- 配色 — 按照用户的要求,不包含机密细节。
- 宽高比 — 根据用途确定:16:9 用于演示文稿 / 主视觉,1:1 或 4:5 用于社交媒体,9:16 用于限时动态,2:3 / 3:4 用于人像,或自定义横幅比例。
- 质量修饰词和负面提示词 — 例如“细节丰富、焦点清晰”;“不要文字、不要水印、不要多余的手指”。
提供两三个风格迥异的提示词方向,而不是只给一个,让用户可以对不同选项作出反馈。将双方确认的简报保存到 _workings/(例如 _workings/prompt-brief_[slug].md),确保整个过程可审计。提示词中不要包含机密细节。
对于路径 B 和 C,这一步取代了原型制作,因此必须在首次付费调用前与用户确认提示词。主体是人物,或需要将内容叠加到真实场景上时,请注意以下两点:
- 描述动作,而不是情绪。“坐着微笑”看起来僵硬、刻意摆拍。应明确描述真实的互动——“交谈中,一人在比划,两人相互注视,一人向朋友展示笔记本电脑屏幕”——让人物彼此互动,而不是看着镜头。
- **保护面部。**远处或较小的面部容易变形——尽量减少人物数量、增大人物尺寸,添加“清晰自然的面部和手部”,并仅重新编辑有问题的区域,不要重新生成整张图像。
阶段 1.5 — 提示词交付规范(阶段 2 前检查)
将任何提示词方向交给阶段 2 前,请逐项核对:
- 图像中出现的每段文字,都必须以最终文案原样写出,并使用目标语言,同时注明其作用和位置(标题 / 细节 / 脚注)——绝不能只写“标题”或使用占位符,也不能虚构名称或标志。
- 负面提示词必须与图像相符:若文字是必需内容,就不能沿用通用示例中的“不要文字”;应明确说明哪些内容需要刻意排除。
- 图像描述中不能包含指令式措辞;提示词只能描述可见图像。
- 卡片 / 海报 / 设计方向必须注明设计内容铺满画面,除非需要模型展示框景。
- 必须原样保留用户指定的主体、数量、排除项和预期可见文案。
若任何一项不符合要求,请先修正提示词方向,再进入阶段 2。
阶段 2 — 低成本制作原型并迭代
使用便宜、快速的文生图模型生成图像,让迭代成本保持低廉;然后根据用户反馈不断完善,直到他们认可原型。
首次生成 — 使用 FLUX schnell 进行文生图:
python scripts/falgen.py generate \
--prompt "[the agreed prompt]" \
--aspect 16:9 --num 2 \
--run-log _workings/run-log_[slug].md \
--out-dir _workings --name image_[slug]_v1
--num 2 会提供几个变体供用户选择。辅助工具可能会保存多个文件,例如 image_[slug]_v1_1.png 和 image_[slug]_v1_2.png;务必使用辅助工具打印的确切保存路径。
收到反馈后,选择成本更低的做法:
- 概念或整体构图有重大变化 → 调整提示词措辞,并重新运行
generate生成下一版本(例如--name image_[slug]_v2)。 - 对选定图像进行针对性调整 — 例如“让天空色调更暖”“移除左侧的建筑”或“在右上方留出更多负空间” → 使用
edit。
阶段 2 默认使用的编辑器是 FLUX Kontext [dev](fal-ai/flux-kontext/dev)。这是一个便宜的指令式编辑器,按计算秒计费;fal 不会在本地返回确切运行时长,因此辅助工具会将费用标记为按时间计费,fal 控制面板仍是费用信息的权威来源。Kontext 会保留输入图像的尺寸,只修改你指定的内容。
python scripts/falgen.py edit \
--prompt "make the sky warmer and add negative space top-right" \
--image _workings/[actual_saved_prototype_path].png \
--run-log _workings/run-log_[slug].md \
--out-dir _workings --name image_[slug]_v3
使用 Kontext 编辑时,不要传入 --aspect;Kontext 会保留源图像尺寸。Kontext 仅接受一张图像。如果需要多张参考图像,请使用支持 image_urls 的模型,例如 fal-ai/nano-banana/edit,并确认费用方面的取舍。
将每次迭代都保存到 _workings/,并递增版本号,以免丢失任何内容。持续迭代,直到用户说“就是这张”。
为何有两种做法:重新生成提示词能探索全新的构图;编辑则保留用户已经满意的构图,只修改他们指出的内容。根据反馈选择合适的做法。
阶段 3 — 生成最终成品
用户批准原型后,再次确认是否可以继续。这是主要的费用支出。
按照用户实际需要的质量和分辨率渲染已商定的概念。通常,直接以目标尺寸生成最终成品,就不需要单独放大。
确认分辨率 — 2K 还是 4K? 这会影响价格,因此要询问:
- 2K(合理的默认选项)。适合屏幕和实体使用 — 演示文稿、社交媒体、网页、电子邮件、数字 PDF — 以及标准尺寸的打印(约 A4)。不适合近距离观看的大幅面打印,也不适合大幅裁剪后放大。
- 4K — Nano Banana Pro 按基础价格的 2 倍计费(见
references/fal-models.md)。适合大幅面或近距离观看的打印(海报、横幅、展板),也适合需要长期复用的主视觉。不值得用于屏幕或社交媒体,因为这些用途最终都要缩小。
通过 --arg resolution=2K(或 4K)传入;辅助工具会在报告的费用中体现 4K 附加费用。
-
以目标分辨率进行高质量渲染 — 使用 Nano Banana Pro (
fal-ai/nano-banana-pro/edit,按张图片统一收费)编辑已批准的原型,以忠实保留原型,并通过resolution提前指定输出尺寸(最高 4K):python scripts/falgen.py edit \ --prompt "[full locked prompt]. Use the supplied prototype as the COMPOSITION reference only. Reproduce at high fidelity — keep the subject, framing, palette and mood — and CORRECT the prototype's generative flaws: render natural anatomy (fix malformed hands, fingers and limbs; no extra or missing fingers/limbs), fix distorted faces and eyes, straighten warped objects and lines, remove artefacts. Name the specific ones you see, e.g. 'the left hand has six fingers — render a natural five-fingered hand'. Crisp clean edges, photorealistic." \ --image _workings/[actual_approved_prototype_path].png \ --model fal-ai/nano-banana-pro/edit --aspect 16:9 \ --arg resolution=4K \ --run-log _workings/run-log_[slug].md \ --out-dir . --name image_[slug]_final最终提示词必须包含完整的锁定提示词,而不只是笼统的增强指令 — 并且必须点明需要修复的缺陷。“改进/放大这张图”并不能修复缺陷:Nano Banana Pro 不会修正未被明确指出的缺陷,而要求它“保留所有内容”反而会保留缺陷。保留概念(主体、构图、调色板、氛围);修复执行效果(人体结构、扭曲的物体、瑕疵)。将原型视为构图参考,而非提示词说明的替代品。如果缺陷仍然存在,只重新编辑对应区域,不要处理整张图片。
编辑现有照片(路径 B/C)?以原始照片为基准,而不只是原型。 廉价原型模型对细节的把握容易偏移,因此要将原始照片(真实场景的准确信息来源)以及你制作过的已批准原型一并提供给 Nano Banana Pro —
edit支持多个--image(以image_urls发送)。先传入原始照片,再传入原型,并在提示词中说明各自对应的图片:python scripts/falgen.py edit \ --prompt "Use the FIRST image as the true scene — keep its room, materials, lighting and layout exactly — and the SECOND as the intended change. Produce the change at high fidelity." \ --image _workings/[original_photo].jpg \ --image _workings/[approved_prototype].png \ --model fal-ai/nano-banana-pro/edit --arg resolution=2K \ --run-log _workings/run-log_[slug].md \ --out-dir . --name image_[slug]_final或者,如果要根据锁定提示词重新生成高质量成品,请使用:
python scripts/falgen.py generate \ --prompt "[full locked prompt]" \ --model fal-ai/nano-banana-pro \ --aspect 16:9 --arg resolution=4K \ --run-log _workings/run-log_[slug].md \ --out-dir . --name image_[slug]_final -
仅在需要时放大 — 单独放大是可选步骤,仅在必须超过 4K 或放大外部图片时才需要。默认放大器是 Recraft Crisp(
fal-ai/recraft/upscale/crisp),这是一个能忠实保留原图、按次统一收费的放大器:python scripts/falgen.py upscale \ --image _workings/[actual_image_to_upscale].png \ --run-log _workings/run-log_[slug].md \ --out-dir . --name image_[slug]_final如需能创造性地放大、增加细节但费用高得多的选项,可通过
--model fal-ai/clarity-upscaler启用。
将完成的图片保存在工作文件夹根目录下,命名为 image_[slug]_final.png,或使用辅助工具输出的确切文件名。告知用户文件路径,并提醒他们这是供其审核的草稿素材,并非已发布的材料。
清理 / 增强现有照片(路径 C)
将业余拍摄、手机拍摄或消息应用中的照片处理成专业效果的图像。它沿用第 3 阶段的机制——使用 nano-banana-pro/edit 对原图进行质量编辑,不做原型图——但目标是忠实修正,而非改变,方法是按清单检查,而非反复迭代。此方法适用于任何主体——室内场景、肖像、产品、食物、风景——因此,先查看 references/cleanup-checklist.md 中的主体类型表,了解这张照片的“忠实”意味着什么。
- 检查
references/cleanup-checklist.md——逐行将“特征迹象”与照片对照。只保留你能指出照片中实际迹象的条目。删除照片中不存在的所有问题——包括修复并不存在的问题,因为这会主动改变一张本来正确的图像(参见清单中的“不要做什么”)。 - 核实——向用户列出你选中的问题及证据(“我看到左侧墙面上的垂直线条向内汇聚、窗户高光过曝,以及偏暖色调——问题 1、2、4”)。这样可以在付费调用前避免选得过多。
- 汇总仅包含已核实项目的完整修正提示词(清单中有模板),并指出需要保留的关键固定特征。请用户确认——这将取代原型制作。
- 执行一次 2K 处理(保留源图宽高比——除非要重新裁剪,否则不要传入
--aspect)。只针对具体的残留问题进行迭代,不要重做整张图。
坚守诚实原则:
- 只修正拍摄方式,不改变主体是什么。 保留所有真实特征和布局。只清理确实是临时物品的杂物(遥控器、线缆、标签、摄影者的倒影);绝不要为了让主体更好看而移除或改动真实特征,也绝不要虚构更好的景色或饰面——那会歪曲主体。
- 这是一次生成式重渲染,因此可能会出现细微偏差;请与原图对照检查。对于房源图片或任何注重字面准确性的场景,非生成式编辑(Lightroom/Photoshop)才是忠实度的黄金标准——这只是快速初稿,不是正式记录。
运行日志
该辅助工具始终会将机器可读的费用 / 会话日志写入 ./_falgen-costs.jsonl。较新的日志条目包含命令、模型、已脱敏的参数、输入图像引用、输出路径、尺寸、种子、费用依据和预估费用。日志中不会记录临时上传 / CDN 图像 URL。
在生成 / 编辑 / 放大 / 去背景调用时传入 --run-log _workings/run-log_[slug].md,即可追加一份人类可读的 Markdown 审计日志,其中包括:
- 最终或中间输出路径;
- 输入图像路径(如适用);
- 提示词和非 URL 模型参数;
- 模型端点;
- 使用的种子(如有);
- 输出尺寸;
- 费用依据和预估费用。
这样可以审计结果,也更容易复现。如果不传入 --run-log,请使用 python scripts/falgen.py costs 和 JSONL 文件作为审计记录。
模型选择
该辅助工具默认按阶段选择合适的模型;使用 --model [endpoint-id] 可覆盖默认值。当前已验证的端点 ID、所属阶段和大致费用见 references/fal-models.md。fal.ai 的目录会有变动——如果模型 ID 报错,请查阅该参考文件和 fal.ai 模型库,不要猜测。该文件中标记为 (verify) 的内容尚未在此版本中通过实时模型库确认;请先确认,再依赖这些信息。
尝试其他模型/进行比较——但优先使用默认模型
除非结果确实不尽如人意,否则请坚持使用经过验证的默认模型。它们经过了有意选择:schnell 适合低成本原型制作,Kontext dev 适合低成本、忠实的编辑,Nano Banana Pro 则适合生成最高达 4K 的高质量成品——这是在质量、成本和可预测性之间经过测试的平衡。结果令人失望时,通常首先应该改进提示词或进行有针对性的编辑,而不是到处寻找新模型。
只有在默认模型仍然无法满足需求时——例如模型确实无法呈现指定的主体、风格或图像内必需文本——才切换模型。任何阶段都可以使用 --model;注册表列出了经过验证的替代方案。
- 如需比较,用 2–3 个候选模型处理同一提示词/图像,并为它们指定不同的
--name(cmp_schnell、cmp_fluxdev等),将结果并排展示,再用实时显示的各模型费用行和costs汇总,帮助用户权衡质量与成本。对比测试要精简;每次调用都会产生实际费用。 - **不熟悉的模型:**便捷标志针对已知模型集进行了调整(
--aspect→ FLUX 使用image_size,nano-banana 使用aspect_ratio,Kontext 则跳过;编辑时会发送image_urls,但 Kontext 系列只发送单个image_url)。对于辅助工具不熟悉的端点,请查看其 API 页面,并通过--arg key=value或--arg-json '{...}'传入标志无法映射的参数。实时费用统计和下载功能适用于任何端点。
实验完成后请回到默认模型,除非替代模型在该用例中明显更好,且结果可重复。
布局控制生成——MOSS-Image(精确放置图像内文本)
对于精确位置至关重要的图像——海报、徽章、标题卡片、中英双语标牌——MOSS-Image-SFT(fal-ai/moss-image,$0.05/MP)接受 JSON 布局提示词:包含场景描述,以及带有像素边界框和准确可见文本的扁平 items。2026 年 10 月 22 日的实时验证结果:一个包含 5 个元素、尺寸为 1024² 的海报仅运行一次并产生一次费用;所有元素都位于距其边界框约 5–7 px 的范围内,且没有多余文字。同场对比中,fal-ai/nano-banana-2 的字符准确率相当(3/3 个中英双语提示词均无字形错误),价格则较高且为固定单价(1K 图像为 $0.08/image),但在严格要求“仅包含这些文本”的提示词下,它生成了两个额外文本。因此:如果追求文本准确性,Nano Banana 系列足以胜任;如果追求文本位置精度和简洁干净的效果,则选择 MOSS-Image 路线。
布局格式和编译器已在本地随附:
-
起草符合
references/moss-layout.md的布局 JSON——包含summary和扁平items数组、width/height(必须为 16 的正整数倍)、像素空间中的[x_min,y_min,x_max,y_max]边界框,以及text字段中的准确可见文本。将文件保存到_workings/。 -
编译——编译器会验证布局,将像素边界框转换为 MOSS 内部的
abs_centralized/yxyx格式,并拒绝超出边界的边界框(绝不会静默裁切):python scripts/moss_compile_prompt.py _workings/[slug]_layout.json \ --output _workings/[slug]_layout_prompt.txt -
生成——使用与草稿宽高相同的
image_size。对于已编译的布局提示词,必须设置enable_prompt_expansion=false——fal 的提示词规划器(默认开启)会改写已有结构的提示词,导致位置错乱:python scripts/falgen.py generate \ --prompt "$(cat _workings/[slug]_layout_prompt.txt)" \ --model fal-ai/moss-image \ --arg 'image_size={"width":[W],"height":[H]}' \ --arg enable_prompt_expansion=false \ --run-log _workings/run-log_[slug].md \ --out-dir . --name image_[slug]_final
注意:MOSS 仅支持 T2I,不提供编辑端点;后续编辑仍会使用 Nano Banana 系列。使用 moss-image 生成时,不要传入 --aspect——辅助工具会向其不认识的模型发送 aspect_ratio,这会与自定义 image_size 冲突。[W]×[H] 必须与草稿的宽×高一致,且两者都必须是 16 的倍数。设计海报时,建议采用铺满画面的措辞(“海报铺满整个画面”),否则模型可能会把设计框成一张样机卡片。它的成本(1024² 时约 $0.05)也使其适合用作第 2 阶段原型,尤其是在概念本身就是一种布局时。
辅助脚本 — scripts/falgen.py
一个脚本,包含五个子命令。它从环境中读取 FAL_KEY,自动将任何本地 --image 上传到 fal 存储,通过 fal_client.subscribe 调用模型,将生成的图像下载到本地,并输出保存路径及估算费用。运行 python scripts/falgen.py -h 或 python scripts/falgen.py [subcommand] -h 查看所有选项。
主要标志:
generate—--prompt(必需)、--model、--aspect、--num、--seed、--out-dir、--name。edit—--prompt(必需)、--image(可重复使用)、--model、--aspect、--num、--seed、--out-dir、--name。upscale—--image(必需)、--model、--factor、--out-dir、--name。removebg—--image(必需)、--model、--out-dir、--name。将主体抠出并保存为透明背景的 PNG。这是用于合成到演示文稿/社交媒体图片中的实用工具,不属于主要的生成→编辑→放大流程。costs— 输出本次会话的累计费用;使用--reset清零。recommend— 显示各阶段推荐的默认模型及实时价格。只读,不产生费用。search "term"— 搜索 fal 实时目录(--category、--limit);每条结果均显示其实时价格、类别和许可证。只读。查找默认选项未涵盖的模型后,仍应优先使用默认模型,除非默认模型确实无法满足需求。--arg key=value— 可用于任何生成/编辑/放大/抠图子命令的备用参数,用于传递标志未涵盖的原始模型参数。值可以是 JSON 标量、数组或对象,例如--arg image_size='{"width":1200,"height":800}'。--arg-json '{...}'— 将多个原始模型参数作为一个 JSON 对象传递,适用于嵌套选项。--run-log path.md— 追加一份便于审计的可读 Markdown 运行日志。--verbose— 实时输出模型自身的进度日志。默认关闭。
如果调用因 fal 余额不足而失败,辅助脚本会检测到这一情况,并提供清晰的说明,而不是输出原始堆栈跟踪。
端到端运行示例见 examples/example-run.md。
费用与余额
生成响应不包含费用字段,因此每次运行时,falgen.py 都会查询 fal 的实时定价 API,并尽可能根据实际输出分辨率或输出数量计算费用,随后输出该步骤的费用和本次会话的累计费用(追加到 ./_falgen-costs.jsonl)。运行:
python scripts/falgen.py costs
在一系列操作结束后输出完整明细,并告知用户总费用。请留意 references/fal-models.md 中的计费单位:
- 按图像计费的模型按每张输出收取固定费用。
- 按百万像素计费的模型在分辨率更高时费用也更高。
- 按计算秒数计费的模型费用随运行时长变化。fal 不会返回运行时长,因此辅助脚本会将该步骤标记为按时间计费,而不会猜测具体费用。
只有设置了 fal Admin API 密钥 FAL_ADMIN_KEY 时才会显示余额;普通的 FAL_KEY 无法读取账单信息,并且可能会收到 HTTP 403。未设置 Admin 密钥时,将跳过余额查询并显示一行提示。请告知用户每个步骤的预估费用和本次会话的总费用;只有用户添加 Admin 密钥后,才提供实时余额。
原则
- 草稿,而非建议 — 输出是供具备资质的人员审核的草稿,不是可直接发布的成品。
- 绝不捏造 — 不要编造费用、模型 ID、功能或输出路径。如有不确定之处,请如实说明。
- 关键环节保持确定性 — 费用跟踪、文件命名和模型路由都是确定性的;LLM 仅负责创意判断。
- 诚实并准确表达把握程度 — 标明不确定性,不要夸大质量,并展示费用。
- 保持工作区整洁 — 交付文件放在工作文件夹根目录;中间文件放在
_workings/;已被替代的版本放在_superseded/。
数据处理
发送到 fal.ai 的提示词和任何参考图像都会脱离用户的控制,交由第三方工具处理,因此请遵守 PII/数据外传规则:不要向 fal.ai 发送机密或敏感内容。请将真实的源文件和输出文件保留在本地计算机上。如有疑问,请勿外传;先询问用户。
注意事项
- 不要跳过 Stage 1——精心编写提示词可以避免之后进行代价高昂的反复迭代。
- 始终在进入 Stage 3 前确认——主要开销通常发生在这一阶段。
- 使用实际保存路径——示例只是占位符;请使用
falgen.py打印的路径。 - Kontext 会忽略宽高比——它会保留输入图像的尺寸。编辑 Kontext 图像时,不要传入
--aspect。 - Kontext 只接受一张图像并生成一个输出——如果向 Kontext 模型传入多张图像或设置
--num > 1,辅助脚本现在会提前报错。 - 谨慎使用 JSON 参数——为 shell 正确引用嵌套 JSON,或使用
--arg-json。 - Clarity upscaler 价格高昂——除非你明确需要增强创意细节,否则请使用 Recraft Crisp。
- 背景移除会返回透明 PNG——用于消息应用时,请将其转换为白色背景的 JPG。
- fal 余额查询需要管理员密钥——仅设置
FAL_KEY不足以显示账单余额。
验证清单
- 范围仅限图像生成/编辑,不包括布局、图表、示意图或演示文稿制作。
- 首次调用 API 前,用户已确认允许向 fal.ai 外传数据并使用付费 API。
- 提示词概要已保存到
_workings/。 - 每次迭代都已使用递增版本号或辅助脚本生成的确切文件名保存。
- 使用的是实际打印的输出路径,而不是推测的路径。
- 用户已在进入 Stage 3 前确认继续。
- 最终提示词包含完整的锁定提示词,而不只是通用的增强说明。
- 最终图像已保存到工作文件夹的根目录,而不只是
_workings/中。 - 已使用
--run-log _workings/run-log_[slug].md,或已检查 JSONL 费用/会话日志。 - 已通过
falgen.py costs打印费用汇总。 - 已告知用户文件路径,并提醒这是草稿。