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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

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.

Compare on GitHub

View on GitHubAdd to my skills

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>/
153GitHub stars
21stars in 7 days
12skills in this repository
1commit in 30 days

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

Oct 25, 2026Nov 6, 2026153

30-day change not yet available: not enough history.

Individual skills in this repository

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 tokens

Always available to the agent

SKILL.md

1,639 tokens

When the skill is activated

Reference documents

16,913 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Step 1 · Product identity lock (always first)
  2. Step 2 · Pick the model
  3. A+ module sizes (Basic A+)
  4. Step A · Module plan (confirm with user)
  5. Step B · Campaign style lock (paste into every module prompt)
  6. Step C · Module prompt template
  7. Generate · three routes (pick the first that works)
  8. Deliver

Scripts executed separately

  • scripts/crop_to_modules.py
  • scripts/generate.py
  • scripts/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 bytes
  • SKILL.mdcore6,316 bytes
  • SKILL.mdcore6,316 bytes
  • SKILL.mdcore6,316 bytes
  • SKILL.mdcore6,316 bytes
  • scripts/crop_to_modules.pyruns1,136 bytes
  • scripts/generate.pyruns4,824 bytes
  • scripts/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 GitHub

Skills 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 shell

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/amazon-a-plus/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/amazon-a-plus/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/amazon-white-background/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/amazon-white-background/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/amazon-white-background/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/batch-background-swap/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/batch-background-swap/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/batch-background-swap/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ecommerce-listing-suite/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/ecommerce-listing-suite/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/lifestyle-scene/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/lifestyle-scene/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/model-try-on/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/model-try-on/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/multi-angle-set/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/multi-angle-set/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/multi-angle-set/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/sale-banner/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/sale-banner/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 681 signals by file

.claude-plugin/marketplace.json

  • Network accessline 3
    "owner": {     "name": "xianyu110",     "url": "https://github.com/xianyu110"
  • Network accessline 4
    "name": "xianyu110",     "url": "https://github.com/xianyu110"   },
  • Network accessline 5
    "url": "https://github.com/xianyu110"

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

skills/multi-angle-set/scripts/online_link.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"

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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"

skills/taobao-detail-long-image/scripts/stitch_long_image.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

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:

skills/xiaohongshu-cover/scripts/online_link.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"
  • Network accessline 8
    BASE = "https://gptimage2.asia/generate"

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

and 450 more

Only the first 500 facts are listed.

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skills/amazon-a-plus/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/amazon-a-plus/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/amazon-a-plus/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/amazon-a-plus/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.