Skip to main content
KakaMeme Guide

KakaMeme Submission Guide

How static stickers, dynamic GIFs, submission assets, and downloads work.

Flow

  1. Upload a photo or write a sticker set idea.
  2. Choose static, animated, or step-by-step creation. Direct modes continue automatically. Step-by-step creation waits for reference approval and allows eligible reference edits before approval.
  3. Static stickers are made in batches of 12; a 24-sticker set uses two batches. Saved characters can be reused directly.
  4. Animated creation continues when static assets are ready. Step-by-step creation requires you to start animation manually. You can also prepare WeChat submission assets from the same project page.
  5. Download individual assets, the manifest, or a ZIP package. Combine any available static, animated, and submission assets.

If a status query is interrupted, check the original task rather than creating another. A 24-sticker animation remake replaces each batch of 12 after success; a failed batch keeps its previous assets.

Credits

Reference editing requires a previous successful payment and still costs credits per edit. Referral watermark access does not unlock editing. Failed initial generation without a reference image can still be retried under the existing credit rules.

  • Generate or revise one character: 2 credits.
  • Static sticker set (12 stickers): 18 credits.
  • Adding dynamic GIFs to a finished set: 40 credits.
  • Dynamic GIFs ordered together with the static set (bundle): 40 credits.
  • WeChat submission package: 10 credits, or 8 credits when bundled with a static order.
  • Signing up grants 22 credits, and each daily login grants 1 more.
  • Jobs are rejected before creation when the balance is insufficient.
  • Static credits are not reserved while a character waits for approval; the balance is checked again on confirmation.
  • Provider or worker failures release the failed stage's reservation; completed stages settle normally.

Dynamic GIFs

Dynamic GIFs use Grok video generation and an external worker:

  • Model: grok-imagine-video-1-5-preview
  • Parameters: duration=3, aspect_ratio=3:4, resolution=720p
  • Outputs: 12 sticker GIFs, sheet GIF, preview MP4, and manifest

The browser API only creates and queries jobs. Vercel route handlers do not run ffmpeg.

Import into a chat app

Download the available transparent PNG or animated GIF files, then follow your chat app’s format, size and import requirements. Check one sticker first before importing the rest. Downloading files does not automatically add them to a chat app.

Submission Assets

Submission assets belong to the same sticker set project:

  • Title and description.
  • Copyright copy.
  • Banner, cover, icon.
  • Reward guide and reward thanks images.

The commercial app now has the job, status, asset, download manifest, and ZIP export structure. Live mode uses sharp to compose WeChat-sized PNG assets from the static stickers; KIE-generated submission art can be added later for stronger visual polish.

Sticker sets are private by default. When a user submits a set to Gallery, it enters the review queue. Admins approve, reject, archive, feature, and sort submissions through /api/admin/kakameme/gallery. Only approved public works appear in discovery listings, categories, recommendations, and promotion; unauthorized source images are not exposed.

When the owner removes an approved work from Gallery, it becomes unlisted. That removes it from KakaMeme discovery, but does not make it private: the stable detail page, public assets, search-engine results, and links already held by other people may remain accessible. Project deletion or an administrative or legal takedown is a separate action, and downloaded or cached copies cannot be recalled. The detail lookup and detail sitemap include approved public or unlisted works.

A moderator rejection or archive always overrides owner visibility. A pending cancellation returns the submission to private state; pending cancellation is not an indexable unlisted page.

API Access

Users can create API keys from /settings/apikeys. When generationMode is omitted, new characters created in a signed-in browser session pause for approval. API-key requests auto-confirm for compatibility and continue to static generation. Explicit modes are direct-static, direct-dynamic, and staged; existing requests keep their original behavior. API keys use Authorization: Bearer <key> or x-api-key.

Create a static sticker job:

curl -X POST "$NEXT_PUBLIC_BASE_URL/api/generation-jobs" \
  -H "Authorization: Bearer $KAKAMEME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"userIdea":"a cheerful corgi developer","visibility":"private"}'

You can also generate from a photo (sourceImageUrl must be a publicly reachable image URL), and request animated GIFs plus submission assets in the same job via requestedOutputs (queued automatically after the static set completes, billed at bundle pricing):

curl -X POST "$NEXT_PUBLIC_BASE_URL/api/generation-jobs" \
  -H "Authorization: Bearer $KAKAMEME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sourceImageUrl": "https://example.com/photo.jpeg",
    "userIdea": "adorably clumsy theme",
    "visibility": "private",
    "requestedOutputs": ["static", "dynamic", "submission"]
  }'

Query job status and generated assets:

curl "$NEXT_PUBLIC_BASE_URL/api/generation-jobs/job_123" \
  -H "Authorization: Bearer $KAKAMEME_API_KEY"

Notes:

  • Each API key is rate limited to 6 requests per minute by default. Requests over the limit return 429; retry after the window resets.
  • Animated GIFs can only be requested at job creation via requestedOutputs. Generating or regenerating GIFs for an existing project is currently web-only, from the result page.

Signed-in users can also query a project asset list through GET /api/sticker-sets/[id]/assets.

Character And Protection

From the result workspace, users can save the current character into saved_characters for later reuse. They can also enable copy protection for a sticker set. Copy protection does not make a legal guarantee; it marks the project as protected and keeps public Gallery pages from exposing source images or full prompts.

Issue Reports

The result workspace includes a report-problem action. Reports are stored in issue_reports with category, status, message, sticker set id, optional job id, and lightweight context metadata. Content dissatisfaction is routed to review through this table instead of automatic refunds.

FAQ

Why did my job fail?

The result page shows the failure summary. The backend records failed step, provider, model, provider task id, and error details.

Are credits charged when a job fails?

No. Successful jobs confirm the deduction; failed jobs automatically release the reserved credits.

Which download formats are available?

The default download API returns stable filenames and URLs. The result page ZIP action calls /api/sticker-sets/[id]/download?format=zip and packages current static, dynamic, and submission assets.