专注力公众号(配图)
Only makes the images for a finished article. This skill never writes, rewrites, or judges the copy — it reads an existing body, decides where the pictures go, and produces the four illustrations in this account's locked watercolor style.
输入:一篇文章的成稿正文(粘贴的正文、工作区里的 HTML、或已经定稿的 Markdown)。
输出:4 张配图 + 纯白底校正 + 每张图的可追溯信息(原句 / 镜头备注 / 完整提示词 / 落盘路径)+ 分端交付包。
Use the skill when the user asks for:
- Illustrations for an article they already wrote: "给这篇稿子配图", "配 4 张", "生成封面和正文插图".
- An illustration set for an existing article file in the workspace.
- Illustration prompts only, without spending credits.
- Regenerating one specific image that failed the style or traceability check.
- The image half of the article workflow, separated from the writing half.
Do not use this skill when the user wants writing, topic selection, a ten-beat outline, titles, summaries, or a publishing check — that is the 专注力公众号 (writing) skill. If the user hands over only a topic ("写一篇前额叶的文章") and no body, say which skill produces the body, and offer to run the writing skill first; do not invent a body here and then illustrate your own draft without saying so.
Core Positioning
- The copy is the source of truth, never the other way round. Every visible element in a picture must be traceable to a sentence the finished body already contains. No invented plot, prop, animal, age, subject, or emotion.
- Four images, fixed: 1 cover + 3 in-body. Never silently vary the count. The cover illustrates the hook's scene, not a generic study picture.
- The white background is not a prompt suggestion, it is a verified value. Every file goes through
scripts/normalize-white-bg.pyand its border pixels are checked before it ships. - The four images must read as four different pictures. Style consistency locks the cast; it never locks the composition. Subject count, framing, and angle all vary.
- Say the credit cost, get confirmation, then generate. About 5-10 credits per image, 20-40 for the set.
Default Delivery Mode
- Default is: generate 4 images, correct the background, and hand back the files with the image list (原句 / 镜头备注 / 路径 / 完整提示词).
- Always state the estimated credit cost and wait for confirmation before the first image call. Never generate silently.
- Ask which client the article will be published from before choosing a delivery form: 电脑网页版
mp.weixin.qq.comgets a base64-inlined preview; 手机 App gets a numbered image package, because the phone app cannot carry rich-text images on paste. - If the finished article exists as an HTML file in the workspace, insert the images at the four positions, run
scripts/inline-images.py --in-place, and present that preview. If no HTML exists, deliver the local files plusassets/image-sheet.htmlas a contact sheet. - Keep every planning note, every prompt, and every check outside the deliverable image list. Revisions are local: regenerating one image never re-generates the other three.
Required Workflow
- Make sure the assets exist. The shipped package contains text only — the five brand images travel as base64 inside
assets/_packed/because the marketplace rejects binary uploads. Before the first run, check thatassets/fixed/article-header.pngandassets/style-references/ref-01-reading-with-mom.jpgare present; if either is missing, runpython3 scripts/restore-assets.pyonce. Without the anchors the locked style cannot be matched, and without the two fixed images the article layout is incomplete. The script verifies every file against the sha256 inassets/_packed/manifest.jsonand is safe to re-run. - Read the body first. Identify the hook scene, the paragraph where the problem is reframed, the start of the actionable section, and the paragraph before the practice or game card. These four anchor sentences decide the four pictures. If no body was supplied, stop and ask for it.
- Quote and extract. For each of the four positions, quote the exact sentence from the body, then extract only who is present, where they are, what they are doing, the visible objects, and the tone. Nothing enters a prompt that the quoted sentence does not contain.
- Assign four distinct shot notes before writing any prompt — subject and action, framing (wide / medium / close), angle (frontal / side / three-quarter / over-the-shoulder / top-down). At least one image must be the child alone with no adult, and at least one must be an object-or-detail shot with no face in frame. See
references/image-plan.md. - Confirm the cost. Tell the user 4 images, roughly 20-40 credits, and wait for a yes.
- Generate.
1536x1024landscape, up to three style anchors fromassets/style-references/as image input with a highinput_fidelity, background instruction first in every prompt. Full prompt constraints:references/illustration-style.md. - Correct the white background. Run
python3 scripts/normalize-white-bg.py <workspace>/images/<slug>/after every generation. Regenerate anything that still reads gray. - Verify each file. Border pixels at 255, no watermark or logo in any corner, no text or letters inside the picture, no anxious or shaming depiction, and every object justified by a quoted sentence.
- Deliver per client. Computer web: insert at the four positions and run
python3 scripts/inline-images.py <file>.html --in-place, then present the preview. Phone app: deliver a numbered 1080px JPEG package. Details inreferences/delivery.md. - Deliver in the fixed shape. Follow
templates/image-list.md: 生图计划 → 积分确认 → 配图清单 → 交付说明 → 发布检查. Planning notes, full prompts, and checks stay outside the image list itself. - On failure, degrade, never block. If one image fails, keep the others, keep the full prompt for the failed one, and tell the user what to retry. The article is never held up by an image.
Image Set
Four generated images per article, on top of the two fixed brand images.
| Image | Placement | Illustrates |
|---|---|---|
cover.png |
Directly below the finished opening copy, never at the top of the article | the hook's scene |
body-1.png |
After the analytical or reframing section | the problem being described |
body-2.png |
At the start of the actionable section | the concrete behavior the advice targets |
body-3.png |
Before the practice or game card | the parent and child doing the method |
- Size:
1536x1024landscape for all four. Do not request 2:3 or 2.35:1 here; those ratios belong to the writing skill's optional cards and cover slot. - Storage:
<workspace>/images/<article-slug>/, namedcover.png,body-1.png,body-2.png,body-3.png. - The two fixed brand images (
assets/fixed/article-header.png,assets/fixed/article-footer.jpg) are reused unchanged and cost no credits. They belong to the article layout, not to generation — seereferences/delivery.mdfor when to insert them.
Match the Copy
The hardest rule in this skill, and the one most often broken.
- Quote the sentence the image sits next to. If no sentence matches, the position is wrong — move the image, do not invent one.
- Build the prompt from those extracted facts only.
- Never add a plot beat, prop, character, animal, age, school subject, or emotion the body does not mention. A pet, a sibling, a toy, a trophy, or a decorative plant the copy never names is a regeneration, not a charm.
- Keep the cast identical across all four: the same child (age, hairstyle, clothing color), the same parent (hairstyle, clothing), the same room and desk objects. Continuity carries over between images.
- One scene per image, tied to one paragraph. Do not merge unrelated paragraphs into a single picture.
- When the body describes a state ("坐不住"), draw the concrete behavior the text describes — turning a pencil, looking out the window — never an abstract symbol or a mood icon.
- A face-free object shot follows the same rules: one centered arrangement, same white space, no character, and only objects the copy names.
Differentiation Across the Four Images
Consistency of cast must never turn into four look-alike pictures. The most common failure is four images of "child and mother together at the desk": the cast lock keeps the characters identical, so the scenes drift into the same picture while the camera angle is the only thing that moves.
- Two images may not share the same subject + action + framing triangle.
- Force variety by subject count first, then framing, then angle.
- Every set contains at least one solo-child shot with no adult, and at least one shot where no face appears at all.
- Do not reuse a prompt, a composition, or a "generic child studying" scene from another article. The four prompts are written from this article's sentences only.
- Read the four shot notes side by side and ask whether a reader scrolling the article would feel they saw the same picture four times. If yes, redo the weaker one.
Locked Illustration Style
Full specification: references/illustration-style.md. The short version, which must appear in every prompt:
- Warm watercolor with soft colored-pencil linework, gentle grain, soft edges, no harsh outlines.
- Flat pure white background, RGB 255/255/255, uniform across the entire frame — written first, every time. No fill blocks, gradients, frames, borders, tints, or vignette. Never write "warm paper", "watercolour paper", "cream", "beige", "ivory", "soft gray", "off-white", "parchment", or "textured background".
- Cute rounded characters: round faces, large eyes, soft blush, fluffy brown hair; the mother wears a high bun, the child is about 5-8.
- Bright warm yellow and sky blue lead, with small accents of orange-yellow, mint green, and pale pink hearts.
- Signature motifs: open and stacked colorful books, small potted plants, small stars, tiny hearts, short yellow spark lines.
- One centered scene, landscape, generous white space, warm and encouraging; the child is smiling.
- No text, letters, or watermark anywhere in the picture.
- Never copy another account's original characters, compositions, logos, or signature visual devices.
White Background Guarantee
Image models drift toward a pale gray ground even when the prompt says white (measured: borders at RGB 250-252). The prompt alone is not sufficient.
python3 scripts/normalize-white-bg.py <workspace>/images/<article-slug>/
It does two passes. First it measures the border background and lifts the whole picture by the difference, so the ground lands on 255 while painted elements keep their relative contrast (a lift of 3-5 levels, invisible in the artwork). Then it snaps every pixel whose darkest channel is at or above 240 to pure white — a median lift alone still leaves individual corners at 249-253 on a grainy watercolour scan, and this second pass is what makes all four corners read exactly 255. Run it after every generation, before delivery, with no exceptions. It skips images already pure white and leaves genuinely colored artwork untouched; --snap 0 disables the second pass. If a file still reads gray after the pass, regenerate it with the background instruction moved to the front of the prompt rather than shipping it.
Prompt Shape
<style prefix including the pure-white background>。场景:<从正文原句提取的具体画面,含人物动作与关键物件>。镜头:<主体数量(孩子独处 / 只出现手和物件、无脸 / 亲子同框)+ 景别 + 视角>。人物:<本组固定的一致外观>。<禁止项:无文字无水印、无焦虑或指责神态、不模仿其他账号角色>
Never send a prompt that contains a sentence the body does not support.
Content Standards
- No watermark or logo. Some image models stamp a corner. Inspect the border of every file; a stamped image is regenerated or the pure-white area painted out before it ships — never delivered with the stamp.
- No text or letters inside the picture, including on books, papers, and blackboards. When the copy mentions writing, draw the child's hand and pencil, not legible characters.
- No anxious, shaming, or scolding depictions. No child holding their head in distress, no angry adult, no punitive posture.
- No other account's characters or signature compositions.
- No real children. Generated images only. Classroom photos, student examples, and case results require explicit user-provided authorization and privacy protection; they are never produced by this skill.
- Never imply a promised outcome in a picture (no trophy, no award, no scoreboard the copy does not mention).
Delivery
Full detail: references/delivery.md. Two forms, chosen by client:
- Computer web — images inserted into the article HTML at the four positions, then
scripts/inline-images.py --in-placeso everysrcis a base64 data URI. Verify withgrep -c "data:image" <file>.html; a0means the paste will arrive without pictures. - Phone app — the 微信公众平台 App cannot carry rich-text images on paste. Deliver a numbered package (1080px JPEG, ordered
01…06) plus the placement list; the parent inserts them one by one from the album.
Never reference a path outside the workspace.
Maintaining This Skill
Behavior rules live in SKILL.md, references/, templates/, and assets/. Editing one does not update the others, so a rule silently drifts.
After any change, run a consistency sweep:
- Sweep by topic across the whole directory: count / 张数, cover / 封面, fixed images / 头图 / 尾图 / 二维码 / 关注引导, white background / 白底 / 纯白 / 255, style anchors / 风格锚点 / input_fidelity, shot note / 景别 / 视角 / 主体数量, traceability / 原句 / 可追溯, prompt / 提示词, credits / 积分, delivery / 交付 / base64 / 内嵌 / 粘贴丢图 / 手机, watermark / 水印 / 文字, contact sheet / 配图一览, and packaging / 打包 / 上传 / 二进制 / b64 / restore-assets / pack-assets. Then sweep for writing terms that must not become instructions here: 选题 / 评分 / 十段 / 骨架 / 去 AI 味 / 说教 / 摘要 / 标题备选. Naming a section of someone else's body to locate an image (for example "钩子的场景" as an anchor position) is fine; instructing the skill to write one is not. This skill does not write — if a writing instruction appears, it belongs to the writing skill.
- Verify the closed sets mechanically. Every
#RRGGBBin the directory must come from the closed table inreferences/illustration-style.md→ Closed Hex Set, with no extra hex. Then list everyborder-radiusvalue:22pxgenerated illustrations and their contact-sheet frames,24pxa contact-sheet card,10pxa small chip. Any other value is drift. - Grep alone is not enough. Read
references/illustration-style.md,references/image-plan.md,references/delivery.md,references/content-safety.md,templates/image-list.md, andSKILL.mdend to end and compare each rule against the others — for example a shot rule stated one way in the plan and another way in the template. Most drift in past sweeps came from reading, not searching. - Fix every stale sentence. Never leave an old rule and a new rule describing the same thing.
- Re-read the changed section once to confirm it contradicts nothing nearby.
- Tell the user which files changed and confirm the sweep was done.