retail-virtual-tryon
Skill11k starsChanged 44 days agoApache-2.0View on GitHub
Creates virtual try-on agents supporting image and video (catwalk animation) try-ons on Google Cloud (Gemini image models and Veo on Gemini Enterprise Agent Platform). Handles resource setup, user photo uploading, image/video generation pipelines, local testing, and evaluation.
- Installs packages
1 other project uses a version of this.
Trending
More talk lately.about the whole repository
Most recently taken up by
- google/adk-recipesword for word, first seen Oct 13, 2026
Who's talking about google/adk-samples
- @stephanjanssen.be“Google just open sourced a Python Agent Development Kit @ github.com/google/adk-p... Native Streaming and …”Bluesky · Apr 9, 2025 · 12 likes
- google/adk-python“stream_query and HTTP Streaming to Vertex AI Agent Return Empty/Exhausted Responses (Works via ADK Web)”GitHub · Jul 8, 2025 · 5 reactions
- google/adk-recipes“Support running agents fully locally without Vertex AI (offline mode)”GitHub · Apr 14, 2025 · 4 reactions
- google/adk-recipes“[BUG]: Deployment of Data Science agent to Agent Engine fails ”GitHub · Oct 1, 2025 · 3 reactions
- A Hacker News story“CaMeL-Powered Secure Agent Demo with ADK”Hacker News · Aug 9, 2025 · 3 points
The biggest 5 of 32 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 32
Talked about on GitHub, Bluesky, Hacker News and Stack Overflow (32 times).
On GitHub · 23
- Jul 8, 2025stream_query and HTTP Streaming to Vertex AI Agent Return Empty/Exhausted Responses (Works via ADK Web) — google/adk-python5 reactions
- Apr 14, 2025Support running agents fully locally without Vertex AI (offline mode) — google/adk-recipes4 reactions · 7 comments
- Oct 1, 2025[BUG]: Deployment of Data Science agent to Agent Engine fails — google/adk-recipes3 reactions · 1 comment
- Oct 28, 2026docs: fix 5 broken internal anchor links and 1 dead external link — google-gemini/gemini-cli1 reaction · 4 comments
- Oct 20, 2026Update adk-samples references and python/agents discovery paths for google/adk-recipes restructure — google/agents-cli1 reaction · 2 comments
18 more on GitHub
- Oct 12, 2026list: scan the template dir we cloned, not the clone root — GoogleCloudPlatform/agent-starter-pack1 reaction
- Feb 12, 2026interrupted sometimes didn't work — google/adk-python1 reaction · 10 comments
- Jan 8, 2026Implement 5 ADK agent projects that can be easily run by newbies — addyosmani/adk-product-engineers1 reaction
- Nov 20, 2025[BUG]: deep-search/gemini-fullstack: Wrong prompt to access session state — google/adk-recipes1 reaction
- Jun 21, 2025unable to import StdioServerParameters — google/adk-recipes1 reaction · 2 comments
- Jun 17, 2025VertexAiRagRetrieval needs llama-index package — google/adk-recipes1 reaction · 3 comments
- Jun 5, 2025Bug: display_name in file uploads causes error with Google.GenAI backend (non-Vertex) — google/adk-python1 reaction · 6 comments
- May 18, 2025Missing Image — google/adk-recipes1 reaction
- Apr 11, 2025Duplicate key name — google/adk-recipes1 reaction · 1 comment
- Oct 18, 2026Fix(audit,#17387): Day4 Track2 tranche 1 -- Lab8/Lab9 reformulations honnetes, cures accents — jsboige/CoursIA0 reactions · 14 comments
- Sep 17, 2026Rename sample references to recipe across repository — google/adk-recipes0 reactions
- Sep 12, 2026docs(deep-search): fix cloud deployment instructions and scaffold path (#2575) — google/adk-recipes0 reactions · 4 comments
- Sep 12, 2026docs: fix 404 link to relocated Deep Search sample — google/adk-docs0 reactions · 1 comment
- Sep 9, 2026Add repo skills instructions and documentation links to AI issue response workflow — google/adk-recipes0 reactions
- Jul 24, 2026Fix broken adk-samples links from deleted sample agents and notebooks — google/adk-docs0 reactions · 1 comment
- Jun 12, 2026ci: run the spam-detection bot via the adk-samples reusable workflow — google/adk-go0 reactions · 1 comment
- May 27, 2026Add Deep Search Agent project to portfolio showcase — asafsilner/silner-showcase-prime0 reactions
- Feb 12, 2026fix: path typo in story teller example — google/adk-recipes0 reactions · 3 comments
On Bluesky · 4
- Apr 9, 2025Google just open sourced a Python Agent Development Kit @ github.com/google/adk-p... Native Streaming and #MCP support out of the box 👀… — @stephanjanssen.be12 likes and reposts
- Jul 12, 2026Exploring the ADK Samples repo from Google—it’s like a guidebook for building intelligent agents. Seeing multi-language support reflects… — @iam.slys.dev1 likes and repost
- Dec 9, 2025📦 google / adk-samples ⭐ 6,900 (+67) 🗒 Python A collection of sample agents built with Agent Development Kit (ADK) — @github-trending.bsky.social1 likes and repost
- May 20, 2025Explore practical use-cases & build! 🧪 Hands-on Patent Search Codelab: codelabs.developers.google.com/patent-searc... 📚 Check out sample… — @kweinmeister.bsky.social0 likes and reposts · 1 reply
On Hacker News · 3
- Aug 9, 2025CaMeL-Powered Secure Agent Demo with ADK3 points · 1 comment
- Jun 13, 2025A collection of sample agents built with Agent Development (ADK)2 points
- Aug 13, 2025CaMeL agent to protect against indirect prompt injection1 point · 1 comment
On Stack Overflow · 2
- Aug 30, 2025Google ADK SequentialAgent sub_agents not waiting for user input1 vote
- Aug 29, 2025Issue with deploying ADK Agent on Google Agent Engine0 votes
Other versions1 project uses a version of this.
Word for word · 1
- google/adk-recipes★ 11k100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository43 other files it gives its agents.
- AGENTS.mdAGENTS.md
- contrib/kotlin/llm-auditor/AGENTS.mdAGENTS.md
- core/python/adk-voice-agent/AGENTS.mdAGENTS.md
- core/python/adk-voice-agent/sandbox/home/AGENTS.mdAGENTS.md
- core/python/adk-voice-agent/tests/eval/fixtures/alex/repos/portland-trip/AGENTS.mdAGENTS.md
- core/python/ambient-expense-agent/AGENTS.mdAGENTS.md
- core/python/ambient-quality-agent/AGENTS.mdAGENTS.md
- core/python/cross-session-memory/AGENTS.mdAGENTS.md
- core/python/deep-search/AGENTS.mdAGENTS.md
- core/python/genmedia-for-commerce/AGENTS.mdAGENTS.md
- core/python/long-horizon-harness/AGENTS.mdAGENTS.md
- core/python/oauth-user-consent-flow/AGENTS.mdAGENTS.md
- core/python/rag-agent-search/AGENTS.mdAGENTS.md
- core/python/rag-vector-search/AGENTS.mdAGENTS.md
- core/python/safety-plugins/AGENTS.mdAGENTS.md
- core/python/adk-voice-agent/sandbox/home/CLAUDE.mdCLAUDE.md
- core/python/genmedia-for-commerce/CLAUDE.mdCLAUDE.md
- align-recipe-pyprojectSkill
- extract-python-environment-variablesSkill
- generate-manifestSkill
- generate-python-runnability-testSkill
- github-pr-reviewSkill
- make-python-recipe-deployableSkill
- prepare-python-recipeSkill
- repo-oracleSkill
- scaffold-python-recipeSkill
- blog-writerSkill
- content-research-writerSkill
- approvalsSkill
- coding-workflowSkill
- connected-apps-mcpSkill
- deliverablesSkill
- filesystemSkill
- recommendationsSkill
- agents-cli-aquaSkill
- custom-investigationSkill
- rcaSkill
- bootstrap-google-toolsSkill
- find-skillsSkill
- google-workspaceSkill
- policySkill
- routinesSkill
- retail-product-searchSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. About 0 are common, 12 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈12
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 32
Do NOT output the Q-MODE block.
- Distinctive: line 38
Do NOT ask about products, industry, GCP project, or anything else first.
- Distinctive: line 39
Do NOT propose a plan. Do NOT explain what you will do.
- Distinctive: line 56
Q-MODE first, always: No exceptions. No preamble.
- Distinctive: line 61
Execute steps in order: Do NOT jump ahead or skip steps.
- Distinctive: line 62
Verify each step succeeded: before moving to the next.
- Very specific: line 64
After the interview, run .venv/bin/python "$SKILL_DIR/scripts/setup.py" --config ./design-spec.md (see the Workspace Setup section to …
- Distinctive: line 85
Run this as ONE shell command -- splitting it across tool calls loses state:
- Very specific: line 98
All scripts run from the install dir against the workspace config.
- Distinctive: line 141
After collecting these answers, do this automatically:
- Very specific: line 143
Write the answers to ./design-spec.md (in the workspace), filling in:
- Very specific: line 189
Run GCS sync verification: .venv/bin/python "$SKILL_DIR/scripts/setup_tryon.py" --config ./design-spec.md
- Distinctive: line 215
Do NOT use for furniture/home styling (use room placement tools), or complex 3D avatar creation.
- Distinctive: line 256
Run a quick test script without the UI:
- Distinctive: line 276
Verify outputs using the local evaluation YAML.
- Distinctive: line 282
Start the FastAPI local server:
- Very specific: line 293
Image Models: Use flash (recommended) or pro for general try-on.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Virtual Try-On Agent
Creates virtual try-on (VTO) agents on Google Cloud supporting image and video (catwalk animation) try-on modes.
STOP -- READ THIS BEFORE RESPONDING
Check your operating mode first — there are two distinct modes:
Mode A: Deployed Try-On Agent
If the system context tells you that setup is complete (e.g. it says "You are a DEPLOYED try-on agent", or the conversation history shows setup has already been completed) — skip Q-MODE entirely. Respond directly to the user's try-on query. Do NOT output the Q-MODE block. Do NOT mention setup.
Mode B: First-time Setup (default)
If there is no such context (fresh invocation, no prior setup) — your VERY FIRST response MUST be the Q-MODE block below. Nothing else.
Do NOT ask about products, industry, GCP project, or anything else first. Do NOT propose a plan. Do NOT explain what you will do.
Your first message to the user must be EXACTLY this (copy-paste, no changes):
[skill: retail-virtual-tryon] active.
Q-MODE: Pick a setup mode? [default: 1]
1. Quick start -- Local testing sandbox, interactive 6-question config, ~90s. Best for demos.
2. Export Web App & GCS Catalog Sync -- Generate standalone containerized codebase, GCS catalog sync, and Cloud Run config, ~3 min.Then STOP and wait for the user's answer.
Accept: 1, quick, empty/Enter (= Quick Start), 2, export, sync or webapp (= Export Web App & GCS Catalog Sync).
Execution Rules
- Q-MODE first, always. No exceptions. No preamble.
- CRITICAL WARNING: Do NOT automatically run setup or deployment scripts (e.g.
setup_tryon.py,export_app.py,deploy_cloudrun.sh) upon receiving a general request like "I want to create/deploy a VTO app on GCP". You MUST first present the Q-MODE setup menu choice and wait for the user to select Mode 1, 2, or 3.
- CRITICAL WARNING: Do NOT automatically run setup or deployment scripts (e.g.
- One question at a time. Show the default. Accept empty input.
Format:
Q: <question text>? [default: <value>]Pressing Enter = use the default. NEVER ask multiple questions in one turn. - Execute steps in order. Do NOT jump ahead or skip steps.
- Verify each step succeeded before moving to the next.
- Save all answers to
./design-spec.md(in the workspace) as you collect them. After the interview, run.venv/bin/python "$SKILL_DIR/scripts/setup.py" --config ./design-spec.md(see the Workspace Setup section to resolve$SKILL_DIR). - Confirm completion of each step before proceeding.
Before Quick Start has launched setup, the user can say "export", "webapp", or "deploy" to switch to Mode 2 (Export Web App & GCS Catalog Sync). Carry over answers already given for project, mode, and region; ask only the remaining Mode-2 questions (GCS catalog bucket, export directory). After setup.py has already started buckets/APIs, the workflow is committed -- to run Mode 2 instead, start a fresh workspace.
Workspace Setup
The skill has two locations:
- Install dir -- where SKILL.md and scripts live (varies by host)
- Workspace -- the agent's cwd; design-spec.md, .venv, and per-run state live here
By the end of this section the workspace must have .venv/ (with the skill
installed editable), design-spec.md, and SKILL_DIR
exported in the shell.
Run this as ONE shell command -- splitting it across tool calls loses state:
SKILL_DIR=$(for d in ~/.claude/skills ~/.agents/skills ~/.gemini/skills ~/.cursor/skills; do
[ -f "$d/retail-virtual-tryon/SKILL.md" ] && echo "$d/retail-virtual-tryon" && break
done)
bash "$SKILL_DIR/scripts/bootstrap.sh"bootstrap.sh finds a Python 3.11+ interpreter (with absolute-path fallback
for sandboxed shells), creates .venv, installs the skill editable, and copies
design-spec.md into the workspace.
All scripts run from the install dir against the workspace config. Use
.venv/bin/python, not bare python -- bare python may resolve to a
Python without the skill's editable install on sys.path.
.venv/bin/python "$SKILL_DIR/scripts/setup.py" --config ./design-spec.mdEdit ./design-spec.md and set gcp_project_id (the agent will do this based on the user's answers in Q-MODE).
Mode 1: Quick start (4-5 questions)
| Q | Question | Default | Source |
| Q-A | GCP project ID? | $GOOGLE_CLOUD_PROJECT or gcloud config get-value project | env / gcloud |
| Q-B | Try-on mode? | 2 (both Image + Veo Video) | prompt |
| Q-C | GCP Region? | us-west1 | prompt |
| Q-D | Catalog Path? | demo (type 'demo' to use bundled catalog, or specify local folder, or gs:// URI) | prompt |
| Q-E | Upload local catalog to GCS? (Only asked if Q-D is a custom local folder) | 1 (Yes) | prompt |
Question Formats & Accepted Choices:
- Q-B: Try-on mode?
Format to print:
Accept:Q: Try-on mode? [default: 2] 1. image_only (Faster, static images only) 2. image_and_video (Catwalk video animations via Veo)1(=image_only),2(=image_and_video),image_only,image_and_video. - Q-D: Catalog Path?
Accept:
demo(uses bundled catalog), local directory path, or GCS URI starting withgs://. - Q-E: Upload local catalog to GCS?
Format to print:
Accept:Q: Upload local catalog to GCS? [default: 1] 1. Yes (Sync and host catalog in GCS) 2. No (Run locally using local folder assets)1(=Yes),2(=No),Yes,No.
After collecting these answers, do this automatically:
- Write the answers to
./design-spec.md(in the workspace), filling in:gcp_project_idtryon_modetryon_model(always useflash)tryon_output_bucket(default:{project_id}-tryon-output)tryon_upload_bucket(default:{project_id}-tryon-uploads)gcp_regiontryon_catalog_pathtryon_catalog_upload(set totrueby default, set tofalseonly if Q-E is answered asNo)
- Tell the user: "Setting up local sandbox environment resources..."
- Run:
.venv/bin/python "$SKILL_DIR/scripts/setup.py" --config ./design-spec.md - Stream the output. On success, start the local sandbox server in the background:
.venv/bin/python "$SKILL_DIR/scripts/start_sandbox.py" --config ./design-spec.md - Provide the user with the clickable localhost link to test: "VTO fitting room sandbox is running! Open http://localhost:8080 in your browser to test it."
Mode 2: Export Web App & GCS Catalog Sync (4 questions)
| Q | Question | Default | Source |
| Q2-A | GCP project ID? | $GOOGLE_CLOUD_PROJECT or gcloud config get-value project | env / gcloud |
| Q2-B | Try-on mode? | 2 (both Image + Veo Video) | prompt |
| Q2-C | GCS Catalog Bucket name? | {project_id}-tryon-catalog | prompt |
| Q2-D | Target Directory to export code? | ./vto-retail-app | prompt |
Question Formats & Accepted Choices:
- Q2-B: Try-on mode?
Format to print:
Accept:Q: Try-on mode? [default: 2] 1. image_only (Faster, static images only) 2. image_and_video (Catwalk video animations via Veo)1(=image_only),2(=image_and_video),image_only,image_and_video.
After collecting these answers, do this automatically:
- Write the answers to
./design-spec.md(in the workspace), filling in:gcp_project_idtryon_modegcs_catalog_bucket(starts withgs://...)export_directorygcp_region(default:us-west1)tryon_model(always usegemini-2.5-flash-image)
- Tell the user: "Setting up Cloud resources, exporting containerized codebase, and deploying to Google Cloud Run..."
- Run:
.venv/bin/python "$SKILL_DIR/scripts/export_app.py" --config ./design-spec.md --skill-dir "$SKILL_DIR" - Run GCS sync verification:
.venv/bin/python "$SKILL_DIR/scripts/setup_tryon.py" --config ./design-spec.md - Build and Deploy container to Google Cloud Run:
gcloud run deploy vto-retail-app --source ./vto-retail-app/ --region us-west1 --project {gcp_project_id} --allow-unauthenticated - Get the deployed service URL:
gcloud run services describe vto-retail-app --region us-west1 --project {gcp_project_id} --format="value(status.url)" - Output the following structured instructions to the user:
- Clickable Cloud Run service link: "🚀 VTO App is deployed and running on Cloud Run! Open [Cloud Run App URL] in your browser to test it directly."
- How to Sync Catalog Images to GCS:
gsutil -m rsync -r ./my_clothes/ gs://{gcs_catalog_bucket}/ # Then force index refresh: curl -X GET "https://{cloud_run_url}/api/catalog?force=true" - How to Embed in Your Website:
<!-- Place this iframe widget on your product details page --> <iframe src="https://{cloud_run_url}" width="100%" height="800px" style="border:none; border-radius:12px; box-shadow: 0 4px 20px rgba(0,0,0,0.15);"></iframe>
When to Use
- Building virtual try-on fitting rooms for e-commerce.
- Creating interactive catwalk-style video animations showing how clothes look when walking.
- Enabling general retail try-on for accessories, jewelry, eyewear, or clothes.
Do NOT use for furniture/home styling (use room placement tools), or complex 3D avatar creation.
Resource Setup
Set the parameters in ./design-spec.md (in the workspace), then run:
.venv/bin/python "$SKILL_DIR/scripts/setup.py" --config ./design-spec.mdOn success, local sample catalog images will be generated under ./catalog_images/ (unless a GCS bucket or custom catalog path was specified, in which case bucket access will be verified).
Testing & Verification
Set the required environment variables in the shell that runs the agent:
export GOOGLE_CLOUD_PROJECT="<your-project-id>"
export TRYON_OUTPUT_BUCKET="<your-project-id>-tryon-output"
export TRYON_UPLOAD_BUCKET="<your-project-id>-tryon-uploads"
export GEMINI_IMAGE_MODEL="flash" # or pro / gemini-2.5-flash-image / gemini-2.5-pro-imageRun using adk web
Launch the interactive web UI. Use .venv/bin/adk, not bare adk -- bare
adk may resolve to a global Python (pyenv, brew, etc.) whose ADK can't find
the skill and reports an empty app list (UI loads, but /list-apps returns
[] and queries time out).
.venv/bin/adk web .You can start a chat session and test VTO by providing:
- Product ID:
shirt_001orsunglasses_001 - User Photo: Upload
catalog_images/sample_user.jpgor any photo of yourself. - Request: "Try on this shirt for me" or "Show me a catwalk video wearing these sunglasses".
Direct Python Smoke Test
Run a quick test script without the UI:
# Test image try-on
.venv/bin/python -c "
from scripts.tryon_agent import try_on_product_image
res = try_on_product_image('shirt_001', 'catalog_images/sample_user.jpg', 'catalog_images/shirt_001.jpg', 'clothing', 'red shirt')
print(res)
"
# Test video try-on (Veo)
.venv/bin/python -c "
from scripts.tryon_agent import try_on_product_video
res = try_on_product_video('sunglasses_001', 'catalog_images/sample_user.jpg', 'catalog_images/sunglasses_001.jpg', 'eyewear', 'sunglasses')
print(res)
"Evaluation
Verify outputs using the local evaluation YAML. Ensure image consistency, correct garment placement, and no visual distortions.
Sandbox Visual Testing
To test the VTO skill interactively with your own catalog of product images, launch the Sandbox Dashboard:
- Start the FastAPI local server:
.venv/bin/python "$SKILL_DIR/scripts/start_sandbox.py" --config ./design-spec.md - Open http://localhost:8080 in your browser.
- Upload your own portrait photo, select any product card from the scanned catalog, and click Generate Try-On Image.
- To index a custom local folder of images, type the folder path in the search header input and click Scan (uses Gemini to automatically catalog and describe them).
Gotchas
- Veo video resolution/duration: Video generation via Veo takes ~30-60s. Be patient.
- Image Models: Use
flash(recommended) orprofor general try-on. - Privacy Compliance: ephemerally upload user photos into the uploads bucket with a 24-hour Lifecycle auto-delete rule (configured automatically by
setup_tryon.py).
Troubleshooting
| Error pattern | Likely cause | Fix |
BILLING_DISABLED | GCP project has no billing | Link billing account in Cloud Console |
API has not been used / disabled | Required API disabled | Run: gcloud services enable aiplatform.googleapis.com storage.googleapis.com |
PermissionDenied on GCS | Service Account lack rights | Grant roles/storage.admin |
MethodNotImplemented: 501 / Model not found | Selected model is unavailable in region | Check your GCP project region availability |
Completion Checklist
- GCP project ID and try-on mode configured.
- GCP resources provisioned and verified (Buckets, Gemini Enterprise Agent Platform APIs).
- Sample catalog generated.
- Smoke tests for image try-on succeed.
- Catwalk video generation using Veo verified.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

