agentCLAWHUBUnverified

drivethru-graphic-artist

Graphic-artist tasks for Bacon & Co decorations — (1) generate product mockups by compositing a decoration (logo/graphic) onto a blank product photo (deterministic; no model-generated pixels; self-reviewed), (2) make a DTF decoration "production-ready" / "drop the art" — take the real thumbnail, size it to the decoration location, render at 300 DPI, upload the DTF production file, set size + colors, and create a print sample, driving the decoration toward the 'done' state via the drivethru_mcp decoration_* tools, and (3) clean up degraded / AI-generated flat art before production — deterministically snap it back to its true inks, rebuild faded/broken/jagged outlines, and re-render crisp at print size (fixes the "looks fine as a thumbnail, falls apart at 13 inches" problem). Use whenever the user wants to see a logo on a garment, place artwork on a blank, remove an image background (knock a solid color out of flat art, or segment a photographic subject), tune a print's size/position, clean up / fix / "drop for production" a low-quality or AI-generated logo (ghosting, haze, jagged or fading outlines, soft edges), OR make a decoration production-ready / drop art / get a DTF decoration to done.

OpenClaw

Rank

62

Safety

84

Downloads

1.8k

Updated

Oct 10, 2026

Version

0.18.1

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 1.8K downloads reported by the source. Last updated 10/10/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Oct 10, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 10, 2026
Adoption signal
1.8K downloadsadoption · observed Oct 10, 2026
Latest release
0.18.1release · observed Sep 24, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s17fq291581evd78xzn1930b0n87bfny:drivethru-graphic-artist
  1. Install using `clawhub skill install s17fq291581evd78xzn1930b0n87bfny:drivethru-graphic-artist` in an isolated environment before connecting it to live workloads.
  2. No published capability contract is available yet, so validate auth and request/response behavior manually.
  3. Review the upstream CLAWHUB listing at https://clawhub.ai/zmtucker/drivethru-graphic-artist before using production credentials.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-zmtucker-drivethru-graphic-artist/snapshot"

Documentation

CLAWHUB

160,000 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

SKILL.md

---
name: drivethru-graphic-artist
description: Graphic-artist tasks for Bacon & Co decorations — (1) generate product mockups by compositing a decoration (logo/graphic) onto a blank product photo (deterministic; no model-generated pixels; self-reviewed), (2) make a DTF decoration "production-ready" / "drop the art" — take the real thumbnail, size it to the decoration location, render at 300 DPI, upload the DTF production file, set size + colors, and create a print sample, driving the decoration toward the 'done' state via the drivethru_mcp decoration_* tools, and (3) clean up degraded / AI-generated flat art before production — deterministically snap it back to its true inks, rebuild faded/broken/jagged outlines, and re-render crisp at print size (fixes the "looks fine as a thumbnail, falls apart at 13 inches" problem). Use whenever the user wants to see a logo on a garment, place artwork on a blank, remove an image background (knock a solid color out of flat art, or segment a photographic subject), tune a print's size/position, clean up / fix / "drop for production" a low-quality or AI-generated logo (ghosting, haze, jagged or fading outlines, soft edges), OR make a decoration production-ready / drop art / get a DTF decoration to done.
version: 0.18.1
emoji: 🎨
metadata:
  openclaw:
    requires:
      bins: [python3]
    envVars:
      MOCKUP_DATA_DIR:
        required: false
        description: >
          Directory for the editable placement-rules catalog and rendered
          mockup outputs. Defaults to `~/.drivethru/mockup`. The bundled
          starter catalog (assets/placement_rules.json) is used read-only
          until the first edit, which seeds an editable copy here.
      MOCKUP_VISION_API_KEY:
        required: false
        description: >
          API key for the independent vision review in the web-image routine
          (web_mockup_job.py / vision_review.py). Falls back to
          OPENROUTER_API_KEY. Without one, mockups are never written.
      MOCKUP_VISION_MODEL:
        required: false
        description: >
          Vision model slug for the review (default anthropic/claude-sonnet-5
          on OpenRouter). MOCKUP_VISION_BASE_URL overrides the
          OpenAI-compatible endpoint (default https://openrouter.ai/api/v1).
    install:
      uv:
        - Pillow>=10.3,<12
        - numpy>=1.24,<3
        - rembg>=2.0.56,<3
        - onnxruntime>=1.18,<2
        - scipy>=1.10,<2
        - opencv-python-headless>=4.8,<6
        - requests>=2.31,<3
---

# Drivethru Graphic Artist — Product Mockups

Take a **blank** product photo plus a **decoration** image and return a
composite **mockup**. Compositing is deterministic image manipulation: Pillow
for transform/compose, [rembg](https://github.com/danielgatis/rembg) (U²-Net
segmentation — *not* generative) for background removal and garment bbox
detection.

**No pixels are ever model-generated.** The compositing pipeline never invokes
a generative model — only fall back to 

_meta.json

{
  "ownerId": "kn715tnf30wegyr6mdbfa17avd87bjr6",
  "slug": "drivethru-graphic-artist",
  "version": "0.18.1",
  "publishedAt": 1790274097564
}

references/decoration_spec.md

# Decoration spec — real-world print sizes & placements

Ground-truth print dimensions from the **Bacon & Co. Recommended Garment &
Accessory Decoration Guide** (`assets/decoration_guide.png` — the canonical
placement diagram; open it when you need to see where a location sits). Use
this as the reference the [self-review loop](self_review.md) judges against, so
"correct" means *industry-standard*, not a guess.

## Why inches map cleanly to our ratios

The spec is in inches and split adult/youth; our rules are ratios of the
detected garment bbox. Those are two views of the same thing: youth full-front
(9″) ÷ adult full-front (13″) ≈ 0.69, and youth garments run ~0.69 the width of
adult — so **one ratio reproduces both columns automatically**. That's the
whole reason the model is ratio-based; the spec validates it. What the spec
pins down that a lone ratio can't is the *proportion between placements* (a left
chest is ~¼ the width of a full front) and *height caps* (a hoodie front must
clear the pocket).

## Print dimensions (adult / youth), width unless noted

| # | Location | Adult | Youth | Frac of full-front width |
|---|---|---|---|---|
| 1 | Full front | 13″W | 9″W | 1.00 (the anchor) |
| 2 | Center chest | 3–5″W | 3″W | ~0.31 |
| 3/4 | Right / left chest | 3–4″W | 3–4″W | ~0.27 (pocket-sized) |
| 5 | Pocket | 3″W × 3″H | 3″W × 3″H | ~0.23, square |
| 6 | Full back | 13″W | 9″W | 1.00 (= full front) |
| 7 | Upper back | 10–13″W | 7–9″W | ~0.88 |
| 8 | Tag | 3–4″W | 3–4″W | ~0.27, high under collar |
| 9 | Lower back | 10–13″W | 7–9″W | ~0.88, low |
| 10/11 | Sleeve (short) | 3–4″W | 3″W | ~0.27 |
| 12/13 | Sleeve (long) | 3.25″W × **12″H** | 3″W × 9″H | ~0.25, height-dominant |
| 14 | Full front (hoodie) | 13″W × **9″H** | 9″W × 6″H | 1.00 width, **9″H cap (pocket)** |
| 15/16 | Left / right chest (polo) | 3–4″W | 3″W | ~0.27 |
| 23 | Drawstring backpack | 11–12″W | — | large, centered panel |
| 24 | Hat front | 2.5″H max (high) / 2″H (low) | — | **height-capped**, width varies |
| 25 | Hat back | 1.25″H max | — | small |
| 26 | Hat side | 2″W max | — | small |
| 27 | Visor front | 1.5″H max (high) / 1″H (low) | — | small |

Embroidery floor: lettering ≥ 0.25″H and 2 mm stroke — a mark that renders
below that in the mockup is too small to actually sew.

## How this shaped the shipped ratios

`assets/placement_rules.json` was reconciled to the proportions above:

| Placement | Was | Now | Why |
|---|---|---|---|
| left/right chest (all cats) | 0.18 | 0.14–0.15 | 3–4″ is ~¼ of a 13″ full front — pocket-sized, not 1/3 |
| full_back | 0.55–0.60 | 0.50–0.55 | spec sizes full back = full front (both 13″) |
| back_yoke / upper back | 0.40 | 0.44 | spec upper back ~10–13″ ≈ 0.88 of full front |
| sleeve | 0.12 | 0.14 | spec sleeve 3–4″ ≈ 0.27 of full front |
| hoodie full_front | 0.55 | 0.55 + `max_height_ratio 0.33` | 13″×9″ box — cap height so tall art clears the pocket |

Full front, hat, and mug were left as-is (full front already matched; hats ar

references/iterative_feedback.md

# Iterative feedback & rule tuning

Mockups are a conversation. The first compose is a starting point; the user
will react ("bigger", "move it up", "rotate it"). Translate plain-language
feedback into deltas layered on top of the *previous* run's arguments.

## Feedback → flags

| User says | You run (added to the last run's args) |
|---|---|
| "Make it ~10% bigger" | `--width-delta-pct +10` |
| "Make it ~15% smaller" | `--width-delta-pct -15` |
| "Move it up a little" | `--offset-y-pct -5` |
| "Move it down" | `--offset-y-pct +5` |
| "Shift left" | `--offset-x-pct -5` |
| "Shift right" | `--offset-x-pct +5` |
| "Rotate 5° clockwise" | `--rotate-deg 5` |
| "Rotate 5° counter-clockwise" | `--rotate-deg -5` |

Keep a running record of the current flags so each turn composes on top of the
last, not from the original defaults. A delta of `±5` percentage points is a
good "a little" nudge; `±10–15%` is a good "noticeably" nudge for width.

## Promoting a tuned result to a default

When the user is happy and says something like "save that as the new default
for hoodie full-front," bake the *effective* ratios from the last compose
receipt's `applied` block into the catalog:

```bash
python3 scripts/edit_placement_rule.py update hoodie full_front \
    --width-ratio 0.58 --y-top-ratio 0.20
```

## Adding a brand-new category or placement

When the user asks for a placement/category that isn't in the catalog yet:

```bash
python3 scripts/edit_placement_rule.py add tote front \
    --width-ratio 0.45 --x-center-ratio 0.50 --y-top-ratio 0.30
```

Then re-compose with that `--category`/`--placement`.

## Coordinate model recap

All rule fields are ratios against the **detected garment bounding box**, not
the full image:

- `width_ratio` — decoration width ÷ garment bbox width (0.01–1.5).
- `x_center_ratio` — decoration center X within the bbox (0 = left, 1 = right).
- `y_top_ratio` — decoration top Y within the bbox (0 = top, 1 = bottom).
- `rotation_deg` — clockwise rotation in degrees (−180…180).

Because they're ratios, the same rule yields a visually matching print across
resolutions, crops, and garment sizes (a youth tee and an adult tee line up).

references/location_dimensions.json

{
  "_meta": {
    "source": "Bacon & Co. Recommended Garment & Accessory Decoration Guide (references/decoration_spec_sheet.pdf)",
    "units": "inches",
    "note": "Max print dimensions per decoration location. Ranges are captured as the UPPER bound in max_width_in / max_height_in; the raw label is preserved. At runtime prefer the authoritative Odoo decoration_location.max_width/max_height for the specific record; use this table as a fallback / cross-check, matched by location name. 'Logo placement and sizing may vary, based on artwork provided.'",
    "embroidery_minimum": {"lettering_height_in": 0.25, "stroke_mm": 2}
  },
  "locations": [
    {"num": 1,  "location": "Full Front",                "adult": {"max_width_in": 13.0, "max_height_in": null, "raw": "13\"W"},        "youth": {"max_width_in": 9.0, "max_height_in": null, "raw": "9\"W"}},
    {"num": 2,  "location": "Center Chest",              "adult": {"max_width_in": 5.0,  "max_height_in": null, "raw": "3\"-5\"W"},     "youth": {"max_width_in": 3.0, "max_height_in": null, "raw": "3\"W"}},
    {"num": 3,  "location": "Right Chest",               "adult": {"max_width_in": 4.0,  "max_height_in": null, "raw": "3\"-4\"W"},     "youth": {"max_width_in": 4.0, "max_height_in": null, "raw": "3\"-4\"W"}},
    {"num": 4,  "location": "Left Chest",                "adult": {"max_width_in": 4.0,  "max_height_in": null, "raw": "3\"-4\"W"},     "youth": {"max_width_in": 4.0, "max_height_in": null, "raw": "3\"-4\"W"}},
    {"num": 5,  "location": "Pocket",                    "adult": {"max_width_in": 3.0,  "max_height_in": 3.0,  "raw": "3\"W x 3\"H"},  "youth": {"max_width_in": 3.0, "max_height_in": 3.0, "raw": "3\"W x 3\"H"}},
    {"num": 6,  "location": "Full Back",                 "adult": {"max_width_in": 13.0, "max_height_in": null, "raw": "13\"W"},        "youth": {"max_width_in": 9.0, "max_height_in": null, "raw": "9\"W"}},
    {"num": 7,  "location": "Upper Back",                "adult": {"max_width_in": 13.0, "max_height_in": null, "raw": "10\"-13\"W"},   "youth": {"max_width_in": 9.0, "max_height_in": null, "raw": "7\"-9\"W"}},
    {"num": 8,  "location": "Tag",                       "adult": {"max_width_in": 4.0,  "max_height_in": null, "raw": "3\"-4\"W"},     "youth": {"max_width_in": 4.0, "max_height_in": null, "raw": "3\"-4\"W"}},
    {"num": 9,  "location": "Lower Back",                "adult": {"max_width_in": 13.0, "max_height_in": null, "raw": "10\"-13\"W"},   "youth": {"max_width_in": 9.0, "max_height_in": null, "raw": "7\"-9\"W"}},
    {"num": 10, "location": "Right Sleeve (short)",      "adult": {"max_width_in": 4.0,  "max_height_in": null, "raw": "3\"-4\"W"},     "youth": {"max_width_in": 3.0, "max_height_in": null, "raw": "3\"W"}},
    {"num": 11, "location": "Left Sleeve (short)",       "adult": {"max_width_in": 4.0,  "max_height_in": null, "raw": "3\"-4\"W"},     "youth": {"max_width_in": 3.0, "max_height_in": null, "raw": "3\"W"}},
    {"num": 12, "location": "Right Sleeve (lo
Github ReposUpdated 13h agoRank 70

AionUi

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

activepieces

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/zmtucker/skills/drivethru-graphic-artist",
      "sourceUrl": "https://clawhub.ai/zmtucker/skills/drivethru-graphic-artist",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-10T02:08:46.601Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-zmtucker-drivethru-graphic-artist/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-zmtucker-drivethru-graphic-artist/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-10T02:08:46.601Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "1.8K downloads",
      "href": "https://clawhub.ai/zmtucker/drivethru-graphic-artist",
      "sourceUrl": "https://clawhub.ai/zmtucker/drivethru-graphic-artist",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-10T02:08:46.601Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "0.18.1",
      "href": "https://clawhub.ai/zmtucker/drivethru-graphic-artist",
      "sourceUrl": "https://clawhub.ai/zmtucker/drivethru-graphic-artist",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-09-24T18:21:37.564Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-zmtucker-drivethru-graphic-artist/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-zmtucker-drivethru-graphic-artist/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 0.18.1",
      "description": "- Removed the outdated skill-card.md file. - Minor update to SKILL.md contents and version bump to 0.18.1. - No changes to features or core functionality.",
      "href": "https://clawhub.ai/zmtucker/drivethru-graphic-artist",
      "sourceUrl": "https://clawhub.ai/zmtucker/drivethru-graphic-artist",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-09-24T18:21:37.564Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 10, 2026.

Sponsored

Ads related to drivethru-graphic-artist and adjacent AI workflows.