{"id":"c94a8002-25c3-4601-9035-523d7b531c94","entityType":"agent","slug":"clawhub-fannabe-fannabe-generate","name":"Fannabe Generate","canonicalUrl":"https://www.xpersona.co/agent/clawhub-fannabe-fannabe-generate","canonicalPath":"/agent/clawhub-fannabe-fannabe-generate","generatedAt":"2026-10-13T19:56:53.439Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-12T00:17:50.203Z","emptyReason":null},"description":"Generate images, videos, and voice for your AI models via Fannabe. Use when: \"generate an image\", \"make a video of my model\", \"animate this photo\", \"image-to... Skill: Fannabe Generate Owner: fannabe Summary: Generate images, videos, and voice for your AI models via Fannabe. Use when: \"generate an image\", \"make a video of my model\", \"animate this photo\", \"image-to... Tags: latest:0.1.5 Version history: v0.1.5 | 2026-07-09T10:56:55.605Z | user Renamed --character flag to --model (matches the CLI/MCP's persona=model, engine=ai terminology). Added a 'Concepts: model vs AI' glos","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 969 downloads reported by the source. Last updated 10/12/2026.","installCommand":"clawhub skill install s17bdvp9nk4b7jb6sgmnd9w3td8a24jq:fannabe-generate","sourceUrl":"https://clawhub.ai/fannabe/fannabe-generate","homepage":"https://clawhub.ai/fannabe/skills/fannabe-generate","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/fannabe/fannabe-generate","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/fannabe/skills/fannabe-generate","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Generate images, videos, and voice for your AI models via Fannabe. Use when: \"generate an image\", \"make a video of my model\", \"animate this photo\", \"image-to..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:17:50.203Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:17:50.203Z","emptyReason":null},"stars":null,"forks":null,"downloads":969,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"0.1.5","tractionLabel":"969 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T00:17:50.189Z","emptyReason":null},"lastUpdatedAt":"2026-10-12T00:17:50.203Z","lastCrawledAt":"2026-10-12T00:17:50.189Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-13T00:17:50.189Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.5","createdAt":"2026-07-09T10:56:55.605Z","changelog":"Renamed --character flag to --model (matches the CLI/MCP's persona=model, engine=ai terminology). Added a 'Concepts: model vs AI' glossary to SKILL.md. No functional changes.","fileCount":8,"zipByteSize":7368},{"version":"0.1.4","createdAt":"2026-07-09T10:33:32.516Z","changelog":"Renamed CLI/MCP terminology: characters -> models, models -> ai. Updated all command examples and cross-references to match (fannabe models list/schema/gallery, fannabe ai list/schema/options). No functional changes.","fileCount":8,"zipByteSize":7172},{"version":"0.1.3","createdAt":"2026-07-07T19:08:48.927Z","changelog":"Categories and topics","fileCount":8,"zipByteSize":7298},{"version":"0.1.2","createdAt":"2026-07-07T19:06:36.419Z","changelog":"Categorized under Creative and Productivity","fileCount":8,"zipByteSize":7347},{"version":"0.1.1","createdAt":"2026-07-07T19:03:10.332Z","changelog":"Initial release under the Fannabe org","fileCount":8,"zipByteSize":7209},{"version":"0.1.0","createdAt":"2026-07-07T18:58:36.632Z","changelog":"Initial release: generate images, videos, and voice for AI characters via the Fannabe CLI","fileCount":8,"zipByteSize":7243}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17bdvp9nk4b7jb6sgmnd9w3td8a24jq:fannabe-generate","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-fannabe-fannabe-generate/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-fannabe-fannabe-generate/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-fannabe-fannabe-generate/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-fannabe-fannabe-generate/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-fannabe-fannabe-generate/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-fannabe-fannabe-generate/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-13T19:56:53.438Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-fannabe-fannabe-generate/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-fannabe-fannabe-generate/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-fannabe-fannabe-generate/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-fannabe-fannabe-generate/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-12T00:17:50.203Z","emptyReason":null},"readme":"Skill: Fannabe Generate\n\nOwner: fannabe\n\nSummary: Generate images, videos, and voice for your AI models via Fannabe. Use when: \"generate an image\", \"make a video of my model\", \"animate this photo\", \"image-to...\n\nTags: latest:0.1.5\n\nVersion history:\n\nv0.1.5 | 2026-07-09T10:56:55.605Z | user\n\nRenamed --character flag to --model (matches the CLI/MCP's persona=model, engine=ai terminology). Added a 'Concepts: model vs AI' glossary to SKILL.md. No functional changes.\n\nv0.1.4 | 2026-07-09T10:33:32.516Z | user\n\nRenamed CLI/MCP terminology: characters -> models, models -> ai. Updated all command examples and cross-references to match (fannabe models list/schema/gallery, fannabe ai list/schema/options). No functional changes.\n\nv0.1.3 | 2026-07-07T19:08:48.927Z | user\n\nCategories and topics\n\nv0.1.2 | 2026-07-07T19:06:36.419Z | user\n\nCategorized under Creative and Productivity\n\nv0.1.1 | 2026-07-07T19:03:10.332Z | user\n\nInitial release under the Fannabe org\n\nv0.1.0 | 2026-07-07T18:58:36.632Z | user\n\nInitial release: generate images, videos, and voice for AI characters via the Fannabe CLI\n\nArchive index:\n\nArchive v0.1.5: 8 files, 7368 bytes\n\nFiles: references/ai.md (896b), references/easy-mode.md (870b), references/prompt-tools.md (874b), references/source-media.md (1940b), references/troubleshooting.md (1036b), skill-card.md (2361b), SKILL.md (4643b), _meta.json (135b)\n\nFile v0.1.5:SKILL.md\n\n---\nversion: 0.1.5\nname: fannabe-generate\ndescription: |\n  Generate images, videos, and voice for your AI models via Fannabe.\n  Use when: \"generate an image\", \"make a video of my model\",\n  \"animate this photo\", \"image-to-video\", \"motion control / transfer this\n  dance onto my model\", \"character swap\", \"edit/restyle this image\",\n  \"caption this video\", \"improve/rewrite this prompt\", \"describe this photo\n  as a prompt\", \"show my gallery\", \"download my latest render\", or\n  \"how many credits do I have\". Wraps the `fannabe` CLI, which runs the same\n  AI engines, settings, and credit pricing as the Fannabe web studio.\n  NOT for: training new models (done in the web studio), or non-Fannabe\n  providers.\nargument-hint: \"[what-to-generate] [--model <name-or-id>] [--ai <id>]\"\nhomepage: https://www.fannabe.com\nallowed-tools: Bash\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"requires\": { \"bins\": [\"node\"] }\n      }\n  }\n---\n\n# Fannabe Generate\n\nCreate AI-model images, videos, and voice from the terminal. This skill drives the `fannabe` CLI, which talks to the Fannabe API and spends the signed-in user's credits.\n\n## Step 0 — Bootstrap (before anything else)\n\n1. If `fannabe` is not on `$PATH`, install it:\n   ```bash\n   npm install -g @fannabe/cli\n   ```\n2. If a command fails with a \"Not logged in\" / 401 error, ask the user to run `fannabe auth login` (opens a browser) and wait for confirmation. The token is cached in `~/.fannabe`.\n\nEvery command supports `--help`, and output is plain text meant to be parsed.\n\n## Concepts: model vs. AI\n\nTwo different things are both called \"model\" colloquially:\n\n- **Model** (`fannabe models`, `--model <modelId>`): the user's own AI persona — who the content is of.\n- **AI** (`fannabe ai`, an `<aiId>` like `nano-banana-2-single-image`): the generation engine that renders it — what renders it.\n\nEvery `generate create` call takes both.\n\n## Core workflow\n\n```bash\nfannabe models list                           # pick a model (id, name, appearance)\nfannabe ai list --media-type image            # pick an AI (first column is the id)\nfannabe ai schema <aiId>                       # discover that AI's fields + source slots\nfannabe generate create <aiId> \\\n  --model <modelId> --media-type image \\\n  --prompt \"golden hour rooftop portrait, cinematic\" \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output                  # prints cost, blocks until done, saves the file\n```\n\n- Match the user's wording to a model with `fannabe models list --search \"<text>\"` (matches name and appearance, e.g. \"redhead\").\n- Set any AI field with repeatable `--set key=value` (see `ai schema <aiId>`), or a full `--settings '<json>'`.\n- Preview spend first with `fannabe generate cost <aiId> --media-type image --model <modelId> --set resolution=1k`.\n\n## When the user describes an outfit or scene in plain words\n\nPrefer the curated Theme/Outfit presets over a long hand-written prompt. See [references/easy-mode.md](references/easy-mode.md).\n\n## Image-to-video, edits, motion control, character swap\n\nThese attach source media to AI slots. The two id kinds are NOT interchangeable. See [references/source-media.md](references/source-media.md).\n\n## Prompt assistance\n\n`fannabe prompt improve|ai-edit|from-image`, or inline `--enhance-prompt` / `--from-image` / `--ai-edit`. See [references/prompt-tools.md](references/prompt-tools.md).\n\n## Async jobs and downloads\n\n```bash\nfannabe jobs list --ongoing\nfannabe jobs wait <taskId> --timeout 15m\nfannabe jobs download <taskId> --output ./output/result.mp4\nfannabe caption-on-video <videoContentId> --text \"...\" --model <modelId>\nfannabe video frame <videoContentIdOrFile> --time 1.5 --upload   # still frame -> imageId\n```\n\n## Costs and account\n\nPriced in Fannabe credits, identical to the web studio. `fannabe account` shows the balance.\n\n## References (read as needed)\n\n- [references/ai.md](references/ai.md) — choosing an AI per media type\n- [references/easy-mode.md](references/easy-mode.md) — Theme/Outfit presets\n- [references/source-media.md](references/source-media.md) — source slots, the two id kinds, motion control, character swap\n- [references/prompt-tools.md](references/prompt-tools.md) — prompt improve / AI edit / from-image\n- [references/troubleshooting.md](references/troubleshooting.md) — auth, environments, common errors\n\n## Rules for agents\n\n- Generation is async: only completed jobs have downloadable media; use `--wait` or `jobs wait`.\n- Never guess AI fields — read `ai schema <aiId>` and `--help`.\n- The estimated cost prints before every generation; surface it to the user for anything non-trivial.\n\nFile v0.1.5:_meta.json\n\n{\n  \"ownerId\": \"kn77p1ycdwdfkpw3bs6nn8yr718a3gpf\",\n  \"slug\": \"fannabe-generate\",\n  \"version\": \"0.1.5\",\n  \"publishedAt\": 1783594615605\n}\n\nFile v0.1.5:references/ai.md\n\n# Choosing an AI\n\nList AI engines per media type, then read the chosen AI's schema before generating.\n\n```bash\nfannabe ai list --media-type image      # image | video | audio | lip-sync\nfannabe ai schema <aiId>                # exact fields, defaults, and source slots\n```\n\n- The first column of `ai list` is the AI id you pass to `generate create`.\n- AI ids are a stable public contract (e.g. `nano-banana-2-single-image`, `kling-2-6-motion-control`); prefer them over guessing.\n- `ai schema <aiId> --concept-type <type>` shows fields for a specific concept (e.g. `single-image`, `carousel`, `video-from-image`, `talking-video`). `--simple` shows the simple-mode fields.\n- `economyMode` (a `--set economyMode=true` flag on supported AI) trades priority for a lower price.\n\nPass `--concept-type <type>` on `generate create` so the request runs the intended concept rather than a generic default.\n\nFile v0.1.5:references/easy-mode.md\n\n# Easy mode: Theme and Outfit presets\n\nWhen the user describes a location or outfit in plain words (a cafe, goth clothes, the gym, the beach), prefer the curated presets over a long hand-written prompt. They are platform-tuned and generally produce better results.\n\n```bash\nfannabe ai options --filter topic  --media-type image   # Themes (e.g. mirror-selfie, dubai)\nfannabe ai options --filter outfit --media-type image   # Outfits (e.g. casual, gym)\n\nfannabe generate create <aiId> \\\n  --model <modelId> --media-type image --concept-type single-image \\\n  --set locationPrompt=<themeId> --set outfitPrompt=<outfitId> \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output\n```\n\nUsing a `locationPrompt` or `outfitPrompt` automatically switches the request to simple mode so the preset actually applies. The ids come from the `ai options` listing.\n\nFile v0.1.5:references/prompt-tools.md\n\n# Prompt assistance\n\nThe same assist features as the studio's prompt box, usable standalone or inline on a generation.\n\n## Standalone\n\n```bash\nfannabe prompt improve \"girl on a beach\" --media-type image --workflow <aiId>\nfannabe prompt ai-edit \"make it nighttime\" --prompt \"girl on a beach\" --media-type image\nfannabe prompt from-image ./inspo.jpg                  # describe a photo as a prompt\nfannabe prompt tools list                              # JSON Prompt Generator, Video Prompter, ...\nfannabe prompt tools run <toolId> \"a beach scene\"\n```\n\n## Inline on `generate create`\n\n- `--enhance-prompt` — LLM rewrite/expansion pass (expert mode)\n- `--from-image <path-or-url>` — derive the prompt from a photo via vision\n- `--ai-edit \"<instruction>\"` — rewrite the current prompt per an instruction\n\nThey compose in that order: from-image, then prompt, then ai-edit.\n\nFile v0.1.5:references/source-media.md\n\n# Source media: image-to-video, edits, motion control, character swap\n\nMany workflows attach existing media to an AI's input slots via repeatable `--source inputKey=mediaId`. Discover the slots with `fannabe ai schema <aiId>` (the \"Source media\" section lists each slot's inputKey).\n\n## Two id kinds, never interchangeable\n\n- **Content id** (the `ID` column): downloads and video tools (`content download`, `caption-on-video`).\n- **Media id** (the `Media ID (--source)` column, or an upload's `imageId`/`videoId`/`audioId`): `--source` slots on generation.\n\n```bash\nfannabe models gallery <modelId> --media-type image       # shows both id columns\nfannabe uploads image ./scene.png                             # prints contentId AND imageId\n```\n\n## Image-to-video\n\n```bash\nfannabe generate create seedance-1-5-pro \\\n  --model <modelId> --media-type video --concept-type video-from-image \\\n  --source image-1=<mediaId> \\\n  --prompt \"she sips her coffee and smiles\" \\\n  --set duration=5 --set resolution=720p \\\n  --wait --wait-timeout 15m --download ./output\n```\n\n## Motion control (transfer a clip's movement onto a model still)\n\n```bash\nfannabe generate create kling-2-6-motion-control \\\n  --model <modelId> --media-type video \\\n  --source video-1=<motionVideoMediaId> \\\n  --source image-1=<modelImageMediaId> \\\n  --set resolution=1080p --set keepOriginalSound=true \\\n  --wait --wait-timeout 15m --download ./output\n```\n\nOutput length follows the motion clip (3-30s) and cost is priced per second. Need a model still that matches the clip's framing? `fannabe video frame <videoContentIdOrFile> --time 1.5 --upload` extracts a frame and returns an `imageId` ready for `image-1`.\n\n## Character swap\n\nThe `character-ref` slot is auto-filled from the model's stored default swap image; the scene-ref must be an account-level uploaded image (`fannabe uploads image ...`, then its `imageId`). Read `ai schema <swapAiId>` for the exact slot keys.\n\nFile v0.1.5:references/troubleshooting.md\n\n# Troubleshooting\n\n## \"Not logged in\" / 401\nAsk the user to run `fannabe auth login` (opens a browser) and confirm when done. The token caches in `~/.fannabe`.\n\n## Insufficient credits\n`fannabe account` shows the balance. Every generation prints its estimated cost first; preview with `fannabe generate cost <aiId> ...` before spending.\n\n## A job \"failed\" with no output\nOnly completed jobs have downloadable media. Inspect with `fannabe jobs get <taskId>`; failed jobs carry an error message and refund credits automatically.\n\n## Wrong id used on `--source`\n`--source` needs the Media id (the `Media ID (--source)` column), not the Content id. See source-media.md.\n\n## Non-production environments\nPoint at staging/dev with `FANNABE_API_URL=<url>` and keep its login separate with `FANNABE_CONFIG_DIR=~/.fannabe-staging` (both env vars). A token minted against one environment will 401 on another.\n\n## AI field rejected\nRead `fannabe ai schema <aiId>` for the exact fields and whether they are simple-mode or expert-mode; do not guess.\n\nFile v0.1.5:skill-card.md\n\n## Description:\n\nGenerate images, videos, and voice for your AI models via Fannabe.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[fannabe](https://clawhub.ai/user/fannabe)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and creators use this skill to generate and manage Fannabe image, video, voice, prompt, and gallery workflows from an agent by issuing CLI commands that spend the signed-in user's Fannabe credits.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The bootstrap path installs a global, unpinned npm CLI.\n\nMitigation: Use a pinned Fannabe CLI version in a contained environment when reproducibility or supply-chain control matters.\n\nRisk: Commands can use cached Fannabe credentials to spend credits or access account media.\n\nMitigation: Confirm estimated costs before non-trivial generation and use account or cost-preview commands before spending credits.\n\nRisk: Image upload and prompt-from-image workflows can expose sensitive media or internal URLs to Fannabe services.\n\nMitigation: Avoid sensitive images, private media, and internal URLs in upload or from-image workflows unless the user explicitly approves.\n\n## Reference(s):\n\n- [Fannabe](https://www.fannabe.com)\n- [Fannabe Generate on ClawHub](https://clawhub.ai/fannabe/skills/fannabe-generate)\n- [Choosing an AI](references/ai.md)\n- [Easy mode: Theme and Outfit presets](references/easy-mode.md)\n- [Prompt assistance](references/prompt-tools.md)\n- [Source media: image-to-video, edits, motion control, character swap](references/source-media.md)\n- [Troubleshooting](references/troubleshooting.md)\n\n## Skill Output:\n\n**Output Type(s):** [Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown with inline bash code blocks]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Commands may trigger asynchronous Fannabe jobs, downloads, account checks, uploads, and credit-spending generation through the signed-in user's account.]\n\n## Skill Version(s):\n\n0.1.5 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v0.1.4: 8 files, 7172 bytes\n\nFiles: references/ai.md (894b), references/easy-mode.md (878b), references/prompt-tools.md (874b), references/source-media.md (1964b), references/troubleshooting.md (1036b), skill-card.md (2433b), SKILL.md (4282b), _meta.json (135b)\n\nFile v0.1.4:SKILL.md\n\n---\nversion: 0.1.4\nname: fannabe-generate\ndescription: |\n  Generate images, videos, and voice for your AI models via Fannabe.\n  Use when: \"generate an image\", \"make a video of my model\",\n  \"animate this photo\", \"image-to-video\", \"motion control / transfer this\n  dance onto my model\", \"character swap\", \"edit/restyle this image\",\n  \"caption this video\", \"improve/rewrite this prompt\", \"describe this photo\n  as a prompt\", \"show my gallery\", \"download my latest render\", or\n  \"how many credits do I have\". Wraps the `fannabe` CLI, which runs the same\n  AI engines, settings, and credit pricing as the Fannabe web studio.\n  NOT for: training new models (done in the web studio), or non-Fannabe\n  providers.\nargument-hint: \"[what-to-generate] [--character <name-or-id>] [--ai <id>]\"\nhomepage: https://www.fannabe.com\nallowed-tools: Bash\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"requires\": { \"bins\": [\"node\"] }\n      }\n  }\n---\n\n# Fannabe Generate\n\nCreate AI-model images, videos, and voice from the terminal. This skill drives the `fannabe` CLI, which talks to the Fannabe API and spends the signed-in user's credits.\n\n## Step 0 — Bootstrap (before anything else)\n\n1. If `fannabe` is not on `$PATH`, install it:\n   ```bash\n   npm install -g @fannabe/cli\n   ```\n2. If a command fails with a \"Not logged in\" / 401 error, ask the user to run `fannabe auth login` (opens a browser) and wait for confirmation. The token is cached in `~/.fannabe`.\n\nEvery command supports `--help`, and output is plain text meant to be parsed.\n\n## Core workflow\n\n```bash\nfannabe models list                           # pick a model (id, name, appearance)\nfannabe ai list --media-type image            # pick an AI (first column is the id)\nfannabe ai schema <aiId>                       # discover that AI's fields + source slots\nfannabe generate create <aiId> \\\n  --character <characterId> --media-type image \\\n  --prompt \"golden hour rooftop portrait, cinematic\" \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output                  # prints cost, blocks until done, saves the file\n```\n\n- Match the user's wording to a model with `fannabe models list --search \"<text>\"` (matches name and appearance, e.g. \"redhead\").\n- Set any AI field with repeatable `--set key=value` (see `ai schema <id>`), or a full `--settings '<json>'`.\n- Preview spend first with `fannabe generate cost <aiId> --media-type image --character <id> --set resolution=1k`.\n\n## When the user describes an outfit or scene in plain words\n\nPrefer the curated Theme/Outfit presets over a long hand-written prompt. See [references/easy-mode.md](references/easy-mode.md).\n\n## Image-to-video, edits, motion control, character swap\n\nThese attach source media to AI slots. The two id kinds are NOT interchangeable. See [references/source-media.md](references/source-media.md).\n\n## Prompt assistance\n\n`fannabe prompt improve|ai-edit|from-image`, or inline `--enhance-prompt` / `--from-image` / `--ai-edit`. See [references/prompt-tools.md](references/prompt-tools.md).\n\n## Async jobs and downloads\n\n```bash\nfannabe jobs list --ongoing\nfannabe jobs wait <taskId> --timeout 15m\nfannabe jobs download <taskId> --output ./output/result.mp4\nfannabe caption-on-video <videoContentId> --text \"...\" --character <id>\nfannabe video frame <videoContentIdOrFile> --time 1.5 --upload   # still frame -> imageId\n```\n\n## Costs and account\n\nPriced in Fannabe credits, identical to the web studio. `fannabe account` shows the balance.\n\n## References (read as needed)\n\n- [references/ai.md](references/ai.md) — choosing an AI per media type\n- [references/easy-mode.md](references/easy-mode.md) — Theme/Outfit presets\n- [references/source-media.md](references/source-media.md) — source slots, the two id kinds, motion control, character swap\n- [references/prompt-tools.md](references/prompt-tools.md) — prompt improve / AI edit / from-image\n- [references/troubleshooting.md](references/troubleshooting.md) — auth, environments, common errors\n\n## Rules for agents\n\n- Generation is async: only completed jobs have downloadable media; use `--wait` or `jobs wait`.\n- Never guess AI fields — read `ai schema <id>` and `--help`.\n- The estimated cost prints before every generation; surface it to the user for anything non-trivial.\n\nFile v0.1.4:_meta.json\n\n{\n  \"ownerId\": \"kn77p1ycdwdfkpw3bs6nn8yr718a3gpf\",\n  \"slug\": \"fannabe-generate\",\n  \"version\": \"0.1.4\",\n  \"publishedAt\": 1783593212516\n}\n\nFile v0.1.4:references/ai.md\n\n# Choosing an AI\n\nList AI engines per media type, then read the chosen AI's schema before generating.\n\n```bash\nfannabe ai list --media-type image      # image | video | audio | lip-sync\nfannabe ai schema <aiId>                # exact fields, defaults, and source slots\n```\n\n- The first column of `ai list` is the AI id you pass to `generate create`.\n- AI ids are a stable public contract (e.g. `nano-banana-2-single-image`, `kling-2-6-motion-control`); prefer them over guessing.\n- `ai schema <id> --concept-type <type>` shows fields for a specific concept (e.g. `single-image`, `carousel`, `video-from-image`, `talking-video`). `--simple` shows the simple-mode fields.\n- `economyMode` (a `--set economyMode=true` flag on supported AI) trades priority for a lower price.\n\nPass `--concept-type <type>` on `generate create` so the request runs the intended concept rather than a generic default.\n\nFile v0.1.4:references/easy-mode.md\n\n# Easy mode: Theme and Outfit presets\n\nWhen the user describes a location or outfit in plain words (a cafe, goth clothes, the gym, the beach), prefer the curated presets over a long hand-written prompt. They are platform-tuned and generally produce better results.\n\n```bash\nfannabe ai options --filter topic  --media-type image   # Themes (e.g. mirror-selfie, dubai)\nfannabe ai options --filter outfit --media-type image   # Outfits (e.g. casual, gym)\n\nfannabe generate create <aiId> \\\n  --character <characterId> --media-type image --concept-type single-image \\\n  --set locationPrompt=<themeId> --set outfitPrompt=<outfitId> \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output\n```\n\nUsing a `locationPrompt` or `outfitPrompt` automatically switches the request to simple mode so the preset actually applies. The ids come from the `ai options` listing.\n\nFile v0.1.4:references/prompt-tools.md\n\n# Prompt assistance\n\nThe same assist features as the studio's prompt box, usable standalone or inline on a generation.\n\n## Standalone\n\n```bash\nfannabe prompt improve \"girl on a beach\" --media-type image --workflow <aiId>\nfannabe prompt ai-edit \"make it nighttime\" --prompt \"girl on a beach\" --media-type image\nfannabe prompt from-image ./inspo.jpg                  # describe a photo as a prompt\nfannabe prompt tools list                              # JSON Prompt Generator, Video Prompter, ...\nfannabe prompt tools run <toolId> \"a beach scene\"\n```\n\n## Inline on `generate create`\n\n- `--enhance-prompt` — LLM rewrite/expansion pass (expert mode)\n- `--from-image <path-or-url>` — derive the prompt from a photo via vision\n- `--ai-edit \"<instruction>\"` — rewrite the current prompt per an instruction\n\nThey compose in that order: from-image, then prompt, then ai-edit.\n\nFile v0.1.4:references/source-media.md\n\n# Source media: image-to-video, edits, motion control, character swap\n\nMany workflows attach existing media to an AI's input slots via repeatable `--source inputKey=mediaId`. Discover the slots with `fannabe ai schema <aiId>` (the \"Source media\" section lists each slot's inputKey).\n\n## Two id kinds, never interchangeable\n\n- **Content id** (the `ID` column): downloads and video tools (`content download`, `caption-on-video`).\n- **Media id** (the `Media ID (--source)` column, or an upload's `imageId`/`videoId`/`audioId`): `--source` slots on generation.\n\n```bash\nfannabe models gallery <characterId> --media-type image       # shows both id columns\nfannabe uploads image ./scene.png                             # prints contentId AND imageId\n```\n\n## Image-to-video\n\n```bash\nfannabe generate create seedance-1-5-pro \\\n  --character <characterId> --media-type video --concept-type video-from-image \\\n  --source image-1=<mediaId> \\\n  --prompt \"she sips her coffee and smiles\" \\\n  --set duration=5 --set resolution=720p \\\n  --wait --wait-timeout 15m --download ./output\n```\n\n## Motion control (transfer a clip's movement onto a model still)\n\n```bash\nfannabe generate create kling-2-6-motion-control \\\n  --character <characterId> --media-type video \\\n  --source video-1=<motionVideoMediaId> \\\n  --source image-1=<characterImageMediaId> \\\n  --set resolution=1080p --set keepOriginalSound=true \\\n  --wait --wait-timeout 15m --download ./output\n```\n\nOutput length follows the motion clip (3-30s) and cost is priced per second. Need a model still that matches the clip's framing? `fannabe video frame <videoContentIdOrFile> --time 1.5 --upload` extracts a frame and returns an `imageId` ready for `image-1`.\n\n## Character swap\n\nThe `character-ref` slot is auto-filled from the model's stored default swap image; the scene-ref must be an account-level uploaded image (`fannabe uploads image ...`, then its `imageId`). Read `ai schema <swapAiId>` for the exact slot keys.\n\nFile v0.1.4:references/troubleshooting.md\n\n# Troubleshooting\n\n## \"Not logged in\" / 401\nAsk the user to run `fannabe auth login` (opens a browser) and confirm when done. The token caches in `~/.fannabe`.\n\n## Insufficient credits\n`fannabe account` shows the balance. Every generation prints its estimated cost first; preview with `fannabe generate cost <aiId> ...` before spending.\n\n## A job \"failed\" with no output\nOnly completed jobs have downloadable media. Inspect with `fannabe jobs get <taskId>`; failed jobs carry an error message and refund credits automatically.\n\n## Wrong id used on `--source`\n`--source` needs the Media id (the `Media ID (--source)` column), not the Content id. See source-media.md.\n\n## Non-production environments\nPoint at staging/dev with `FANNABE_API_URL=<url>` and keep its login separate with `FANNABE_CONFIG_DIR=~/.fannabe-staging` (both env vars). A token minted against one environment will 401 on another.\n\n## AI field rejected\nRead `fannabe ai schema <aiId>` for the exact fields and whether they are simple-mode or expert-mode; do not guess.\n\nFile v0.1.4:skill-card.md\n\n## Description: <br>\nGenerate images, videos, and voice for Fannabe AI models through the Fannabe CLI. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[fannabe](https://clawhub.ai/user/fannabe) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal creators and developers use this skill to plan and run Fannabe CLI generation workflows for model images, videos, voice, prompt assistance, account checks, and downloads. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can propose commands that spend Fannabe credits. <br>\nMitigation: Preview estimated cost with `fannabe generate cost` or review the printed estimate before non-trivial generation. <br>\nRisk: Generation and source-media workflows may upload selected media to Fannabe. <br>\nMitigation: Confirm the intended files or URLs before running upload commands or generation commands with source media. <br>\nRisk: Browser authentication stores a Fannabe login token locally. <br>\nMitigation: Use `fannabe auth login` only for the intended account and separate non-production credentials with `FANNABE_CONFIG_DIR` when needed. <br>\n\n\n## Reference(s): <br>\n- [Fannabe Generate on ClawHub](https://clawhub.ai/fannabe/skills/fannabe-generate) <br>\n- [Fannabe](https://www.fannabe.com) <br>\n- [Choosing an AI](references/ai.md) <br>\n- [Easy mode: Theme and Outfit presets](references/easy-mode.md) <br>\n- [Source media: image-to-video, edits, motion control, character swap](references/source-media.md) <br>\n- [Prompt assistance](references/prompt-tools.md) <br>\n- [Troubleshooting](references/troubleshooting.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with inline shell commands and concise CLI guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May recommend Fannabe CLI actions that spend credits, upload user-selected media, or download generated media.] <br>\n\n## Skill Version(s): <br>\n0.1.4 (source: frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v0.1.3: 8 files, 7298 bytes\n\nFiles: references/easy-mode.md (893b), references/models.md (921b), references/prompt-tools.md (877b), references/source-media.md (1992b), references/troubleshooting.md (1049b), skill-card.md (2714b), SKILL.md (4350b), _meta.json (135b)\n\nFile v0.1.3:SKILL.md\n\n---\nversion: 0.1.3\nname: fannabe-generate\ndescription: |\n  Generate images, videos, and voice for your AI characters via Fannabe.\n  Use when: \"generate an image\", \"make a video of my character\",\n  \"animate this photo\", \"image-to-video\", \"motion control / transfer this\n  dance onto my character\", \"character swap\", \"edit/restyle this image\",\n  \"caption this video\", \"improve/rewrite this prompt\", \"describe this photo\n  as a prompt\", \"show my gallery\", \"download my latest render\", or\n  \"how many credits do I have\". Wraps the `fannabe` CLI, which runs the same\n  models, settings, and credit pricing as the Fannabe web studio.\n  NOT for: training new characters (done in the web studio), or non-Fannabe\n  providers.\nargument-hint: \"[what-to-generate] [--character <name-or-id>] [--model <id>]\"\nhomepage: https://www.fannabe.com\nallowed-tools: Bash\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"requires\": { \"bins\": [\"node\"] }\n      }\n  }\n---\n\n# Fannabe Generate\n\nCreate AI-character images, videos, and voice from the terminal. This skill drives the `fannabe` CLI, which talks to the Fannabe API and spends the signed-in user's credits.\n\n## Step 0 — Bootstrap (before anything else)\n\n1. If `fannabe` is not on `$PATH`, install it:\n   ```bash\n   npm install -g @fannabe/cli\n   ```\n2. If a command fails with a \"Not logged in\" / 401 error, ask the user to run `fannabe auth login` (opens a browser) and wait for confirmation. The token is cached in `~/.fannabe`.\n\nEvery command supports `--help`, and output is plain text meant to be parsed.\n\n## Core workflow\n\n```bash\nfannabe characters list                       # pick a character (id, name, appearance)\nfannabe models list --media-type image        # pick a model (first column is the id)\nfannabe models schema <modelId>               # discover that model's fields + source slots\nfannabe generate create <modelId> \\\n  --character <characterId> --media-type image \\\n  --prompt \"golden hour rooftop portrait, cinematic\" \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output                  # prints cost, blocks until done, saves the file\n```\n\n- Match the user's wording to a character with `fannabe characters list --search \"<text>\"` (matches name and appearance, e.g. \"redhead\").\n- Set any model field with repeatable `--set key=value` (see `models schema <id>`), or a full `--settings '<json>'`.\n- Preview spend first with `fannabe generate cost <modelId> --media-type image --character <id> --set resolution=1k`.\n\n## When the user describes an outfit or scene in plain words\n\nPrefer the curated Theme/Outfit presets over a long hand-written prompt. See [references/easy-mode.md](references/easy-mode.md).\n\n## Image-to-video, edits, motion control, character swap\n\nThese attach source media to model slots. The two id kinds are NOT interchangeable. See [references/source-media.md](references/source-media.md).\n\n## Prompt assistance\n\n`fannabe prompt improve|ai-edit|from-image`, or inline `--enhance-prompt` / `--from-image` / `--ai-edit`. See [references/prompt-tools.md](references/prompt-tools.md).\n\n## Async jobs and downloads\n\n```bash\nfannabe jobs list --ongoing\nfannabe jobs wait <taskId> --timeout 15m\nfannabe jobs download <taskId> --output ./output/result.mp4\nfannabe caption-on-video <videoContentId> --text \"...\" --character <id>\nfannabe video frame <videoContentIdOrFile> --time 1.5 --upload   # still frame -> imageId\n```\n\n## Costs and account\n\nPriced in Fannabe credits, identical to the web studio. `fannabe account` shows the balance.\n\n## References (read as needed)\n\n- [references/models.md](references/models.md) — choosing a model per media type\n- [references/easy-mode.md](references/easy-mode.md) — Theme/Outfit presets\n- [references/source-media.md](references/source-media.md) — source slots, the two id kinds, motion control, character swap\n- [references/prompt-tools.md](references/prompt-tools.md) — prompt improve / AI edit / from-image\n- [references/troubleshooting.md](references/troubleshooting.md) — auth, environments, common errors\n\n## Rules for agents\n\n- Generation is async: only completed jobs have downloadable media; use `--wait` or `jobs wait`.\n- Never guess model fields — read `models schema <id>` and `--help`.\n- The estimated cost prints before every generation; surface it to the user for anything non-trivial.\n\nFile v0.1.3:_meta.json\n\n{\n  \"ownerId\": \"kn77p1ycdwdfkpw3bs6nn8yr718a3gpf\",\n  \"slug\": \"fannabe-generate\",\n  \"version\": \"0.1.3\",\n  \"publishedAt\": 1783451328927\n}\n\nFile v0.1.3:references/easy-mode.md\n\n# Easy mode: Theme and Outfit presets\n\nWhen the user describes a location or outfit in plain words (a cafe, goth clothes, the gym, the beach), prefer the curated presets over a long hand-written prompt. They are platform-tuned and generally produce better results.\n\n```bash\nfannabe models options --filter topic  --media-type image   # Themes (e.g. mirror-selfie, dubai)\nfannabe models options --filter outfit --media-type image   # Outfits (e.g. casual, gym)\n\nfannabe generate create <modelId> \\\n  --character <characterId> --media-type image --concept-type single-image \\\n  --set locationPrompt=<themeId> --set outfitPrompt=<outfitId> \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output\n```\n\nUsing a `locationPrompt` or `outfitPrompt` automatically switches the request to simple mode so the preset actually applies. The ids come from the `models options` listing.\n\nFile v0.1.3:references/models.md\n\n# Choosing a model\n\nList models per media type, then read the chosen model's schema before generating.\n\n```bash\nfannabe models list --media-type image      # image | video | audio | lip-sync\nfannabe models schema <modelId>             # exact fields, defaults, and source slots\n```\n\n- The first column of `models list` is the model id you pass to `generate create`.\n- Model ids are a stable public contract (e.g. `nano-banana-2-single-image`, `kling-2-6-motion-control`); prefer them over guessing.\n- `models schema <id> --concept-type <type>` shows fields for a specific concept (e.g. `single-image`, `carousel`, `video-from-image`, `talking-video`). `--simple` shows the simple-mode fields.\n- `economyMode` (a `--set economyMode=true` flag on supported models) trades priority for a lower price.\n\nPass `--concept-type <type>` on `generate create` so the request runs the intended concept rather than a generic default.\n\nFile v0.1.3:references/prompt-tools.md\n\n# Prompt assistance\n\nThe same assist features as the studio's prompt box, usable standalone or inline on a generation.\n\n## Standalone\n\n```bash\nfannabe prompt improve \"girl on a beach\" --media-type image --workflow <modelId>\nfannabe prompt ai-edit \"make it nighttime\" --prompt \"girl on a beach\" --media-type image\nfannabe prompt from-image ./inspo.jpg                  # describe a photo as a prompt\nfannabe prompt tools list                              # JSON Prompt Generator, Video Prompter, ...\nfannabe prompt tools run <toolId> \"a beach scene\"\n```\n\n## Inline on `generate create`\n\n- `--enhance-prompt` — LLM rewrite/expansion pass (expert mode)\n- `--from-image <path-or-url>` — derive the prompt from a photo via vision\n- `--ai-edit \"<instruction>\"` — rewrite the current prompt per an instruction\n\nThey compose in that order: from-image, then prompt, then ai-edit.\n\nFile v0.1.3:references/source-media.md\n\n# Source media: image-to-video, edits, motion control, character swap\n\nMany workflows attach existing media to a model's input slots via repeatable `--source inputKey=mediaId`. Discover the slots with `fannabe models schema <modelId>` (the \"Source media\" section lists each slot's inputKey).\n\n## Two id kinds, never interchangeable\n\n- **Content id** (the `ID` column): downloads and video tools (`content download`, `caption-on-video`).\n- **Media id** (the `Media ID (--source)` column, or an upload's `imageId`/`videoId`/`audioId`): `--source` slots on generation.\n\n```bash\nfannabe characters gallery <characterId> --media-type image   # shows both id columns\nfannabe uploads image ./scene.png                             # prints contentId AND imageId\n```\n\n## Image-to-video\n\n```bash\nfannabe generate create seedance-1-5-pro \\\n  --character <characterId> --media-type video --concept-type video-from-image \\\n  --source image-1=<mediaId> \\\n  --prompt \"she sips her coffee and smiles\" \\\n  --set duration=5 --set resolution=720p \\\n  --wait --wait-timeout 15m --download ./output\n```\n\n## Motion control (transfer a clip's movement onto a character still)\n\n```bash\nfannabe generate create kling-2-6-motion-control \\\n  --character <characterId> --media-type video \\\n  --source video-1=<motionVideoMediaId> \\\n  --source image-1=<characterImageMediaId> \\\n  --set resolution=1080p --set keepOriginalSound=true \\\n  --wait --wait-timeout 15m --download ./output\n```\n\nOutput length follows the motion clip (3-30s) and cost is priced per second. Need a character still that matches the clip's framing? `fannabe video frame <videoContentIdOrFile> --time 1.5 --upload` extracts a frame and returns an `imageId` ready for `image-1`.\n\n## Character swap\n\nThe `character-ref` slot is auto-filled from the character's stored default swap image; the scene-ref must be an account-level uploaded image (`fannabe uploads image ...`, then its `imageId`). Read `models schema <swapModelId>` for the exact slot keys.\n\nFile v0.1.3:references/troubleshooting.md\n\n# Troubleshooting\n\n## \"Not logged in\" / 401\nAsk the user to run `fannabe auth login` (opens a browser) and confirm when done. The token caches in `~/.fannabe`.\n\n## Insufficient credits\n`fannabe account` shows the balance. Every generation prints its estimated cost first; preview with `fannabe generate cost <modelId> ...` before spending.\n\n## A job \"failed\" with no output\nOnly completed jobs have downloadable media. Inspect with `fannabe jobs get <taskId>`; failed jobs carry an error message and refund credits automatically.\n\n## Wrong id used on `--source`\n`--source` needs the Media id (the `Media ID (--source)` column), not the Content id. See source-media.md.\n\n## Non-production environments\nPoint at staging/dev with `FANNABE_API_URL=<url>` and keep its login separate with `FANNABE_CONFIG_DIR=~/.fannabe-staging` (both env vars). A token minted against one environment will 401 on another.\n\n## Model field rejected\nRead `fannabe models schema <modelId>` for the exact fields and whether they are simple-mode or expert-mode; do not guess.\n\nFile v0.1.3:skill-card.md\n\n## Description: <br>\nGenerate images, videos, and voice for AI characters through the Fannabe CLI, including prompt assistance, source-media workflows, job downloads, and account credit checks. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[fannabe](https://clawhub.ai/user/fannabe) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and creators use this skill to operate Fannabe media generation from an agent, including selecting characters and models, previewing credit cost, launching async generation jobs, and downloading completed media. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill may install and run the global Fannabe npm CLI. <br>\nMitigation: Install it only in environments where Node-based global CLIs are allowed and the user intends to operate Fannabe from the terminal. <br>\nRisk: Authentication stores a local Fannabe session token after browser login. <br>\nMitigation: Use the skill only on trusted machines and keep separate configuration directories for non-production environments when needed. <br>\nRisk: Generation commands can upload selected media to Fannabe and spend Fannabe credits. <br>\nMitigation: Preview cost for non-trivial generations, surface estimated spend to the user, and upload only media the user intends to send to Fannabe. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/fannabe/skills/fannabe-generate) <br>\n- [Fannabe homepage](https://www.fannabe.com) <br>\n- [Choosing a model](references/models.md) <br>\n- [Easy mode: Theme and Outfit presets](references/easy-mode.md) <br>\n- [Source media: image-to-video, edits, motion control, character swap](references/source-media.md) <br>\n- [Prompt assistance](references/prompt-tools.md) <br>\n- [Troubleshooting](references/troubleshooting.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with inline shell commands and CLI argument examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May direct the agent to install the Fannabe CLI, authenticate in a browser, inspect model schemas, preview credit cost, wait for async jobs, and download generated media.] <br>\n\n## Skill Version(s): <br>\n0.1.3 (source: frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v0.1.2: 8 files, 7347 bytes\n\nFiles: references/easy-mode.md (893b), references/models.md (921b), references/prompt-tools.md (877b), references/source-media.md (1992b), references/troubleshooting.md (1049b), skill-card.md (2908b), SKILL.md (4350b), _meta.json (135b)\n\nFile v0.1.2:SKILL.md\n\n---\nversion: 0.1.2\nname: fannabe-generate\ndescription: |\n  Generate images, videos, and voice for your AI characters via Fannabe.\n  Use when: \"generate an image\", \"make a video of my character\",\n  \"animate this photo\", \"image-to-video\", \"motion control / transfer this\n  dance onto my character\", \"character swap\", \"edit/restyle this image\",\n  \"caption this video\", \"improve/rewrite this prompt\", \"describe this photo\n  as a prompt\", \"show my gallery\", \"download my latest render\", or\n  \"how many credits do I have\". Wraps the `fannabe` CLI, which runs the same\n  models, settings, and credit pricing as the Fannabe web studio.\n  NOT for: training new characters (done in the web studio), or non-Fannabe\n  providers.\nargument-hint: \"[what-to-generate] [--character <name-or-id>] [--model <id>]\"\nhomepage: https://www.fannabe.com\nallowed-tools: Bash\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"requires\": { \"bins\": [\"node\"] }\n      }\n  }\n---\n\n# Fannabe Generate\n\nCreate AI-character images, videos, and voice from the terminal. This skill drives the `fannabe` CLI, which talks to the Fannabe API and spends the signed-in user's credits.\n\n## Step 0 — Bootstrap (before anything else)\n\n1. If `fannabe` is not on `$PATH`, install it:\n   ```bash\n   npm install -g @fannabe/cli\n   ```\n2. If a command fails with a \"Not logged in\" / 401 error, ask the user to run `fannabe auth login` (opens a browser) and wait for confirmation. The token is cached in `~/.fannabe`.\n\nEvery command supports `--help`, and output is plain text meant to be parsed.\n\n## Core workflow\n\n```bash\nfannabe characters list                       # pick a character (id, name, appearance)\nfannabe models list --media-type image        # pick a model (first column is the id)\nfannabe models schema <modelId>               # discover that model's fields + source slots\nfannabe generate create <modelId> \\\n  --character <characterId> --media-type image \\\n  --prompt \"golden hour rooftop portrait, cinematic\" \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output                  # prints cost, blocks until done, saves the file\n```\n\n- Match the user's wording to a character with `fannabe characters list --search \"<text>\"` (matches name and appearance, e.g. \"redhead\").\n- Set any model field with repeatable `--set key=value` (see `models schema <id>`), or a full `--settings '<json>'`.\n- Preview spend first with `fannabe generate cost <modelId> --media-type image --character <id> --set resolution=1k`.\n\n## When the user describes an outfit or scene in plain words\n\nPrefer the curated Theme/Outfit presets over a long hand-written prompt. See [references/easy-mode.md](references/easy-mode.md).\n\n## Image-to-video, edits, motion control, character swap\n\nThese attach source media to model slots. The two id kinds are NOT interchangeable. See [references/source-media.md](references/source-media.md).\n\n## Prompt assistance\n\n`fannabe prompt improve|ai-edit|from-image`, or inline `--enhance-prompt` / `--from-image` / `--ai-edit`. See [references/prompt-tools.md](references/prompt-tools.md).\n\n## Async jobs and downloads\n\n```bash\nfannabe jobs list --ongoing\nfannabe jobs wait <taskId> --timeout 15m\nfannabe jobs download <taskId> --output ./output/result.mp4\nfannabe caption-on-video <videoContentId> --text \"...\" --character <id>\nfannabe video frame <videoContentIdOrFile> --time 1.5 --upload   # still frame -> imageId\n```\n\n## Costs and account\n\nPriced in Fannabe credits, identical to the web studio. `fannabe account` shows the balance.\n\n## References (read as needed)\n\n- [references/models.md](references/models.md) — choosing a model per media type\n- [references/easy-mode.md](references/easy-mode.md) — Theme/Outfit presets\n- [references/source-media.md](references/source-media.md) — source slots, the two id kinds, motion control, character swap\n- [references/prompt-tools.md](references/prompt-tools.md) — prompt improve / AI edit / from-image\n- [references/troubleshooting.md](references/troubleshooting.md) — auth, environments, common errors\n\n## Rules for agents\n\n- Generation is async: only completed jobs have downloadable media; use `--wait` or `jobs wait`.\n- Never guess model fields — read `models schema <id>` and `--help`.\n- The estimated cost prints before every generation; surface it to the user for anything non-trivial.\n\nFile v0.1.2:_meta.json\n\n{\n  \"ownerId\": \"kn77p1ycdwdfkpw3bs6nn8yr718a3gpf\",\n  \"slug\": \"fannabe-generate\",\n  \"version\": \"0.1.2\",\n  \"publishedAt\": 1783451196419\n}\n\nFile v0.1.2:references/easy-mode.md\n\n# Easy mode: Theme and Outfit presets\n\nWhen the user describes a location or outfit in plain words (a cafe, goth clothes, the gym, the beach), prefer the curated presets over a long hand-written prompt. They are platform-tuned and generally produce better results.\n\n```bash\nfannabe models options --filter topic  --media-type image   # Themes (e.g. mirror-selfie, dubai)\nfannabe models options --filter outfit --media-type image   # Outfits (e.g. casual, gym)\n\nfannabe generate create <modelId> \\\n  --character <characterId> --media-type image --concept-type single-image \\\n  --set locationPrompt=<themeId> --set outfitPrompt=<outfitId> \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output\n```\n\nUsing a `locationPrompt` or `outfitPrompt` automatically switches the request to simple mode so the preset actually applies. The ids come from the `models options` listing.\n\nFile v0.1.2:references/models.md\n\n# Choosing a model\n\nList models per media type, then read the chosen model's schema before generating.\n\n```bash\nfannabe models list --media-type image      # image | video | audio | lip-sync\nfannabe models schema <modelId>             # exact fields, defaults, and source slots\n```\n\n- The first column of `models list` is the model id you pass to `generate create`.\n- Model ids are a stable public contract (e.g. `nano-banana-2-single-image`, `kling-2-6-motion-control`); prefer them over guessing.\n- `models schema <id> --concept-type <type>` shows fields for a specific concept (e.g. `single-image`, `carousel`, `video-from-image`, `talking-video`). `--simple` shows the simple-mode fields.\n- `economyMode` (a `--set economyMode=true` flag on supported models) trades priority for a lower price.\n\nPass `--concept-type <type>` on `generate create` so the request runs the intended concept rather than a generic default.\n\nFile v0.1.2:references/prompt-tools.md\n\n# Prompt assistance\n\nThe same assist features as the studio's prompt box, usable standalone or inline on a generation.\n\n## Standalone\n\n```bash\nfannabe prompt improve \"girl on a beach\" --media-type image --workflow <modelId>\nfannabe prompt ai-edit \"make it nighttime\" --prompt \"girl on a beach\" --media-type image\nfannabe prompt from-image ./inspo.jpg                  # describe a photo as a prompt\nfannabe prompt tools list                              # JSON Prompt Generator, Video Prompter, ...\nfannabe prompt tools run <toolId> \"a beach scene\"\n```\n\n## Inline on `generate create`\n\n- `--enhance-prompt` — LLM rewrite/expansion pass (expert mode)\n- `--from-image <path-or-url>` — derive the prompt from a photo via vision\n- `--ai-edit \"<instruction>\"` — rewrite the current prompt per an instruction\n\nThey compose in that order: from-image, then prompt, then ai-edit.\n\nFile v0.1.2:references/source-media.md\n\n# Source media: image-to-video, edits, motion control, character swap\n\nMany workflows attach existing media to a model's input slots via repeatable `--source inputKey=mediaId`. Discover the slots with `fannabe models schema <modelId>` (the \"Source media\" section lists each slot's inputKey).\n\n## Two id kinds, never interchangeable\n\n- **Content id** (the `ID` column): downloads and video tools (`content download`, `caption-on-video`).\n- **Media id** (the `Media ID (--source)` column, or an upload's `imageId`/`videoId`/`audioId`): `--source` slots on generation.\n\n```bash\nfannabe characters gallery <characterId> --media-type image   # shows both id columns\nfannabe uploads image ./scene.png                             # prints contentId AND imageId\n```\n\n## Image-to-video\n\n```bash\nfannabe generate create seedance-1-5-pro \\\n  --character <characterId> --media-type video --concept-type video-from-image \\\n  --source image-1=<mediaId> \\\n  --prompt \"she sips her coffee and smiles\" \\\n  --set duration=5 --set resolution=720p \\\n  --wait --wait-timeout 15m --download ./output\n```\n\n## Motion control (transfer a clip's movement onto a character still)\n\n```bash\nfannabe generate create kling-2-6-motion-control \\\n  --character <characterId> --media-type video \\\n  --source video-1=<motionVideoMediaId> \\\n  --source image-1=<characterImageMediaId> \\\n  --set resolution=1080p --set keepOriginalSound=true \\\n  --wait --wait-timeout 15m --download ./output\n```\n\nOutput length follows the motion clip (3-30s) and cost is priced per second. Need a character still that matches the clip's framing? `fannabe video frame <videoContentIdOrFile> --time 1.5 --upload` extracts a frame and returns an `imageId` ready for `image-1`.\n\n## Character swap\n\nThe `character-ref` slot is auto-filled from the character's stored default swap image; the scene-ref must be an account-level uploaded image (`fannabe uploads image ...`, then its `imageId`). Read `models schema <swapModelId>` for the exact slot keys.\n\nFile v0.1.2:references/troubleshooting.md\n\n# Troubleshooting\n\n## \"Not logged in\" / 401\nAsk the user to run `fannabe auth login` (opens a browser) and confirm when done. The token caches in `~/.fannabe`.\n\n## Insufficient credits\n`fannabe account` shows the balance. Every generation prints its estimated cost first; preview with `fannabe generate cost <modelId> ...` before spending.\n\n## A job \"failed\" with no output\nOnly completed jobs have downloadable media. Inspect with `fannabe jobs get <taskId>`; failed jobs carry an error message and refund credits automatically.\n\n## Wrong id used on `--source`\n`--source` needs the Media id (the `Media ID (--source)` column), not the Content id. See source-media.md.\n\n## Non-production environments\nPoint at staging/dev with `FANNABE_API_URL=<url>` and keep its login separate with `FANNABE_CONFIG_DIR=~/.fannabe-staging` (both env vars). A token minted against one environment will 401 on another.\n\n## Model field rejected\nRead `fannabe models schema <modelId>` for the exact fields and whether they are simple-mode or expert-mode; do not guess.\n\nFile v0.1.2:skill-card.md\n\n## Description: <br>\nGenerate images, videos, and voice for AI characters through the Fannabe CLI, including prompt assistance, source-media workflows, job monitoring, and downloads. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[fannabe](https://clawhub.ai/user/fannabe) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and creators use this skill to direct Fannabe character-media generation from an agent, including selecting characters and models, estimating credit cost, generating or editing images and video, adding captions, improving prompts, and downloading completed renders. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Generation can spend Fannabe credits. <br>\nMitigation: Preview estimated cost with Fannabe CLI cost commands and surface non-trivial spend to the user before generation. <br>\nRisk: Some workflows upload source media to Fannabe. <br>\nMitigation: Use uploads only for workflows that require source media and confirm the user is comfortable sending the selected files to Fannabe. <br>\nRisk: Authentication tokens are cached locally by the Fannabe CLI. <br>\nMitigation: Use the normal Fannabe login flow, keep production and non-production configuration directories separate, and avoid exposing cached token files. <br>\nRisk: Generated files are saved to paths selected by the user or agent. <br>\nMitigation: Use explicit output paths and confirm before writing into sensitive or unexpected directories. <br>\n\n\n## Reference(s): <br>\n- [Fannabe Skill Page](https://clawhub.ai/fannabe/skills/fannabe-generate) <br>\n- [Fannabe](https://www.fannabe.com) <br>\n- [Choosing a model](references/models.md) <br>\n- [Easy mode: Theme and Outfit presets](references/easy-mode.md) <br>\n- [Source media: image-to-video, edits, motion control, character swap](references/source-media.md) <br>\n- [Prompt assistance](references/prompt-tools.md) <br>\n- [Troubleshooting](references/troubleshooting.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Shell commands, Configuration, Text, Files] <br>\n**Output Format:** [Markdown with inline shell commands and plain-text CLI output] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May install and invoke the Fannabe CLI, authenticate through Fannabe, preview or spend Fannabe credits, upload source media for selected workflows, wait for asynchronous jobs, and download generated media to user-selected paths.] <br>\n\n## Skill Version(s): <br>\n0.1.2 (source: frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v0.1.1: 8 files, 7209 bytes\n\nFiles: references/easy-mode.md (893b), references/models.md (921b), references/prompt-tools.md (877b), references/source-media.md (1992b), references/troubleshooting.md (1049b), skill-card.md (2458b), SKILL.md (4350b), _meta.json (135b)\n\nFile v0.1.1:SKILL.md\n\n---\nversion: 0.1.1\nname: fannabe-generate\ndescription: |\n  Generate images, videos, and voice for your AI characters via Fannabe.\n  Use when: \"generate an image\", \"make a video of my character\",\n  \"animate this photo\", \"image-to-video\", \"motion control / transfer this\n  dance onto my character\", \"character swap\", \"edit/restyle this image\",\n  \"caption this video\", \"improve/rewrite this prompt\", \"describe this photo\n  as a prompt\", \"show my gallery\", \"download my latest render\", or\n  \"how many credits do I have\". Wraps the `fannabe` CLI, which runs the same\n  models, settings, and credit pricing as the Fannabe web studio.\n  NOT for: training new characters (done in the web studio), or non-Fannabe\n  providers.\nargument-hint: \"[what-to-generate] [--character <name-or-id>] [--model <id>]\"\nhomepage: https://www.fannabe.com\nallowed-tools: Bash\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"requires\": { \"bins\": [\"node\"] }\n      }\n  }\n---\n\n# Fannabe Generate\n\nCreate AI-character images, videos, and voice from the terminal. This skill drives the `fannabe` CLI, which talks to the Fannabe API and spends the signed-in user's credits.\n\n## Step 0 — Bootstrap (before anything else)\n\n1. If `fannabe` is not on `$PATH`, install it:\n   ```bash\n   npm install -g @fannabe/cli\n   ```\n2. If a command fails with a \"Not logged in\" / 401 error, ask the user to run `fannabe auth login` (opens a browser) and wait for confirmation. The token is cached in `~/.fannabe`.\n\nEvery command supports `--help`, and output is plain text meant to be parsed.\n\n## Core workflow\n\n```bash\nfannabe characters list                       # pick a character (id, name, appearance)\nfannabe models list --media-type image        # pick a model (first column is the id)\nfannabe models schema <modelId>               # discover that model's fields + source slots\nfannabe generate create <modelId> \\\n  --character <characterId> --media-type image \\\n  --prompt \"golden hour rooftop portrait, cinematic\" \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output                  # prints cost, blocks until done, saves the file\n```\n\n- Match the user's wording to a character with `fannabe characters list --search \"<text>\"` (matches name and appearance, e.g. \"redhead\").\n- Set any model field with repeatable `--set key=value` (see `models schema <id>`), or a full `--settings '<json>'`.\n- Preview spend first with `fannabe generate cost <modelId> --media-type image --character <id> --set resolution=1k`.\n\n## When the user describes an outfit or scene in plain words\n\nPrefer the curated Theme/Outfit presets over a long hand-written prompt. See [references/easy-mode.md](references/easy-mode.md).\n\n## Image-to-video, edits, motion control, character swap\n\nThese attach source media to model slots. The two id kinds are NOT interchangeable. See [references/source-media.md](references/source-media.md).\n\n## Prompt assistance\n\n`fannabe prompt improve|ai-edit|from-image`, or inline `--enhance-prompt` / `--from-image` / `--ai-edit`. See [references/prompt-tools.md](references/prompt-tools.md).\n\n## Async jobs and downloads\n\n```bash\nfannabe jobs list --ongoing\nfannabe jobs wait <taskId> --timeout 15m\nfannabe jobs download <taskId> --output ./output/result.mp4\nfannabe caption-on-video <videoContentId> --text \"...\" --character <id>\nfannabe video frame <videoContentIdOrFile> --time 1.5 --upload   # still frame -> imageId\n```\n\n## Costs and account\n\nPriced in Fannabe credits, identical to the web studio. `fannabe account` shows the balance.\n\n## References (read as needed)\n\n- [references/models.md](references/models.md) — choosing a model per media type\n- [references/easy-mode.md](references/easy-mode.md) — Theme/Outfit presets\n- [references/source-media.md](references/source-media.md) — source slots, the two id kinds, motion control, character swap\n- [references/prompt-tools.md](references/prompt-tools.md) — prompt improve / AI edit / from-image\n- [references/troubleshooting.md](references/troubleshooting.md) — auth, environments, common errors\n\n## Rules for agents\n\n- Generation is async: only completed jobs have downloadable media; use `--wait` or `jobs wait`.\n- Never guess model fields — read `models schema <id>` and `--help`.\n- The estimated cost prints before every generation; surface it to the user for anything non-trivial.\n\nFile v0.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn77p1ycdwdfkpw3bs6nn8yr718a3gpf\",\n  \"slug\": \"fannabe-generate\",\n  \"version\": \"0.1.1\",\n  \"publishedAt\": 1783450990332\n}\n\nFile v0.1.1:references/easy-mode.md\n\n# Easy mode: Theme and Outfit presets\n\nWhen the user describes a location or outfit in plain words (a cafe, goth clothes, the gym, the beach), prefer the curated presets over a long hand-written prompt. They are platform-tuned and generally produce better results.\n\n```bash\nfannabe models options --filter topic  --media-type image   # Themes (e.g. mirror-selfie, dubai)\nfannabe models options --filter outfit --media-type image   # Outfits (e.g. casual, gym)\n\nfannabe generate create <modelId> \\\n  --character <characterId> --media-type image --concept-type single-image \\\n  --set locationPrompt=<themeId> --set outfitPrompt=<outfitId> \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output\n```\n\nUsing a `locationPrompt` or `outfitPrompt` automatically switches the request to simple mode so the preset actually applies. The ids come from the `models options` listing.\n\nFile v0.1.1:references/models.md\n\n# Choosing a model\n\nList models per media type, then read the chosen model's schema before generating.\n\n```bash\nfannabe models list --media-type image      # image | video | audio | lip-sync\nfannabe models schema <modelId>             # exact fields, defaults, and source slots\n```\n\n- The first column of `models list` is the model id you pass to `generate create`.\n- Model ids are a stable public contract (e.g. `nano-banana-2-single-image`, `kling-2-6-motion-control`); prefer them over guessing.\n- `models schema <id> --concept-type <type>` shows fields for a specific concept (e.g. `single-image`, `carousel`, `video-from-image`, `talking-video`). `--simple` shows the simple-mode fields.\n- `economyMode` (a `--set economyMode=true` flag on supported models) trades priority for a lower price.\n\nPass `--concept-type <type>` on `generate create` so the request runs the intended concept rather than a generic default.\n\nFile v0.1.1:references/prompt-tools.md\n\n# Prompt assistance\n\nThe same assist features as the studio's prompt box, usable standalone or inline on a generation.\n\n## Standalone\n\n```bash\nfannabe prompt improve \"girl on a beach\" --media-type image --workflow <modelId>\nfannabe prompt ai-edit \"make it nighttime\" --prompt \"girl on a beach\" --media-type image\nfannabe prompt from-image ./inspo.jpg                  # describe a photo as a prompt\nfannabe prompt tools list                              # JSON Prompt Generator, Video Prompter, ...\nfannabe prompt tools run <toolId> \"a beach scene\"\n```\n\n## Inline on `generate create`\n\n- `--enhance-prompt` — LLM rewrite/expansion pass (expert mode)\n- `--from-image <path-or-url>` — derive the prompt from a photo via vision\n- `--ai-edit \"<instruction>\"` — rewrite the current prompt per an instruction\n\nThey compose in that order: from-image, then prompt, then ai-edit.\n\nFile v0.1.1:references/source-media.md\n\n# Source media: image-to-video, edits, motion control, character swap\n\nMany workflows attach existing media to a model's input slots via repeatable `--source inputKey=mediaId`. Discover the slots with `fannabe models schema <modelId>` (the \"Source media\" section lists each slot's inputKey).\n\n## Two id kinds, never interchangeable\n\n- **Content id** (the `ID` column): downloads and video tools (`content download`, `caption-on-video`).\n- **Media id** (the `Media ID (--source)` column, or an upload's `imageId`/`videoId`/`audioId`): `--source` slots on generation.\n\n```bash\nfannabe characters gallery <characterId> --media-type image   # shows both id columns\nfannabe uploads image ./scene.png                             # prints contentId AND imageId\n```\n\n## Image-to-video\n\n```bash\nfannabe generate create seedance-1-5-pro \\\n  --character <characterId> --media-type video --concept-type video-from-image \\\n  --source image-1=<mediaId> \\\n  --prompt \"she sips her coffee and smiles\" \\\n  --set duration=5 --set resolution=720p \\\n  --wait --wait-timeout 15m --download ./output\n```\n\n## Motion control (transfer a clip's movement onto a character still)\n\n```bash\nfannabe generate create kling-2-6-motion-control \\\n  --character <characterId> --media-type video \\\n  --source video-1=<motionVideoMediaId> \\\n  --source image-1=<characterImageMediaId> \\\n  --set resolution=1080p --set keepOriginalSound=true \\\n  --wait --wait-timeout 15m --download ./output\n```\n\nOutput length follows the motion clip (3-30s) and cost is priced per second. Need a character still that matches the clip's framing? `fannabe video frame <videoContentIdOrFile> --time 1.5 --upload` extracts a frame and returns an `imageId` ready for `image-1`.\n\n## Character swap\n\nThe `character-ref` slot is auto-filled from the character's stored default swap image; the scene-ref must be an account-level uploaded image (`fannabe uploads image ...`, then its `imageId`). Read `models schema <swapModelId>` for the exact slot keys.\n\nFile v0.1.1:references/troubleshooting.md\n\n# Troubleshooting\n\n## \"Not logged in\" / 401\nAsk the user to run `fannabe auth login` (opens a browser) and confirm when done. The token caches in `~/.fannabe`.\n\n## Insufficient credits\n`fannabe account` shows the balance. Every generation prints its estimated cost first; preview with `fannabe generate cost <modelId> ...` before spending.\n\n## A job \"failed\" with no output\nOnly completed jobs have downloadable media. Inspect with `fannabe jobs get <taskId>`; failed jobs carry an error message and refund credits automatically.\n\n## Wrong id used on `--source`\n`--source` needs the Media id (the `Media ID (--source)` column), not the Content id. See source-media.md.\n\n## Non-production environments\nPoint at staging/dev with `FANNABE_API_URL=<url>` and keep its login separate with `FANNABE_CONFIG_DIR=~/.fannabe-staging` (both env vars). A token minted against one environment will 401 on another.\n\n## Model field rejected\nRead `fannabe models schema <modelId>` for the exact fields and whether they are simple-mode or expert-mode; do not guess.\n\nFile v0.1.1:skill-card.md\n\n## Description: <br>\nGenerate images, videos, and voice for AI characters through the Fannabe CLI. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[fannabe](https://clawhub.ai/user/fannabe) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal creators, developers, and agents use this skill to choose Fannabe characters and models, create media-generation jobs, wait for completion, and download generated images, videos, audio, or lip-sync outputs. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Generation jobs can spend Fannabe credits. <br>\nMitigation: Surface the CLI cost estimate for non-trivial jobs and use `fannabe generate cost` when the user wants a preview before spending credits. <br>\nRisk: Source media may be uploaded to Fannabe for image-to-video, edits, motion control, prompt-from-image, or character-swap workflows. <br>\nMitigation: Ask before uploading local or sensitive media and use only the files or URLs the user intended to provide. <br>\nRisk: Fannabe authentication caches a local login token. <br>\nMitigation: Use `fannabe auth login` only for the intended account, and keep staging or development credentials separate with `FANNABE_CONFIG_DIR` when needed. <br>\n\n\n## Reference(s): <br>\n- [Fannabe Generate on ClawHub](https://clawhub.ai/fannabe/skills/fannabe-generate) <br>\n- [Fannabe](https://www.fannabe.com) <br>\n- [Choosing a model](references/models.md) <br>\n- [Easy mode presets](references/easy-mode.md) <br>\n- [Source media workflows](references/source-media.md) <br>\n- [Prompt assistance](references/prompt-tools.md) <br>\n- [Troubleshooting](references/troubleshooting.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, shell commands, configuration, files] <br>\n**Output Format:** [Markdown with inline shell commands and CLI output guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Generated media may be downloaded as image, video, or audio files by the Fannabe CLI.] <br>\n\n## Skill Version(s): <br>\n0.1.1 (source: SKILL.md frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v0.1.0: 8 files, 7243 bytes\n\nFiles: references/easy-mode.md (893b), references/models.md (921b), references/prompt-tools.md (877b), references/source-media.md (1992b), references/troubleshooting.md (1049b), skill-card.md (2617b), SKILL.md (4350b), _meta.json (135b)\n\nFile v0.1.0:SKILL.md\n\n---\nversion: 0.1.0\nname: fannabe-generate\ndescription: |\n  Generate images, videos, and voice for your AI characters via Fannabe.\n  Use when: \"generate an image\", \"make a video of my character\",\n  \"animate this photo\", \"image-to-video\", \"motion control / transfer this\n  dance onto my character\", \"character swap\", \"edit/restyle this image\",\n  \"caption this video\", \"improve/rewrite this prompt\", \"describe this photo\n  as a prompt\", \"show my gallery\", \"download my latest render\", or\n  \"how many credits do I have\". Wraps the `fannabe` CLI, which runs the same\n  models, settings, and credit pricing as the Fannabe web studio.\n  NOT for: training new characters (done in the web studio), or non-Fannabe\n  providers.\nargument-hint: \"[what-to-generate] [--character <name-or-id>] [--model <id>]\"\nhomepage: https://www.fannabe.com\nallowed-tools: Bash\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"requires\": { \"bins\": [\"node\"] }\n      }\n  }\n---\n\n# Fannabe Generate\n\nCreate AI-character images, videos, and voice from the terminal. This skill drives the `fannabe` CLI, which talks to the Fannabe API and spends the signed-in user's credits.\n\n## Step 0 — Bootstrap (before anything else)\n\n1. If `fannabe` is not on `$PATH`, install it:\n   ```bash\n   npm install -g @fannabe/cli\n   ```\n2. If a command fails with a \"Not logged in\" / 401 error, ask the user to run `fannabe auth login` (opens a browser) and wait for confirmation. The token is cached in `~/.fannabe`.\n\nEvery command supports `--help`, and output is plain text meant to be parsed.\n\n## Core workflow\n\n```bash\nfannabe characters list                       # pick a character (id, name, appearance)\nfannabe models list --media-type image        # pick a model (first column is the id)\nfannabe models schema <modelId>               # discover that model's fields + source slots\nfannabe generate create <modelId> \\\n  --character <characterId> --media-type image \\\n  --prompt \"golden hour rooftop portrait, cinematic\" \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output                  # prints cost, blocks until done, saves the file\n```\n\n- Match the user's wording to a character with `fannabe characters list --search \"<text>\"` (matches name and appearance, e.g. \"redhead\").\n- Set any model field with repeatable `--set key=value` (see `models schema <id>`), or a full `--settings '<json>'`.\n- Preview spend first with `fannabe generate cost <modelId> --media-type image --character <id> --set resolution=1k`.\n\n## When the user describes an outfit or scene in plain words\n\nPrefer the curated Theme/Outfit presets over a long hand-written prompt. See [references/easy-mode.md](references/easy-mode.md).\n\n## Image-to-video, edits, motion control, character swap\n\nThese attach source media to model slots. The two id kinds are NOT interchangeable. See [references/source-media.md](references/source-media.md).\n\n## Prompt assistance\n\n`fannabe prompt improve|ai-edit|from-image`, or inline `--enhance-prompt` / `--from-image` / `--ai-edit`. See [references/prompt-tools.md](references/prompt-tools.md).\n\n## Async jobs and downloads\n\n```bash\nfannabe jobs list --ongoing\nfannabe jobs wait <taskId> --timeout 15m\nfannabe jobs download <taskId> --output ./output/result.mp4\nfannabe caption-on-video <videoContentId> --text \"...\" --character <id>\nfannabe video frame <videoContentIdOrFile> --time 1.5 --upload   # still frame -> imageId\n```\n\n## Costs and account\n\nPriced in Fannabe credits, identical to the web studio. `fannabe account` shows the balance.\n\n## References (read as needed)\n\n- [references/models.md](references/models.md) — choosing a model per media type\n- [references/easy-mode.md](references/easy-mode.md) — Theme/Outfit presets\n- [references/source-media.md](references/source-media.md) — source slots, the two id kinds, motion control, character swap\n- [references/prompt-tools.md](references/prompt-tools.md) — prompt improve / AI edit / from-image\n- [references/troubleshooting.md](references/troubleshooting.md) — auth, environments, common errors\n\n## Rules for agents\n\n- Generation is async: only completed jobs have downloadable media; use `--wait` or `jobs wait`.\n- Never guess model fields — read `models schema <id>` and `--help`.\n- The estimated cost prints before every generation; surface it to the user for anything non-trivial.\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn77p1ycdwdfkpw3bs6nn8yr718a3gpf\",\n  \"slug\": \"fannabe-generate\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1783450716632\n}\n\nFile v0.1.0:references/easy-mode.md\n\n# Easy mode: Theme and Outfit presets\n\nWhen the user describes a location or outfit in plain words (a cafe, goth clothes, the gym, the beach), prefer the curated presets over a long hand-written prompt. They are platform-tuned and generally produce better results.\n\n```bash\nfannabe models options --filter topic  --media-type image   # Themes (e.g. mirror-selfie, dubai)\nfannabe models options --filter outfit --media-type image   # Outfits (e.g. casual, gym)\n\nfannabe generate create <modelId> \\\n  --character <characterId> --media-type image --concept-type single-image \\\n  --set locationPrompt=<themeId> --set outfitPrompt=<outfitId> \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output\n```\n\nUsing a `locationPrompt` or `outfitPrompt` automatically switches the request to simple mode so the preset actually applies. The ids come from the `models options` listing.\n\nFile v0.1.0:references/models.md\n\n# Choosing a model\n\nList models per media type, then read the chosen model's schema before generating.\n\n```bash\nfannabe models list --media-type image      # image | video | audio | lip-sync\nfannabe models schema <modelId>             # exact fields, defaults, and source slots\n```\n\n- The first column of `models list` is the model id you pass to `generate create`.\n- Model ids are a stable public contract (e.g. `nano-banana-2-single-image`, `kling-2-6-motion-control`); prefer them over guessing.\n- `models schema <id> --concept-type <type>` shows fields for a specific concept (e.g. `single-image`, `carousel`, `video-from-image`, `talking-video`). `--simple` shows the simple-mode fields.\n- `economyMode` (a `--set economyMode=true` flag on supported models) trades priority for a lower price.\n\nPass `--concept-type <type>` on `generate create` so the request runs the intended concept rather than a generic default.\n\nFile v0.1.0:references/prompt-tools.md\n\n# Prompt assistance\n\nThe same assist features as the studio's prompt box, usable standalone or inline on a generation.\n\n## Standalone\n\n```bash\nfannabe prompt improve \"girl on a beach\" --media-type image --workflow <modelId>\nfannabe prompt ai-edit \"make it nighttime\" --prompt \"girl on a beach\" --media-type image\nfannabe prompt from-image ./inspo.jpg                  # describe a photo as a prompt\nfannabe prompt tools list                              # JSON Prompt Generator, Video Prompter, ...\nfannabe prompt tools run <toolId> \"a beach scene\"\n```\n\n## Inline on `generate create`\n\n- `--enhance-prompt` — LLM rewrite/expansion pass (expert mode)\n- `--from-image <path-or-url>` — derive the prompt from a photo via vision\n- `--ai-edit \"<instruction>\"` — rewrite the current prompt per an instruction\n\nThey compose in that order: from-image, then prompt, then ai-edit.\n\nFile v0.1.0:references/source-media.md\n\n# Source media: image-to-video, edits, motion control, character swap\n\nMany workflows attach existing media to a model's input slots via repeatable `--source inputKey=mediaId`. Discover the slots with `fannabe models schema <modelId>` (the \"Source media\" section lists each slot's inputKey).\n\n## Two id kinds, never interchangeable\n\n- **Content id** (the `ID` column): downloads and video tools (`content download`, `caption-on-video`).\n- **Media id** (the `Media ID (--source)` column, or an upload's `imageId`/`videoId`/`audioId`): `--source` slots on generation.\n\n```bash\nfannabe characters gallery <characterId> --media-type image   # shows both id columns\nfannabe uploads image ./scene.png                             # prints contentId AND imageId\n```\n\n## Image-to-video\n\n```bash\nfannabe generate create seedance-1-5-pro \\\n  --character <characterId> --media-type video --concept-type video-from-image \\\n  --source image-1=<mediaId> \\\n  --prompt \"she sips her coffee and smiles\" \\\n  --set duration=5 --set resolution=720p \\\n  --wait --wait-timeout 15m --download ./output\n```\n\n## Motion control (transfer a clip's movement onto a character still)\n\n```bash\nfannabe generate create kling-2-6-motion-control \\\n  --character <characterId> --media-type video \\\n  --source video-1=<motionVideoMediaId> \\\n  --source image-1=<characterImageMediaId> \\\n  --set resolution=1080p --set keepOriginalSound=true \\\n  --wait --wait-timeout 15m --download ./output\n```\n\nOutput length follows the motion clip (3-30s) and cost is priced per second. Need a character still that matches the clip's framing? `fannabe video frame <videoContentIdOrFile> --time 1.5 --upload` extracts a frame and returns an `imageId` ready for `image-1`.\n\n## Character swap\n\nThe `character-ref` slot is auto-filled from the character's stored default swap image; the scene-ref must be an account-level uploaded image (`fannabe uploads image ...`, then its `imageId`). Read `models schema <swapModelId>` for the exact slot keys.\n\nFile v0.1.0:references/troubleshooting.md\n\n# Troubleshooting\n\n## \"Not logged in\" / 401\nAsk the user to run `fannabe auth login` (opens a browser) and confirm when done. The token caches in `~/.fannabe`.\n\n## Insufficient credits\n`fannabe account` shows the balance. Every generation prints its estimated cost first; preview with `fannabe generate cost <modelId> ...` before spending.\n\n## A job \"failed\" with no output\nOnly completed jobs have downloadable media. Inspect with `fannabe jobs get <taskId>`; failed jobs carry an error message and refund credits automatically.\n\n## Wrong id used on `--source`\n`--source` needs the Media id (the `Media ID (--source)` column), not the Content id. See source-media.md.\n\n## Non-production environments\nPoint at staging/dev with `FANNABE_API_URL=<url>` and keep its login separate with `FANNABE_CONFIG_DIR=~/.fannabe-staging` (both env vars). A token minted against one environment will 401 on another.\n\n## Model field rejected\nRead `fannabe models schema <modelId>` for the exact fields and whether they are simple-mode or expert-mode; do not guess.\n\nFile v0.1.0:skill-card.md\n\n## Description: <br>\nGenerate images, videos, and voice for AI characters via the Fannabe CLI. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[fannabe](https://clawhub.ai/user/fannabe) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nAgents and users use this skill to guide Fannabe CLI workflows for character media generation, including choosing models, attaching source media, previewing credit spend, waiting for async jobs, and downloading completed renders. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Using the skill may require installing the Fannabe CLI globally and caching a Fannabe login token locally. <br>\nMitigation: Install the CLI only when acceptable for the environment, use `fannabe auth login` only when needed, and protect the local Fannabe token cache. <br>\nRisk: Generation requests can upload source media to Fannabe and download generated content to local paths. <br>\nMitigation: Confirm the media is appropriate to upload, inspect model source slots before use, and choose download paths intentionally. <br>\nRisk: Generation spends Fannabe credits from the signed-in account. <br>\nMitigation: Surface the estimated cost before non-trivial generation, use `fannabe generate cost` when planning, and check the account balance with `fannabe account`. <br>\n\n\n## Reference(s): <br>\n- [Fannabe Generate on ClawHub](https://clawhub.ai/fannabe/skills/fannabe-generate) <br>\n- [Fannabe](https://www.fannabe.com) <br>\n- [Choosing a model](references/models.md) <br>\n- [Easy mode: Theme and Outfit presets](references/easy-mode.md) <br>\n- [Source media: image-to-video, edits, motion control, character swap](references/source-media.md) <br>\n- [Prompt assistance](references/prompt-tools.md) <br>\n- [Troubleshooting](references/troubleshooting.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, shell commands, configuration] <br>\n**Output Format:** [Markdown with inline bash code blocks] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May guide commands that upload source media, spend Fannabe credits, wait for async jobs, and download generated media files.] <br>\n\n## Skill Version(s): <br>\n0.1.0 (source: SKILL.md frontmatter and server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: Fannabe Generate Owner: fannabe Summary: Generate images, videos, and voice for your AI models via Fannabe. Use when: \"generate an image\", \"make a video of my model\", \"animate this photo\", \"image-to... Tags: latest:0.1.5 Version history: v0.1.5 | 2026-07-09T10:56:55.605Z | user Renamed --character flag to --model (matches the CLI/MCP's persona=model, engine=ai terminology). Added a 'Concepts: model vs AI' glos","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"npm install -g @fannabe/cli"},{"language":"bash","snippet":"fannabe models list                           # pick a model (id, name, appearance)\nfannabe ai list --media-type image            # pick an AI (first column is the id)\nfannabe ai schema <aiId>                       # discover that AI's fields + source slots\nfannabe generate create <aiId> \\\n  --model <modelId> --media-type image \\\n  --prompt \"golden hour rooftop portrait, cinematic\" \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output                  # prints cost, blocks until done, saves the file"},{"language":"bash","snippet":"fannabe jobs list --ongoing\nfannabe jobs wait <taskId> --timeout 15m\nfannabe jobs download <taskId> --output ./output/result.mp4\nfannabe caption-on-video <videoContentId> --text \"...\" --model <modelId>\nfannabe video frame <videoContentIdOrFile> --time 1.5 --upload   # still frame -> imageId"},{"language":"bash","snippet":"fannabe ai list --media-type image      # image | video | audio | lip-sync\nfannabe ai schema <aiId>                # exact fields, defaults, and source slots"},{"language":"bash","snippet":"fannabe ai options --filter topic  --media-type image   # Themes (e.g. mirror-selfie, dubai)\nfannabe ai options --filter outfit --media-type image   # Outfits (e.g. casual, gym)\n\nfannabe generate create <aiId> \\\n  --model <modelId> --media-type image --concept-type single-image \\\n  --set locationPrompt=<themeId> --set outfitPrompt=<outfitId> \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output"},{"language":"bash","snippet":"fannabe prompt improve \"girl on a beach\" --media-type image --workflow <aiId>\nfannabe prompt ai-edit \"make it nighttime\" --prompt \"girl on a beach\" --media-type image\nfannabe prompt from-image ./inspo.jpg                  # describe a photo as a prompt\nfannabe prompt tools list                              # JSON Prompt Generator, Video Prompter, ...\nfannabe prompt tools run <toolId> \"a beach scene\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nversion: 0.1.5\nname: fannabe-generate\ndescription: |\n  Generate images, videos, and voice for your AI models via Fannabe.\n  Use when: \"generate an image\", \"make a video of my model\",\n  \"animate this photo\", \"image-to-video\", \"motion control / transfer this\n  dance onto my model\", \"character swap\", \"edit/restyle this image\",\n  \"caption this video\", \"improve/rewrite this prompt\", \"describe this photo\n  as a prompt\", \"show my gallery\", \"download my latest render\", or\n  \"how many credits do I have\". Wraps the `fannabe` CLI, which runs the same\n  AI engines, settings, and credit pricing as the Fannabe web studio.\n  NOT for: training new models (done in the web studio), or non-Fannabe\n  providers.\nargument-hint: \"[what-to-generate] [--model <name-or-id>] [--ai <id>]\"\nhomepage: https://www.fannabe.com\nallowed-tools: Bash\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"requires\": { \"bins\": [\"node\"] }\n      }\n  }\n---\n\n# Fannabe Generate\n\nCreate AI-model images, videos, and voice from the terminal. This skill drives the `fannabe` CLI, which talks to the Fannabe API and spends the signed-in user's credits.\n\n## Step 0 — Bootstrap (before anything else)\n\n1. If `fannabe` is not on `$PATH`, install it:\n   ```bash\n   npm install -g @fannabe/cli\n   ```\n2. If a command fails with a \"Not logged in\" / 401 error, ask the user to run `fannabe auth login` (opens a browser) and wait for confirmation. The token is cached in `~/.fannabe`.\n\nEvery command supports `--help`, and output is plain text meant to be parsed.\n\n## Concepts: model vs. AI\n\nTwo different things are both called \"model\" colloquially:\n\n- **Model** (`fannabe models`, `--model <modelId>`): the user's own AI persona — who the content is of.\n- **AI** (`fannabe ai`, an `<aiId>` like `nano-banana-2-single-image`): the generation engine that renders it — what renders it.\n\nEvery `generate create` call takes both.\n\n## Core workflow\n\n```bash\nfannabe models list                           # pick a model (id, name, appearance)\nfannabe ai list --media-type image            # pick an AI (first column is the id)\nfannabe ai schema <aiId>                       # discover that AI's fields + source slots\nfannabe generate create <aiId> \\\n  --model <modelId> --media-type image \\\n  --prompt \"golden hour rooftop portrait, cinematic\" \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output                  # prints cost, blocks until done, saves the file\n```\n\n- Match the user's wording to a model with `fannabe models list --search \"<text>\"` (matches name and appearance, e.g. \"redhead\").\n- Set any AI field with repeatable `--set key=value` (see `ai schema <aiId>`), or a full `--settings '<json>'`.\n- Preview spend first with `fannabe generate cost <aiId> --media-type image --model <modelId> --set resolution=1k`.\n\n## When the user describes an outfit or scene in plain words\n\nPrefer the curated Theme/Outfit presets over a long hand-written prompt. See [references/easy-mode.md](references/easy-mode.md).\n\n## Ima"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn77p1ycdwdfkpw3bs6nn8yr718a3gpf\",\n  \"slug\": \"fannabe-generate\",\n  \"version\": \"0.1.5\",\n  \"publishedAt\": 1783594615605\n}"},{"path":"references/ai.md","content":"# Choosing an AI\n\nList AI engines per media type, then read the chosen AI's schema before generating.\n\n```bash\nfannabe ai list --media-type image      # image | video | audio | lip-sync\nfannabe ai schema <aiId>                # exact fields, defaults, and source slots\n```\n\n- The first column of `ai list` is the AI id you pass to `generate create`.\n- AI ids are a stable public contract (e.g. `nano-banana-2-single-image`, `kling-2-6-motion-control`); prefer them over guessing.\n- `ai schema <aiId> --concept-type <type>` shows fields for a specific concept (e.g. `single-image`, `carousel`, `video-from-image`, `talking-video`). `--simple` shows the simple-mode fields.\n- `economyMode` (a `--set economyMode=true` flag on supported AI) trades priority for a lower price.\n\nPass `--concept-type <type>` on `generate create` so the request runs the intended concept rather than a generic default."},{"path":"references/easy-mode.md","content":"# Easy mode: Theme and Outfit presets\n\nWhen the user describes a location or outfit in plain words (a cafe, goth clothes, the gym, the beach), prefer the curated presets over a long hand-written prompt. They are platform-tuned and generally produce better results.\n\n```bash\nfannabe ai options --filter topic  --media-type image   # Themes (e.g. mirror-selfie, dubai)\nfannabe ai options --filter outfit --media-type image   # Outfits (e.g. casual, gym)\n\nfannabe generate create <aiId> \\\n  --model <modelId> --media-type image --concept-type single-image \\\n  --set locationPrompt=<themeId> --set outfitPrompt=<outfitId> \\\n  --set aspectRatio=9:16 --set resolution=1k \\\n  --wait --download ./output\n```\n\nUsing a `locationPrompt` or `outfitPrompt` automatically switches the request to simple mode so the preset actually applies. The ids come from the `ai options` listing."},{"path":"references/prompt-tools.md","content":"# Prompt assistance\n\nThe same assist features as the studio's prompt box, usable standalone or inline on a generation.\n\n## Standalone\n\n```bash\nfannabe prompt improve \"girl on a beach\" --media-type image --workflow <aiId>\nfannabe prompt ai-edit \"make it nighttime\" --prompt \"girl on a beach\" --media-type image\nfannabe prompt from-image ./inspo.jpg                  # describe a photo as a prompt\nfannabe prompt tools list                              # JSON Prompt Generator, Video Prompter, ...\nfannabe prompt tools run <toolId> \"a beach scene\"\n```\n\n## Inline on `generate create`\n\n- `--enhance-prompt` — LLM rewrite/expansion pass (expert mode)\n- `--from-image <path-or-url>` — derive the prompt from a photo via vision\n- `--ai-edit \"<instruction>\"` — rewrite the current prompt per an instruction\n\nThey compose in that order: from-image, then prompt, then ai-edit."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Generate images, videos, and voice for your AI models via Fannabe. Use when: \"generate an image\", \"make a video of my model\", \"animate this photo\", \"image-to... Skill: Fannabe Generate Owner: fannabe Summary: Generate images, videos, and voice for your AI models via Fannabe. Use when: \"generate an image\", \"make a video of my model\", \"animate this photo\", \"image-to... Tags: latest:0.1.5 Version history: v0.1.5 | 2026-07-09T10:56:55.605Z | user Renamed --character flag to --model (matches the CLI/MCP's persona=model, engine=ai terminology). Added a 'Concepts: model vs AI' glos","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1074,"uniquenessScore":51,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-12T00:17:50.203Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-12T00:17:50.203Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-13T19:56:53.439Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}