SuperAPI AI Directory

handdrawn-article-illustrator

Writing & research

View repository

Updated 10-15 20:10

About this skill

Hand-drawn article illustrations

Generate a set of hand-drawn style illustrations with the same visual system for WeChat Official Account articles, blogs, and Newsletters. The core is not binding to a specific brand, but stably producing: large white space, object cards, a single fixed accent color (configured by the theme pack), controlled thick black hand-drawn ink lines, low information density, and clear metaphors. Illustrations first serve understanding the article, and only secondarily style exploration; do not sacrifice readability for novelty.

Core workflow

  1. Read the article material.
    • If the user provides a WeChat Official Account link, first obtain the body content, then proceed to illustration planning.
    • If the user provides Markdown or pasted text, directly analyze the title, second-level headings, transition paragraphs, case study paragraphs, and conclusion paragraphs.
  2. Generate an illustration plan.
    • Default generation: 1 WeChat Official Account header image + high-density horizontal body images.
    • Short articles can be reduced to 6-8 horizontal body images; medium-length articles default to 12-16 horizontal body images; long articles, case reviews, or product retrospectives default to 18-24 horizontal body images.
    • For long WeChat Official Account articles, prioritize planning by "2-3 images per second-level heading or important third-level heading" rather than placing only 1 divider image per chapter; roughly arrange 1 image every 250-450 Chinese characters.
    • For long articles, place images according to each second-level heading, third-level heading, key transition paragraph, feature list paragraph, case study paragraph, quote paragraph, and conclusion paragraph.
    • Each image carries only one concept; do not turn an entire paragraph of the article into an infographic.
  3. Choose the image type.
    • Header image: hand-drawn object card architecture, with a square object illustration in the center, white space around it, suitable for WeChat Official Account header image cropping.
    • Horizontal body image: 16:9 horizontal illustration, using one metaphor to explain the current paragraph.
    • Square card: 1:1, used for Moments, article lists, or single-concept cards.
  4. Generate prompts or batch image output.
    • The default formal route is ImageGen/Codex/ChatGPT built-in image generation: the Agent first writes Image Brief and the final English visual prompt, then calls the built-in image generation capability provided by the host environment to produce PNGs.
    • For batch processing, use --mode codex to generate the built-in image generation queue; the queue is not the final draft, and the Agent needs to call the built-in image generation tool one by one.
    • By default, do not run --mode local, do not generate local_preview/, and do not include local previews in the default delivery.
    • Only when the user explicitly requests "composition sketch," "placeholder preview," or "local preview check" may you run --mode local; the output must be marked as a sketch and cannot be counted as a final image.
    • When the user requests "test the effect," "generate effects to show me," or "run a few rounds and see," you must call ImageGen/built-in image generation capability to generate real sample images; local previews do not count as finished-image testing.
    • Do not proactively call external image APIs to "improve the default effect"; only when the user explicitly requests model comparison, API testing, or candidate exploration should you use guided-edit、t2i or edit。
    • When only prompts are needed, output a Chinese illustration plan + English image prompt.
  5. Compress the delivered images.
    • PNG files generated by ImageGen are usually too large. By default, use scripts/compress_images.py to compress the final deliverable image in place.
    • The compression target is to keep each image below 200KBif possible, with a hard cap below 500KB; unless the user explicitly asks to keep the original large image, overwrite the original.
  6. Do a quality review.
    • Check whether legible text, logos, photorealistic photos, complex backgrounds, too many elements, or direct replication of any brand's official website graphics appear.

Hand-drawn style key points

First read references/builtin_image_generation_workflow.md, and understand the textual descriptions of the composition families. When executing, grasp these key points:

  • The background is mainly warm off-white (the specific color value is determined by the current theme pack's paper_background ; for the default blue-gray theme, use #FAF9F5 / #F5F4ED , this kind of warm white).
  • The main lines use near-black ink lines (the specific color value is determined by the current theme pack's ink_color ; the default is #141413), closer to a "hand-traced filled ink-block path." The outline must first be stable and clean, but must not look like a mechanical vector icon; the variation in thickness comes from the start of the stroke, the end of the stroke, the indentation at corners, and the pen pressure at overlaps of a single hand-drawn ink line, with natural tapering along long edges but no random jitter.
  • The accent color is always read from the current theme pack (config/style.json 's active_theme determines which theme to use; for the default blue-gray theme it is #435C68); the same article uses only this one accent color.
  • The background supports two modes:paper is a warm off-white base + localized accent color embellishments;inverted is an accent color base + off-white subject + near-black ink lines. A grouped illustration set for a long article must mix these two modes: most use paper, and a few key images use inverted as rhythmic emphasis.
  • inverted is not a new color scheme, but a color inversion of the same accent color: the entire background uses the current theme's accent color, the subject block areas use warm off-white, and the lines still use near-black ink lines; do not add a second accent color to the inverted background.
  • The image is like an "object card," not a complex scene: one main object + a small number of auxiliary elements close to the subject; the subject must be large enough and must not degenerate into a small icon in the whitespace.
  • Use the composition families accumulated in this skill as the main style baseline: chains, book pages/containers, accent-color tracks, cloud funnels, radial networks, activity chain blocks, archive stacks, nested frames, process-to-network, folder archiving, and module assembly. Diversity should unfold within these families, rather than inventing incomprehensible new bizarre objects.
  • For objects, prefer relational abstract metaphors: funnels, prisms, mazes, flywheels, scaffolding, broadcast diffusion, compass maps, sample trays, scales, windows, magnifying glasses, nodes, doors, bridges, dashboards, folders, and process tracks. Each image must make it clear at a glance which kind of relationship it expresses among compression, filtering, distribution, judgment, path, consolidation, or collaboration.
  • The "slightly strange mechanical feeling" in the round 4-5 tests is only kept as a boundary exploration record, not as the default direction. Do not actively pursue eeriness, mystery, organ-like feeling, or excessive abstraction; if a certain image does not help readers understand the current section, switch back to the clear composition families in the reference images.
  • When using Codex/ChatGPT's built-in image generation, the degree of abstraction must be controlled: you may use words such as object-card mechanism、hand-drawn workflow object、blank slabs、rounded capsules、thick connector band、archive tray、nested frame、funnel output ; use words like nameless abstract mechanism、soft shell、organic plume that are more likely to go off track with caution; write less of words like role card、document card、permission、dashboard that are easily translated literally.
  • For a long article, images in the same group must control metaphor repetition: do not use a "box + circle + connecting line" node diagram consecutively; prioritize rotating among relationships such as compression, distribution, filtering, judgment, path, accumulation, and collaboration, and rotate by composition family.
  • For a long article, images in the same group must also control layout repetition: do not let multiple images all become a horizontal mechanism diagram of "input on the left - convergence/gate/filter in the middle - output on the right". This layout may be used at most as a small number of compression, filtering, and transformation sections; it is not the default safe composition.
  • Do not use readable text; if "documents/contracts/clauses" need to be represented, draw only short lines and blocks, not actual characters.
  • Do not use familiar UI icons such as checkmarks, portraits, stars, pencils, tools, app symbols, or arrows; roles, permissions, and node relationships should be expressed with blank cards, dots, short lines, and abstract blocks.
  • Do not use plant branches and leaves, flowers and grass, decorative scattered dots, or corner decorations; models easily misinterpret "natural hand-drawn" as illustration decoration, so it must be actively excluded.
  • Do not use faces, eyes, mouths, body parts, horror symbols, religious mystical symbols, surreal objects, or unfamiliar devices that are hard to explain; do not turn "abstraction" into a puzzle that readers cannot understand.
  • Do not put article titles, section titles, or keywords verbatim into the image prompt; first rewrite them into visual-only concepts to avoid the model drawing English titles, product names, or technical terms into the image.
  • Do not copy any brand website's existing SVG, Logo, wordmark, or specific pattern; extract only the general structural language.
  • This Skill is the sole main entry point for subsequent article illustrations. Do not create parallel Skills for similar styles again; if the style needs adjustment, prioritize switching to or creating a theme (themes/), adjusting abstraction_strength , or changing references/; do not hard-code color values in SKILL.md or scripts.

Theme Pack

The color scheme of this Skill (accent color, paper color, ink line color) is no longer hard-coded, but is instead provided bytheme file. One theme file = one set of colors. In this way, different law firms, teams, or authors can reuse the same set of compositions and workflows, replacing only the colors.

The built-in theme packs are in the themes/ directory:

Theme Pack Accent Color Applicable
blue-gray(default) #435C68 blue-gray legal, WeChat official account long-form articles, editorial
ink-black #2A2A28 ink black minimalist, no brand color requirement; reuse the blue-gray reference images
terracotta #A65A3D ochre humanities, culture, lifestyle; reuse the blue-gray reference images

blue-gray is the default activated theme. For complete instructions, see themes/README.md。

Switch Theme

Choose one of three, in descending priority:

  1. Command-line parameter(single image generation):generate_prompts.py --theme ink-black or batch_article_images.py --theme ink-black。
  2. Outline-level override(effective for the entire article): write "style": { "theme": "terracotta" }。
  3. Change the default activated theme(effective long-term): edit config/style.json, and change active_theme to the theme pack name.

After switching,generate_prompts.py will read the colors from themes/<name>.json and inject them into the prompt, with no need to modify other files.

Create Your Own Law Firm Theme Pack

Suitable for law firms, brand accounts, or individual authors to inject their own theme colors. Core steps:

  1. Create a new themes/my-firm.json file.
  2. Define colors(accent_color accent color,paper_background paper color,ink_color ink line color).
  3. Use --theme my-firm or change active_theme to activate.

See the detailed template in themes/README.md。Key Constraints: use only one accent color per article; keep the paper color at a low-saturation warm white.

Fine-tuning color values (without changing the theme pack)

If you only want to temporarily change one color value and do not want to create a new theme pack, write in the config/style.json of overrides :

{ "active_theme": "blue-gray", "overrides": { "accent_color": "#3A4F5C" } }

overrides has higher priority than the theme pack, and lower priority than the command-line --theme and the outline style.accent_color。

Abstraction intensity

This Skill has three built-in abstraction intensity levels, written in the config/style.json of abstraction_strength, and can also be overridden in the outline's style.abstraction_strength or a single illustrations[].abstraction_strength :

Level Use case Style boundaries
reference_card Want to be closer to prior reference images, prioritize serving comprehension, and avoid going off track Prioritize folder archive、cloud funnel output、nested frame、workflow book、chain active block and other explainable compositions; use few unnamed mechanisms, soft shells, or misty diffusion
balanced Default level, suitable for most WeChat official account articles Moderately abstract within the reference image family, avoid literal translation into document cards, UI panels, permission icons, or dashboards, but retain a metaphor that can be explained in one sentence
high_abstract Want to use the more abstract mechanism feel from recent tests You can use nameless abstract mechanism、soft slabs、rounded shells、slots、hinges、vessels、organic plumes、endpoint capsules, but there must be a clear reader_takeaway_zh

Use balancedby default. Long-form grouped illustrations can be mixed: use reference_card for key chapter or conclusion images to stay clear, and use high_abstract for a few more conceptual chapters to increase style variation. Do not use high_abstractfor multiple consecutive images unless the user explicitly wants a more experimental visual direction.

Aspect ratio and size

Continue using the aspect ratio strategy accumulated by this skill from the prior illustration workflow:

Purpose Default generation aspect ratio Default generation size Delivery recommendation
WeChat official account cover image Generate with a wide frame, then export Built-in image generation wide frame; API experiments can use 2048x872 Export 2400x1024, place the main object in the central safe area
Body horizontal image Wide frame Built-in image generation wide frame; API experiments can use 2048x872 Use directly in the body, or scale proportionally as needed
Square card 1:1 1024x1024 or the model's default square image Used for covers, lists, and Moments cards

The final cover image is 2400x1024. The default built-in image generation route uses a wide-frame prompt for generation, then exports or crops to 2400x1024as needed. The external API experimental route continues the old size strategy: Z-Image can use 2048x872, and when explicitly switching back to Qwen/Qwen-Image , use 1664x928. The prompt should clearly specify center-safe composition, avoid the subject being close to the top and bottom edges; at the same time, the subject should not be too small, and by default should occupy about 60-72% of the image width.

Subject proportion

By default, use the WeChat official account body image strategy of "large subject, few elements, moderate whitespace":

  • Cover image: The subject occupies about 60-72% of the image width and about 55-68% of the height, placed in the central safe area.
  • Body horizontal image: The main subject occupies about 55-68% of the frame width or visual weight, with no more than 2 auxiliary symbols, placed close to the main subject.
  • Square card: The main subject occupies about 68-76% of the square frame.

These ratios are written in config/style.json in cover_subject_scale、inline_subject_scale and card_subject_scale . If the article needs a more ethereal hand-drawn object card feel, they can be lowered; by default, WeChat Official Account body text should not go below the above ranges.

Generation route

The official delivery route is ImageGen / Built-in Image First: the Agent is responsible for understanding the article and determining semantics and composition, and the final image is completed using the built-in image generation capability of ImageGen/Codex/ChatGPT. Do not mistake the Python local renderer for a "built-in image generation capability," and do not treat local preview or external API debugging routes as the default route.

If the current host environment provides the ImageGen tool, real final-image testing should preferentially call ImageGen directly.codex_generation_queue.md is only a queue for the Agent to call ImageGen; if there is only a queue and no image output, you cannot claim that "final-image testing" has been completed.

  1. First read the article, and according to references/builtin_image_generation_workflow.md write each image's Image Brief:
    • chapter_claim_en: the real judgment of this section.
    • visual_thesis_en: the visual proposition that can be drawn.
    • main_relation_en: the relationship that must be seen at first glance.
    • support_structure_en: the minimal supplementary structure that helps understand the relationship.
    • final_prompt_en: the final English image prompt written directly by the Agent for the built-in image generation tool.
  2. generate_prompts.py Compile the outline, configured colors, and style constraints into prompts.json. If there is final_prompt_en, the script preferentially preserves the image written by the Agent rather than overwriting it with a fixed template.
  3. batch_article_images.py --mode codex Output codex_generation_queue.json and codex_generation_queue.md。
  4. The Agent reads the queue one by one and calls the built-in image generation tool of ImageGen/Codex/ChatGPT to generate the final PNG; after generation, save it with the suggested filename and insert it into Markdown or the delivery directory.
  5. The default process stops at real image generation and no longer runs an additional local preview. The local renderer is used only when the user explicitly requests composition sketches, placeholder checks, or an API guided-edit skeleton.
  6. Before delivery, run scripts/compress_images.py to compress the final image, with the default target 200KBand hard upper limit 500KB。

Default command:

python3 scripts/batch_article_images.py \
  --outline assets/outline_sample.json \
  --outdir out \
  --mode codex

This route will not read an API Key, nor will it call SiliconFlow, MiniMax, or other external image interfaces. The script will output:

  • prompts.json: regular prompts and composition contract.
  • codex_generation_queue.json: a structured queue for the Agent to call the built-in image generation capability.
  • codex_generation_queue.md: human-readable per-image prompt.

Important boundary: the built-in image generation capability of Codex/ChatGPT is an Agent/host environment capability, not a local model inside the current Python process. Therefore --mode codex can only prepare the queue and target filenames, and cannot directly return PNGs from the script like an external API. During execution, the Agent calls the built-in image generation tool in the conversation; if the host environment returns a saveable file, then archive it according to the suggested filenames in the queue.

External APIs serve only as an explicit experimental route. Only when the user explicitly requests "run the API," "model comparison," or "try an external model again" should these constraint strengths be distinguished; otherwise do not call SiliconFlow, MiniMax, Qwen, or other external image interfaces.

  • Text paraphrase constraint:t2i only accepts a prompt, and the model may still change the layout, add text, or change the style.
  • Image composition constraint:guided-edit first use local rendering to generate composition_guides/, then have the editing model redraw along the input image; this is the approach in the API route that is closer to a local preview.
  • Candidate screening requirements: in actual testing, guided-edit can clearly preserve the layout, but it may still introduce non-configured colors, an old-paper feel, red dots, or light brown blocks. API output must first be compared against composition_guides/ , and check whether it uses only the current theme pack's accent color, near-black, and off-white (without introducing a second accent color).

Image plan format

When delivering only in the conversation, use this structure:

## 配图计划

| 序号 | 位置 | 用途 | 画面隐喻 | 核心概念 | 比例 |
|------|------|------|----------|----------|------|
| 01 | 标题后 | 首图 | [对象卡片] | [一句话] | 2400x1024 |
| 02 | 第一个二级标题后 | 正文横图 | [隐喻] | [一句话] | 16:9 |

## 图片提示词

### 01 首图
Prompt: ...
Negative prompt: ...

Write prompts in English, and write the image plan in Chinese. This makes Chinese review easier and is also better suited to common image models.

Note: image prompts must not contain the article title, section headings, or the original keywords. Titles are only used for the image plan and file naming; what actually goes into the image model must be a de-textualized visual concept, for example changing HTML table to complex merged-cell grid, and changing product names to the lightweight reading tool。

Image density

WeChat official account articles default to "high-density body images"; do not make only a few section divider images. Unless the user explicitly asks for fewer images, plan according to the following rhythm:

  • Short article: 1 lead image + 6-8 body horizontal images.
  • Medium-length article: 1 lead image + 12-16 body horizontal images.
  • Long article or case/product retrospective article: 1 lead image + 18-24 body horizontal images.

Long-article density baseline:

  • For each ## level-2 heading, arrange 2-3 body images by default.
  • For ### level-3 headings with longer content or multiple turns, also handle them at around 2 images.
  • If a single section has only 1 image, it is usually only suitable as a section divider and not enough to cover the WeChat reading rhythm; unless that section is very short, continue adding key judgment images.
  • Multiple images in the same section must each correspond to a different judgment: problem definition, mechanism change, trust/asset/boundary/judgment relationships, etc.; do not merely repeat the same meaning.

Body image slots should prioritize covering these positions:

  • The problem definition after the opening.
  • For each ## the first core judgment after a level-2 heading.
  • Important ### subsections.
  • Feature lists, comparison paragraphs, technical choices, process descriptions, development rhythm, key decisions, and conclusion paragraphs.

If the article has more than 5 level-2 headings, arrange at least 1 image for each level-2 heading; under longer level-2 headings, add 1-2 more. When there are many images, use paper / inverted background mode rotation and different metaphors to maintain rhythm, but still keep the same line style, fixed accent color, and low information density.

Control the number of reversal images by group:

  • 6-8 body images: arrange 1-2 inverted。
  • 10-14 body images: arrange 2-4 inverted, with about 1 appearing every 4 images by default.
  • The lead image uses paperby default; do not start with a full-page blue background. Reversal images should preferably be placed in sections on key turns, conclusions, system boundaries, distribution amplification, human judgment, and so on.
  • Do not let two invertedappear consecutively in the same image group, unless the user explicitly asks for a strong rhythm.

Diversity strategy

Do not rely only on soft shell / slot / hinge A set of grammar diagrams. Distribute the diagrams of the same article across different composition families. The goal of diversity is to make the relationships between different sections easier to understand, not to create stranger abstractions.

Composition family Suitable relationship Visual characteristics
Sparse chain Sequence, stages, handoff A small number of rounded blocks advance along a horizontal line, with one accent-colored active block
Workflow book / vessel Experience accumulation, method unfolding Thick book pages, container, outlet or lateral output
Accent rail blocks System boundaries, organizational order, inversion diagram Accent-colored background or accent-colored track, off-white blocks arranged along the track
Cloud funnel output From chaotic input to clear output Organic cloud clusters, funnel/horn mouth, clear endpoint
Radial network Diffusion, external perception, feedback A central node radiates outward, but the number of nodes is controlled
Chain active block Approval, admission, judgment, state change One accent-colored active module in a horizontal chain
Stack / camera / archive Evidence, materials, reusable assets Stacked blocks, archive boxes, observation holes, storage structures
Nested frame Abstract levels, explanatory frameworks, observation positions Multi-layered nested frames, with an accent-colored core in the middle
Process to network From process to collaborative network Input list, process blocks, networked output
Folder archive Archiving, knowledge base, samples Folders, drawers, trays, sample blocks
Module puzzle chain Module assembly, capability combination Puzzle-like connectors, module chains, slot structures
Orbit / ring table Open discussion, consensus not yet formed, empty center Ring-shaped table, circular ring structure, empty center, surrounding cards loosely connected
Map / compass field Direction, positioning, path selection, portable posture Folded map, compass, path fragments, a small number of marker points
Balance / tension frame Paradox, trade-offs, threshold tension Central pivot, blocks on both sides, tension frame, suspended structure
Scaffold / temporary frame Rough start, construction, temporary order Scaffolding, unclosed frames, support rods, semi-formed objects
Seed / rare signal Scarce signal, honest ignorance, small but important discovery A small capsule in a large structure, a single heterogeneous block in a sample tray

Execution rules:

  • For every 6 body diagrams, use at least 4 different composition families.
  • Within the same chapter, 2-3 diagrams must use different composition families, avoiding consecutive "boxes + connecting lines".
  • If the previous one used a chain, the next one should preferably use a container, cloud cluster, nested frame, radial, or archive structure.
  • In each group of 10-14 body diagrams, the horizontal transformation layout of "left-side input - middle processing/convergence - right-side output" may be used at most 2-3 times; two adjacent diagrams must not use this layout.
  • funnel、filter、threshold gate、channel、pipeline、output bands、endpoint capsules belongs to the same category of "convergent output layouts". Do not use it unless the chapter relationship is clearly compression, filtering, delivery, or transformation.
  • For every 5 body diagrams, arrange at least 2 nonlinear layouts, such as circular discussion, map positioning, stacked archives, sample tray, balanced tension, scaffolding, empty center, module assembly, or single-point scarce signal.
  • Diversity comes from composition and relationships, not from adding colors, text, characters, icons, or complex backgrounds.
  • Each image must first be explained in one Chinese sentence as to “what this image helps the reader understand.” If this sentence cannot be stated clearly, the imagery is not qualified and should be rewritten by returning to the composition family.
  • Sparse chain It must be explicitly written as “small rounded-corner blocks advancing along a thin line, with one accent-colored active block,” not just chain or slot; otherwise the model tends to draw an incomprehensible abstract slot object.
  • Avoid continuous use of the 4th-5th round exploratory imagery such as sealed chamber、oracle frame、aperture、offset sieve ; these easily deviate from the hand-drawn style and article comprehension, and are not used as default composition families.
  • When writing the prompt, first declare the composition family, then write the section semantics. For example:Composition family: nested frame. Visual thesis: ...

Composition Audit

Before calling ImageGen, first perform a composition audit on the entire set. Do not write prompts in isolation image by image; otherwise the Agent easily translates abstract arguments uniformly into horizontal convergence mechanism diagrams.

For each image, list:

image position reader_takeaway_zh reference_family layout_archetype whether it is horizontal convergence

layout_archetype Use these more specific layout labels:

  • left_to_right_transform: input on the left, processing in the middle, output on the right. Strictly limited.
  • central_object: a single central object, with a small number of auxiliary blocks around it.
  • radial_orbit: rings, round tables, central empty space, surrounding nodes.
  • stack_archive: stacking, archives, drawers, sample boxes.
  • map_field: maps, compasses, path fragments.
  • balance_tension: tension, trade-offs, thresholds, pivot points.
  • scaffold_frame: scaffolding, temporary frameworks, semi-formed structures.
  • modular_grid: module assembly, grid but not UI.
  • single_rare_signal: small but clear heterogeneous signals within a large structure.

Audit rules:

  • If left_to_right_transform exceeds 25% of the entire set, rewrite the excess image positions.
  • If two consecutive images are both left_to_right_transform, rewrite the latter one.
  • If funnel/filter/channel/gate/output -related words appear more than 3 times within 5 images, switch to radial_orbit、map_field、stack_archive、balance_tension or scaffold_frame。
  • If more than 4 images in the overview present a “wide on the left, narrow on the right” or “scattered on the left, organized on the right” silhouette, it indicates that things have gone off track, and the prompts must be rewritten before regenerating the images.

Prompt Template

Important: the color values in the following template (#FAF9F5、#141413、#435C68 , etc.) are only examples of the blue-gray default theme. When generating prompts, you must first read the actual color values from the current theme file (themes/<active_theme>.json, determined by config/style.json 's active_theme ) and replace them into the prompt; do not copy the example colors from the template. When the command line or outline specifies --theme , use that theme's color values.

WeChat Official Account Cover Image

Wide WeChat article cover illustration, generated in 16:9 and center-safe for 2400x1024 crop. Hand-drawn editorial object-card style based on this skill's composition families, not a copy of any brand asset. Warm off-white paper background ({paper_background}), flat with no vignette or lighting effect, one large centered symbolic object occupying 60-72% of the canvas width and 55-68% of the canvas height, near-black hand-inked filled contours ({ink_color}), stable silhouette that feels hand traced in one confident pass, subtle imperfect parallel edges, tapered stroke starts and ends, small pressure flattening at corners and overlaps, flat muted accent block in the active theme color ({accent_name} {accent_color}). Article-serving metaphor: [隐喻]. It should help readers understand: [当前段落核心观点]. Show only [1 个主物件] plus [1-2 个贴近主体的辅助元素]. Generous but not excessive negative space, quiet editorial composition, no cryptic surreal mechanism, no mechanical vector icon, no arrows, no plants, no leaves, no decorative corner marks, no ruler-straight edges, no tiny centered icon, no readable text, no logo, no watermark, no gradients, no vignette, no shadows, no 3D, no photorealism.

The lines must be further written as:

near-black hand-inked filled contour paths, stable readable silhouettes, single-pass confident hand tracing, subtle imperfect parallel edges, gently tapered stroke starts and ends, small pressure flattening at corners/overlaps/joints/terminal caps, long edges calm with organic tapering, not a smooth uniform rounded stroke and not a mechanical vector outline

More precisely: use “natural but controlled hand-drawing,” not “random irregularity.” The main outline should be stable, clear, and recognizable; variations in thickness come from the start of the stroke, the end of the stroke, corner indentations, and structural anchor points, not from the entire line shaking randomly, and do not let ink-blob noise appear on every edge. Internal thin lines can be thinner and carry a slight stroke ending.

Body Horizontal Image

16:9 horizontal editorial illustration for a WeChat article section. Hand-drawn object illustration system based on this skill's composition families, not a direct copy. Warm off-white paper background ({paper_background}), flat with no vignette or lighting effect. Use exactly one accent color from the active theme ({accent_name} {accent_color}), about 8-15% of the image. Near-black hand-inked filled contours ({ink_color}): stable readable silhouettes first, single-pass confident hand tracing, slight human asymmetry, gently tapered starts and ends, small pressure flattening at corners and overlaps; long edges stay calm with organic tapering, no random contour noise. One clear article-serving metaphor: [隐喻]. Help readers understand this concept: [当前段落核心观点]. Use one dominant main object occupying 55-68% of the canvas width or visual footprint, plus up to 2 close supporting marks. Spacious but not empty, calm, low-detail, understandable, no cryptic surreal mechanism, no mechanical vector icon, no arrows, no plants, no leaves, no decorative corner marks, no ruler-straight edges, no tiny centered icon, no readable text, no logo, no gradient, no vignette, no shadow, no 3D, no photo.

Inverted Background Image (inverted)

16:9 horizontal editorial illustration for a WeChat article section. Hand-drawn object illustration system, not a direct copy. Flat solid background using the active theme accent color ({accent_name} {accent_color}) as the whole canvas field, with no vignette, no lighting effect, no gradient, and no texture. Warm off-white object surfaces ({paper_surface}), near-black hand-inked filled contours ({ink_color}), stable silhouette, single-pass confident hand tracing, subtle tapering at stroke ends, small pressure flattening at structural corners and joins, one clear metaphor: [隐喻]. Main object occupies 55-68% of the canvas width or visual footprint. No mechanical vector icon, no arrows, no plants, no leaves, no decorative corner marks, no ruler-straight edges, no tiny centered icon, no random shaky lines, no lumpy edge noise, no second accent color, no readable text, no logo, no gradient, no vignette, no shadow, no 3D, no photo.

Square Card

1:1 square object-card illustration in hand-drawn editorial style. Use paper mode or inverted mode from config/style.json. Centered symbolic object occupying about 68-76% of the square canvas, near-black hand-inked filled contours with stable silhouette, single-pass confident hand tracing, tapered ends, and a few structural pressure accents, flat off-white inner surfaces, one concise metaphor for [概念]. Minimal composition, no mechanical vector icon, no arrows, no plants, no leaves, no decorative corner marks, no tiny icon, no readable text, no logo, no photorealism.

Metaphor Library

Scene Preferred Metaphor
Making experience explicit, explanation, observation position Prism, compass map, window, magnifying glass
Complex input to clear output Funnel, sample tray, folder, evidence box
Distribution, amplification, external perception Broadcast diffusion, node network, bridge
Organizational governance, boundaries of responsibility Scaffolding, layered framework, balance scale, gate
Approval, admission, permissions Gate, bridge, keyhole, maze exit
Risk identification, early warning, grading Radar, dashboard, maze path
Assetization, reuse, long-term cycle Folder, flywheel, timeline, building blocks
Collaboration, Agent workflow Bridge, browser window, track, broadcast diffusion

Legal WeChat official account articles should prioritize "relational metaphors," that is, imagery in which relationships of compression, filtering, distribution, judgment, paths, accumulation, or collaboration can be seen. Magnifying glasses, radar, and node networks are low-risk but easily repetitive basic metaphors; do not use them heavily or repeatedly within one long article. Avoid an overly techy feel, a marketing poster feel, and a pure flowchart feel.

Batch planning and ImageGen image generation

By default, codex The queue relies only on the Python standard library. Before first using the explicit diagnostic tool,guided-edit or other API experiments, run in this directory:

python3 -m pip install -r scripts/requirements.txt

Prepare the outline JSON; you can copy and modify from assets/outline_sample.json . Core fields:

  • title: article title
  • title_en: English title, used for the image prompt; if absent, the script falls back to title
  • aspect: default 16:9
  • style.background_mode_sequence: each image rotates between paper / inverted two background modes.
  • style.abstraction_strength: abstraction intensity for the whole piece, supports reference_card、balanced、high_abstract; by default read from config/style.json .
  • illustrations[].abstraction_strength: overrides the abstraction intensity for a single image, used to mix within one article images closer to the reference images and images with higher abstraction.
  • config/style.json: activates the theme pointer (active_theme), local color value override layer (overrides), and structural configuration such as ink lines and abstraction level; the actual accent color values come from theme file themes/<active_theme>.json。
  • illustrations[]: each image's position, purpose, metaphor, keywords, and emphasis target; it is recommended to add for each item title_en、concept_en, ensuring the final prompt is mainly in English
  • For formal high-quality generation, add for each item chapter_claim_en、visual_thesis_en、main_relation_en、support_structure_en and final_prompt_en; the script will prioritize the final_prompt_en。

Default built-in image generation queue:

python3 scripts/batch_article_images.py \
  --outline assets/outline_sample.json \
  --outdir out

This command is equivalent to --mode codex, and outputs prompts.json、codex_generation_queue.json and codex_generation_queue.md. Then the Agent calls the built-in image generation capability of ImageGen/Codex/ChatGPT to generate the final images. By default, this proceeds to real image generation, and no additional local preview is run.

Explicit diagnostic tool: local composition sketch. Do not run by default; use only when the user explicitly requests a composition sketch, placeholder preview, or local preview check:

python3 scripts/batch_article_images.py \
  --outline assets/outline_sample.json \
  --outdir out \
  --mode local

local outputs each PNG, cover image 2400x1024 export version and overview_board.png, used to check composition, subject proportion, metaphor repetition, and frame safe zone. It is an explicit diagnostic/sketch route, not part of the default process, and cannot be used to replace ImageGen final output.

Default image compression:

python3 scripts/compress_images.py /path/to/generated-image-dir

This script overwrites images in place, by default compressing as much as possible to below 200KB , and requires each image to be below 500KB. It prioritizes pngquant; if installation is needed:

brew install pngquant imagemagick

If a very small number of images cannot be brought below 500KBby compression alone, scaling can be explicitly allowed:

python3 scripts/compress_images.py /path/to/generated-image-dir --allow-resize

External API relaxed-constraint experiment:

python3 scripts/batch_article_images.py \
  --outline assets/outline_sample.json \
  --outdir out \
  --mode t2i \
  --allow-api \
  --image-size auto \
  --final-size 2400x1024

The default text-to-image model is Tongyi-MAI/Z-Image-Turbo. This route is only for explicit experiments and side-by-side comparison, and is not the default delivery main path;Qwen/Qwen-Image and MiniMax image-01 are only used as stress tests,Qwen/Qwen-Image-Edit-2509 serves as the skeleton fallback. All external API modes must explicitly add --allow-api, otherwise the script will refuse to execute, to avoid accidentally triggering the API in default delivery.

External API composition lock experiment:

python3 scripts/batch_article_images.py \
  --outline assets/outline_sample.json \
  --outdir out \
  --mode guided-edit \
  --allow-api

guided-edit will first output composition_guides/ local composition sketch, then call the editing model. It is more suitable than pure t2i for relaying "already-determined semantics and composition" to the API, but it is still only a candidate experiment and cannot replace the built-in image generation final draft by default.

If using the empty base image editing mode to maintain series consistency:

python3 scripts/batch_article_images.py \
  --outline assets/outline_sample.json \
  --outdir out \
  --mode edit \
  --allow-api

Configure API Key:

  • Only explicitly using --allow-api API experiment route requires configuration.
  • Copy config/secrets.env.example as config/secrets.env
  • Fill in SILICONFLOW_AK
  • Do not commit config/secrets.env(already ignored by .gitignore )

Output check

  • Whether each image has only one core concept.
  • Whether the default delivery is completed by the Agent calling ImageGen/Codex/ChatGPT built-in image generation capabilities, rather than treating local rendered sketches as final images.
  • Whether to first write Image Brief, then write the final English visual prompt; do not rely only on section titles or keywords to apply templates.
  • Whether to use --mode codex to generate the queue, and then call ImageGen/built-in image generation tools to generate real PNGs.
  • Whether it does not run by default --mode local or generate local_preview/; if the user explicitly requests local sketches, whether they are marked as diagnostic sketches rather than formal delivery images.
  • Whether it has run scripts/compress_images.py to compress the final images, by default each below 500KB, as much as possible below 200KB。
  • If the user explicitly requests API experiments, whether to prioritize using guided-edit, and check whether composition_guides/ is consistent with the final image's subject, layout, and background mode.
  • Whether the subject is in the central safe area, and key information is not lost after the first image is cropped.
  • Whether the subject is large enough: body horizontal images should not look like small icons; by default the subject occupies about 55-68% of the image width or visual weight.
  • Whether to use the fixed accent color from the configuration (from the current theme pack); white-background images use only local accent color, and inverted-background images do not introduce a second accent color.
  • Whether the ink lines look like a single-pass hand tracing: with stroke starts and ends and corner pressure marks, rather than mechanical vector outlines, uniformly rounded outlines, full-circle random ink blobs, or jittery draft lines.
  • Whether readable text, logos, watermarks, real UI screenshots, and photographic texture are avoided.
  • Whether the prompt has been de-textualized: article titles, section titles, keywords, or product names must not be sent as-is into the image model.
  • Whether it does not directly replicate any ready-made illustration from a brand's official website.
  • Whether the same article enhances hierarchy through white-background/blue-background rhythm changes, but does not become a multicolored rainbow.

Reference files

  • references/handdrawn_style_architecture.md: Source of the hand-drawn object card style, structural language, and implementation rules.
  • references/builtin_image_generation_workflow.md: Default route for built-in image generation, Image Brief fields, and prompt writing.
  • references/siliconflow_images_api.md: Key points of the SiliconFlow image API.
  • config/style.json: Activates structural configurations such as theme pointers, color value overlays, and ink line styles.
  • themes/: Theme file directory; each file defines a set of color schemes (accent color, paper color, ink line color); see themes/README.md。