Not in the top 1,000 by GitHub stars
xianyu110/ecommerce-image-skills
12 电商出图 Agent Skills for Claude Code / Codex / Cursor · GPT Image 2.5 (Flare/Sunburst) · Amazon 白底主图, A+, 场景图, 模特图, 小红书封面, 淘宝详情页
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/amazon-a-plus/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f4566fdc8125
No earlier version was observed for comparison.
skills/amazon-white-background/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f4566fdc8125
No earlier version was observed for comparison.
skills/batch-background-swap/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f4566fdc8125
No earlier version was observed for comparison.
skills/ecommerce-listing-suite/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f4566fdc8125
No earlier version was observed for comparison.
skills/lifestyle-scene/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f4566fdc8125
No earlier version was observed for comparison.
skills/model-try-on/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f4566fdc8125
No earlier version was observed for comparison.
skills/multi-angle-set/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f4566fdc8125
No earlier version was observed for comparison.
skills/sale-banner/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f4566fdc8125
No earlier version was observed for comparison.
skills/selling-point-infographic/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f4566fdc8125
No earlier version was observed for comparison.
skills/size-chart/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f4566fdc8125
No earlier version was observed for comparison.
skills/taobao-detail-long-image/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f4566fdc8125
No earlier version was observed for comparison.
skills/xiaohongshu-cover/SKILL.md
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → f4566fdc8125
No earlier version was observed for comparison.
Verified commit f4566fdc812584425728862ad8e08c90883d81ee
git clone --filter=blob:none --no-checkout https://github.com/xianyu110/ecommerce-image-skills.git .hotskills/xianyu110-ecommerce-image-skills && git -C .hotskills/xianyu110-ecommerce-image-skills checkout --detach f4566fdc812584425728862ad8e08c90883d81ee
# Copy each selected skill directory from .hotskills/xianyu110-ecommerce-image-skills into .claude/skills/<skill-name>/Heat
7.2- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- amazon-a-plus
skills/amazon-a-plus - amazon-white-background
skills/amazon-white-background - batch-background-swap
skills/batch-background-swap - ecommerce-listing-suite
skills/ecommerce-listing-suite - lifestyle-scene
skills/lifestyle-scene - model-try-on
skills/model-try-on - multi-angle-set
skills/multi-angle-set - sale-banner
skills/sale-banner - selling-point-infographic
skills/selling-point-infographic - size-chart
skills/size-chart - taobao-detail-long-image
skills/taobao-detail-long-image - xiaohongshu-cover
skills/xiaohongshu-cover
How it works
amazon-a-plus
When your agent uses it
Plan and generate Amazon A+ Content / Premium A+ module images (970×600 header, 970×300 banner, 300×300 / 220×220 tiles, 350×175 comparison, 1464×600 premium) with a consistent campaign style lock across all modules. Use for A+ content, A+ 页面, EBC, brand story, enhanced brand content.
What it loads into context
Frontmatter
88 tokensAlways available to the agent
SKILL.md
1,639 tokensWhen the skill is activated
Reference documents
16,913 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 · Product identity lock (always first)
- Step 2 · Pick the model
- A+ module sizes (Basic A+)
- Step A · Module plan (confirm with user)
- Step B · Campaign style lock (paste into every module prompt)
- Step C · Module prompt template
- Generate · three routes (pick the first that works)
- Deliver
Scripts executed separately
scripts/crop_to_modules.pyscripts/generate.pyscripts/online_link.py../amazon-white-background/scripts/check_main_image.py../amazon-white-background/scripts/generate.py../amazon-white-background/scripts/online_link.py../batch-background-swap/scripts/batch_edit.py../batch-background-swap/scripts/generate.py../batch-background-swap/scripts/online_link.py../ecommerce-listing-suite/scripts/generate.py../ecommerce-listing-suite/scripts/online_link.py../lifestyle-scene/scripts/generate.py../lifestyle-scene/scripts/online_link.py../model-try-on/scripts/generate.py../model-try-on/scripts/online_link.py../multi-angle-set/scripts/generate.py../multi-angle-set/scripts/make_grid.py../multi-angle-set/scripts/online_link.py../sale-banner/scripts/generate.py../sale-banner/scripts/online_link.py../selling-point-infographic/scripts/generate.py../selling-point-infographic/scripts/online_link.py../size-chart/scripts/generate.py../size-chart/scripts/online_link.py../taobao-detail-long-image/scripts/generate.py../taobao-detail-long-image/scripts/online_link.py../taobao-detail-long-image/scripts/stitch_long_image.py../xiaohongshu-cover/scripts/generate.py../xiaohongshu-cover/scripts/online_link.py
Files
../../.claude-plugin/marketplace.jsonasset1,116 bytesSKILL.mdcore6,316 bytesSKILL.mdcore6,316 bytesSKILL.mdcore6,316 bytesSKILL.mdcore6,316 bytesscripts/crop_to_modules.pyruns1,136 bytesscripts/generate.pyruns4,824 bytesscripts/online_link.pyruns788 bytes../amazon-white-background/SKILL.mddoc6,884 bytes../amazon-white-background/scripts/check_main_image.pyruns4,741 bytes../amazon-white-background/scripts/generate.pyruns4,824 bytes../amazon-white-background/scripts/online_link.pyruns788 bytes../batch-background-swap/SKILL.mddoc5,969 bytes../batch-background-swap/scripts/batch_edit.pyruns2,834 bytes../batch-background-swap/scripts/generate.pyruns4,824 bytes../batch-background-swap/scripts/online_link.pyruns788 bytes../ecommerce-listing-suite/SKILL.mddoc6,530 bytes../ecommerce-listing-suite/scripts/generate.pyruns4,824 bytes../ecommerce-listing-suite/scripts/online_link.pyruns788 bytes../lifestyle-scene/SKILL.mddoc5,917 bytes../lifestyle-scene/scripts/generate.pyruns4,824 bytes../lifestyle-scene/scripts/online_link.pyruns788 bytes../model-try-on/SKILL.mddoc5,913 bytes../model-try-on/scripts/generate.pyruns4,824 bytes../model-try-on/scripts/online_link.pyruns788 bytes../multi-angle-set/SKILL.mddoc5,472 bytes../multi-angle-set/scripts/generate.pyruns4,824 bytes../multi-angle-set/scripts/make_grid.pyruns937 bytes../multi-angle-set/scripts/online_link.pyruns788 bytes../sale-banner/SKILL.mddoc6,159 bytes../sale-banner/scripts/generate.pyruns4,824 bytes../sale-banner/scripts/online_link.pyruns788 bytes../selling-point-infographic/SKILL.mddoc5,978 bytes../selling-point-infographic/scripts/generate.pyruns4,824 bytes../selling-point-infographic/scripts/online_link.pyruns788 bytes../size-chart/SKILL.mddoc5,804 bytes../size-chart/scripts/generate.pyruns4,824 bytes../size-chart/scripts/online_link.pyruns788 bytes../taobao-detail-long-image/SKILL.mddoc5,823 bytes../taobao-detail-long-image/scripts/generate.pyruns4,824 bytes../taobao-detail-long-image/scripts/online_link.pyruns788 bytes../taobao-detail-long-image/scripts/stitch_long_image.pyruns1,292 bytes../xiaohongshu-cover/SKILL.mddoc5,706 bytes../xiaohongshu-cover/scripts/generate.pyruns4,824 bytes../xiaohongshu-cover/scripts/online_link.pyruns788 bytes
Read SKILL.md
# Amazon A+ Content Modules · A+ 页面模块图
Builds a complete, visually consistent A+ page: module plan → style lock → one prompt per module → exact pixel sizes.
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**.
## Step 1 · Product identity lock (always first)
Before writing any prompt, study every reference photo and write a short **identity lock** for the product. Paste it verbatim into **every** prompt this skill produces, and never let a creative instruction override it.
```text
PRODUCT IDENTITY LOCK (do not change):
- Shape & proportions: <e.g. tall cylinder, rounded shoulders, 26 cm high, 7.5 cm wide>
- Colour & finish: <e.g. matte sage green #8FA58C body, natural bamboo lid>View the complete source on GitHubamazon-white-background
When your agent uses it
Create an Amazon-compliant white-background main image (pure #FFFFFF background, product fills ≥85% of the frame, no text, props or watermark) from a product photo with GPT Image 2.5, then verify it with a Python check script. Use for Amazon/Walmart/eBay main images, 白底图, 白底主图, hero image, listing main photo.
What it loads into context
Frontmatter
87 tokensAlways available to the agent
SKILL.md
1,695 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 · Product identity lock (always first)
- Step 2 · Pick the model
- Platform specs (Amazon main image)
- Prompt template
- Generate · three routes (pick the first that works)
- Check (required before delivering)
- Deliver
Scripts executed separately
scripts/check_main_image.pyscripts/generate.pyscripts/online_link.py
Files
SKILL.mdcore6,884 bytesSKILL.mdcore6,884 bytesSKILL.mdcore6,884 bytesSKILL.mdcore6,884 bytesscripts/check_main_image.pyruns4,741 bytesscripts/generate.pyruns4,824 bytesscripts/online_link.pyruns788 bytes
Read SKILL.md
# Amazon White-Background Main Image · 亚马逊白底主图
Turns a phone snapshot or supplier photo into a marketplace main image that passes Amazon's main-image rules, and checks the result automatically.
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**.
## Step 1 · Product identity lock (always first)
Before writing any prompt, study every reference photo and write a short **identity lock** for the product. Paste it verbatim into **every** prompt this skill produces, and never let a creative instruction override it.
```text
PRODUCT IDENTITY LOCK (do not change):
- Shape & proportions: <e.g. tall cylinder, rounded shoulders, 26 cm high, 7.5 cm wide>
- Colour & finish: <e.g. matte sage green #8FA58C body, natural bamboo lid>View the complete source on GitHubbatch-background-swap
When your agent uses it
Batch-replace backgrounds or recolour SKU variants across a folder of product photos (white background, brand colour, seasonal scene, colour variants) while keeping the product untouched, with resume, retries, budget cap and a CSV log. Use for 批量换背景, 批量白底, SKU 换色, colour variants, background replacement, bulk edit.
What it loads into context
Frontmatter
84 tokensAlways available to the agent
SKILL.md
1,474 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 · Product identity lock (always first)
- Step 2 · Pick the model
- Specs
- Prompt templates
- Run the batch (route b)
- Generate · three routes (pick the first that works)
- Deliver
Scripts executed separately
scripts/batch_edit.pyscripts/generate.pyscripts/online_link.py
Files
SKILL.mdcore5,969 bytesSKILL.mdcore5,969 bytesSKILL.mdcore5,969 bytesSKILL.mdcore5,969 bytesscripts/batch_edit.pyruns2,834 bytesscripts/generate.pyruns4,824 bytesscripts/online_link.pyruns788 bytes
Read SKILL.md
# Batch Background Swap & SKU Recolour · 批量换背景 / SKU 换色
Process a whole folder: same background for every product, or every colourway from one photo — with a budget cap and a log.
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**.
## Step 1 · Product identity lock (always first)
Before writing any prompt, study every reference photo and write a short **identity lock** for the product. Paste it verbatim into **every** prompt this skill produces, and never let a creative instruction override it.
```text
PRODUCT IDENTITY LOCK (do not change):
- Shape & proportions: <e.g. tall cylinder, rounded shoulders, 26 cm high, 7.5 cm wide>
- Colour & finish: <e.g. matte sage green #8FA58C body, natural bamboo lid>View the complete source on GitHubecommerce-listing-suite
When your agent uses it
Orchestrate a complete ecommerce image set for one product: confirm product facts, plan the gallery per platform (Amazon 7-image set, Taobao 5 main + detail page, Shopee, TikTok Shop, Xiaohongshu), lock identity and campaign style, then call the specialised skills and QA every image. Use when the user wants a full listing image set, 全套图, 套图, 一键出图, listing images, PDP image pack.
What it loads into context
Frontmatter
106 tokensAlways available to the agent
SKILL.md
1,702 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 · Product identity lock (always first)
- Step 2 · Pick the model
- Default plans
- Workflow
- Plan output format
- Generate · three routes (pick the first that works)
- Deliver
Scripts executed separately
scripts/generate.pyscripts/online_link.py
Files
SKILL.mdcore6,530 bytesSKILL.mdcore6,530 bytesSKILL.mdcore6,530 bytesscripts/generate.pyruns4,824 bytesscripts/online_link.pyruns788 bytes
Read SKILL.md
# Ecommerce Listing Suite · 全套电商图编排
The entry point: one product in, a full platform-ready image set out — planned, consistent, and checked.
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**.
## Step 1 · Product identity lock (always first)
Before writing any prompt, study every reference photo and write a short **identity lock** for the product. Paste it verbatim into **every** prompt this skill produces, and never let a creative instruction override it.
```text
PRODUCT IDENTITY LOCK (do not change):
- Shape & proportions: <e.g. tall cylinder, rounded shoulders, 26 cm high, 7.5 cm wide>
- Colour & finish: <e.g. matte sage green #8FA58C body, natural bamboo lid>View the complete source on GitHublifestyle-scene
When your agent uses it
Place a real product into a believable lifestyle or in-use scene (kitchen, bathroom, desk, outdoor, gym, bedroom, festive) for listing images, ads and social posts while keeping the product identical. Use for 场景图, 生活场景图, lifestyle image, in-use photo, context shot.
What it loads into context
Frontmatter
74 tokensAlways available to the agent
SKILL.md
1,500 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 · Product identity lock (always first)
- Step 2 · Pick the model
- Platform specs
- Scene library (pick one, fill the braces)
- Prompt template
- Generate · three routes (pick the first that works)
- Deliver
Scripts executed separately
scripts/generate.pyscripts/online_link.py
Files
SKILL.mdcore5,917 bytesSKILL.mdcore5,917 bytesSKILL.mdcore5,917 bytesscripts/generate.pyruns4,824 bytesscripts/online_link.pyruns788 bytes
Read SKILL.md
# Lifestyle Scene · 生活场景图
Puts the exact product into a scene that shows who uses it, where and how — the image buyers imagine themselves in.
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**.
## Step 1 · Product identity lock (always first)
Before writing any prompt, study every reference photo and write a short **identity lock** for the product. Paste it verbatim into **every** prompt this skill produces, and never let a creative instruction override it.
```text
PRODUCT IDENTITY LOCK (do not change):
- Shape & proportions: <e.g. tall cylinder, rounded shoulders, 26 cm high, 7.5 cm wide>
- Colour & finish: <e.g. matte sage green #8FA58C body, natural bamboo lid>View the complete source on GitHubmodel-try-on
When your agent uses it
Dress a model in a real garment or accessory from a flat-lay, hanger or mannequin photo (on-model / virtual try-on) while preserving fabric, colour, fit, prints and logos. Supports pose references, multiple body types and ghost-mannequin output. Use for 模特图, 上身图, 试穿, try-on, on-model photo, apparel and jewellery.
What it loads into context
Frontmatter
88 tokensAlways available to the agent
SKILL.md
1,516 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 · Product identity lock (always first)
- Step 2 · Pick the model
- Specs & ethics
- Inputs
- Prompt template
- Generate · three routes (pick the first that works)
- Deliver
Scripts executed separately
scripts/generate.pyscripts/online_link.py
Files
SKILL.mdcore5,913 bytesSKILL.mdcore5,913 bytesSKILL.mdcore5,913 bytesscripts/generate.pyruns4,824 bytesscripts/online_link.pyruns788 bytes
Read SKILL.md
# Model Try-On · 模特上身图
From a flat-lay or hanger shot to catalogue-quality on-model photos — without a studio or a model booking.
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**.
## Step 1 · Product identity lock (always first)
Before writing any prompt, study every reference photo and write a short **identity lock** for the garment. Paste it verbatim into **every** prompt this skill produces, and never let a creative instruction override it.
```text
PRODUCT IDENTITY LOCK (do not change):
- Shape & proportions: <e.g. tall cylinder, rounded shoulders, 26 cm high, 7.5 cm wide>
- Colour & finish: <e.g. matte sage green #8FA58C body, natural bamboo lid>View the complete source on GitHubmulti-angle-set
When your agent uses it
Generate a consistent multi-angle product image set (front, back, left/right side, top, 45°, detail macro, packaging, in-hand) with identical lighting and background, optionally combined into a grid. Use for 多角度图, 多视角套图, 360 view, angle set, gallery images.
What it loads into context
Frontmatter
74 tokensAlways available to the agent
SKILL.md
1,413 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 · Product identity lock (always first)
- Step 2 · Pick the model
- Specs
- Shot list (default 6)
- Set lock (prepend to every shot)
- Prompt template (one per angle)
- Grid (optional)
- Generate · three routes (pick the first that works)
- Deliver
Scripts executed separately
scripts/generate.pyscripts/make_grid.pyscripts/online_link.py
Files
SKILL.mdcore5,472 bytesSKILL.mdcore5,472 bytesSKILL.mdcore5,472 bytesSKILL.mdcore5,472 bytesscripts/generate.pyruns4,824 bytesscripts/make_grid.pyruns937 bytesscripts/online_link.pyruns788 bytes
Read SKILL.md
# Multi-Angle Set · 多角度套图
One product, 6–9 matching angles — same light, same background, same colour — so the gallery looks shot in one session.
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**.
## Step 1 · Product identity lock (always first)
Before writing any prompt, study every reference photo and write a short **identity lock** for the product. Paste it verbatim into **every** prompt this skill produces, and never let a creative instruction override it.
```text
PRODUCT IDENTITY LOCK (do not change):
- Shape & proportions: <e.g. tall cylinder, rounded shoulders, 26 cm high, 7.5 cm wide>
- Colour & finish: <e.g. matte sage green #8FA58C body, natural bamboo lid>View the complete source on GitHubsale-banner
When your agent uses it
Design promotional sale banners and store hero images for Taobao/Tmall (双11, 618, 年货节), Shopee/Lazada (9.9, 11.11, 12.12), TikTok Shop, Amazon Prime Day/Black Friday and DTC sites, with the real product and exact campaign copy at the right pixel size. Use for 海报, banner, 首焦图, 大促图, campaign banner, store header.
What it loads into context
Frontmatter
101 tokensAlways available to the agent
SKILL.md
1,623 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 · Product identity lock (always first)
- Step 2 · Pick the model
- Common sizes
- Campaign presets
- Prompt template
- Generate · three routes (pick the first that works)
- Deliver
Scripts executed separately
scripts/generate.pyscripts/online_link.py
Files
SKILL.mdcore6,159 bytesSKILL.mdcore6,159 bytesSKILL.mdcore6,159 bytesscripts/generate.pyruns4,824 bytesscripts/online_link.pyruns788 bytes
Read SKILL.md
# Sale Banner · 大促海报 / 店铺 Banner
Campaign-ready banners in the exact sizes each platform wants, with your real product and correctly spelled offer copy.
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**.
## Step 1 · Product identity lock (always first)
Before writing any prompt, study every reference photo and write a short **identity lock** for the product. Paste it verbatim into **every** prompt this skill produces, and never let a creative instruction override it.
```text
PRODUCT IDENTITY LOCK (do not change):
- Shape & proportions: <e.g. tall cylinder, rounded shoulders, 26 cm high, 7.5 cm wide>
- Colour & finish: <e.g. matte sage green #8FA58C body, natural bamboo lid>View the complete source on GitHubselling-point-infographic
When your agent uses it
Design selling-point / feature infographic images (one benefit per image, icons, callout lines, short headlines, comparison or spec rows) for Amazon secondary images, Taobao detail screens and ads, keeping the real product and exact user-approved copy. Use for 卖点图, 信息图, feature image, infographic, benefit graphic.
What it loads into context
Frontmatter
77 tokensAlways available to the agent
SKILL.md
1,523 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 · Product identity lock (always first)
- Step 2 · Pick the model
- Specs
- Step 0 · Copy first
- Layout menu
- Prompt template
- Generate · three routes (pick the first that works)
- Deliver
Scripts executed separately
scripts/generate.pyscripts/online_link.py
Files
SKILL.mdcore5,978 bytesSKILL.mdcore5,978 bytesSKILL.mdcore5,978 bytesscripts/generate.pyruns4,824 bytesscripts/online_link.pyruns788 bytes
Read SKILL.md
# Selling-Point Infographic · 卖点信息图
Turns verified product facts into scroll-stopping feature graphics that are readable on a phone.
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**.
## Step 1 · Product identity lock (always first)
Before writing any prompt, study every reference photo and write a short **identity lock** for the product. Paste it verbatim into **every** prompt this skill produces, and never let a creative instruction override it.
```text
PRODUCT IDENTITY LOCK (do not change):
- Shape & proportions: <e.g. tall cylinder, rounded shoulders, 26 cm high, 7.5 cm wide>
- Colour & finish: <e.g. matte sage green #8FA58C body, natural bamboo lid>View the complete source on GitHubsize-chart
When your agent uses it
Create size / dimension / specification chart images: product line drawing or photo with measurement callouts (cm + inch), apparel size tables, capacity and compatibility charts, with a human-hand or object reference for scale. Numbers come only from the user. Use for 尺寸图, 规格图, size chart, dimension image, spec sheet.
What it loads into context
Frontmatter
77 tokensAlways available to the agent
SKILL.md
1,475 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 · Product identity lock (always first)
- Step 2 · Pick the model
- Specs
- Inputs
- Prompt template — product dimensions
- Prompt template — apparel size table
- Generate · three routes (pick the first that works)
- Deliver
Scripts executed separately
scripts/generate.pyscripts/online_link.py
Files
SKILL.mdcore5,804 bytesSKILL.mdcore5,804 bytesSKILL.mdcore5,804 bytesscripts/generate.pyruns4,824 bytesscripts/online_link.pyruns788 bytes
Read SKILL.md
# Size Chart · 尺寸规格图
Removes the #1 reason for returns — wrong size expectations — with a clean, exact dimension graphic.
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**.
## Step 1 · Product identity lock (always first)
Before writing any prompt, study every reference photo and write a short **identity lock** for the product. Paste it verbatim into **every** prompt this skill produces, and never let a creative instruction override it.
```text
PRODUCT IDENTITY LOCK (do not change):
- Shape & proportions: <e.g. tall cylinder, rounded shoulders, 26 cm high, 7.5 cm wide>
- Colour & finish: <e.g. matte sage green #8FA58C body, natural bamboo lid>View the complete source on GitHubtaobao-detail-long-image
When your agent uses it
Plan and generate a Taobao/Tmall/Pinduoduo/JD product detail page (详情页) as 750-px-wide screens stitched into one long image: pain point → benefits → scenes → details → specs → after-sales, with a campaign style lock for consistency. Use for 详情页, 详情长图, 淘宝详情, 拼多多详情, detail page, PDP long image.
What it loads into context
Frontmatter
94 tokensAlways available to the agent
SKILL.md
1,528 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 · Product identity lock (always first)
- Step 2 · Pick the model
- Specs
- Default 8-screen plan (confirm/edit with user)
- Style lock (paste into every screen)
- Screen prompt template
- Stitch
- Generate · three routes (pick the first that works)
- Deliver
Scripts executed separately
scripts/generate.pyscripts/online_link.pyscripts/stitch_long_image.py
Files
SKILL.mdcore5,823 bytesSKILL.mdcore5,823 bytesSKILL.mdcore5,823 bytesSKILL.mdcore5,823 bytesscripts/generate.pyruns4,824 bytesscripts/online_link.pyruns788 bytesscripts/stitch_long_image.pyruns1,292 bytes
Read SKILL.md
# Taobao Detail Long Image · 淘宝详情长图 (750 宽)
A full 详情页 in one go: screen plan → style lock → one prompt per screen → stitched 750-px long image.
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**.
## Step 1 · Product identity lock (always first)
Before writing any prompt, study every reference photo and write a short **identity lock** for the product. Paste it verbatim into **every** prompt this skill produces, and never let a creative instruction override it.
```text
PRODUCT IDENTITY LOCK (do not change):
- Shape & proportions: <e.g. tall cylinder, rounded shoulders, 26 cm high, 7.5 cm wide>
- Colour & finish: <e.g. matte sage green #8FA58C body, natural bamboo lid>View the complete source on GitHubxiaohongshu-cover
When your agent uses it
Create Xiaohongshu (RED / 小红书) note covers and first images in 3:4 (1080×1440) for product seeding (种草), reviews, hauls and tutorials: big bold Chinese headline, product hero, visual anchor and stickers, in proven viral layouts. Use for 小红书封面, 种草图, 笔记首图, RED cover, rednote.
What it loads into context
Frontmatter
100 tokensAlways available to the agent
SKILL.md
1,464 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Step 1 · Product identity lock (always first)
- Step 2 · Pick the model
- Specs
- Viral layouts (爆款版式)
- Prompt template
- Generate · three routes (pick the first that works)
- Deliver
Scripts executed separately
scripts/generate.pyscripts/online_link.py
Files
SKILL.mdcore5,706 bytesSKILL.mdcore5,706 bytesSKILL.mdcore5,706 bytesscripts/generate.pyruns4,824 bytesscripts/online_link.pyruns788 bytes
Read SKILL.md
# Xiaohongshu Cover · 小红书种草封面
3:4 covers that stop the scroll in the 小红书 feed — bold Chinese title, real product, one strong visual anchor.
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**.
## Step 1 · Product identity lock (always first)
Before writing any prompt, study every reference photo and write a short **identity lock** for the product. Paste it verbatim into **every** prompt this skill produces, and never let a creative instruction override it.
```text
PRODUCT IDENTITY LOCK (do not change):
- Shape & proportions: <e.g. tall cylinder, rounded shoulders, 26 cm high, 7.5 cm wide>
- Colour & finish: <e.g. matte sage green #8FA58C body, natural bamboo lid>View the complete source on GitHubSkills included
- amazon-a-plus
- amazon-white-background
- batch-background-swap
- ecommerce-listing-suite
- lifestyle-scene
- model-try-on
- multi-angle-set
- sale-banner
- selling-point-infographic
- size-chart
- taobao-detail-long-image
- xiaohongshu-cover
Repository facts
- License
- MIT
- Created
- Oct 4, 2026
- Last pushed
- Oct 8, 2026
- Forks
- 26
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 29 notes
skills/amazon-a-plus/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/amazon-a-plus/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/amazon-a-plus/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/amazon-white-background/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/amazon-white-background/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/amazon-white-background/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/batch-background-swap/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/batch-background-swap/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/batch-background-swap/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ecommerce-listing-suite/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/ecommerce-listing-suite/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/lifestyle-scene/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/lifestyle-scene/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/model-try-on/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/model-try-on/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/multi-angle-set/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/multi-angle-set/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/multi-angle-set/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sale-banner/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/sale-banner/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 463 network referencesin 37 files: skills/amazon-white-background/scripts/generate.py:4 skills/batch-background-swap/scripts/generate.py:4 skills/ecommerce-listing-suite/scripts/generate.py:4 and 34 more
- 23 obfuscation signalsin 12 files: skills/amazon-white-background/scripts/generate.py:74 skills/batch-background-swap/scripts/generate.py:74 skills/ecommerce-listing-suite/scripts/generate.py:74 and 9 more
- No instruction overrides
- 55 executable scriptsin 29 files: skills/amazon-white-background/scripts/check_main_image.py:1 skills/amazon-white-background/scripts/generate.py:1 skills/amazon-white-background/scripts/online_link.py:1 and 26 more
- 140 references to secretsin 24 files: skills/amazon-white-background/scripts/generate.py:5 skills/batch-background-swap/scripts/generate.py:5 skills/ecommerce-listing-suite/scripts/generate.py:5 and 21 more
- No requests to vote in Hot
Show all 681 signals by file
.claude-plugin/marketplace.json
skills/amazon-a-plus/SKILL.md
- Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**. - Access to secretsline 87
[Credential-related source omitted] - Network accessline 90
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 91
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 101
python scripts/online_link.py --skill amazon-a-plus "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=amazon-a-plus - Network accessline 102
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=amazon-a-plus - Network accessline 105
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un
skills/amazon-a-plus/scripts/crop_to_modules.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/amazon-a-plus/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Access to secretsline 51
[Credential-related source omitted] - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r:
skills/amazon-a-plus/scripts/online_link.py
skills/amazon-white-background/SKILL.md
- Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**. - Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**. - Access to secretsline 75
[Credential-related source omitted] - Access to secretsline 75
[Credential-related source omitted] - Network accessline 78
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 78
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 79
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 79
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 89
python scripts/online_link.py --skill amazon-white-background "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=amazon-white-backgroun - Network accessline 89
python scripts/online_link.py --skill amazon-white-background "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=amazon-white-backgroun - Network accessline 90
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=amazon-white-background - Network accessline 90
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=amazon-white-background - Network accessline 93
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un - Network accessline 93
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un
skills/amazon-white-background/scripts/check_main_image.py
skills/amazon-white-background/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 5
[Credential-related source omitted] - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 53
[Credential-related source omitted] - Network accessline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r:
skills/amazon-white-background/scripts/online_link.py
skills/batch-background-swap/SKILL.md
- Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**. - Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**. - Access to secretsline 62
[Credential-related source omitted] - Access to secretsline 62
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Network accessline 81
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 81
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 82
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 82
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 92
python scripts/online_link.py --skill batch-background-swap "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=batch-background-swap - Network accessline 92
python scripts/online_link.py --skill batch-background-swap "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=batch-background-swap - Network accessline 93
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=batch-background-swap - Network accessline 93
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=batch-background-swap - Network accessline 96
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un - Network accessline 96
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un
skills/batch-background-swap/scripts/batch_edit.py
skills/batch-background-swap/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 5
[Credential-related source omitted] - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 53
[Credential-related source omitted] - Network accessline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r:
skills/batch-background-swap/scripts/online_link.py
skills/ecommerce-listing-suite/SKILL.md
- Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**. - Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**. - Access to secretsline 88
[Credential-related source omitted] - Access to secretsline 88
[Credential-related source omitted] - Network accessline 91
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 91
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 92
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 92
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 102
python scripts/online_link.py --skill ecommerce-listing-suite "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=ecommerce-listing-suit - Network accessline 102
python scripts/online_link.py --skill ecommerce-listing-suite "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=ecommerce-listing-suit - Network accessline 103
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=ecommerce-listing-suite - Network accessline 103
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=ecommerce-listing-suite - Network accessline 106
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un - Network accessline 106
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un
skills/ecommerce-listing-suite/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 5
[Credential-related source omitted] - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 53
[Credential-related source omitted] - Network accessline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r:
skills/ecommerce-listing-suite/scripts/online_link.py
skills/lifestyle-scene/SKILL.md
- Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**. - Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**. - Access to secretsline 78
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Network accessline 81
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 81
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 82
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 82
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 92
python scripts/online_link.py --skill lifestyle-scene "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=lifestyle-scene - Network accessline 92
python scripts/online_link.py --skill lifestyle-scene "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=lifestyle-scene - Network accessline 93
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=lifestyle-scene - Network accessline 93
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=lifestyle-scene - Network accessline 96
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un - Network accessline 96
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un
skills/lifestyle-scene/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 5
[Credential-related source omitted] - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 53
[Credential-related source omitted] - Network accessline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r:
skills/lifestyle-scene/scripts/online_link.py
skills/model-try-on/SKILL.md
- Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**. - Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**. - Access to secretsline 75
[Credential-related source omitted] - Access to secretsline 75
[Credential-related source omitted] - Network accessline 78
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 78
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 79
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 79
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 89
python scripts/online_link.py --skill model-try-on "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=model-try-on - Network accessline 89
python scripts/online_link.py --skill model-try-on "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=model-try-on - Network accessline 90
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=model-try-on - Network accessline 90
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=model-try-on - Network accessline 93
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un - Network accessline 93
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un
skills/model-try-on/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 5
[Credential-related source omitted] - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 53
[Credential-related source omitted] - Network accessline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r:
skills/model-try-on/scripts/online_link.py
skills/multi-angle-set/SKILL.md
- Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**. - Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**. - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Network accessline 77
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 77
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 78
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 78
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 88
python scripts/online_link.py --skill multi-angle-set "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=multi-angle-set - Network accessline 88
python scripts/online_link.py --skill multi-angle-set "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=multi-angle-set - Network accessline 89
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=multi-angle-set - Network accessline 89
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=multi-angle-set - Network accessline 92
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un - Network accessline 92
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un
skills/multi-angle-set/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 5
[Credential-related source omitted] - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 53
[Credential-related source omitted] - Network accessline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r:
skills/multi-angle-set/scripts/make_grid.py
skills/multi-angle-set/scripts/online_link.py
skills/sale-banner/SKILL.md
- Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**. - Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**. - Access to secretsline 82
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Network accessline 85
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 85
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 86
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 86
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 96
python scripts/online_link.py --skill sale-banner "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=sale-banner - Network accessline 96
python scripts/online_link.py --skill sale-banner "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=sale-banner - Network accessline 97
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=sale-banner - Network accessline 97
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=sale-banner - Network accessline 100
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un - Network accessline 100
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un
skills/sale-banner/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 5
[Credential-related source omitted] - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 53
[Credential-related source omitted] - Network accessline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r:
skills/sale-banner/scripts/online_link.py
skills/selling-point-infographic/SKILL.md
- Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**. - Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**. - Access to secretsline 78
[Credential-related source omitted] - Access to secretsline 78
[Credential-related source omitted] - Network accessline 81
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 81
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 82
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 82
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 92
python scripts/online_link.py --skill selling-point-infographic "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=selling-point-infogr - Network accessline 92
python scripts/online_link.py --skill selling-point-infographic "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=selling-point-infogr - Network accessline 93
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=selling-point-infographic - Network accessline 93
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=selling-point-infographic - Network accessline 96
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un - Network accessline 96
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un
skills/selling-point-infographic/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 5
[Credential-related source omitted] - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 53
[Credential-related source omitted] - Network accessline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r:
skills/selling-point-infographic/scripts/online_link.py
skills/size-chart/SKILL.md
- Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**. - Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Sunburst**. - Access to secretsline 76
[Credential-related source omitted] - Access to secretsline 76
[Credential-related source omitted] - Network accessline 79
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 79
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 80
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 80
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 90
python scripts/online_link.py --skill size-chart "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=size-chart - Network accessline 90
python scripts/online_link.py --skill size-chart "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=size-chart - Network accessline 91
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=size-chart - Network accessline 91
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=size-chart - Network accessline 94
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un - Network accessline 94
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un
skills/size-chart/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 5
[Credential-related source omitted] - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 53
[Credential-related source omitted] - Network accessline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r:
skills/size-chart/scripts/online_link.py
skills/taobao-detail-long-image/SKILL.md
- Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**. - Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**. - Access to secretsline 84
[Credential-related source omitted] - Access to secretsline 84
[Credential-related source omitted] - Network accessline 87
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 87
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 88
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 88
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 98
python scripts/online_link.py --skill taobao-detail-long-image "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=taobao-detail-long-im - Network accessline 98
python scripts/online_link.py --skill taobao-detail-long-image "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=taobao-detail-long-im - Network accessline 99
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=taobao-detail-long-image - Network accessline 99
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=taobao-detail-long-image - Network accessline 102
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un - Network accessline 102
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un
skills/taobao-detail-long-image/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 5
[Credential-related source omitted] - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 53
[Credential-related source omitted] - Network accessline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r:
skills/taobao-detail-long-image/scripts/online_link.py
skills/taobao-detail-long-image/scripts/stitch_long_image.py
skills/xiaohongshu-cover/SKILL.md
- Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**. - Network accessline 10
> Part of [ecommerce-image-skills](https://github.com/xianyu110/ecommerce-image-skills). Works with Claude Code, Codex, Cursor and any agent that loads `SKILL.md`. Default model: GPT Image 2.5 **Flare**. - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 72
[Credential-related source omitted] - Network accessline 75
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 75
# recommended endpoint (OpenAI-compatible, has gpt-image-2.5-flare / -sunburst); any OpenAI-compatible URL works export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 76
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 76
export GPTIMAGE_BASE_URL="https://tryallapi.com/v1" # default if unset: https://api.openai.com - Network accessline 86
python scripts/online_link.py --skill xiaohongshu-cover "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=xiaohongshu-cover - Network accessline 86
python scripts/online_link.py --skill xiaohongshu-cover "<final prompt>" # → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=xiaohongshu-cover - Network accessline 87
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=xiaohongshu-cover - Network accessline 87
# → https://gptimage2.asia/generate?prompt=<urlencoded>&utm_source=github&utm_medium=skill&utm_campaign=ecommerce-image-skills&utm_content=xiaohongshu-cover - Network accessline 90
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un - Network accessline 90
Show it once, as a plain line such as: `Run this prompt online (upload your product photo there): <link>`. For users in mainland China, add one line: `国内可用:https://chatgpt-plus.top/list/#/home`(粘贴提示词即可). Don't repeat these in later turns un
skills/xiaohongshu-cover/scripts/generate.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 4
Env: GPTIMAGE_API_KEY (required) your API key GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 5
[Credential-related source omitted] - Network accessline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 5
[Credential-related source omitted] - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 6
GPTIMAGE_BASE_URL (optional) default https://api.openai.com; recommended https://tryallapi.com/v1 (any OpenAI-compatible gateway works, with or without /v1) - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 25
def _post(url, body, headers, timeout): req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 26
req = urllib.request.Request(url, data=body, headers=headers, method="POST") - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 27
try: with urllib.request.urlopen(req, timeout=timeout) as r: return json.loads(r.read().decode("utf-8")) - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Network accessline 28
with urllib.request.urlopen(req, timeout=timeout) as r: - Access to secretsline 51
[Credential-related source omitted] - Access to secretsline 51
[Credential-related source omitted] - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 52
if not key: sys.exit("GPTIMAGE_API_KEY is not set. Without a key, open the one-click link printed by the skill instead.") base = os.environ.get("GPTIMAGE_BASE_URL", "https://api.openai.com").rstrip("/") - Network accessline 53
[Credential-related source omitted] - Network accessline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 53
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Network accessline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 74
outs.append(base64.b64decode(item["b64_json"])) elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Possible obfuscationline 74
outs.append(base64.b64decode(item["b64_json"])) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 75
elif item.get("url"): with urllib.request.urlopen(item["url"], timeout=timeout) as r: outs.append(r.read()) - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r: - Network accessline 76
with urllib.request.urlopen(item["url"], timeout=timeout) as r:
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 500 facts
- Network access in prose of the SKILL.mdamazon-a-plus/SKILL.md:10Low confidence
- Access to secrets in prose of the SKILL.md: a variable, placeholder or call, not a stored valueamazon-a-plus/SKILL.md:87Low confidence
- Network access in code of the SKILL.mdamazon-a-plus/SKILL.md:90High confidence
- Network access in code of the SKILL.mdamazon-a-plus/SKILL.md:91High confidence
- Network access in code of the SKILL.mdamazon-a-plus/SKILL.md:101High confidence
- Network access in code of the SKILL.mdamazon-a-plus/SKILL.md:102High confidence
- Network access in prose of the SKILL.mdamazon-a-plus/SKILL.md:105Low confidence
- Executable script in code of a file that runsamazon-a-plus/scripts/crop_to_modules.py:1High confidence
- Executable script in code of a file that runsamazon-a-plus/scripts/generate.py:1High confidence
- Network access in prose of a file that runsamazon-a-plus/scripts/generate.py:4Low confidence
- Network access in prose of a file that runsamazon-a-plus/scripts/generate.py:5Low confidence
- Access to secrets in prose of a file that runs: a variable, placeholder or call, not a stored valueamazon-a-plus/scripts/generate.py:5Low confidence
- Network access in prose of a file that runsamazon-a-plus/scripts/generate.py:6Low confidence
- Network access in code of a file that runsamazon-a-plus/scripts/generate.py:25High confidence
- Network access in code of a file that runsamazon-a-plus/scripts/generate.py:26High confidence
- Network access in code of a file that runsamazon-a-plus/scripts/generate.py:27High confidence
- Network access in code of a file that runsamazon-a-plus/scripts/generate.py:28High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueamazon-a-plus/scripts/generate.py:51Low confidence
- Network access in code of a file that runsamazon-a-plus/scripts/generate.py:52High confidence
- Network access in code of a file that runsamazon-a-plus/scripts/generate.py:53High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueamazon-a-plus/scripts/generate.py:53Low confidence
- Network access in code of a file that runsamazon-a-plus/scripts/generate.py:54High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueamazon-a-plus/scripts/generate.py:54Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueamazon-a-plus/scripts/generate.py:57Low confidence
- Network access in code of a file that runsamazon-a-plus/scripts/generate.py:74High confidence
- Possible obfuscation in code of a file that runsamazon-a-plus/scripts/generate.py:74High confidence
- Network access in code of a file that runsamazon-a-plus/scripts/generate.py:75High confidence
- Network access in code of a file that runsamazon-a-plus/scripts/generate.py:76High confidence
- Executable script in code of a file that runsamazon-a-plus/scripts/online_link.py:1High confidence
- Network access in code of a file that runsamazon-a-plus/scripts/online_link.py:8High confidence
- Network access in prose of the SKILL.mdskills/amazon-white-background/SKILL.md:10Low confidence
- Network access in prose of the SKILL.mdamazon-white-background/SKILL.md:10Low confidence
- Access to secrets in prose of the SKILL.md: a variable, placeholder or call, not a stored valueskills/amazon-white-background/SKILL.md:75Low confidence
- Access to secrets in prose of the SKILL.md: a variable, placeholder or call, not a stored valueamazon-white-background/SKILL.md:75Low confidence
- Network access in code of the SKILL.mdskills/amazon-white-background/SKILL.md:78High confidence
- Network access in code of the SKILL.mdamazon-white-background/SKILL.md:78High confidence
- Network access in code of the SKILL.mdskills/amazon-white-background/SKILL.md:79High confidence
- Network access in code of the SKILL.mdamazon-white-background/SKILL.md:79High confidence
- Network access in code of the SKILL.mdskills/amazon-white-background/SKILL.md:89High confidence
- Network access in code of the SKILL.mdamazon-white-background/SKILL.md:89High confidence
- Network access in code of the SKILL.mdskills/amazon-white-background/SKILL.md:90High confidence
- Network access in code of the SKILL.mdamazon-white-background/SKILL.md:90High confidence
- Network access in prose of the SKILL.mdskills/amazon-white-background/SKILL.md:93Low confidence
- Network access in prose of the SKILL.mdamazon-white-background/SKILL.md:93Low confidence
- Executable script in code of a file that runsskills/amazon-white-background/scripts/check_main_image.py:1High confidence
- Executable script in code of a file that runsamazon-white-background/scripts/check_main_image.py:1High confidence
- Executable script in code of a file that runsskills/amazon-white-background/scripts/generate.py:1High confidence
- Executable script in code of a file that runsamazon-white-background/scripts/generate.py:1High confidence
- Network access in prose of a file that runsskills/amazon-white-background/scripts/generate.py:4Low confidence
- Network access in prose of a file that runsamazon-white-background/scripts/generate.py:4Low confidence
and 450 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/amazon-a-plus/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/amazon-a-plus/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/amazon-a-plus/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/amazon-a-plus/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/amazon-a-plus/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.