Skip to content

genmedia-for-commerce: 3 variations and one video, one item per slot, mannequin skin rules - #2869

Merged
lspataroG merged 1 commit into
mainfrom
genmedia-for-commerce-studio-batch
Nov 4, 2026
Merged

lspataroG merged 1 commit into
mainfrom
genmedia-for-commerce-studio-batch

Conversation

@lspataroG

Copy link
Copy Markdown
Collaborator

Summary

  • Try-on makes 3 variations by default; Video Try-On animates one image (the best, or the first ready when checks are off); every try-on image is listed.
  • Result cards: Open · Animate for images, Open · Download video for videos; cards wrap and the status chip truncates.
  • An uploaded product and a look item that fill the same slot (shoes, bottom, dress, hat, glasses, bag; layered items via the classifier's instead_of) no longer both get drawn. GENMEDIA_LOOK_CONFLICT (or the request's look_conflict) picks which one stays: upload (default) or look. A progress line says which was used.
  • Prompt rules: all visible skin, toes in open shoes included, is the wearer's own; a mannequin's grey body in any product photo or crop is never copied. The wearer's hands hold nothing but a product. Each jacket or coat is worn as its product line says, with clearer closure phrases.
  • Judge: any part of a mannequin on the wearer (grey, white or plastic skin, mannequin toes, feet, hands) is a body defect.
  • Review fixes: the variation count is capped in one place, clearer names, one status constant.

…s, one item per slot, mannequin skin rules, review fixes

@giuliosalierno giuliosalierno left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@lspataroG
lspataroG merged commit 1e5ed1a into main Nov 4, 2026
35 of 36 checks passed
@lspataroG
lspataroG deleted the genmedia-for-commerce-studio-batch branch November 4, 2026 17:57

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated House Rules review — 0 finding(s).

Also, on lines this PR does not change:

  • core/python/genmedia-for-commerce/genmedia4commerce/core/settings.py:184 — [MINOR] env read carries a hardcoded default (second argument is a hardcoded default); 4 occurrence(s) across 1 file(s). Defaults belong in .env.example, not in the code (core/python/genmedia-for-commerce/genmedia4commerce/core/settings.py:184; and 3 more)

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated Security review — 0 finding(s).

⚠️ This PR's diff was too large to review in full, so 35 file(s) were not looked at by this lane:

  • core/python/genmedia-for-commerce/AGENTS.md
  • core/python/genmedia-for-commerce/README.md
  • core/python/genmedia-for-commerce/frontend/src/test/studioMock.ts
  • core/python/genmedia-for-commerce/genmedia4commerce/eval/prompts/outfit_wearer.md
  • core/python/genmedia-for-commerce/genmedia4commerce/requests.py
  • core/python/genmedia-for-commerce/genmedia4commerce/tools.py
  • core/python/genmedia-for-commerce/genmedia4commerce/workflows/tryon/classify.py
  • core/python/genmedia-for-commerce/genmedia4commerce/workflows/tryon/classify_prompt.py
  • core/python/genmedia-for-commerce/genmedia4commerce/workflows/video_tryon/pipeline.py
  • core/python/genmedia-for-commerce/tests/api/test_streaming_routes.py
  • core/python/genmedia-for-commerce/tests/core/test_settings.py
  • core/python/genmedia-for-commerce/tests/studio/test_agent_tools_order.py
  • core/python/genmedia-for-commerce/tests/studio/test_job_expected.py
  • core/python/genmedia-for-commerce/tests/studio/test_jobs_video.py
  • core/python/genmedia-for-commerce/tests/studio/test_studio.py
  • …and 20 more

Splitting the PR up would get them reviewed.


Round 1 · 0 of this PR's 25 automated comments used · this round is capped at 20 across all reviewers.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated Maintainability review — 5 finding(s).

⚠️ This PR's diff was too large to review in full, so 35 file(s) were not looked at by this lane:

  • core/python/genmedia-for-commerce/AGENTS.md
  • core/python/genmedia-for-commerce/README.md
  • core/python/genmedia-for-commerce/frontend/src/test/studioMock.ts
  • core/python/genmedia-for-commerce/genmedia4commerce/eval/prompts/outfit_wearer.md
  • core/python/genmedia-for-commerce/genmedia4commerce/requests.py
  • core/python/genmedia-for-commerce/genmedia4commerce/tools.py
  • core/python/genmedia-for-commerce/genmedia4commerce/workflows/tryon/classify.py
  • core/python/genmedia-for-commerce/genmedia4commerce/workflows/tryon/classify_prompt.py
  • core/python/genmedia-for-commerce/genmedia4commerce/workflows/video_tryon/pipeline.py
  • core/python/genmedia-for-commerce/tests/api/test_streaming_routes.py
  • core/python/genmedia-for-commerce/tests/core/test_settings.py
  • core/python/genmedia-for-commerce/tests/studio/test_agent_tools_order.py
  • core/python/genmedia-for-commerce/tests/studio/test_job_expected.py
  • core/python/genmedia-for-commerce/tests/studio/test_jobs_video.py
  • core/python/genmedia-for-commerce/tests/studio/test_studio.py
  • …and 20 more

Splitting the PR up would get them reviewed.


Round 1 · 0 of this PR's 25 automated comments used · this round is capped at 20 across all reviewers.

conflict (``hero.conflicts``) as settled; none without a ``rule``."""
if rule is None:
return kept, []
shown = {keys[id(p)] for p in kept if id(p) in keys}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[MINOR] Is there a reason we're keying by id(p) instead of p.id? Passing added_ids = {p.id for p in added} would avoid relying on object memory addresses.

"""The products the look adds: its items (``_look_items``) but, with
the rule "upload" (``resolved``), those in an uploaded product's place
(``conflicts``), each with its key ("g7") as id and no image yet."""
out = set()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[MINOR] Perhaps rename out to excluded or conflicted? In conflicts() above out is the returned list, whereas here it represents items to omit.

"""(how it is worn, its layer, the rest) from its plan item."""
item = plan[product.id]
how = [_clean(item.get(k)) for k in ("tuck", "closure")]
how[1] = _CLOSURE_SAY.get(how[1], how[1])

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[MINOR] Perhaps unpack into tuck, closure instead of indexing and mutating how[1]? Named variables would make the closure logic clearer.

if rule == "look" and item.product not in shown:
continue # the look item was not cropped: the upload stays
aside |= {upload.id} if rule == "look" else set()
entry = {"kept": rule, "upload": upload.id}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[MINOR] combine into a single dict literal?

out = []
for item in _look_items(c):
rivals = [p for p in c.products if _in_place_of(item, p)]
out += [(item, rivals[0])] if rivals else []

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[MINOR] use out.append here instead

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated Correctness review — 1 finding(s).

⚠️ This PR's diff was too large to review in full, so 36 file(s) were not looked at by this lane:

  • core/python/genmedia-for-commerce/AGENTS.md
  • core/python/genmedia-for-commerce/README.md
  • core/python/genmedia-for-commerce/frontend/src/test/studioMock.ts
  • core/python/genmedia-for-commerce/genmedia4commerce/eval/prompts/outfit_wearer.md
  • core/python/genmedia-for-commerce/genmedia4commerce/requests.py
  • core/python/genmedia-for-commerce/genmedia4commerce/workflows/tryon/classify.py
  • core/python/genmedia-for-commerce/genmedia4commerce/workflows/tryon/classify_prompt.py
  • core/python/genmedia-for-commerce/genmedia4commerce/workflows/video_tryon/pipeline.py
  • core/python/genmedia-for-commerce/tests/api/test_streaming_routes.py
  • core/python/genmedia-for-commerce/tests/core/test_settings.py
  • core/python/genmedia-for-commerce/tests/eval/test_outfit.py
  • core/python/genmedia-for-commerce/tests/studio/test_agent_tools_order.py
  • core/python/genmedia-for-commerce/tests/studio/test_job_expected.py
  • core/python/genmedia-for-commerce/tests/studio/test_jobs_video.py
  • core/python/genmedia-for-commerce/tests/studio/test_studio.py
  • …and 21 more

Splitting the PR up would get them reviewed.


Round 1 · 0 of this PR's 25 automated comments used · this round is capped at 20 across all reviewers.

)
rules += [
RULE_BODY.format(body=body),
RULE_BODY.format(body=body) + skin.OWN_SKIN.format(face=face or body),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[MAJOR] It seems RULE_BODY contains {images}, but only body is provided to format(). Will this raise a KeyError at runtime?

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

There is a problem with the Antigravity CLI Hygiene PR review. Please check the action logs for details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants