SuperAPI AI Directory

laohan-fengmianzhuzige

General & other

View repository

Updated 10-15 22:12

About this skill

Zhuzige-style cover: three-layer compositing v6.1 (final version)

v6.1 final version (Jeffrey acceptance 2026-09-20):samples/shoucuogongju-v62-final.jpg(SHA-256 prefixaeb933ed) is the style baseline sample — OPPO portrait photo (navy shirt + glasses + stubble) + full-stack v6.2 (3:4 material text + left-center evidence card EvidenceCard + top-right MiniStamp small seal + person brightening tier). Final version parameter baseline = samples/brief-example.json: person brightening tier (env_brightness 0.66/saturation 0.78/tint 0.26/face_boost 1.7/weak scrim 160) + text_top 748 + kicker 236 + evidence card three lines (content taken from the current episode's voiceover script deep-water-zone checklist). Same-day empirical lesson: for dark-scene single-side-light material (WeChat avatar photo), if half the face is in shadow + improper cropping, it results in "face not fully visible" —Material acceptance first priority = face fully and brightly visible, and only secondarily lighting-ratio integration; the final version therefore returns to the bright-scene portrait photo + brightening tier route. Factory inspection discipline: three-segment zoom-in verbatim transcription + key-boundary pixel-level detection (seal × face gap, zero occlusion in the face region, no all-black rows); must not rely only on overall scoring.

Route definition(81 real covers inspected one by one, empirical study + 2026-09-20 replication test): Zhuzige coveris not a full-frame AI generation, but three-layer compositing — ① AI-generated/UI-screenshottext-free background object plate; ② his ownreal photo(different clothing and pose each episode, face 100% consistent thanks to the real person); ③ thefive-layer text systemlaid out by design tools; after compositing,unified color grading of the whole image(cool-tone dark-tone ONE GRADE — composite first, then grade, so the person and the environment are one photo). In 2026-01 he himself tried "AI generating the full frame including the person" (#03/#04) and then abandoned it; from 2026-03 onward everything switched to three-layer compositing. This skill replicates with the same structure.

Historical lesson chain: v2.0 misjudged it as "pure frame extraction" (grabbed the wrong layer) → v3.0 mistakenly changed to "AI single-pass generation of the full poster" (three hard defects empirically measured: identity doesn't look like him / English typo ERLY / layout out of control) → v4.0 three-layer compositing established → v4.x small window/keying "sticker feel" failure → v5.1 case closedenv_photoonly correct solution → v6.0 empirically nailed down three non-parameter-level bottlenecks and fixed them one by one: (a) canvas mismatch — the reference frame of all 81 is 3:4 (covers_real 323x430) while the output used to be 9:16, so the canvas was changed to 1080x1440 native; (b) text material — PIL flat fill = PPT feel, changed toRemotion still-frame rendered material text(same-source component as the main feature HUD, templates-v2 already accepted); (c) material lighting — bright-scene flat-light photos darkened = gray gloomy surveillance feel (v6 adds a machine-judgeable bright-scene precheck),dark-scene staged shooting is a hard prerequisite for the env_photo route。

Inputs and prerequisites

  1. Current 01-口播稿.md: take the hook sentence + main memory point → convert into the title group;
  2. Real-person frame:cover-specific staged shooting preferred(dark scene + single-side practical light + explanation gesture, see "Material lighting admission" below); when there is no staged shooting, use 07-剪辑/raw.mp4 frame extraction during the hook period (no burned-in subtitles, use raw-transcript.json to locate the moment); as an alternative, the current episode's reference identity photo;
  3. episode-config.schema_version is 4; when the binding is not satisfied, stop.

Material Lighting Admission (v6 hard gate, machine-judgeable)

The env_photo source crop area is automatically metered at build time:mean>115 且 p95-p5<110 = bright flat lighting→ WARN is issued indicating an expected gray, surveillance-camera feel;brief.strict_light=trueis directly rejected. This is not something parameter tuning can save: Brother Zhuzi's photo premise isdark scene + practical lights(consistent with the Six Integration Methods evidence that "his room is a dark scene"); darkening a bright room only makes it gray, not a dark scene. The correct solution = reshoot according to the "reshoot checklist" (references/), not keep tuning brightness.

Title group (five-layer text system; place each line of text before starting work)

  1. English eyebrow: small uppercase wide-tracking text at the top summarizing the theme (e.g. "EARLY WIN IS BAIT"), optionally paired with a one-line Chinese subtitle (Eyebrow component bilingual);
  2. white lead-in line: a context sentence of 6-10 characters (e.g. "AI hand-made early success");
  3. extra-large emphasis kicker: one word, 3-6 characters, extra-large bold black (e.g. "is bait"), character height ≈ 16-18% of canvas height——choose one of four semantic colors: gold #F5C518 default/money conclusion, red #E04545 negative questioning or denial, blue #3B82F6 tech brand, green #22C55E open-source money-making positive (purple is almost never used in the 81 pieces of evidence);
  4. highlight bar/sticker: yellow background black text bar or red/green tag for one line of secondary information (e.g. "I've hit every wall I was supposed to hit"); a sticker stamp may be added in the top-right corner (StampRed, density-filled four corners);
  5. bottom English footnote: brand line in the style of "LAOHAN AI · CASE FILES NO.XX", small text with wide tracking.
  6. brand chip card(top-left, below the eyebrow): rounded outlined small card "老韩AI | LAOHAN.AI · CASE 01".
  7. title stack left-aligned(align=left, left_x≈64): matching the original's left-aligned arrangement of the lower large text block, with tightened line spacing.

Three-layer execution pipeline (scripts/build_cover.py, one command, 1080x1440)

  • Layer 1 Background board:prioritize real material(UI screenshots/product photos/theme photos, bg_image); Seedream is only a fallback (bg_prompt, 1152x1536,no text and no human faces, discard any generated image that is reviewed and found to contain text); background promptmust not request "large-area blank space/empty negative space"——the original is a full composition with elements in all four corners (no blank walls), not a negative-space poster;
  • Layer 2 Real person integration layer(three modes;v5.1 final decision:env_photois the only correct solution——Jeffrey ruled that "cutout portraits look too fake"; what Brother Zhuzi cuts out is the whole block of "person + surrounding real environment", not a human-shaped cutout):
    • env_photo(default): from raw frames/posed shots, crop a rectangular area of "person + real environment" (never use cutouts) → darken (brightness≈0.44-0.55) + desaturate + cool color cast →radial face brightening (env_face_boost≈1.6-2.0, the face must be the brightest focus in the person area)→radial alpha mask (opaque only in the person area, blending into darkness over a long distance around it; the ellipse must finish its falloff within the block)→ four-sided scrims as assistance;
    • integrated(human-shaped cutout, kept historically, already vetoed by Jeffrey as the main route);block_tr(small-window photo block, already vetoed).
    • Six Integration Methods(Post-production unified style verification): ① After the real-person layer is darkened, the face must still be the brightest subject on the entire canvas; ② The torso must dissolve into the darkness / be cropped out of the canvas bottom, no bright blocks floating; ③ The outline light color = the background light source color, with consistent light direction; ④ Text pressed over the lower body of the figure forms a depth sandwich; ⑤ Particles/smoke fill gaps and have one layer each in front of and behind the figure; ⑥ Bright background assets must not be used with wide environmental cropping.
    • Proportion red line (Jeffrey 2026-09-20): The face occupies ≈15-20% of the canvas height, and the portrait overall is near full height (env_height≈0.70); if the face exceeds 30%=the proportion is severely off.
    • Seam lesson chain: edge-feather 170px cannot cover a bright photo → 4-side scrim still exposes tonal differences → the dark frame itself becomes a new rectangle →the only solution = radial alpha mask long-distance dissolve to black (ellipse contained inside the block) + poster-side gradient darkening band + global black point compression (black_point≈14-22). Any "hard edge + local patching" will be visible.
  • Layer 3 Text layer (v6 default Remotion):animation-method/runtime/cover/index.tsx(LaohanCover 1080x1440, frame=120 still frame) — accepted components (Eyebrow/StampRed) + SEMANTIC semantic colors +material-level kicker(underlying solid color thick stroke extruded shadow/front layer linear gradient fill + glow, Source Han Sans Heavy) + yellow bar sticker + chip card + centered footnote; the brief'sremotionsection passes parameters (kicker_tone/kicker_size/stamp/text_top, etc.).PIL flat text is only a fallback when runtime is missing(--text-engine pil);
  • Layer 4 Global unified color grading (final_grade): after the three layers are composited → one grade of brightness/contrast/color + cool tint + vignette on the whole image;
  • produce a single 1080x1440 (3:4) master; do not make three candidates; if unsatisfied, change the title group or visual concept and regenerate.

Red lines (violation=stop immediately)

  1. Background plate promptmust prohibit text/letters/facesrequirement; after image generation, review and discard if any text appears;
  2. AI-generated people are prohibited, people must be Jeffrey's real photos/real frames;
  3. render any title text with image generation is prohibited(neither Chinese nor English is allowed, the typo rate is unacceptable); the text layer only goes through Remotion/PIL code rendering;
  4. if rembg/font/runtime is missing, first repair the main body, and do not downgrade or take workarounds (PIL fallback only when runtime is physically missing);
  5. env_photo source bright scene flat lighting assets(pre-check FLAT_BRIGHT) must not be forced in — first reshoot or switch to a raw dark frame; when strict_light=true the machine directly rejects it.

Relationship with the opening first frame

⑥ the poster cover (this skill) and ⑪ the finished video opening hook are two things that both need to be done; they share the hook idea but do not share images. The cover text layer and the main video HUD share the templates-v2 component library (same-source design language).

Dependency declaration

Remotion runtime(animation-method/runtime, the only local execution layer on the whole machine, cover/subdirectory) + Volcano Ark API (ARK_API_KEY, only for Seedream fallback) + ~/.venvs/cover(rembg+onnxruntime+pillow) + assets/fonts/SourceHanSansCN-Heavy.otf (SIL OFL commercially usable, cover/public/ has a copy for @font-face) + ffmpeg (raw frame extraction).