Add plugin octopus-meme-maker - #40
Merged
Merged
Conversation
Collaborator
|
发现一个边界条件问题: |
Collaborator
|
两个核心参考资产的扩展名与真实格式不一致: |
weekbin
added a commit
to weekbin/MiniMax-Code-Plugins
that referenced
this pull request
Sep 15, 2026
- examples/10-toilet-slacking-base.png and examples/11-touch-fish-base.png were JPEGs under a .png extension; the docs ask the agent to pass them as image_synthesize input_file_paths, so the host may sniff by extension and refuse. Re-encode both to real PNGs (same paths, no doc churn). - make_preview_strip.py: when --workdir points at an existing regular file, os.makedirs(..., exist_ok=True) used to leak an uncaught FileExistsError traceback. Reject that case in argument validation with a clear message. - smoke.test.mjs: add two regressions — PNG signature check on the three examples/, and a subprocess invocation that drives the workdir regression through spawnSync.
weekbin
force-pushed
the
add-octopus-meme-maker
branch
from
September 15, 2026 09:10
a4263b6 to
e693aa2
Compare
A Plugin for MiniMax Code that turns a one-line scene description into a Smooth Squishmallow-style pink octopus office-worker GIF meme. The package ships the four-stage pipeline (base pose -> 6s video -> transparent Chinese caption -> 720x720 GIF), the four cross-platform Python scripts that assemble it, the reference image library that locks character / style across scenes, and a smoke self-audit plus negative-injection regression test. examples/ carries three 1024x1024 base.png references that the host image_synthesize reads as input_file_paths; the host can sniff MIME from the extension, so the file content and suffix are kept in sync (verified by smoke.test.mjs PNG signature check). The reference images are downscaled from 2048x2048 to 1024x1024 because the GitHub PR diff viewscreen rejects large binary previews, and 1024x1024 is the native training resolution of the underlying diffusion model so no character fidelity is lost. scripts/make_preview_strip.py refuses --workdir when it resolves to an existing regular file instead of a directory, so the caller gets a clear argument error rather than a leaked FileExistsError traceback. The behaviour is locked in by a regression test. All script argv is plumbed via subprocess.run argument lists (no shell, no injection surface); CJK font discovery is centralized in scripts/_fonts.py and shared by all four scripts; console encoding is forced UTF-8 with errors='replace' so a caller with cp1252 stdout still gets the success line. PR-40 review-driven changes: - examples/10-, examples/11- were JPEGs with .png extensions; re- encoded as real PNG (smoke test enforces the signature). - make_preview_strip.py gained a non-directory --workdir guard.
weekbin
force-pushed
the
add-octopus-meme-maker
branch
from
September 15, 2026 09:15
e693aa2 to
cf8291e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes
Adds
plugins/weekbin/octopus-meme-maker— a Skill-only Plugin that turns a scene description into a Smooth Squishmallow-style pink-octopus office-worker GIF meme (720x720 looping + 480x480 mini).Ships the portable Agent Plugins 1.0 manifest that the hosted validator checks, plus the mcode 0.4.0+ Claude Code compatible manifest (
.claude-plugin/plugin.json) thatdocs/plugin-compatibility.mdnow recommends shipping in parallel for a cross-runtime Plugin..minimax-plugin/plugin.jsonis the Marketplace submission manifest; README documents which reader takes each.Stage 1 is a mandatory 6-candidate contact-sheet loop: one
image_synthesizecall with 6 parallel requests, a numbered contact sheet (1460x974), hand it to the user, then stop. Stage 2 must not start until the user picks. Four Python scripts assemble the GIFs;_fonts.pyand_platform.pyhold the shared CJK-font and cross-platform helpers.User value
A MiniMax Code user can produce a new meme in the existing 烤焦了-style library without touching ffmpeg. The character stays consistent because the prompt is anchored to bundled base-pose references plus a ban-list, and the user picks from 6 candidates instead of accepting a single render.
Example prompt:
Expected result:
<scene-dir>/base.png(1024×1024) →<scene-dir>/video.mp4(1080×1080, 141 frames @ 24fps) →<scene-dir>/final.gif(720×720, 141 frames) +<scene-dir>/final-mini.gif(480×480, 141 frames).Plugin submission checklist
plugins/<github-owner>/<plugin-name>.plugin.jsonname matches the Plugin directory.README.mdincludes a real example prompt and expected result.LICENSEandplugin.jsondeclare an open-source license.TODOhas been replaced.npm run checkpasses.Evidence
Host-tool calls in the docs were checked against the shipped
@minimax-ai/codeschemas (mcode 0.4.6) rather than assumed.gen_videostakesprompt,output_file_path(required),input_image_path,reference_type,duration(6|10) andresolution(768P|1080P) — there is nofpsand nosizeparameter, and generation is asynchronous.image_synthesizeaccepts up to 10 requests with at most 4 reference images. Paths outside the session workspace are rejected, temp directories included.Manual test — the README self-test runs end to end against the bundled sample video on both platforms, with identical artifact geometry:
Cross-platform notes: no shell invocation (
subprocess.runwith argv lists only), no locale-dependent subprocess decoding,os.path.jointhroughout, Windows reserved output names rejected (CON/NUL/AUX/…), and a console-encoding fallback so a CJK caption cannot raiseUnicodeEncodeErroron a cp1252 or cp936 console. Windows itself is untested — no host available — and the README says so rather than claiming it.Local
npm run checkcaveat:validateand this Plugin's 65 tests pass locally. The fullnode --testrun does not complete on my machine because two tests in the pre-existingplugins/Hylouis233/cli-agent-bridgetime out — unrelated to this PR, and reproducible on plainupstream/mainwithout my changes.Plugin-local
smoke.test.mjsis included attests/plugins/octopus-meme-maker/and skips its interpreter-dependent cases whenpython3or Pillow is unavailable, so it stays green on the CI runner.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.