每次写完文章,我都卡在同一个环节——封面图。

倒不是我自己对封面图有多执着,而是公众号平台发布文章时强制要求必须有封面图——没有封面,文章根本发不出去。所以每次写完文章,我都得专门花时间搞定这张图。但你要说配图这件事有多难,其实技术上并不复杂,真正折磨人的,是那个繁琐的工作流。

老办法:三步走,步步累

之前的流程是这样的:

第一步,文章写好后,我把内容丢给 AI,让它基于文章主题生成一个封面图的 prompt(提示词)。

**第二步,**AI 把 prompt 给到我,我再把它复制到图片生成平台。

第三步,打开即梦,或者豆包,粘贴 prompt,调参数,出图。

听起来不复杂对吧?但实际操作起来,每一步都在消耗耐心。

比如参数设置——不同平台的模型,输入参数的格式各不相同。即梦有即梦的写法,豆包有豆包的规则。有时候 AI 生成的 prompt 放到某个平台上,效果完全不对,又得来回调整。更要命的是,有些平台生成的图片还带水印,你又得想办法去掉。

一来二去,光一个封面图,小半小时就没了。

为什么不能让 Claude Code 直接干这件事?

我平时写文章、做博客,基本都在 Claude Code 里完成。它几乎是我所有工作流的中枢。

但唯独「生成图片」这件事,它一直做不了。

说实话,一开始我还挺惊讶的——Claude Code 有那么丰富的扩展能力,竟然没有一个现成的文生图 Skill?但转念一想,也合理。Anthropic(Claude 的母公司)目前确实没有自己的文生图模型。Claude 擅长的是理解和生成文字,图片生成这块,它本身就是个空白。

既然官方没做,那怎么办?

没有轮子,就自己造一个。

一小时,造了个「图片生成技能」

我花了今天大概一个小时的时间,给 Claude Code 写了一个 Skill——image-generate

Skill 是 Claude Code 的扩展机制,你可以把它理解为一个「技能包」。写好之后,Claude Code 就拥有了调用外部图片生成 API 的能力。

目前我暂时只接入了火山引擎这一个平台。之所以选它,一是 API 文档比较清晰,二是生成的图片质量不错。

它是怎么工作的?

虽然只花了一个小时,但这个 Skill 的设计其实挺讲究的。

整个 Skill 一共就三个文件:一个主文件 SKILL.md,负责定义”做什么”和”怎么做”;一个 references 目录,里面每个文件对应一个 AI 平台的 API 文档。结构非常简洁。

当你让我生成一张图的时候,背后其实跑了五步:

  1. 理解需求:从你的描述中提取关键信息——想要什么图、用在哪、尺寸多大
  2. 选择平台:根据用途自动推荐最合适的 AI 平台和模型
  3. 调用 API:读取对应平台的文档,构造请求,发送给云端的 AI 模型
  4. 下载保存:把生成的图片下载到本地
  5. 返回结果:告诉你图片保存在哪、尺寸是多少、用的什么模型

整个过程全自动,你只管说需求,剩下的 Claude Code 全包了。

还有一个细节我很在意——按需加载。Claude Code 不会一开始就把所有平台的 API 文档全塞进上下文里,而是只有在你选择某个平台时,才去读取对应的文档。这样既节省资源,又不会互相干扰。

现在的体验:一句话搞定

现在我要给文章配封面图,操作变成了这样:

在 Claude Code 里,把文章的文件路径丢给它,然后说一句:

「给我生成一个这篇文章的封面图。」

就这样。

它会自己读取文章内容,理解主题,生成合适的 prompt,调用 API,把图片下载到本地。整个过程,我只需要等几秒钟。

而且因为是通过 API 直接调用的,生成的图片没有水印,连去水印这一步都省了。

还有一个关键点:Prompt 的「最佳实践」

经常用文生图的人都知道,同一套 Prompt 放到不同的模型上,生成出来的效果可能天差地别。因为每个模型的训练数据、训练方式不同,它们对文字描述的「理解偏好」也不一样。你在模型 A 上用得很好的 Prompt,原封不动搬到模型 B,出来的图可能完全不是你想要的。

这个问题大家都知道,但之前的解决办法很笨——每次换一个平台,就得重新摸索它的 Prompt 写法,或者去问 AI。但 AI 自己也未必记得住每个模型的最佳参数。

现在,我在这个 Skill 里维护了一份 reference.md 文档,里面记录了每个文生图模型的最佳实践参数和 Prompt 模板。Claude Code 在调用图片生成的时候,会自动参考这份文档,根据当前使用的模型选择最合适的 Prompt 策略。

这意味着什么?意味着生成出来的图片质量,比我自己手动调参要高得多——因为这些”最佳实践”已经内置在里面了。

一个困扰我很久的问题,就这样被一句话解决了。

想自己装一个?其实很简单

整个 Skill 放在你电脑的 ~/.claude/skills/image-generate/ 目录下,结构长这样:

1
2
3
4
image-generate/
├── SKILL.md # 主文件:定义"做什么"和"怎么做"
└── references/ # 参考文档:各平台的 API 细节
└── volcano-engine.md # 火山引擎的 API 文档

就三个文件,非常简洁。

主文件 SKILL.md 是什么?

它是整个 Skill 的入口,相当于”总指挥”。文件头声明了 Skill 的名称和触发条件——当你在对话中提到”生成图片””文生图””帮我画””文章封面”这些关键词时,Claude Code 就会自动激活它。

正文部分定义了五步工作流、平台选择逻辑(一段伪代码,教 Claude 根据场景自动选平台)、以及两个核心函数的代码骨架——call_platform_api() 负责调用接口,download_and_save() 负责把图片存到本地。

另外还有一个我很在意的细节:没有硬编码密钥。所有 API Key 都通过环境变量传递,不会明文写在代码里。

references 目录是干嘛的?

每个文件对应一个 AI 平台的完整 API 参考文档,包括认证方式、接口地址、请求参数说明、推荐尺寸对照表,以及可以直接用的 Python 调用代码。

Claude Code 只有在真正需要调用某个平台的时候,才会去读对应的 reference 文件。平时不会把所有文档全塞进上下文里,既省资源又不会互相干扰。

想接入新平台怎么办?

只需要三步:

  1. references/ 目录下新建一个该平台的 API 文档文件
  2. 在主文件的”支持平台”表格里加一行
  3. 在”认证配置”表格里加上环境变量名

核心逻辑完全不用动。

如果你也在用 Claude Code,也想让它在图片生成这件事上帮到你,可以在微信公众号后台私信我,我把这个 Skill 打包发给你。