Skip to content

feat(ai): load Meta Muse Image through a meta/images entrypoint - #60081

Merged
rekram1-node merged 1 commit into
devfrom
meta-images
Oct 29, 2026
Merged

rekram1-node merged 1 commit into
devfrom
meta-images

Conversation

@rekram1-node

@rekram1-node rekram1-node commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Meta's Muse Image (meta/muse-image-1.0) is in models.dev now (anomalyco/models.dev#11918), but core skipped it: the catalog points at @opencode/ai/providers/meta/images, and that entrypoint didn't exist. The Meta image code itself was already in packages/ai, it just had no way in.

 models.dev  meta/muse-image-1.0 → @opencode/ai/providers/meta/images
 packages/ai
   protocols/meta-images.ts        (already there)
+  providers/meta/images.ts        re-exports Meta.imageModel
+  package.json export
 packages/core
+  provider.ts  registers meta/images

With this, anyone with a Meta key gets Muse Image in image_generate, for both new images and edits.

Visual

<svg xmlns="http://www.w3.org/2000/svg" width="240" height="72" viewBox="0 0 240 72" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
  <style>
    .cap { animation: cap 3s ease-in-out infinite; transform-origin: 180px 26px; }
    @keyframes cap { 0%, 30% { opacity: 0; transform: translateY(-8px); } 50%, 100% { opacity: 1; transform: translateY(0); } }
    @media (prefers-reduced-motion: reduce) { .cap { animation: none; } }
  </style>
  <circle cx="60" cy="30" r="12" opacity="0.6"/>
  <path d="M40 62c4-12 36-12 40 0" opacity="0.6"/>
  <path d="M100 36h40" opacity="0.4"/>
  <path d="M132 30l8 6-8 6" opacity="0.4"/>
  <circle cx="180" cy="30" r="12"/>
  <path d="M160 62c4-12 36-12 40 0"/>
  <path class="cap" d="M168 24c2-10 22-10 24 0h6" fill="currentColor" fill-opacity="0.35"/>
</svg>

Verification

  • packages/ai: the entrypoint test now loads @opencode/ai/providers/meta/images and checks the URL (https://api.meta.ai/v1/images/generations), auth and settings it sends. 22 pass. bun run typecheck:tsc is clean.
  • packages/core: bun run typecheck:tsc is clean. I also ran the live models.dev catalog through ModelsDev.decodeSnapshot on this branch: meta/muse-image-1.0 comes out as an image model on @opencode/ai/providers/meta/images that accepts images.
  • Live calls through the new entrypoint with a real key: a generation returned a WebP, and an edit of a photo added the requested red cap and kept the rest of the photo (a true edit). About $0.02.
  • bun run check passes.

Added by the opencode bot (AI-generated).

Public API: adds the @opencode/ai/providers/meta/images entrypoint (backwards compatible)

@opencodejr opencodejr Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Looks sound. The new providers/meta/images entrypoint follows the same pattern as the other image entrypoints, and core's built-in table registers it. I checked that Provider.loadPackage("@opencode/ai/providers/meta/images") returns a module with model. The entrypoint test (22 pass) and typecheck:tsc in packages/ai and packages/core are clean. I couldn't check a real Muse Image call because there are no Meta credentials here.

Public API: adds the @opencode/ai/providers/meta/images export (model, Settings) and Meta.imageModel. Backwards compatible; nothing existing changes.

No concerns.

@rekram1-node
rekram1-node merged commit 085a891 into dev Oct 29, 2026
19 checks passed
@rekram1-node
rekram1-node deleted the meta-images branch October 29, 2026 02:34
@amrkmn amrkmn mentioned this pull request Oct 29, 2026
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant