Omni-Design Studio (3-Step Deterministic Design & Promo Video Integration Skill)
🎯 Design Philosophy (Why even low-tier models produce professional quality?) All complex decisions – color extraction, catchphrase composition, asymmetric editorial typesetting, 300 DPI PDF/SVG dieline generation, 24fps video easing & voice synthesis – are encapsulated in a single deterministic Python pipeline (
build_omni_design.py, Formula-First). AI agents (both high-end and low-end models) only need to execute the following "3 Steps (① Prepare ➔ ② Generate 3 Photos ➔ ③ Batch Build)" in order to consistently output human-designer-quality deliverables.
🗺️ Overall Architecture Diagram (3-Step State Machine)
flowchart TD
Start(["👤 User Request"]) --> Check{"Are the concept & reference images specified?"}
%% Step 1
Check -- "Not specified (vague request)" --> Ask["【Step 1A】Present 5 Core Questions<br>`build_omni_design.py --ask-concept`"]
Ask --> UserAns["User answers / fill sheet"]
Check -- "Specified / Answered" --> PromptGen["【Step 1B】Extract DNA & Output 3 Photo Prompts<br>`build_omni_design.py --print-image-prompts`<br>(`--ref-image / --ref-url / --concept-sheet`)"]
UserAns --> PromptGen
%% Step 2
PromptGen --> Harness{"Execution Environment (Harness)?"}
Harness -- "Codex (Primary)" --> CodexImg["【Step 2A】Codex Built-in image_gen Tool × 3<br>(gpt-image-2.5-sunburst / $0 subscription)<br>Auto-saves to ~/.codex/generated_images/"]
Harness -- "Antigravity" --> AgyImg["【Step 2B】image-generator Sub-agent × 3 images<br>(Imagen 4 Ultra / $0 subscription)"]
Harness -- "User provides images / none" --> DirectBuild
%% Step 3
CodexImg --> DirectBuild["【Step 3】One-command Full Media Build<br>`build_omni_design.py --auto-codex-images --with-promo-video`"]
AgyImg --> DirectBuild
DirectBuild --> Out(["📦 Fully Editable Complete Package ($0)<br>① website.html / poster.html / packaging_mockup.html<br>(Built-in WordPress-style Visual Block & Canvas Editor)<br>② website_preview.png / poster_300dpi.png / poster_print.pdf / packaging_3d_mockup.png / packaging_dieline.svg<br>③ promo_video_vertical_9x16.mp4 / landscape_16x9.mp4<br>④ promo_video_studio_9x16.html / 16x9.html (Browser-based subtitle & timeline editing studio)<br>⑤ promo_captions.srt / .vtt (Premiere / CapCut subtitles) & promo_audio_track.wav"])
⚡ "3-Step Execution Rule" – Never Hesitate, Even with Lower-Tier Models
Always use only the following single script path (all sub-scripts are called automatically internally):
SCRIPT="$HOME/.codex/skills/omni-design-studio/scripts/build_omni_design.py"
Step 1: Confirm Concept & Get 3 Photo Generation Prompts
- If the catchphrase or concept is undecided, first run the following to ask the user 5 questions (Target, 3 Benefits, Who × By What × Becomes How, Destroy Old Premise ➔ True Solution, Before-After):
(Master template:python3 "$SCRIPT" --ask-concepttemplates/CONCEPT_QUESTION_SHEET.md) - Once the brand name, reference image (
--ref-image/--ref-url) are decided, run with--print-image-promptsto get 3 photo prompts (JSON) harmonized with the color & taste DNA:*(If no reference image, omitpython3 "$SCRIPT" \ --brand "Brand Name" \ --category "Product Category (e.g., Earrings, Fine Jewelry)" \ --ref-image "/path/to/reference.jpg" \ --print-image-prompts--ref-image; the default human-curated DNAorganic_editorialcolor scheme & taste will be used)
Step 2: Generate 3 Photo Assets Using $0 Subscription Top-Tier Model (Text-Free Photos)
Using the 3 prompts output from Step 1 (hero_image_prompt, poster_image_prompt, pack_image_prompt), generate 3 pure commercial studio photos without any text (No API key pay-as-you-go charges; use only within the subscription):
- 🅰️ If running in Codex (1st Priority:
gpt-image-2.5-sunburst): Call Codex's built-inimage_gentool 3 times (auto-saved to~/.codex/generated_images/). - 🅱️ If running in Antigravity (
Imagen 4 Ultra / Nano Banana 2.1): Callinvoke_subagent(TypeName="image-generator")to generate 3 images and receive the save paths. - 🅲 If the user prepares images:
Directly convey the "📋 Asset Request from Agent (required photo compositions, recommended sizes, AI prompt suggestions)" output by Step 1 (run without
--print-image-prompts) to the user.
Step 3: One-Command Output of All Designs & Promo Videos
Just run the following single command to complete all deliverables: 3 HTML files that allow free editing of images, text, elements, and layouts in the browser like WordPress, high-resolution PNG/PDF/SVG files, and a full promo video package where captions and video can be freely edited later:
# For Codex (--auto-codex-images auto-binds the images generated in Step 2)
python3 "$HOME/.codex/skills/omni-design-studio/scripts/build_omni_design.py" \
--auto-codex-images \
--target all \
--with-promo-video \
--brand "LUMIÈRE & CO." \
--category "Earrings, Fine Jewelry" \
--headline "Luminous Craft," \
--subcopy "An organic earring collection weaving 18K recycled gold and Akoya pearls" \
--out-dir ~/Downloads/omni_output_pack
# For Antigravity / Claude Code or explicit image path specification
python3 "$HOME/.codex/skills/omni-design-studio/scripts/build_omni_design.py" \
--target all \
--with-promo-video \
--brand "LUMIÈRE & CO." \
--category "Earrings, Fine Jewelry" \
--headline "Luminous Craft," \
--subcopy "An organic earring collection weaving 18K recycled gold and Akoya pearls" \
--hero-image /path/to/hero.jpg \
--poster-image /path/to/poster.jpg \
--pack-image /path/to/pack.jpg \
--out-dir ~/Downloads/omni_output_pack
🎨 Post-Output WordPress-Style Visual Editing & Video Caption Editing (Built-in Standard)
The 3 generated design files (website.html, poster.html, packaging_mockup.html) and video studio files (promo_video_studio_9x16.html, promo_video_studio_16x9.html) are automatically embedded with a WordPress (Gutenberg)/Studio-style visual editor (✦ OMNI WP-STUDIO) via cms_editor_runtime.py. Just open them in a browser to perform the following edits:
- Direct Text Editing (Inline WYSIWYG): Click on headings, body text, badges, or vertical copy to type corrections directly; change font size (
A+/A-), text color, and font family (Mincho / Modern Japanese / Gothic / Brutalism / Swiss Grid) with a single click. - Image Replacement & Frame Shape Change: Double-click an image (or drag & drop from your PC) to instantly replace it with another photo. Freely switch frame shapes between "Arch Window (
Arch)", "Rounded Card (Bento)", "Sharp (Sharp)", and "Circle (Circle)". - Free Element, Block, & Layout Movement: Move selected elements in all directions (
↑/↓/←/→), duplicate blocks (⧉) or delete them (🗑️), add new text/image blocks (+ Add Text/🖼️ Add Image), and flip left-right two-column layouts with one click (⇄ Flip Layout). - Save Edited HTML & Export PDF: Use the toolbar's
💾 Save HTMLto save the edited state as a single HTML file; use🖨️ Export PDFto output a high-resolution PDF/print with the toolbar automatically hidden. - Post-Production Video & Caption Editing:
promo_video_studio_9x16.html/16x9.html: Seek and playScene 1–4using the timeline bar at the bottom, directly rewrite subtitles (captions), headings, and photos within the video, and use the📝 Save SRT Subtitlesbutton to immediately export the edited subtitle file.promo_captions.srt/promo_captions.vtt/promo_audio_track.wav: These can be directly imported into Premiere Pro, CapCut, DaVinci Resolve, Final Cut Pro, etc., for subtitle replacement and BGM/narration re-editing.
🛠️ Optional Feature Reference (Use Only When Needed)
| What You Want To Do | Additional Flag / Command |
|---|---|
| Auto-apply copy from a filled concept sheet | --concept-sheet /path/to/CONCEPT_QUESTION_SHEET.md |
| Fully replicate colors, taste, and fonts from reference image/URL | --ref-image /path/to/sample.jpg or --ref-url https://... |
Manually specify design style (default: organic_editorial) | --trend [organic_editorial | japanese_luxury | bento_glass | neo_brutalism | swiss_editorial | cyber_pop] |
| Generate contact sheet of 100 human-designer picks | python3 .../scripts/curate_human_designs.py --out-dir ~/Downloads/curation_100 |
| Mass production mode (Plan B: DeepSeek + Flux ~¥0.6/unit) | --plan plan_b (default: --plan plan_a = $0 subscription) |