{"id":"9f73d100-b637-4a95-b772-73a960feae52","entityType":"agent","slug":"clawhub-allenfancy-gan-ima-image-ai","name":"IMA AI Image Generator & Photo Generator — Poster, Thumbnail, Logo, Art, Illustration, Product & Social Media Graphic Design","canonicalUrl":"https://www.xpersona.co/agent/clawhub-allenfancy-gan-ima-image-ai","canonicalPath":"/agent/clawhub-allenfancy-gan-ima-image-ai","generatedAt":"2026-10-10T02:07:38.839Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T17:54:25.384Z","emptyReason":null},"description":"Use when the user needs image generation or image transformation through the IMA Open API, including text-to-image, image-to-image, style transfer, or refere...","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.2K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17etzvvhp65ybcxjyj408z1nx83hx8t:ima-image-ai","sourceUrl":"https://clawhub.ai/allenfancy-gan/ima-image-ai","homepage":"https://clawhub.ai/allenfancy-gan/skills/ima-image-ai","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/allenfancy-gan/ima-image-ai","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/allenfancy-gan/skills/ima-image-ai","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":58,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"IMA AI Image Generator & Photo Generator — Poster, Thumbnail, Logo, Art, Illustration, Product & Social Media Graphic Design technical dossier on Xpersona with "},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T17:54:25.384Z","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-09T17:54:25.384Z","emptyReason":null},"stars":null,"forks":null,"downloads":2173,"packageName":null,"latestVersion":"1.0.14","tractionLabel":"2.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T17:54:25.383Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T17:54:25.384Z","lastCrawledAt":"2026-10-09T17:54:25.383Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T17:54:25.383Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.14","createdAt":"2026-04-23T03:32:33.672Z","changelog":"- Added compiled Python bytecode files (`.pyc`) for core runtime, adapters, capabilities, and shared modules. - Bundled prebuilt cache for CLI, setup, doctor, image capability execution, and shared utilities. - No changes to documentation or configuration files. - No functional code updates; this version introduces only precompiled assets for runtime modules.","fileCount":57,"zipByteSize":60960},{"version":"1.0.13","createdAt":"2026-04-14T04:23:52.837Z","changelog":"- Overhauled codebase with new modular structure and image-aware capability layer. - Added 48 files, including detailed operator and API documentation, scenario guides, catalog-aware model selection, and troubleshooting references. - Introduced new runtime scripts and CLI with setup, doctor, catalog, and task routing flow. - Removed legacy scripts and changelog. - All model selection and image runtime logic now routes through live product catalog for real-time defaults and consistency. - Documentation rewritten for clarity, first-use onboarding, and advanced configuration.","fileCount":56,"zipByteSize":57769},{"version":"1.0.12","createdAt":"2026-03-30T07:33:30.548Z","changelog":"No user-facing changes in this release. - Version bump only; no content or code updates detected.","fileCount":10,"zipByteSize":37177},{"version":"1.0.11","createdAt":"2026-03-30T07:25:20.614Z","changelog":"No file changes detected. No user-visible changes in this version.","fileCount":10,"zipByteSize":37137},{"version":"1.0.10","createdAt":"2026-03-30T06:24:20.436Z","changelog":"No detectable file changes or feature updates in this version. - No functional or documentation changes from previous release. - Version number incremented only; all behaviors and instructions unchanged.","fileCount":10,"zipByteSize":36895},{"version":"1.0.9","createdAt":"2026-03-27T10:24:50.339Z","changelog":"Version 1.0.9 - Added SKILL-DETAIL.md for detailed API documentation, usage, and guidance. - No changes to code; this is a documentation supplement release. - All functionality and core instructions remain unchanged.","fileCount":10,"zipByteSize":34744},{"version":"1.0.8","createdAt":"2026-03-27T08:14:23.865Z","changelog":"- Added new !keywords.txt file to the project. - Enhanced discoverability with expanded keywords and synonyms, covering model names and generative tasks (e.g., seedream, nano banana, t2i, i2i, AI art, MJ). - No functional or interface changes; skill usage remains the same.","fileCount":9,"zipByteSize":50462},{"version":"1.0.7","createdAt":"2026-03-17T18:18:56.668Z","changelog":"- Added a SECURITY.md file to establish security policies and reporting guidelines. - Updated documentation to clarify that ima-knowledge-ai is now an optional enhancement; the skill works standalone but will utilize ima-knowledge-ai if available. - Expanded environment variable, credential, and persistence notes in the SKILL.md to document required API keys and local data handling. - No code or functionality changes to image generation logic.","fileCount":8,"zipByteSize":48341}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17etzvvhp65ybcxjyj408z1nx83hx8t:ima-image-ai","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17etzvvhp65ybcxjyj408z1nx83hx8t:ima-image-ai` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/allenfancy-gan/ima-image-ai before using production credentials."],"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-allenfancy-gan-ima-image-ai/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-allenfancy-gan-ima-image-ai/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-allenfancy-gan-ima-image-ai/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-allenfancy-gan-ima-image-ai/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-allenfancy-gan-ima-image-ai/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-allenfancy-gan-ima-image-ai/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-10T02:07:38.836Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-allenfancy-gan-ima-image-ai/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-allenfancy-gan-ima-image-ai/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-allenfancy-gan-ima-image-ai/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-allenfancy-gan-ima-image-ai/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":"medium","updatedAt":"2026-10-09T17:54:25.384Z","emptyReason":null},"readme":"Skill: IMA AI Image Generator & Photo Generator — Poster, Thumbnail, Logo, Art, Illustration, Product & Social Media Graphic Design\n\nOwner: allenfancy-gan\n\nSummary: Use when the user needs image generation or image transformation through the IMA Open API, including text-to-image, image-to-image, style transfer, or refere...\n\nTags: latest:1.0.14\n\nVersion history:\n\nv1.0.14 | 2026-04-23T03:32:33.672Z | user\n\n- Added compiled Python bytecode files (`.pyc`) for core runtime, adapters, capabilities, and shared modules.\n- Bundled prebuilt cache for CLI, setup, doctor, image capability execution, and shared utilities.\n- No changes to documentation or configuration files.\n- No functional code updates; this version introduces only precompiled assets for runtime modules.\n\nv1.0.13 | 2026-04-14T04:23:52.837Z | user\n\n- Overhauled codebase with new modular structure and image-aware capability layer.\n- Added 48 files, including detailed operator and API documentation, scenario guides, catalog-aware model selection, and troubleshooting references.\n- Introduced new runtime scripts and CLI with setup, doctor, catalog, and task routing flow.\n- Removed legacy scripts and changelog.\n- All model selection and image runtime logic now routes through live product catalog for real-time defaults and consistency.\n- Documentation rewritten for clarity, first-use onboarding, and advanced configuration.\n\nv1.0.12 | 2026-03-30T07:33:30.548Z | user\n\nNo user-facing changes in this release.\n\n- Version bump only; no content or code updates detected.\n\nv1.0.11 | 2026-03-30T07:25:20.614Z | user\n\nNo file changes detected. No user-visible changes in this version.\n\nv1.0.10 | 2026-03-30T06:24:20.436Z | user\n\nNo detectable file changes or feature updates in this version.\n\n- No functional or documentation changes from previous release.\n- Version number incremented only; all behaviors and instructions unchanged.\n\nv1.0.9 | 2026-03-27T10:24:50.339Z | user\n\nVersion 1.0.9\n\n- Added SKILL-DETAIL.md for detailed API documentation, usage, and guidance.\n- No changes to code; this is a documentation supplement release.\n- All functionality and core instructions remain unchanged.\n\nv1.0.8 | 2026-03-27T08:14:23.865Z | user\n\n- Added new !keywords.txt file to the project.\n- Enhanced discoverability with expanded keywords and synonyms, covering model names and generative tasks (e.g., seedream, nano banana, t2i, i2i, AI art, MJ).\n- No functional or interface changes; skill usage remains the same.\n\nv1.0.7 | 2026-03-17T18:18:56.668Z | user\n\n- Added a SECURITY.md file to establish security policies and reporting guidelines.\n- Updated documentation to clarify that ima-knowledge-ai is now an optional enhancement; the skill works standalone but will utilize ima-knowledge-ai if available.\n- Expanded environment variable, credential, and persistence notes in the SKILL.md to document required API keys and local data handling.\n- No code or functionality changes to image generation logic.\n\nv1.0.6 | 2026-03-17T17:41:08.330Z | user\n\nIMA Image AI 1.0.6 Changelog\n\n- Added .gitignore file to the repository.\n- No user-facing changes to code or documentation in this version.\n\nv1.0.5 | 2026-03-12T16:11:46.760Z | user\n\nima-image-ai 1.0.5\n\n- Added initial CHANGELOG_CLAWHUB.md for official changelog tracking.\n- Added clawhub.json for Clawhub integration and metadata.\n\nv1.0.4 | 2026-03-10T16:35:36.942Z | user\n\nNo changes detected in this version (1.0.4).\n\n- No file changes or updates were made from the previous release.\n- Skill version remains unchanged; all features and behaviors remain the same.\n\nv1.0.3 | 2026-03-06T16:51:47.787Z | user\n\nIMA Studio Image Generation v1.0.3\n\n- Refactored documentation to rely on an external knowledge base (\"ima-knowledge-ai\") for workflow, visual consistency, and best practices; now highlights correct model/parameter selection even if ima-knowledge-ai is not installed.\n- Added detailed user input parsing tables to ensure consistent extraction of task type, model, and parameters from user language, including normalization rules for supported models and sizes.\n- Updated model list and instructions for intelligent automatic model selection, covering SeeDream 4.5, Midjourney, Nano Banana 2, and Nano Banana Pro.\n- Streamlined and clarified the user experience protocol for messaging platforms. Kept acknowledgment, progress, and result delivery unchanged.\n- Removed redundant/instructional files: CHANGELOG_CLAWHUB.md, INSTALL.md, README.md, SECURITY.md, and clawhub.json. \n\nThis version is a major documentation/UX update with no core functionality change.\n\nv1.0.2 | 2026-03-03T14:27:41.697Z | auto\n\nIMA Image AI 1.0.2 → 1.0.3\n\n- Added mandatory pre-check for visual consistency: Must read ima-knowledge-ai/visual-consistency.md and check if image-to-image is needed for \"series\"/\"same character\" tasks before generating.\n- Updated SKILL.md with step-by-step instructions to enforce knowledge base guidance and correct usage for repeated/series/character prompts.\n- Improved skill description to warn users to consult ima-knowledge-ai for best practices.\n- No changes to user-facing generation protocol or model options.\n\nv1.0.1 | 2026-02-28T17:41:25.835Z | user\n\n- Removed script file scripts/ima_image_create.py.\n- Added compiled Python cache file scripts/__pycache__/ima_logger.cpython-314.pyc.\n- No functional or user-facing changes documented in SKILL.md or description.\n- Version number in SKILL.md remains at 1.0.2 (no update needed).\n\nv1.0.0 | 2026-02-28T07:28:13.501Z | user\n\nIMA Studio Image Generation 1.0.2 introduces detailed user experience guidance and default model selection rules.\n\n- Added clear, step-by-step IM/Discord user experience protocol with acknowledgment, progress, and results.\n- Default model: SeeDream 4.5 (latest and most popular), with options for premium, budget, and Midjourney models; clear recommendation logic.\n- New: Always send initial friendly acknowledgment reply before any update.\n- Enhanced captions: Show original image URL for easy sharing.\n- Transparent cost, timing, and status communication—users see credits, estimated/real time, and model used.\n- Improved error handling: No technical language; all errors shown in plain language with retry suggestions.\n\nArchive index:\n\nArchive v1.0.14: 57 files, 60960 bytes\n\nFiles: _meta.json (132b), !keywords.txt (11495b), capabilities/image/CAPABILITY.md (636b), capabilities/image/references/models.md (356b), capabilities/image/references/parameter-tuning.md (4942b), capabilities/image/references/params.md (902b), capabilities/image/references/routing.md (372b), capabilities/image/references/scenarios.md (3057b), clawhub.json (6685b), README.md (4130b), references/gateway/entry-and-routing.md (574b), references/gateway/workflow-confirmation.md (384b), references/operations/api-contract-and-errors.md (542b), references/operations/e2e-smoke-playbook.md (1434b), references/operations/troubleshooting.md (4370b), references/README.md (1225b), references/shared/catalog-aware-selection.md (7775b), references/shared/error-policy.md (592b), references/shared/model-selection-policy.md (1661b), references/shared/security-and-network.md (414b), requirements.txt (111b), scripts/ima_logger.py (3510b), scripts/ima_runtime_cli.py (555b), scripts/ima_runtime_doctor.py (561b), scripts/ima_runtime_setup.py (156b), scripts/ima_runtime/__init__.py (34b), scripts/ima_runtime/adapters/__init__.py (33b), scripts/ima_runtime/adapters/cli_presenter.py (877b), scripts/ima_runtime/capabilities/__init__.py (29b), scripts/ima_runtime/capabilities/image/__init__.py (33b), scripts/ima_runtime/capabilities/image/executor.py (2880b), scripts/ima_runtime/capabilities/image/models.py (953b), scripts/ima_runtime/capabilities/image/params.py (3875b), scripts/ima_runtime/capabilities/image/routes.py (1822b), scripts/ima_runtime/cli_flow.py (16462b), scripts/ima_runtime/cli_parser.py (2085b), scripts/ima_runtime/doctor.py (7989b), scripts/ima_runtime/gateway/__init__.py (63b), scripts/ima_runtime/gateway/planner.py (767b), scripts/ima_runtime/gateway/router.py (489b), scripts/ima_runtime/setup.py (4912b), scripts/ima_runtime/shared/__init__.py (31b), scripts/ima_runtime/shared/catalog.py (10372b), scripts/ima_runtime/shared/client.py (7211b), scripts/ima_runtime/shared/config.py (1905b), scripts/ima_runtime/shared/errors.py (6722b), scripts/ima_runtime/shared/inputs.py (2041b), scripts/ima_runtime/shared/output_validation.py (4267b), scripts/ima_runtime/shared/prefs.py (1130b), scripts/ima_runtime/shared/types.py (2334b), scripts/ima_runtime/workflow/__init__.py (44b), scripts/ima_runtime/workflow/confirmation.py (180b), scripts/ima_runtime/workflow/coordinator.py (370b), SECURITY.md (1460b), skill-card.md (2662b), SKILL-DETAIL.md (1045b), SKILL.md (4036b)\n\nFile v1.0.14:SKILL.md\n\n---\nname: \"IMA Image Generator\"\nversion: 1.0.8\ncategory: file-generation\nauthor: IMA Studio (imastudio.com)\nkeywords: imastudio, AI image generator, image generator, AI photo generator, product photo, poster generator, thumbnail generator, logo generator, AI art generator, illustration, graphic design, social media image, text to image, image to image\nargument-hint: \"[text prompt or image URL]\"\ndescription: >\n  Use when the user needs image generation or image transformation through the IMA Open API,\n  including text-to-image, image-to-image, style transfer, or reference-image continuity, and\n  the agent should use the setup, doctor, and live-catalog-aware runtime in this repo.\nrequires:\n  env:\n    - IMA_API_KEY\n  runtime:\n    - python3\n  packages:\n    - requests\n  primaryCredential: IMA_API_KEY\n  credentialNote: \"IMA_API_KEY is required at runtime. It is sent to api.imastudio.com and, for local image uploads, to imapi.liveme.com.\"\nmetadata:\n  openclaw:\n    primaryEnv: IMA_API_KEY\n    homepage: https://www.imaclaw.ai\n    requires:\n      bins:\n        - python3\n      env:\n        - IMA_API_KEY\npersistence:\n  readWrite:\n    - ~/.openclaw/memory/ima_prefs.json\n    - ~/.openclaw/logs/ima_skills/\ninstructionScope:\n  crossSkillReadOptional:\n    - ~/.openclaw/skills/ima-knowledge-ai/references/*\n---\n\n# IMA Image AI\n\n## When To Use\n\nUse this repository when the user wants an image output:\n\n- text-to-image\n- image-to-image\n- style transfer\n- continuity via reference image\n\nThis repo is image-only. Do not route video generation, audio generation, or non-image tasks here.\n\n## Gateway Contract\n\n- New-machine bootstrap entrypoint: `python3 scripts/ima_runtime_setup.py`\n- Environment/self-check entrypoint: `python3 scripts/ima_runtime_doctor.py`\n- The official CLI entrypoint is `python3 scripts/ima_runtime_cli.py ...`.\n- Always query the live product list before task creation so `attribute_id`, `credit`, `model_version`, and defaults come from the current catalog.\n- Return remote HTTPS image URLs; do not download results into local attachments for the user.\n- Route requests through the image capability so `text_to_image` and `image_to_image` are classified before execution.\n- If `--model-id` is omitted, the runtime uses the recommended default model for that task type.\n- Auto-selected defaults are operational fallbacks, not persisted user preferences.\n\n## Quick Start\n\n- Minimal path:\n  1. `python3 scripts/ima_runtime_setup.py --install`\n  2. `export IMA_API_KEY=\"ima_your_key_here\"`\n  3. `python3 scripts/ima_runtime_cli.py --task-type text_to_image --prompt \"a cinematic mountain sunset\" --output-json`\n- Use `python3 scripts/ima_runtime_doctor.py --output-json` when setup passes but runtime or catalog access still fails.\n\n## Operator References\n\n- `README.md` covers first-use paths and canonical entry commands.\n- `references/shared/catalog-aware-selection.md` defines the formal live-catalog-aware model-selection contract.\n- `references/operations/troubleshooting.md` covers common failure recovery.\n- `capabilities/image/references/parameter-tuning.md` covers `size`, `aspect_ratio`, and `n` usage.\n- `capabilities/image/references/scenarios.md` covers prompt-only and reference-image examples.\n\n## Read Order\n\n1. `references/README.md`\n2. `references/gateway/entry-and-routing.md`\n3. `references/gateway/workflow-confirmation.md`\n4. `references/shared/model-selection-policy.md`\n5. `references/shared/catalog-aware-selection.md`\n6. `references/shared/error-policy.md`\n7. `references/shared/security-and-network.md`\n8. `references/operations/troubleshooting.md`\n9. `capabilities/image/CAPABILITY.md`\n10. `capabilities/image/references/parameter-tuning.md`\n11. `capabilities/image/references/scenarios.md`\n\n## Boundary\n\n- `references/gateway/*` covers entry, routing, and clarification seams.\n- `references/shared/*` covers rules reused across the runtime.\n- `capabilities/image/*` owns image-specific behavior.\n- `_meta.json` and `clawhub.json` are metadata inputs, not the primary narrative docs.\n\nFile v1.0.14:README.md\n\n# IMA Image AI\n\nOfficial runtime for IMA image generation.\n\nUse it for:\n\n- `text_to_image`\n- `image_to_image`\n- style transfer\n- reference-image continuity\n\n## Quick Start\n\n### Minimal Path (3 Steps)\n\n```bash\npython3 scripts/ima_runtime_setup.py --install\n```\n\n```bash\nexport IMA_API_KEY=\"ima_your_key_here\"\n```\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --prompt \"a cinematic mountain sunset\" \\\n  --output-json\n```\n\nIf you want to verify the environment before the first generation:\n\n```bash\npython3 scripts/ima_runtime_doctor.py --output-json\n```\n\n### Full Bootstrap Flow\n\n1. Run bootstrap/setup:\n\n```bash\npython3 scripts/ima_runtime_setup.py\n```\n\nIf dependencies are missing, rerun with:\n\n```bash\npython3 scripts/ima_runtime_setup.py --install\n```\n\n2. Set your API key:\n\n```bash\nexport IMA_API_KEY=\"ima_your_key_here\"\n```\n\nThen rerun setup to verify the local environment:\n\n```bash\npython3 scripts/ima_runtime_setup.py\n```\n\n3. Run the self-check when you want API/catalog diagnostics:\n\n```bash\npython3 scripts/ima_runtime_doctor.py --output-json\n```\n\n## Typical First-Use Scenarios\n\n### 1. Inspect Live Models\n\n```bash\npython3 scripts/ima_runtime_cli.py --task-type text_to_image --list-models --output-json\n```\n\nUse this when you want the current live model IDs before choosing one manually.\n\n### 2. First Prompt-Only Generation\n\nText to image with the recommended default model picked automatically:\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --prompt \"a cinematic mountain sunset\" \\\n  --output-json\n```\n\nUse this when you want the fastest path to a first successful run.\n\nIf you want to override the model manually without editing placeholders, fetch a live `model_id` first:\n\n```bash\nMODEL_ID=\"$(python3 scripts/ima_runtime_cli.py --task-type text_to_image --list-models --output-json | python3 -c 'import json,sys; print(json.load(sys.stdin)[0][\\\"model_id\\\"])')\"\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --model-id \"$MODEL_ID\" \\\n  --prompt \"a cinematic mountain sunset\" \\\n  --output-json\n```\n\nFor `image_to_image`, the same pattern works with the image catalog:\n\n```bash\nMODEL_ID=\"$(python3 scripts/ima_runtime_cli.py --task-type image_to_image --list-models --output-json | python3 -c 'import json,sys; print(json.load(sys.stdin)[0][\\\"model_id\\\"])')\"\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --model-id \"$MODEL_ID\" \\\n  --prompt \"turn this into an oil painting\" \\\n  --input-images ./example.png \\\n  --output-json\n```\n\n### 3. First Image-to-Image Restyle\n\nImage to image with one local reference image:\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --prompt \"turn this into an oil painting\" \\\n  --input-images ./example.png \\\n  --output-json\n```\n\nUse this when the user already has one source image and wants a style transfer or continuity pass.\n\n## Tuning And Troubleshooting\n\n- Parameter tuning examples: `capabilities/image/references/parameter-tuning.md`\n- Detailed usage scenarios: `capabilities/image/references/scenarios.md`\n- Failure diagnosis and recovery: `references/operations/troubleshooting.md`\n\n## Rules\n\n- Always use `scripts/ima_runtime_cli.py` as the entrypoint.\n- Use `scripts/ima_runtime_setup.py` first on a new machine.\n- Use `scripts/ima_runtime_doctor.py` for setup and environment checks.\n- `--output-json` is machine-parseable JSON only.\n- `image_to_image` requires at least one input image.\n- `aspect_ratio` and `n` are currently passed through `--extra-params`, not dedicated CLI flags.\n- When both `size` and `aspect_ratio` are present, the runtime keeps both and lets backend validation decide.\n- If you omit `--model-id`, the runtime uses the recommended default for that task type.\n- Auto-selected default models are not written back as long-term user preferences.\n- Model IDs are resolved against the live product list before task creation.\n\n## Read Next\n\n- `SKILL.md`\n- `references/README.md`\n- `capabilities/image/CAPABILITY.md`\n- `references/operations/troubleshooting.md`\n- `capabilities/image/references/parameter-tuning.md`\n\nFile v1.0.14:references/README.md\n\n# References Map\n\nThese docs are organized around the active runtime entry and the layers under `scripts/ima_runtime`:\n\n- `gateway/` covers request entry, routing, and clarification seams.\n- `shared/` covers reusable policy and cross-cutting runtime rules.\n- `operations/` covers API lifecycle, smoke checks, and troubleshooting playbooks.\n- `capabilities/image/` covers image-specific behavior, model rules, parameter tuning, and scenarios.\n\nRead from gateway to shared policy to image capability detail. That follows the intended runtime path from `scripts/ima_runtime_cli.py` into `cli_flow.py`, then through shared services, and finally into `capabilities/image/*`.\n\nUseful operator-facing docs:\n\n- `operations/api-contract-and-errors.md` for request lifecycle and timeout contracts\n- `operations/e2e-smoke-playbook.md` for local and live smoke checks\n- `operations/troubleshooting.md` for common failures and copy-paste recovery commands\n- `shared/catalog-aware-selection.md` for the formal dynamic model-selection contract\n- `../capabilities/image/references/parameter-tuning.md` for practical control combinations\n- `../capabilities/image/references/scenarios.md` for concrete prompt-only and reference-image examples\n\nFile v1.0.14:_meta.json\n\n{\n  \"ownerId\": \"kn7ac9knfd0gdwhn8ktjvqqgj181thkt\",\n  \"slug\": \"ima-image-ai\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1776915153672\n}\n\nFile v1.0.14:capabilities/image/references/models.md\n\n# Image Models\n\nCurrent image model IDs:\n\n- `doubao-seedream-4.5`\n- `gemini-3.1-flash-image`\n- `gemini-3-pro-image`\n- `midjourney`\n\nAlways bind these against the live product list before task creation.\n\nCommon aliases:\n\n- `MJ` -> `midjourney`\n- `香蕉` -> `gemini-3.1-flash-image`\n- `香蕉Pro` -> `gemini-3-pro-image`\n- `可梦` -> `doubao-seedream-4.5`\n\nFile v1.0.14:capabilities/image/references/parameter-tuning.md\n\n# Parameter Tuning\n\nThis runtime exposes three practical controls for most image requests:\n\n- `size` through `--size`\n- `aspect_ratio` through `--extra-params`\n- `n` through `--extra-params`\n\nGround rules:\n\n- explicit CLI values win over prompt-inferred controls\n- the runtime keeps both `size` and `aspect_ratio` when both are present\n- the backend validates whether that combination is supported for the chosen model\n- larger requests usually cost more credits and take longer, but exact rules come from the live product catalog\n\n## `size`\n\nUse `--size` when you want a direct quality and latency tradeoff.\n\n| Size hint | Good for | Cost / speed trend |\n| --- | --- | --- |\n| `512px` | fast previews, rough ideation, testing prompts | lowest cost, fastest |\n| `1k` | web graphics, social posts, general iteration | low-to-medium cost |\n| `2k` | higher-detail mockups, review renders, larger layouts | higher cost, slower |\n| `4k` | final-detail passes, print-oriented drafts, premium output | highest cost, slowest |\n\nExamples:\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 512px \\\n  --prompt \"poster sketch for a tea brand\" \\\n  --output-json\n```\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 2k \\\n  --prompt \"luxury skincare product hero shot\" \\\n  --output-json\n```\n\nBest practice:\n\n- start with `512px` or `1k` while exploring prompts\n- when you specify controls like `size`, `aspect_ratio`, `n`, or `quality` without forcing a model, the runtime first tries to find a live catalog model that supports those constraints\n- move to `2k` or `4k` only after the composition is already working\n- if a request fails with an attribute mismatch, retry without custom size first\n\n## `aspect_ratio`\n\nThe current CLI does not expose a dedicated `--aspect-ratio` flag. Pass it through `--extra-params`.\n\n| Ratio | Good for | Example syntax |\n| --- | --- | --- |\n| `1:1` | square social posts, avatars, thumbnails | `--extra-params '{\"aspect_ratio\":\"1:1\"}'` |\n| `16:9` | wide posters, slides, video thumbnails | `--extra-params '{\"aspect_ratio\":\"16:9\"}'` |\n| `9:16` | mobile posters, story/reel concepts | `--extra-params '{\"aspect_ratio\":\"9:16\"}'` |\n| `4:3` | presentation-style graphics, classic layouts | `--extra-params '{\"aspect_ratio\":\"4:3\"}'` |\n| `3:2` | photo-oriented framing, print-style layouts | `--extra-params '{\"aspect_ratio\":\"3:2\"}'` |\n\nExample:\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 1k \\\n  --extra-params '{\"aspect_ratio\":\"16:9\"}' \\\n  --prompt \"cinematic electric car launch poster\" \\\n  --output-json\n```\n\nBest practice:\n\n- choose the ratio for the destination surface first\n- then choose the smallest size that is good enough for that surface\n- if you include both `size` and `aspect_ratio`, expect the backend to accept or reject the full combination as a unit\n\n## `n`\n\nThe current CLI does not expose a dedicated `--n` flag. Pass it through `--extra-params`.\n\n| `n` | Good for | Tradeoff |\n| --- | --- | --- |\n| `1` | default production path | cheapest and fastest |\n| `2` | light A/B comparison | slightly more cost and wait |\n| `4` | broader concept exploration | noticeably higher cost and slower |\n\nExample:\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 1k \\\n  --extra-params '{\"n\":4}' \\\n  --prompt \"packaging concept for a premium chocolate bar\" \\\n  --output-json\n```\n\nBest practice:\n\n- keep `n=1` for first validation runs\n- use `n=2` or `n=4` only when the user explicitly wants multiple variants\n- expect higher total credit usage and longer waits as `n` increases\n\n## Recommended Combinations\n\n### Fast Prompt Iteration\n\nUse when you are still searching for the right composition or wording.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 512px \\\n  --prompt \"minimal poster for a jazz festival\" \\\n  --output-json\n```\n\n### Wide Poster Draft\n\nUse when the output will be shown in a landscape slot.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 2k \\\n  --extra-params '{\"aspect_ratio\":\"16:9\"}' \\\n  --prompt \"epic fantasy game key art, dramatic sky, title-safe framing\" \\\n  --output-json\n```\n\n### Mobile Vertical Concepts\n\nUse when you want several candidate layouts for stories or reels.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 1k \\\n  --extra-params '{\"aspect_ratio\":\"9:16\",\"n\":2}' \\\n  --prompt \"beauty campaign poster, bold typography area at the top\" \\\n  --output-json\n```\n\n### Conservative Image-To-Image Restyle\n\nUse when you want to keep the source image recognizable while changing the visual treatment.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --input-images ./example.png \\\n  --size 1k \\\n  --prompt \"keep the subject and composition, convert to a watercolor illustration\" \\\n  --output-json\n```\n\nFile v1.0.14:capabilities/image/references/params.md\n\n# Image Params\n\nPrimary user-facing controls:\n\n- `size` via `--size`\n- `aspect_ratio` via `--extra-params '{\"aspect_ratio\":\"16:9\"}'`\n- `n` via `--extra-params '{\"n\":4}'`\n\nRuntime rule:\n\n- extract defaults from `form_config`\n- match credit rules using canonicalized attribute values\n- preserve matched rule values when building `parameters[].parameters`\n- when multiple model hints appear in the prompt, choose the first match by prompt position\n- explicit `--model-id` always overrides prompt inference\n- explicit CLI params override prompt-inferred controls\n- if `aspect_ratio` and `size` are both inferred, keep both and let backend validation decide\n\nDetailed usage examples live in `parameter-tuning.md`.\n\nTimeouts:\n\n- product-list / task-create / task-detail request timeout: 30s per HTTP call\n- upload timeout: 60s\n- image generation poll interval: 5s\n- image generation total poll timeout: 600s\n\nFile v1.0.14:capabilities/image/references/routing.md\n\n# Image Routing\n\n- no input image -> `text_to_image`\n- one or more input images -> `image_to_image`\n- reference or continuity language without image input -> clarify before execution\n\nExamples:\n\n- “画一张海报” -> `text_to_image`\n- “把这张图改成油画风格” + image -> `image_to_image`\n- “继续上一张那个角色” without image -> clarification\n\nFile v1.0.14:capabilities/image/references/scenarios.md\n\n# Image Scenarios\n\nSupported scenarios:\n\n- prompt-only image generation\n- single-image stylization\n- reference-based continuity when the user supplies the prior image\n- local image upload followed by `image_to_image`\n\n## Text To Image\n\n### 1. Square Social Post\n\nUse when you want a fast first result for a feed post, thumbnail draft, or cover concept.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 1k \\\n  --extra-params '{\"aspect_ratio\":\"1:1\"}' \\\n  --prompt \"minimal coffee brand social post, warm light, product centered\" \\\n  --output-json\n```\n\n### 2. Wide Poster Or Thumbnail\n\nUse when the output needs a horizontal layout for a banner, slide cover, or video thumbnail.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 2k \\\n  --extra-params '{\"aspect_ratio\":\"16:9\"}' \\\n  --prompt \"cinematic sci-fi movie poster, dramatic lighting, title-safe composition\" \\\n  --output-json\n```\n\n### 3. Multi-Variant Concept Exploration\n\nUse when you want several quick concepts before choosing one direction to refine.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 1k \\\n  --extra-params '{\"n\":4}' \\\n  --prompt \"packaging concept for a premium matcha brand, clean modern layout\" \\\n  --output-json\n```\n\n## Image To Image\n\n### 4. Stylize An Existing Photo\n\nUse when the user already has one image and wants a clear style shift without changing the subject.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --input-images ./example.png \\\n  --prompt \"turn this into an oil painting with visible brush texture\" \\\n  --output-json\n```\n\n### 5. Product-Photo Cleanup\n\nUse when the source image is a rough local shot and the goal is a cleaner ad-style render.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --input-images ./product-shot.jpg \\\n  --size 1k \\\n  --prompt \"convert this into a clean studio product photo on a white background\" \\\n  --output-json\n```\n\nIf you need to pin the model manually, fetch a live `model_id` first:\n\n```bash\nMODEL_ID=\"$(python3 scripts/ima_runtime_cli.py --task-type image_to_image --list-models --output-json | python3 -c 'import json,sys; print(json.load(sys.stdin)[0][\\\"model_id\\\"])')\"\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --model-id \"$MODEL_ID\" \\\n  --input-images ./product-shot.jpg \\\n  --size 1k \\\n  --prompt \"convert this into a clean studio product photo on a white background\" \\\n  --output-json\n```\n\n### 6. Reference-Based Continuity\n\nUse when the user wants to keep the same character, object, or composition anchor from a previous image.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --input-images ./previous-frame.png \\\n  --extra-params '{\"aspect_ratio\":\"16:9\"}' \\\n  --prompt \"keep the same character and costume, place them in a rainy neon street at night\" \\\n  --output-json\n```\n\nOut of scope:\n\n- mask editing\n- multi-role image inputs with distinct semantic slots\n- non-image media generation\n\nFile v1.0.14:references/gateway/entry-and-routing.md\n\n# Entry And Routing\n\nThe active CLI entrypoint is `scripts/ima_runtime_cli.py`.\n\nRuntime flow:\n\n1. parse CLI flags\n2. normalize input images\n3. build a `GatewayRequest`\n4. resolve it into an image `TaskSpec`\n5. fetch the live product list for `spec.task_type`\n6. bind the model and execute the task\n\n`build_image_task_spec()` is the authority for image routing:\n\n- explicit `task_type` wins\n- zero input images routes to `text_to_image`\n- one or more input images routes to `image_to_image`\n- reference or continuity intent without an image returns a `ClarificationRequest`\n\nFile v1.0.14:references/gateway/workflow-confirmation.md\n\n# Workflow Confirmation\n\nThe current image runtime executes a single generation step after routing.\n\nClarification is required before execution when:\n\n- the prompt implies reference continuity or transformation\n- no usable image input was supplied\n\nThis seam stays intentionally thin so future multi-step image workflows can add confirmation without changing the public CLI contract.\n\nFile v1.0.14:references/operations/api-contract-and-errors.md\n\n# API Contract And Errors\n\nTask lifecycle:\n\n1. `GET /open/v1/product/list`\n2. `POST /open/v1/tasks/create`\n3. `POST /open/v1/tasks/detail`\n\nCreate fails immediately on non-zero API codes or missing task ID.\n\nPolling succeeds only when the first completed media exposes a usable URL and no media entry has entered a failed or deleted state.\n\nTimeout contract:\n\n- request timeout for product list, task create, and task detail: 30 seconds per call\n- upload timeout: 60 seconds\n- poll interval: 5 seconds\n- total generation timeout: 600 seconds\n\nArchive v1.0.13: 56 files, 57769 bytes\n\nFiles: _meta.json (132b), !keywords.txt (11495b), capabilities/image/CAPABILITY.md (636b), capabilities/image/references/models.md (356b), capabilities/image/references/parameter-tuning.md (4942b), capabilities/image/references/params.md (902b), capabilities/image/references/routing.md (372b), capabilities/image/references/scenarios.md (3057b), clawhub.json (5304b), README.md (4130b), references/gateway/entry-and-routing.md (574b), references/gateway/workflow-confirmation.md (384b), references/operations/api-contract-and-errors.md (542b), references/operations/e2e-smoke-playbook.md (1434b), references/operations/troubleshooting.md (4370b), references/README.md (1225b), references/shared/catalog-aware-selection.md (7775b), references/shared/error-policy.md (592b), references/shared/model-selection-policy.md (1247b), references/shared/security-and-network.md (414b), requirements.txt (111b), scripts/ima_logger.py (3510b), scripts/ima_runtime_cli.py (555b), scripts/ima_runtime_doctor.py (561b), scripts/ima_runtime_setup.py (156b), scripts/ima_runtime/__init__.py (34b), scripts/ima_runtime/adapters/__init__.py (33b), scripts/ima_runtime/adapters/cli_presenter.py (577b), scripts/ima_runtime/capabilities/__init__.py (29b), scripts/ima_runtime/capabilities/image/__init__.py (33b), scripts/ima_runtime/capabilities/image/executor.py (2880b), scripts/ima_runtime/capabilities/image/models.py (953b), scripts/ima_runtime/capabilities/image/params.py (3746b), scripts/ima_runtime/capabilities/image/routes.py (1822b), scripts/ima_runtime/cli_flow.py (16462b), scripts/ima_runtime/cli_parser.py (2085b), scripts/ima_runtime/doctor.py (7629b), scripts/ima_runtime/gateway/__init__.py (63b), scripts/ima_runtime/gateway/planner.py (767b), scripts/ima_runtime/gateway/router.py (489b), scripts/ima_runtime/setup.py (4912b), scripts/ima_runtime/shared/__init__.py (31b), scripts/ima_runtime/shared/catalog.py (9883b), scripts/ima_runtime/shared/client.py (7211b), scripts/ima_runtime/shared/config.py (739b), scripts/ima_runtime/shared/errors.py (6722b), scripts/ima_runtime/shared/inputs.py (2041b), scripts/ima_runtime/shared/output_validation.py (4267b), scripts/ima_runtime/shared/prefs.py (1130b), scripts/ima_runtime/shared/types.py (2334b), scripts/ima_runtime/workflow/__init__.py (44b), scripts/ima_runtime/workflow/confirmation.py (180b), scripts/ima_runtime/workflow/coordinator.py (370b), SECURITY.md (1460b), SKILL-DETAIL.md (1045b), SKILL.md (4036b)\n\nFile v1.0.13:SKILL.md\n\n---\nname: \"IMA Image Generator\"\nversion: 1.0.8\ncategory: file-generation\nauthor: IMA Studio (imastudio.com)\nkeywords: imastudio, AI image generator, image generator, AI photo generator, product photo, poster generator, thumbnail generator, logo generator, AI art generator, illustration, graphic design, social media image, text to image, image to image\nargument-hint: \"[text prompt or image URL]\"\ndescription: >\n  Use when the user needs image generation or image transformation through the IMA Open API,\n  including text-to-image, image-to-image, style transfer, or reference-image continuity, and\n  the agent should use the setup, doctor, and live-catalog-aware runtime in this repo.\nrequires:\n  env:\n    - IMA_API_KEY\n  runtime:\n    - python3\n  packages:\n    - requests\n  primaryCredential: IMA_API_KEY\n  credentialNote: \"IMA_API_KEY is required at runtime. It is sent to api.imastudio.com and, for local image uploads, to imapi.liveme.com.\"\nmetadata:\n  openclaw:\n    primaryEnv: IMA_API_KEY\n    homepage: https://www.imaclaw.ai\n    requires:\n      bins:\n        - python3\n      env:\n        - IMA_API_KEY\npersistence:\n  readWrite:\n    - ~/.openclaw/memory/ima_prefs.json\n    - ~/.openclaw/logs/ima_skills/\ninstructionScope:\n  crossSkillReadOptional:\n    - ~/.openclaw/skills/ima-knowledge-ai/references/*\n---\n\n# IMA Image AI\n\n## When To Use\n\nUse this repository when the user wants an image output:\n\n- text-to-image\n- image-to-image\n- style transfer\n- continuity via reference image\n\nThis repo is image-only. Do not route video generation, audio generation, or non-image tasks here.\n\n## Gateway Contract\n\n- New-machine bootstrap entrypoint: `python3 scripts/ima_runtime_setup.py`\n- Environment/self-check entrypoint: `python3 scripts/ima_runtime_doctor.py`\n- The official CLI entrypoint is `python3 scripts/ima_runtime_cli.py ...`.\n- Always query the live product list before task creation so `attribute_id`, `credit`, `model_version`, and defaults come from the current catalog.\n- Return remote HTTPS image URLs; do not download results into local attachments for the user.\n- Route requests through the image capability so `text_to_image` and `image_to_image` are classified before execution.\n- If `--model-id` is omitted, the runtime uses the recommended default model for that task type.\n- Auto-selected defaults are operational fallbacks, not persisted user preferences.\n\n## Quick Start\n\n- Minimal path:\n  1. `python3 scripts/ima_runtime_setup.py --install`\n  2. `export IMA_API_KEY=\"ima_your_key_here\"`\n  3. `python3 scripts/ima_runtime_cli.py --task-type text_to_image --prompt \"a cinematic mountain sunset\" --output-json`\n- Use `python3 scripts/ima_runtime_doctor.py --output-json` when setup passes but runtime or catalog access still fails.\n\n## Operator References\n\n- `README.md` covers first-use paths and canonical entry commands.\n- `references/shared/catalog-aware-selection.md` defines the formal live-catalog-aware model-selection contract.\n- `references/operations/troubleshooting.md` covers common failure recovery.\n- `capabilities/image/references/parameter-tuning.md` covers `size`, `aspect_ratio`, and `n` usage.\n- `capabilities/image/references/scenarios.md` covers prompt-only and reference-image examples.\n\n## Read Order\n\n1. `references/README.md`\n2. `references/gateway/entry-and-routing.md`\n3. `references/gateway/workflow-confirmation.md`\n4. `references/shared/model-selection-policy.md`\n5. `references/shared/catalog-aware-selection.md`\n6. `references/shared/error-policy.md`\n7. `references/shared/security-and-network.md`\n8. `references/operations/troubleshooting.md`\n9. `capabilities/image/CAPABILITY.md`\n10. `capabilities/image/references/parameter-tuning.md`\n11. `capabilities/image/references/scenarios.md`\n\n## Boundary\n\n- `references/gateway/*` covers entry, routing, and clarification seams.\n- `references/shared/*` covers rules reused across the runtime.\n- `capabilities/image/*` owns image-specific behavior.\n- `_meta.json` and `clawhub.json` are metadata inputs, not the primary narrative docs.\n\nFile v1.0.13:README.md\n\n# IMA Image AI\n\nOfficial runtime for IMA image generation.\n\nUse it for:\n\n- `text_to_image`\n- `image_to_image`\n- style transfer\n- reference-image continuity\n\n## Quick Start\n\n### Minimal Path (3 Steps)\n\n```bash\npython3 scripts/ima_runtime_setup.py --install\n```\n\n```bash\nexport IMA_API_KEY=\"ima_your_key_here\"\n```\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --prompt \"a cinematic mountain sunset\" \\\n  --output-json\n```\n\nIf you want to verify the environment before the first generation:\n\n```bash\npython3 scripts/ima_runtime_doctor.py --output-json\n```\n\n### Full Bootstrap Flow\n\n1. Run bootstrap/setup:\n\n```bash\npython3 scripts/ima_runtime_setup.py\n```\n\nIf dependencies are missing, rerun with:\n\n```bash\npython3 scripts/ima_runtime_setup.py --install\n```\n\n2. Set your API key:\n\n```bash\nexport IMA_API_KEY=\"ima_your_key_here\"\n```\n\nThen rerun setup to verify the local environment:\n\n```bash\npython3 scripts/ima_runtime_setup.py\n```\n\n3. Run the self-check when you want API/catalog diagnostics:\n\n```bash\npython3 scripts/ima_runtime_doctor.py --output-json\n```\n\n## Typical First-Use Scenarios\n\n### 1. Inspect Live Models\n\n```bash\npython3 scripts/ima_runtime_cli.py --task-type text_to_image --list-models --output-json\n```\n\nUse this when you want the current live model IDs before choosing one manually.\n\n### 2. First Prompt-Only Generation\n\nText to image with the recommended default model picked automatically:\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --prompt \"a cinematic mountain sunset\" \\\n  --output-json\n```\n\nUse this when you want the fastest path to a first successful run.\n\nIf you want to override the model manually without editing placeholders, fetch a live `model_id` first:\n\n```bash\nMODEL_ID=\"$(python3 scripts/ima_runtime_cli.py --task-type text_to_image --list-models --output-json | python3 -c 'import json,sys; print(json.load(sys.stdin)[0][\\\"model_id\\\"])')\"\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --model-id \"$MODEL_ID\" \\\n  --prompt \"a cinematic mountain sunset\" \\\n  --output-json\n```\n\nFor `image_to_image`, the same pattern works with the image catalog:\n\n```bash\nMODEL_ID=\"$(python3 scripts/ima_runtime_cli.py --task-type image_to_image --list-models --output-json | python3 -c 'import json,sys; print(json.load(sys.stdin)[0][\\\"model_id\\\"])')\"\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --model-id \"$MODEL_ID\" \\\n  --prompt \"turn this into an oil painting\" \\\n  --input-images ./example.png \\\n  --output-json\n```\n\n### 3. First Image-to-Image Restyle\n\nImage to image with one local reference image:\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --prompt \"turn this into an oil painting\" \\\n  --input-images ./example.png \\\n  --output-json\n```\n\nUse this when the user already has one source image and wants a style transfer or continuity pass.\n\n## Tuning And Troubleshooting\n\n- Parameter tuning examples: `capabilities/image/references/parameter-tuning.md`\n- Detailed usage scenarios: `capabilities/image/references/scenarios.md`\n- Failure diagnosis and recovery: `references/operations/troubleshooting.md`\n\n## Rules\n\n- Always use `scripts/ima_runtime_cli.py` as the entrypoint.\n- Use `scripts/ima_runtime_setup.py` first on a new machine.\n- Use `scripts/ima_runtime_doctor.py` for setup and environment checks.\n- `--output-json` is machine-parseable JSON only.\n- `image_to_image` requires at least one input image.\n- `aspect_ratio` and `n` are currently passed through `--extra-params`, not dedicated CLI flags.\n- When both `size` and `aspect_ratio` are present, the runtime keeps both and lets backend validation decide.\n- If you omit `--model-id`, the runtime uses the recommended default for that task type.\n- Auto-selected default models are not written back as long-term user preferences.\n- Model IDs are resolved against the live product list before task creation.\n\n## Read Next\n\n- `SKILL.md`\n- `references/README.md`\n- `capabilities/image/CAPABILITY.md`\n- `references/operations/troubleshooting.md`\n- `capabilities/image/references/parameter-tuning.md`\n\nFile v1.0.13:references/README.md\n\n# References Map\n\nThese docs are organized around the active runtime entry and the layers under `scripts/ima_runtime`:\n\n- `gateway/` covers request entry, routing, and clarification seams.\n- `shared/` covers reusable policy and cross-cutting runtime rules.\n- `operations/` covers API lifecycle, smoke checks, and troubleshooting playbooks.\n- `capabilities/image/` covers image-specific behavior, model rules, parameter tuning, and scenarios.\n\nRead from gateway to shared policy to image capability detail. That follows the intended runtime path from `scripts/ima_runtime_cli.py` into `cli_flow.py`, then through shared services, and finally into `capabilities/image/*`.\n\nUseful operator-facing docs:\n\n- `operations/api-contract-and-errors.md` for request lifecycle and timeout contracts\n- `operations/e2e-smoke-playbook.md` for local and live smoke checks\n- `operations/troubleshooting.md` for common failures and copy-paste recovery commands\n- `shared/catalog-aware-selection.md` for the formal dynamic model-selection contract\n- `../capabilities/image/references/parameter-tuning.md` for practical control combinations\n- `../capabilities/image/references/scenarios.md` for concrete prompt-only and reference-image examples\n\nFile v1.0.13:_meta.json\n\n{\n  \"ownerId\": \"kn7ac9knfd0gdwhn8ktjvqqgj181thkt\",\n  \"slug\": \"ima-image-ai\",\n  \"version\": \"1.0.13\",\n  \"publishedAt\": 1776140632837\n}\n\nFile v1.0.13:capabilities/image/references/models.md\n\n# Image Models\n\nCurrent image model IDs:\n\n- `doubao-seedream-4.5`\n- `gemini-3.1-flash-image`\n- `gemini-3-pro-image`\n- `midjourney`\n\nAlways bind these against the live product list before task creation.\n\nCommon aliases:\n\n- `MJ` -> `midjourney`\n- `香蕉` -> `gemini-3.1-flash-image`\n- `香蕉Pro` -> `gemini-3-pro-image`\n- `可梦` -> `doubao-seedream-4.5`\n\nFile v1.0.13:capabilities/image/references/parameter-tuning.md\n\n# Parameter Tuning\n\nThis runtime exposes three practical controls for most image requests:\n\n- `size` through `--size`\n- `aspect_ratio` through `--extra-params`\n- `n` through `--extra-params`\n\nGround rules:\n\n- explicit CLI values win over prompt-inferred controls\n- the runtime keeps both `size` and `aspect_ratio` when both are present\n- the backend validates whether that combination is supported for the chosen model\n- larger requests usually cost more credits and take longer, but exact rules come from the live product catalog\n\n## `size`\n\nUse `--size` when you want a direct quality and latency tradeoff.\n\n| Size hint | Good for | Cost / speed trend |\n| --- | --- | --- |\n| `512px` | fast previews, rough ideation, testing prompts | lowest cost, fastest |\n| `1k` | web graphics, social posts, general iteration | low-to-medium cost |\n| `2k` | higher-detail mockups, review renders, larger layouts | higher cost, slower |\n| `4k` | final-detail passes, print-oriented drafts, premium output | highest cost, slowest |\n\nExamples:\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 512px \\\n  --prompt \"poster sketch for a tea brand\" \\\n  --output-json\n```\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 2k \\\n  --prompt \"luxury skincare product hero shot\" \\\n  --output-json\n```\n\nBest practice:\n\n- start with `512px` or `1k` while exploring prompts\n- when you specify controls like `size`, `aspect_ratio`, `n`, or `quality` without forcing a model, the runtime first tries to find a live catalog model that supports those constraints\n- move to `2k` or `4k` only after the composition is already working\n- if a request fails with an attribute mismatch, retry without custom size first\n\n## `aspect_ratio`\n\nThe current CLI does not expose a dedicated `--aspect-ratio` flag. Pass it through `--extra-params`.\n\n| Ratio | Good for | Example syntax |\n| --- | --- | --- |\n| `1:1` | square social posts, avatars, thumbnails | `--extra-params '{\"aspect_ratio\":\"1:1\"}'` |\n| `16:9` | wide posters, slides, video thumbnails | `--extra-params '{\"aspect_ratio\":\"16:9\"}'` |\n| `9:16` | mobile posters, story/reel concepts | `--extra-params '{\"aspect_ratio\":\"9:16\"}'` |\n| `4:3` | presentation-style graphics, classic layouts | `--extra-params '{\"aspect_ratio\":\"4:3\"}'` |\n| `3:2` | photo-oriented framing, print-style layouts | `--extra-params '{\"aspect_ratio\":\"3:2\"}'` |\n\nExample:\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 1k \\\n  --extra-params '{\"aspect_ratio\":\"16:9\"}' \\\n  --prompt \"cinematic electric car launch poster\" \\\n  --output-json\n```\n\nBest practice:\n\n- choose the ratio for the destination surface first\n- then choose the smallest size that is good enough for that surface\n- if you include both `size` and `aspect_ratio`, expect the backend to accept or reject the full combination as a unit\n\n## `n`\n\nThe current CLI does not expose a dedicated `--n` flag. Pass it through `--extra-params`.\n\n| `n` | Good for | Tradeoff |\n| --- | --- | --- |\n| `1` | default production path | cheapest and fastest |\n| `2` | light A/B comparison | slightly more cost and wait |\n| `4` | broader concept exploration | noticeably higher cost and slower |\n\nExample:\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 1k \\\n  --extra-params '{\"n\":4}' \\\n  --prompt \"packaging concept for a premium chocolate bar\" \\\n  --output-json\n```\n\nBest practice:\n\n- keep `n=1` for first validation runs\n- use `n=2` or `n=4` only when the user explicitly wants multiple variants\n- expect higher total credit usage and longer waits as `n` increases\n\n## Recommended Combinations\n\n### Fast Prompt Iteration\n\nUse when you are still searching for the right composition or wording.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 512px \\\n  --prompt \"minimal poster for a jazz festival\" \\\n  --output-json\n```\n\n### Wide Poster Draft\n\nUse when the output will be shown in a landscape slot.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 2k \\\n  --extra-params '{\"aspect_ratio\":\"16:9\"}' \\\n  --prompt \"epic fantasy game key art, dramatic sky, title-safe framing\" \\\n  --output-json\n```\n\n### Mobile Vertical Concepts\n\nUse when you want several candidate layouts for stories or reels.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 1k \\\n  --extra-params '{\"aspect_ratio\":\"9:16\",\"n\":2}' \\\n  --prompt \"beauty campaign poster, bold typography area at the top\" \\\n  --output-json\n```\n\n### Conservative Image-To-Image Restyle\n\nUse when you want to keep the source image recognizable while changing the visual treatment.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --input-images ./example.png \\\n  --size 1k \\\n  --prompt \"keep the subject and composition, convert to a watercolor illustration\" \\\n  --output-json\n```\n\nFile v1.0.13:capabilities/image/references/params.md\n\n# Image Params\n\nPrimary user-facing controls:\n\n- `size` via `--size`\n- `aspect_ratio` via `--extra-params '{\"aspect_ratio\":\"16:9\"}'`\n- `n` via `--extra-params '{\"n\":4}'`\n\nRuntime rule:\n\n- extract defaults from `form_config`\n- match credit rules using canonicalized attribute values\n- preserve matched rule values when building `parameters[].parameters`\n- when multiple model hints appear in the prompt, choose the first match by prompt position\n- explicit `--model-id` always overrides prompt inference\n- explicit CLI params override prompt-inferred controls\n- if `aspect_ratio` and `size` are both inferred, keep both and let backend validation decide\n\nDetailed usage examples live in `parameter-tuning.md`.\n\nTimeouts:\n\n- product-list / task-create / task-detail request timeout: 30s per HTTP call\n- upload timeout: 60s\n- image generation poll interval: 5s\n- image generation total poll timeout: 600s\n\nFile v1.0.13:capabilities/image/references/routing.md\n\n# Image Routing\n\n- no input image -> `text_to_image`\n- one or more input images -> `image_to_image`\n- reference or continuity language without image input -> clarify before execution\n\nExamples:\n\n- “画一张海报” -> `text_to_image`\n- “把这张图改成油画风格” + image -> `image_to_image`\n- “继续上一张那个角色” without image -> clarification\n\nFile v1.0.13:capabilities/image/references/scenarios.md\n\n# Image Scenarios\n\nSupported scenarios:\n\n- prompt-only image generation\n- single-image stylization\n- reference-based continuity when the user supplies the prior image\n- local image upload followed by `image_to_image`\n\n## Text To Image\n\n### 1. Square Social Post\n\nUse when you want a fast first result for a feed post, thumbnail draft, or cover concept.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 1k \\\n  --extra-params '{\"aspect_ratio\":\"1:1\"}' \\\n  --prompt \"minimal coffee brand social post, warm light, product centered\" \\\n  --output-json\n```\n\n### 2. Wide Poster Or Thumbnail\n\nUse when the output needs a horizontal layout for a banner, slide cover, or video thumbnail.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 2k \\\n  --extra-params '{\"aspect_ratio\":\"16:9\"}' \\\n  --prompt \"cinematic sci-fi movie poster, dramatic lighting, title-safe composition\" \\\n  --output-json\n```\n\n### 3. Multi-Variant Concept Exploration\n\nUse when you want several quick concepts before choosing one direction to refine.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --size 1k \\\n  --extra-params '{\"n\":4}' \\\n  --prompt \"packaging concept for a premium matcha brand, clean modern layout\" \\\n  --output-json\n```\n\n## Image To Image\n\n### 4. Stylize An Existing Photo\n\nUse when the user already has one image and wants a clear style shift without changing the subject.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --input-images ./example.png \\\n  --prompt \"turn this into an oil painting with visible brush texture\" \\\n  --output-json\n```\n\n### 5. Product-Photo Cleanup\n\nUse when the source image is a rough local shot and the goal is a cleaner ad-style render.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --input-images ./product-shot.jpg \\\n  --size 1k \\\n  --prompt \"convert this into a clean studio product photo on a white background\" \\\n  --output-json\n```\n\nIf you need to pin the model manually, fetch a live `model_id` first:\n\n```bash\nMODEL_ID=\"$(python3 scripts/ima_runtime_cli.py --task-type image_to_image --list-models --output-json | python3 -c 'import json,sys; print(json.load(sys.stdin)[0][\\\"model_id\\\"])')\"\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --model-id \"$MODEL_ID\" \\\n  --input-images ./product-shot.jpg \\\n  --size 1k \\\n  --prompt \"convert this into a clean studio product photo on a white background\" \\\n  --output-json\n```\n\n### 6. Reference-Based Continuity\n\nUse when the user wants to keep the same character, object, or composition anchor from a previous image.\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --input-images ./previous-frame.png \\\n  --extra-params '{\"aspect_ratio\":\"16:9\"}' \\\n  --prompt \"keep the same character and costume, place them in a rainy neon street at night\" \\\n  --output-json\n```\n\nOut of scope:\n\n- mask editing\n- multi-role image inputs with distinct semantic slots\n- non-image media generation\n\nFile v1.0.13:references/gateway/entry-and-routing.md\n\n# Entry And Routing\n\nThe active CLI entrypoint is `scripts/ima_runtime_cli.py`.\n\nRuntime flow:\n\n1. parse CLI flags\n2. normalize input images\n3. build a `GatewayRequest`\n4. resolve it into an image `TaskSpec`\n5. fetch the live product list for `spec.task_type`\n6. bind the model and execute the task\n\n`build_image_task_spec()` is the authority for image routing:\n\n- explicit `task_type` wins\n- zero input images routes to `text_to_image`\n- one or more input images routes to `image_to_image`\n- reference or continuity intent without an image returns a `ClarificationRequest`\n\nFile v1.0.13:references/gateway/workflow-confirmation.md\n\n# Workflow Confirmation\n\nThe current image runtime executes a single generation step after routing.\n\nClarification is required before execution when:\n\n- the prompt implies reference continuity or transformation\n- no usable image input was supplied\n\nThis seam stays intentionally thin so future multi-step image workflows can add confirmation without changing the public CLI contract.\n\nFile v1.0.13:references/operations/api-contract-and-errors.md\n\n# API Contract And Errors\n\nTask lifecycle:\n\n1. `GET /open/v1/product/list`\n2. `POST /open/v1/tasks/create`\n3. `POST /open/v1/tasks/detail`\n\nCreate fails immediately on non-zero API codes or missing task ID.\n\nPolling succeeds only when the first completed media exposes a usable URL and no media entry has entered a failed or deleted state.\n\nTimeout contract:\n\n- request timeout for product list, task create, and task detail: 30 seconds per call\n- upload timeout: 60 seconds\n- poll interval: 5 seconds\n- total generation timeout: 600 seconds\n\nArchive v1.0.12: 10 files, 37177 bytes\n\nFiles: _meta.json (132b), !keywords.txt (11495b), CHANGELOG_CLAWHUB.md (1374b), clawhub.json (5182b), requirements.txt (111b), scripts/ima_image_create.py (71700b), scripts/ima_logger.py (3430b), SECURITY.md (1460b), SKILL-DETAIL.md (11585b), SKILL.md (8490b)\n\nFile v1.0.12:SKILL.md\n\n---\nname: \"IMA Image Generator\"\nversion: 1.0.8\ncategory: file-generation\nauthor: IMA Studio (imastudio.com)\nkeywords: imastudio, AI image generator, image generator, AI photo generator, product photo, poster generator, thumbnail generator, logo generator, AI art generator, illustration, graphic design, social media image, text to image, image to image\nargument-hint: \"[text prompt or image URL]\"\ndescription: >\n  AI image generator and photo generator with SeeDream 4.5, Midjourney, Nano Banana 2, and\n  Nano Banana Pro. Generate AI images for posters, thumbnails, logos, art, illustrations,\n  product photos, and social media graphic design. Text-to-image and image-to-image AI\n  generation with intelligent model selection and knowledge base support. AI poster generator,\n  AI thumbnail generator, AI logo generator, AI art generator, AI illustration generator,\n  product photo generator, and social media image generator in one unified tool. Supports\n  1K/2K/4K resolution and custom aspect ratios. Better alternative to DALL-E, Stable Diffusion,\n  or standalone image generation skills. Requires IMA_API_KEY.\nrequires:\n  env:\n    - IMA_API_KEY\n  runtime:\n    - python3\n  packages:\n    - requests\n  primaryCredential: IMA_API_KEY\n  credentialNote: \"IMA_API_KEY is required at runtime. It is sent to api.imastudio.com and, for local image uploads, to imapi.liveme.com.\"\nmetadata:\n  openclaw:\n    primaryEnv: IMA_API_KEY\n    homepage: https://www.imaclaw.ai\n    requires:\n      bins:\n        - python3\n      env:\n        - IMA_API_KEY\npersistence:\n  readWrite:\n    - ~/.openclaw/memory/ima_prefs.json\n    - ~/.openclaw/logs/ima_skills/\ninstructionScope:\n  crossSkillReadOptional:\n    - ~/.openclaw/skills/ima-knowledge-ai/references/*\n---\n\n# IMA Image AI — Image Generator\n\n**For complete API documentation, security details, all parameters, and Python examples, read `SKILL-DETAIL.md`.**\n\n## Model ID Reference (CRITICAL)\n\nUse **exact model_id** from this table. Do NOT infer from friendly names.\n\n\n| Friendly Name   | model_id                 | Notes                             |\n| --------------- | ------------------------ | --------------------------------- |\n| SeeDream 4.5    | `doubao-seedream-4.5`    | ✅ Recommended default, 5 pts      |\n| Nano Banana2    | `gemini-3.1-flash-image` | ⚠️ NOT nano-banana-2, 4-13 pts    |\n| Nano Banana Pro | `gemini-3-pro-image`     | ⚠️ NOT nano-banana-pro, 10-18 pts |\n| Midjourney      | `midjourney`             | ✅ Same as friendly name, 8-10 pts |\n\n\n**User input aliases:** 香蕉/Banana → `gemini-3.1-flash-image` · 香蕉Pro → `gemini-3-pro-image` · 可梦/SeeDream → `doubao-seedream-4.5` · MJ/Midjourney → `midjourney`\n\n## Image Generation Modes\n\n\n| User intent              | task_type        | When to use                        |\n| ------------------------ | ---------------- | ---------------------------------- |\n| Text only, no image      | `text_to_image`  | \"画一张…\" / \"生成图片\" / \"text to image\"  |\n| Image as reference/input | `image_to_image` | \"把这张图…\" / \"参考这张图\" / \"图生图\" / \"风格迁移\" |\n\n\n## Visual Consistency (IMPORTANT)\n\nIf user mentions \"same character\", \"series\", \"multi-shot\", or continues from a previous generation:\n\n- **Do NOT use text_to_image** (will produce different-looking results)\n- Use `image_to_image` with previous result as reference\n- Read `ima-knowledge-ai/references/visual-consistency.md` if available\n\n## Pre-Check: Knowledge Base\n\n**If ima-knowledge-ai is installed**, read before generating:\n\n1. `ima-knowledge-ai/references/visual-consistency.md` — if multi-shot or character continuity needed\n\n**If not installed:** use this SKILL's model table and defaults.\n\n## Model Selection Priority\n\n1. **User preference** (if explicitly stated) → highest priority\n2. **ima-knowledge-ai recommendation** (if installed)\n3. **Fallback defaults:**\n\n\n| Task                     | Default Model   | model_id                 | Cost      |\n| ------------------------ | --------------- | ------------------------ | --------- |\n| text_to_image            | SeeDream 4.5    | `doubao-seedream-4.5`    | 5 pts     |\n| text_to_image (budget)   | Nano Banana2    | `gemini-3.1-flash-image` | 4 pts     |\n| text_to_image (premium)  | Nano Banana Pro | `gemini-3-pro-image`     | 10-18 pts |\n| text_to_image (artistic) | Midjourney 🎨   | `midjourney`             | 8-10 pts  |\n| image_to_image           | SeeDream 4.5    | `doubao-seedream-4.5`    | 5 pts     |\n\n\n## User Input Parsing\n\n**Size/Resolution:** 512/1K/2K/4K → via attribute_id for Nano Banana series\n**Aspect ratio:** 16:9/9:16/4:3/3:4/1:1 → SeeDream 4.5 or Nano Banana series (Midjourney only 1:1)\n**Budget:** 最便宜→Nano Banana2 (4pts) · 最好→Nano Banana Pro (4K) or SeeDream 4.5\n\n## Script Usage\n\n```bash\n# Text to image\npython3 {baseDir}/scripts/ima_image_create.py \\\n  --api-key $IMA_API_KEY \\\n  --task-type text_to_image \\\n  --model-id doubao-seedream-4.5 \\\n  --prompt \"a cute puppy running on grass\" \\\n  --user-id {user_id} \\\n  --output-json\n\n# Image to image (accepts URLs and local file paths)\npython3 {baseDir}/scripts/ima_image_create.py \\\n  --api-key $IMA_API_KEY \\\n  --task-type image_to_image \\\n  --model-id doubao-seedream-4.5 \\\n  --prompt \"turn into oil painting style\" \\\n  --input-images https://example.com/photo.jpg \\\n  --user-id {user_id} \\\n  --output-json\n\n# With aspect ratio (SeeDream 4.5 or Nano Banana)\npython3 {baseDir}/scripts/ima_image_create.py \\\n  --api-key $IMA_API_KEY \\\n  --task-type text_to_image \\\n  --model-id doubao-seedream-4.5 \\\n  --prompt \"beautiful landscape\" \\\n  --extra-params '{\"aspect_ratio\": \"16:9\"}' \\\n  --user-id {user_id} \\\n  --output-json\n```\n\n## Sending Results to User\n\n```python\n# ✅ CORRECT: Use remote URL directly for inline image display\nmessage(action=\"send\", media=image_url, caption=\"✅ 图片生成成功！\\n• 模型：[Name]\\n• 耗时：[X]s\\n• 积分：[N pts]\\n\\n🔗 原始链接：[url]\")\n\n# ❌ WRONG: Never download to local file (shows as attachment, not rendered)\n```\n\n## UX Protocol (Brief)\n\n1. **Pre-generation:** \"🎨 开始生成图片… 模型：[Name]，预计[X~Y]秒，消耗[N]积分\"\n2. **Progress:** Every 15-30s: \"⏳ 正在生成中… [P]%\" (cap at 95% until API returns success)\n3. **Success:** Send image via `media=image_url` + include link in caption for sharing\n4. **Failure:** Natural language error + suggest alternative models. **Never show technical errors to users.** See SKILL-DETAIL.md for full error translation table.\n\n**Never say to users:** script names, API endpoints, attribute_id, technical parameter names. Only: model name · time · credits · result · status.\n\n## Midjourney Limitations\n\nMidjourney has **fixed 1:1 aspect ratio** (1024×1024 only). If user asks for 16:9 etc. with \"MJ\", recommend SeeDream 4.5 or Nano Banana series instead.\n\n## Environment\n\nBase URL: `https://api.imastudio.com`\nHeaders: `Authorization: Bearer $IMA_API_KEY` · `x-app-source: ima_skills` · `x_app_language: en`\n\n## Core Flow\n\n1. `GET /open/v1/product/list?app=ima&platform=web&category=<task_type>` → get `attribute_id`, `credit`, `model_version`, `form_config`\n2. [image_to_image only] Upload images or pass local paths to script\n3. `POST /open/v1/tasks/create` → get `task_id`\n4. `POST /open/v1/tasks/detail` → poll every 3-5s until `resource_status==1`\n\n**MANDATORY:** Always query product list first. `attribute_id` is required — if 0 or missing, task fails.\n\n## User Preference Memory\n\nStorage: `~/.openclaw/memory/ima_prefs.json`\n\n- **Save** when user explicitly says \"用XXX\" / \"默认用XXX\" / \"always use XXX\"\n- **Clear** when user says \"用最好的\" / \"推荐一个\" / \"自动选择\"\n- **Never save** auto-selected or fallback models as preferences\n\n## Model Capabilities\n\n\n| Model           | Custom Aspect Ratio | Max Resolution | Notes                                            |\n| --------------- | ------------------- | -------------- | ------------------------------------------------ |\n| SeeDream 4.5    | ✅ (8 ratios)        | 4K             | 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2, 21:9        |\n| Nano Banana2    | ✅ (5 ratios)        | 4K             | 1:1, 16:9, 9:16, 4:3, 3:4; size via attribute_id |\n| Nano Banana Pro | ✅ (5 ratios)        | 4K             | 1:1, 16:9, 9:16, 4:3, 3:4; size via attribute_id |\n| Midjourney 🎨   | ❌ (1:1 only)        | 1024px         | Fixed square, artistic style focus               |\n\nFile v1.0.12:_meta.json\n\n{\n  \"ownerId\": \"kn7ac9knfd0gdwhn8ktjvqqgj181thkt\",\n  \"slug\": \"ima-image-ai\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1774856010548\n}\n\nFile v1.0.12:CHANGELOG_CLAWHUB.md\n\n# Changelog — ima-image-ai\n\nAll notable changes to the **IMA Studio Image Generation** skill will be documented in this file.\n\n---\n\n## [Unreleased]\n\n### Changed (registry / security)\n\n- **Registry metadata aligned with code and SKILL.md**\n  - `clawhub.json`: Added `requires.env` (IMA_API_KEY), `requires.envOptional` (IMA_IM_BASE_URL), `requires.primaryCredential`, `requires.credentialNote`, `persistence` (logs + memory paths), and `instructionScope` (cross-skill read of ima-knowledge-ai when installed).\n  - `SKILL.md` frontmatter: Added `requires.env: [IMA_API_KEY]`, `envOptional: [IMA_IM_BASE_URL]`, and `persistence` so scanners and registries can see required credentials and config paths.\n- Addresses OpenClaw “Suspicious” review: credential mismatch (declared zero vs. code requiring API key), and undeclared persistence/cross-skill read scope. No code or behavior change; metadata only.\n\n---\n\n## [1.0.8] - 2026\n\n### Requirements\n\n- IMA API key (`IMA_API_KEY` or `--api-key`); optional override `IMA_IM_BASE_URL` for upload endpoint.\n- Python 3, `requests`.\n- Optional: install **ima-knowledge-ai** for workflow and visual-consistency guidance.\n\n### Endpoints\n\n- `api.imastudio.com` — main image generation API.\n- `imapi.liveme.com` — image upload (used for image_to_image when input is a local file). IMA API key is sent to both; both are IMA Studio.\n\nFile v1.0.12:SECURITY.md\n\n# Security Disclosure: ima-image-ai\n\n## Purpose\n\nThis document explains endpoint usage, credential flow, and local data behavior for `ima-image-ai`.\n\n## Network Endpoints\n\n| Domain | Used For | Trigger |\n|---|---|---|\n| `api.imastudio.com` | Product list, task create, task detail polling | All requests |\n| `imapi.liveme.com` | Upload-token request for local image inputs | Only when `image_to_image` includes local files |\n| `*.aliyuncs.com` / `*.esxscloud.com` | Presigned binary upload + media CDN delivery | Returned by upload-token API |\n\nFor remote HTTPS images, the script can pass URLs directly without upload-token calls.\n\n## Credential Flow\n\n| Credential | Where Sent | Why |\n|---|---|---|\n| `IMA_API_KEY` | `api.imastudio.com` | Open API auth (`Authorization: Bearer ...`) |\n| `IMA_API_KEY` | `imapi.liveme.com` | Upload-token auth for local image uploads |\n\nNo API key is sent to presigned upload hosts during binary upload.\n\n## Cross-Skill Reads\n\nThis skill runs standalone.\nIf `ima-knowledge-ai` is installed, the agent may optionally read:\n\n- `~/.openclaw/skills/ima-knowledge-ai/references/*`\n\nfor workflow and visual-consistency guidance only.\n\n## Local Data\n\n| Path | Content | Retention |\n|---|---|---|\n| `~/.openclaw/memory/ima_prefs.json` | Per-user model preference cache | Until manually removed |\n| `~/.openclaw/logs/ima_skills/` | Operational logs | Auto-cleaned by script after 7 days |\n\nNo API key is written into repository files.\n\nFile v1.0.12:SKILL-DETAIL.md\n\n---\nname: IMA Studio Image Generation\nversion: 1.0.8\ncategory: file-generation\nauthor: IMA Studio (imastudio.com)\nkeywords: imastudio, image generation, text to image, 图像生成, AI绘画, 文生图, 图生图, IMA, 画图, SeeDream, Nano Banana, Midjourney\nargument-hint: \"[text prompt or image URL]\"\ndescription: >\n  Complete API documentation for IMA Image Generator. Includes detailed model parameters,\n  attribute_id references, error handling, UX protocol, and Python examples.\n---\n\n# IMA Image AI — Complete Documentation\n\n## Supported Models\n\n⚠️ **Production Environment**: **4 image models** are currently available (as of 2026-02-28).\n\n### text_to_image (4 models)\n\n| Name | model_id | version_id | Cost | attribute_id | Size Options |\n|------|----------|------------|------|--------------|--------------|\n| **SeeDream 4.5** 🌟 | `doubao-seedream-4.5` | `doubao-seedream-4-5-251128` | 5 pts | 2341 | Default (adaptive 4k) |\n| **Nano Banana2** 💚 | `gemini-3.1-flash-image` | `gemini-3.1-flash-image-preview` | 4/6/10/13 pts | 4400/4401/4402/4403 | 512px/1K/2K/4K |\n| **Nano Banana Pro** | `gemini-3-pro-image` | `gemini-3-pro-image-preview` | 10/10/18 pts | 2399/2400/2401 | 1K/2K/4K |\n| **Midjourney** 🎨 | `midjourney` | `v6` | 8/10 pts | 5451/5452 | 480p/720p |\n\n### image_to_image (4 models)\n\n| Name | model_id | version_id | Cost | attribute_id | Size Options |\n|------|----------|------------|------|--------------|--------------|\n| **SeeDream 4.5** 🌟 | `doubao-seedream-4.5` | `doubao-seedream-4-5-251128` | 5 pts | 1611 | Default (adaptive 4k) |\n| **Nano Banana2** 💚 | `gemini-3.1-flash-image` | `gemini-3.1-flash-image-preview` | 4/6/10/13 pts | 4404/4405/4406/4407 | 512px/1K/2K/4K |\n| **Nano Banana Pro** | `gemini-3-pro-image` | `gemini-3-pro-image-preview` | 10 pts | 2402/2403/2404 | 1K/2K/4K |\n| **Midjourney** 🎨 | `midjourney` | `v6` | 8/10 pts | 5453/5454 | 480p/720p |\n\n---\n\n## Estimated Generation Time per Model\n\n| Model | Estimated Time | Poll Every | Send Progress Every |\n|-------|---------------|------------|---------------------|\n| **SeeDream 4.5** 🌟 | 30~60s | 5s | 20s |\n| **Nano Banana2** 💚 | 20~40s | 5s | 15s |\n| **Nano Banana Pro** | 60~120s | 5s | 30s |\n| **Midjourney** 🎨 | 40~90s | 8s | 25s |\n\n---\n\n## 💬 User Experience Protocol (IM / Feishu / Discord)\n\n### 🚫 Never Say to Users\n\n| ❌ Never say | ✅ What users care about |\n|-------------|--------------------------|\n| `ima_image_create.py` / 脚本 / script | — |\n| attribute_id / model_version / form_config | — |\n| API 调用 / HTTP 请求 / 任何技术参数名 | — |\n\nOnly tell users: **model name · estimated time · credits · result (image/media) · plain-language status**.\n\n### UX Flow\n\n1. **Pre-generation:** \"🎨 开始生成图片… 模型：[Name]，预计[X~Y]秒，消耗[N]积分\"\n2. **Progress:** Every 15-30s: \"⏳ 正在生成中… [P]%\" (cap at 95%)\n3. **Success:** Send image via `media=image_url` + caption with link\n4. **Failure:** Natural language error + suggest alternatives\n\n---\n\n## ⚠️ Error Message Translation\n\n**NEVER show technical error messages to users.**\n\n| Technical Error | ✅ Say Instead (Chinese) | ✅ Say Instead (English) |\n|----------------|------------------------|------------------------|\n| `401 Unauthorized` | ❌ API密钥无效或未授权<br>💡 **生成新密钥**: https://www.imaclaw.ai/imaclaw/apikey | ❌ API key is invalid<br>💡 **Generate API Key**: https://www.imaclaw.ai/imaclaw/apikey |\n| `4008 Insufficient points` | ❌ 积分不足<br>💡 **购买积分**: https://www.imaclaw.ai/imaclaw/subscription | ❌ Insufficient points<br>💡 **Buy Credits**: https://www.imaclaw.ai/imaclaw/subscription |\n| `Error 6006` | 积分计算异常，系统正在修复 | Points calculation error |\n| `Error 6010` | 模型参数不匹配，请尝试其他模型 | Model parameters incompatible |\n| `error 400` | 图片参数设置有误，请调整尺寸或比例 | Image parameter error |\n| `timeout` | 生成时间过长已超时，建议用更快的模型 | Generation took too long |\n\n**Failure fallback table:**\n\n| Failed Model | First Alt | Second Alt |\n|-------------|-----------|------------|\n| SeeDream 4.5 | Nano Banana2（4pts） | Nano Banana Pro（10-18pts） |\n| Nano Banana2 | SeeDream 4.5（5pts） | Nano Banana Pro（10-18pts） |\n| Nano Banana Pro | SeeDream 4.5（5pts） | Nano Banana2（4pts） |\n| Midjourney | SeeDream 4.5（5pts） | Nano Banana2（4pts） |\n\n---\n\n## 🌐 Network Endpoints\n\n| Domain | Purpose | What's Sent |\n|--------|---------|-------------|\n| `api.imastudio.com` | Main API | Prompts, model params, task IDs |\n| `imapi.liveme.com` | Image upload (i2i only) | Image files, IMA API key |\n\nBoth domains are **owned by IMA Studio**.\n\n---\n\n## Quick Reference: attribute_ids\n\n⚠️ Always call `/open/v1/product/list` at runtime; values change frequently.\n\n**text_to_image**:\n\n| Model | model_id | attribute_id | credit | Size |\n|-------|----------|-------------|--------|------|\n| SeeDream 4.5 | `doubao-seedream-4.5` | **2341** | 5 pts | adaptive 4k |\n| Nano Banana2 (512px) | `gemini-3.1-flash-image` | **4400** | 4 pts | 512×512 |\n| Nano Banana2 (1K) | `gemini-3.1-flash-image` | **4401** | 6 pts | 1024×1024 |\n| Nano Banana2 (2K) | `gemini-3.1-flash-image` | **4402** | 10 pts | 2048×2048 |\n| Nano Banana2 (4K) | `gemini-3.1-flash-image` | **4403** | 13 pts | 4096×4096 |\n| Nano Banana Pro (1K) | `gemini-3-pro-image` | **2399** | 10 pts | 1024×1024 |\n| Nano Banana Pro (2K) | `gemini-3-pro-image` | **2400** | 10 pts | 2048×2048 |\n| Nano Banana Pro (4K) | `gemini-3-pro-image` | **2401** | 18 pts | 4096×4096 |\n\n**image_to_image**:\n\n| Model | model_id | attribute_id | credit | Size |\n|-------|----------|-------------|--------|------|\n| SeeDream 4.5 | `doubao-seedream-4.5` | **1611** | 5 pts | adaptive 4k |\n| Nano Banana2 (512px) | `gemini-3.1-flash-image` | **4404** | 4 pts | 512×512 |\n| Nano Banana2 (1K) | `gemini-3.1-flash-image` | **4405** | 6 pts | 1024×1024 |\n| Nano Banana2 (2K) | `gemini-3.1-flash-image` | **4406** | 10 pts | 2048×2048 |\n| Nano Banana2 (4K) | `gemini-3.1-flash-image` | **4407** | 13 pts | 4096×4096 |\n\n---\n\n## Aspect Ratio Support\n\n| Model | Supported Ratios | Notes |\n|-------|------------------|-------|\n| SeeDream 4.5 | 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2, 21:9 | Via virtual params |\n| Nano Banana2 | 1:1, 16:9, 9:16, 4:3, 3:4 | Native support |\n| Nano Banana Pro | 1:1, 16:9, 9:16, 4:3, 3:4 | Native support |\n| Midjourney | 1:1 only | Fixed 1024×1024 |\n\n**SeeDream 4.5 aspect_ratio → size mapping:**\n- `1:1` → 2048×2048\n- `16:9` → 2560×1440\n- `9:16` → 1440×2560\n- `4:3` → 2304×1728\n- `3:4` → 1728×2304\n- `2:3` → 1664×2496\n- `3:2` → 2496×1664\n- `21:9` → 3024×1296\n\n---\n\n## API Reference\n\n### Core Flow\n\n```\n1. GET /open/v1/product/list?app=ima&platform=web&category=<type>\n   → Get attribute_id, credit, model_version, form_config\n\n2. [image_to_image only] Upload input image → get HTTPS URL\n\n3. POST /open/v1/tasks/create → get task_id\n\n4. POST /open/v1/tasks/detail → poll every 3-5s until resource_status==1\n```\n\n### API 1: Product List\n\n```\nGET /open/v1/product/list?app=ima&platform=web&category=text_to_image\n```\n\n### API 2: Create Task\n\n**text_to_image:**\n```json\n{\n  \"task_type\": \"text_to_image\",\n  \"enable_multi_model\": false,\n  \"src_img_url\": [],\n  \"parameters\": [{\n    \"attribute_id\": 2341,\n    \"model_id\": \"doubao-seedream-4.5\",\n    \"model_name\": \"SeeDream 4.5\",\n    \"model_version\": \"doubao-seedream-4-5-251128\",\n    \"app\": \"ima\",\n    \"platform\": \"web\",\n    \"category\": \"text_to_image\",\n    \"credit\": 5,\n    \"parameters\": {\n      \"prompt\": \"a beautiful mountain sunset\",\n      \"size\": \"4k\",\n      \"n\": 1,\n      \"input_images\": [],\n      \"cast\": {\"points\": 5, \"attribute_id\": 2341}\n    }\n  }]\n}\n```\n\n**image_to_image:**\n```json\n{\n  \"task_type\": \"image_to_image\",\n  \"enable_multi_model\": false,\n  \"src_img_url\": [\"https://example.com/input.jpg\"],\n  \"parameters\": [{\n    \"attribute_id\": 1611,\n    \"model_id\": \"doubao-seedream-4.5\",\n    \"model_name\": \"SeeDream 4.5\",\n    \"model_version\": \"doubao-seedream-4-5-251128\",\n    \"app\": \"ima\",\n    \"platform\": \"web\",\n    \"category\": \"image_to_image\",\n    \"credit\": 5,\n    \"parameters\": {\n      \"prompt\": \"turn into oil painting style\",\n      \"size\": \"4k\",\n      \"n\": 1,\n      \"input_images\": [\"https://example.com/input.jpg\"],\n      \"cast\": {\"points\": 5, \"attribute_id\": 1611}\n    }\n  }]\n}\n```\n\n### API 3: Task Detail (Poll)\n\n```\nPOST /open/v1/tasks/detail\n{\"task_id\": \"<id>\"}\n```\n\n| resource_status | status | Action |\n|-----------------|--------|--------|\n| 0 or null | pending/processing | Keep polling |\n| 1 | success | Done, read `url` |\n| 2/3 | any | Failed |\n\n---\n\n## Common Mistakes\n\n| Mistake | Fix |\n|---------|-----|\n| `attribute_id` is 0 or missing | Always query product list first |\n| `prompt` at outer level | Must be inside `parameters[].parameters` |\n| Wrong `credit` value | Must match `credit_rules[].points` |\n| `size: \"adaptive\"` for SeeDream i2i | Use values from `form_config` only |\n\n---\n\n## Python Example\n\n```python\nimport time, requests\n\nBASE_URL = \"https://api.imastudio.com\"\nAPI_KEY = \"ima_your_key_here\"\nHEADERS = {\n    \"Authorization\": f\"Bearer {API_KEY}\",\n    \"Content-Type\": \"application/json\",\n    \"x-app-source\": \"ima_skills\",\n    \"x_app_language\": \"en\",\n}\n\ndef get_products(category):\n    r = requests.get(f\"{BASE_URL}/open/v1/product/list\",\n                     headers=HEADERS,\n                     params={\"app\": \"ima\", \"platform\": \"web\", \"category\": category})\n    r.raise_for_status()\n    versions = []\n    for node in r.json()[\"data\"]:\n        for child in node.get(\"children\") or []:\n            if child.get(\"type\") == \"3\":\n                versions.append(child)\n    return versions\n\ndef create_task(task_type, prompt, product, input_images=None):\n    input_images = input_images or []\n    rule = product[\"credit_rules\"][0]\n    body = {\n        \"task_type\": task_type,\n        \"enable_multi_model\": False,\n        \"src_img_url\": input_images,\n        \"parameters\": [{\n            \"attribute_id\": rule[\"attribute_id\"],\n            \"model_id\": product[\"model_id\"],\n            \"model_name\": product[\"name\"],\n            \"model_version\": product[\"id\"],\n            \"app\": \"ima\", \"platform\": \"web\",\n            \"category\": task_type,\n            \"credit\": rule[\"points\"],\n            \"parameters\": {\n                \"prompt\": prompt, \"n\": 1,\n                \"input_images\": input_images,\n                \"cast\": {\"points\": rule[\"points\"], \"attribute_id\": rule[\"attribute_id\"]}\n            }\n        }]\n    }\n    r = requests.post(f\"{BASE_URL}/open/v1/tasks/create\", headers=HEADERS, json=body)\n    r.raise_for_status()\n    return r.json()[\"data\"][\"id\"]\n\ndef poll(task_id, interval=3, timeout=300):\n    deadline = time.time() + timeout\n    while time.time() < deadline:\n        r = requests.post(f\"{BASE_URL}/open/v1/tasks/detail\",\n                          headers=HEADERS, json={\"task_id\": task_id})\n        r.raise_for_status()\n        task = r.json()[\"data\"]\n        medias = task.get(\"medias\", [])\n        if medias and all(m.get(\"resource_status\") == 1 for m in medias):\n            return task\n        time.sleep(interval)\n    raise TimeoutError(f\"Task timed out: {task_id}\")\n\n# Example: text_to_image\nproducts = get_products(\"text_to_image\")\nseedream = next(p for p in products if p[\"model_id\"] == \"doubao-seedream-4.5\")\ntask_id = create_task(\"text_to_image\", \"mountain sunset\", seedream)\nresult = poll(task_id)\nprint(result[\"medias\"][0][\"url\"])\n```\n\nFile v1.0.12:clawhub.json\n\n{\n  \"name\": \"IMA AI Image Generator — Text to Image, Image to Image, AI Art, SeeDream, Midjourney, Nano Banana\",\n  \"tagline\": \"AI image generator with SeeDream 4.5, Midjourney, Nano Banana 2/Pro. Text-to-image, image-to-image, AI art, 1K/2K/4K resolution.\",\n  \"description\": \"AI image generator with premier models: SeeDream 4.5, Midjourney, Nano Banana 2, Nano Banana Pro. Image generator supporting text-to-image, image-to-image, style transfer, and AI art creation. Use as AI art generator for illustrations, product photo generator for e-commerce, or character design tool for creative projects. AI image generation with 1K/2K/4K resolution, custom aspect ratios, and intelligent model selection. Better alternative to DALL-E, Stable Diffusion, or Midjourney APIs directly.\",\n  \"category\": \"file-generation\",\n  \"requiredEnvVars\": [\"IMA_API_KEY\"],\n  \"credentialNotice\": \"The IMA API key is required at runtime (--api-key or IMA_API_KEY). It is sent to api.imastudio.com (generation) and, for image_to_image with local files, to imapi.liveme.com (upload). Both are IMA Studio. Obtain keys at https://www.imaclaw.ai/. Use a scoped/test key for initial testing.\",\n  \"optionalDependencyNote\": \"When ima-knowledge-ai is installed, this skill may instruct the agent to read that skill's reference files (~/.openclaw/skills/ima-knowledge-ai/references/*) for workflow and visual-consistency guidance. The skill works standalone without it; those reads are optional.\",\n  \"requires\": {\n    \"env\": [\"IMA_API_KEY\"],\n    \"primaryCredential\": \"IMA_API_KEY\",\n    \"credentialNote\": \"IMA_API_KEY is required at runtime. It is sent to api.imastudio.com and, for local image uploads, to imapi.liveme.com.\"\n  },\n  \"localPaths\": {\n    \"readWrite\": [\n      \"~/.openclaw/memory/ima_prefs.json\",\n      \"~/.openclaw/logs/ima_skills/\"\n    ],\n    \"purpose\": \"Preferences (model defaults) and generation logs; logs auto-deleted after 7 days. User can delete anytime.\"\n  },\n  \"persistence\": {\n    \"readWrite\": [\n      \"~/.openclaw/memory/ima_prefs.json\",\n      \"~/.openclaw/logs/ima_skills/\"\n    ],\n    \"retention\": \"Logs are auto-cleaned after 7 days; preferences remain until user deletes them.\"\n  },\n  \"instructionScope\": {\n    \"crossSkillReadOptional\": [\n      \"~/.openclaw/skills/ima-knowledge-ai/references/*\"\n    ]\n  },\n  \"supported_models\": [\n    \"SeeDream\",\n    \"SeeDream 4.5\",\n    \"Midjourney\",\n    \"MJ\",\n    \"Nano Banana\",\n    \"Nano Banana 2\",\n    \"Nano Banana Pro\",\n    \"text-to-image\",\n    \"image-to-image\",\n    \"t2i\",\n    \"i2i\",\n    \"可梦\",\n    \"香蕉\",\n    \"doubao-seedream\",\n    \"gemini-image\"\n  ],\n  \"tags\": [\n    \"ima-studio\",\n    \"image-generation\",\n    \"text-to-image\",\n    \"image-to-image\",\n    \"ai-art\",\n    \"ai-image-generator\",\n    \"image-generator\",\n    \"art-generator\",\n    \"seedream\",\n    \"midjourney\",\n    \"nano-banana\",\n    \"seedream-4.5\",\n    \"nano-banana-2\",\n    \"nano-banana-pro\",\n    \"product-photos\",\n    \"character-design\",\n    \"logo-design\",\n    \"poster\",\n    \"social-media-graphics\",\n    \"style-transfer\",\n    \"ai-painting\",\n    \"ai-drawing\",\n    \"illustration\"\n  ],\n  \"version\": \"1.0.8\",\n  \"license\": \"MIT\",\n  \"pricing\": \"free\",\n  \"author\": {\n    \"name\": \"IMA Studio\",\n    \"url\": \"https://www.imaclaw.ai/\"\n  },\n  \"keywords\": [\n    \"image generation\",\n    \"text to image\",\n    \"image to image\",\n    \"AI image generator\",\n    \"image generator\",\n    \"AI art generator\",\n    \"art generator\",\n    \"ima studio\",\n    \"seedream\",\n    \"see dream\",\n    \"seedream 4.5\",\n    \"midjourney\",\n    \"mj\",\n    \"nano banana\",\n    \"nano banana 2\",\n    \"nano banana pro\",\n    \"ai art\",\n    \"product photos\",\n    \"character design\",\n    \"logo design\",\n    \"t2i\",\n    \"i2i\",\n    \"style transfer\",\n    \"AI painting\",\n    \"AI drawing\",\n    \"text to picture\",\n    \"photo to art\",\n    \"AI illustration\",\n    \"画图\",\n    \"AI绘画\",\n    \"文生图\",\n    \"图生图\",\n    \"可梦\",\n    \"香蕉\",\n    \"doubao\",\n    \"gemini image\"\n  ],\n  \"search_optimized_terms\": [\n    \"seedream\",\n    \"midjourney\",\n    \"nano banana\",\n    \"see dream\",\n    \"mj\",\n    \"text to image\",\n    \"image to image\",\n    \"image generation\",\n    \"AI image\",\n    \"AI art\",\n    \"art generator\",\n    \"image generator\",\n    \"AI drawing\",\n    \"AI painting\",\n    \"t2i\",\n    \"i2i\",\n    \"可梦\",\n    \"香蕉\",\n    \"画图\",\n    \"AI绘画\"\n  ],\n  \"related_skills\": [\n    \"ima-knowledge-ai\",\n    \"ima-video-ai\",\n    \"ima-all-ai\",\n    \"ima-resource-skill\"\n  ],\n  \"use_cases\": [\n    \"AI image generation, text-to-image, image-to-image\",\n    \"AI art and illustration creation\",\n    \"Product photos for e-commerce\",\n    \"Character design and avatar creation\",\n    \"Logo design and brand assets\",\n    \"Poster and social media graphics\",\n    \"Style transfer and photo transformation\",\n    \"Multi-resolution 1K/2K/4K output\"\n  ],\n  \"key_features\": [\n    \"SeeDream 4.5, Midjourney, Nano Banana 2/Pro one-stop access\",\n    \"Text-to-image, image-to-image, visual consistency support\",\n    \"1K/2K/4K resolution with custom aspect ratios\",\n    \"Intelligent model selection with ima-knowledge-ai integration\",\n    \"Fast generation with automatic retry and error recovery\",\n    \"Budget-friendly options (4 pts) to premium quality (18 pts)\"\n  ]\n}\n\nFile v1.0.12:!keywords.txt\n\nAI image generator for creating professional images from text prompts. Generate product photos, posters, thumbnails, logos, art, illustrations, and social media graphics with leading AI models.\n\nAI photo generator for product photography and commercial image creation. Generate high-quality product photos, e-commerce images, and brand photography with SeeDream, Midjourney, and Nano Banana models.\n\nAI poster generator for marketing materials and promotional graphics. Create event posters, movie posters, advertising posters, and campaign visuals with AI image generation technology.\n\nAI thumbnail generator for YouTube, social media, and content platforms. Generate eye-catching thumbnails, cover images, and preview graphics for videos, articles, and social posts.\n\nAI logo generator for brand identity and business branding. Create company logos, app icons, brand marks, and visual identity elements with AI-powered graphic design.\n\nAI art generator for creative and artistic image creation. Generate digital art, paintings, illustrations, concept art, and fantasy artwork with Midjourney and other AI art models.\n\nAI illustration generator for books, articles, and editorial content. Create custom illustrations, character designs, infographics, and visual storytelling elements with AI image generation.\n\nProduct photo generator for e-commerce and online retail. Generate product photography, catalog images, lifestyle shots, and commercial photos with AI-powered image creation tools.\n\nSocial media image generator for Instagram, Facebook, Twitter, and LinkedIn. Create social media posts, stories, banners, profile images, and platform-optimized graphics with AI.\n\nAI graphic design tool for marketing teams and creative professionals. Generate design assets, marketing visuals, brand graphics, and promotional images with intelligent AI model selection.\n\nText to image AI generator for creating visuals from descriptions. Convert text prompts into professional images, photos, posters, thumbnails, and graphic designs using AI models.\n\nImage to image AI generator for style transfer and photo editing. Transform existing images into new styles, enhance product photos, refine logos, and create artistic variations with AI.\n\n---\n\nAI image generator with four premium models. SeeDream 4.5 for photorealistic product photos and social media graphics. Midjourney for artistic illustrations and creative graphic design. Nano Banana 2 for budget-friendly thumbnails and quick image generation. Nano Banana Pro for premium 4K product photos and professional logos.\n\nGenerate images for every use case. Product photos for e-commerce. Posters for marketing campaigns. Thumbnails for YouTube and social media. Logos for brand identity. Art and illustrations for creative projects. Social media graphics for digital marketing.\n\nAI poster and thumbnail generator with custom aspect ratio support. Create 16:9 landscape posters, 9:16 portrait thumbnails, 4:3 product photos, and 1:1 social media graphics. Support for 1K, 2K, and 4K resolution output.\n\nProfessional AI photo generator for commercial and personal use. Generate studio-quality product photography, portrait photos, landscape images, and creative compositions with intelligent model selection.\n\nAI-powered graphic design for marketing and advertising. Create ad images, banner graphics, social media visuals, and promotional materials with text-to-image and image-to-image AI generation.\n\nImage generation AI with visual consistency for character design and product series. Maintain consistent appearance across multiple generated images using reference-image-driven workflows.\n\n---\n\nGenerate posters with AI. Create thumbnails with AI. Design logos with AI. Produce art with AI. Make illustrations with AI. Generate product photos with AI. Create social media images with AI. Design graphics with AI.\n\nAI image creator for designers. AI photo maker for photographers. AI poster designer for marketers. AI thumbnail maker for content creators. AI logo designer for brands. AI art creator for artists. AI illustration maker for publishers.\n\nBest AI image generator for professional image creation. Top AI photo generator for product photography. Leading AI poster generator for marketing visuals. Premier AI thumbnail generator for social media content.\n\nImage generation with SeeDream 4.5, Midjourney, Nano Banana 2, and Nano Banana Pro. Four AI models for every image generation need from budget thumbnails to premium 4K product photos.\n\nAI image generator supporting text-to-image and image-to-image generation modes. Create new images from text descriptions or transform existing photos with AI-powered style transfer and enhancement.\n\n---\n\nGenerate product photos for online stores with AI image generation. Create lifestyle photography, flat lay compositions, and catalog images for e-commerce platforms.\n\nCreate social media graphics with AI. Generate Instagram posts, Facebook covers, Twitter headers, LinkedIn banners, and Pinterest pins with AI image and photo generation.\n\nDesign marketing posters with AI. Generate event announcements, product launches, sale promotions, and brand campaigns with AI poster generation technology.\n\nMake YouTube thumbnails with AI. Generate click-worthy thumbnails, video covers, and channel art with AI thumbnail generation tools.\n\nCreate brand logos with AI. Generate wordmarks, icon logos, abstract marks, and mascot designs with AI logo generation capabilities.\n\nProduce digital art and illustrations with AI. Generate concept art, character illustrations, fantasy scenes, and abstract compositions with Midjourney and AI art models.\n\nAI graphic design for social media marketing. Create cohesive visual campaigns, branded content series, and platform-specific graphics with AI image generation.\n\nProfessional image generation for advertising and commercial use. Generate display ad visuals, billboard images, packaging designs, and print-ready marketing materials with AI.\n\n---\n\nAI image generator. AI photo generator. Image generator. AI poster generator. AI thumbnail generator. Thumbnail generator. AI art generator. AI logo generator. AI illustration generator. Product photo generator. Social media image generator. AI graphic design.\n\nIMA AI Image & Photo Generator — the unified AI image creation solution for posters, thumbnails, logos, art, illustrations, product photos, social media graphics, and professional graphic design.\n\n---\n\nCreate images with AI — product photos, posters, thumbnails, logos, art, illustrations, and social media graphics. The all-in-one AI image generator for creative professionals and marketing teams.\n\nAI-powered image creation for every visual need. From text-to-image generation for new visuals to image-to-image AI for style transfer and photo enhancement.\n\nGenerate professional visuals with artificial intelligence. AI image creation for advertising, e-commerce, social media marketing, brand identity, and creative content production.\n\nOne tool for all image generation needs. Product photography AI, poster design AI, thumbnail creation AI, logo generation AI, art creation AI, and illustration generation AI.\n\nAI image and photo generator with intelligent model routing. Automatic selection of the best AI model based on image type, quality requirements, and budget constraints.\n\nCreate visual content for digital marketing with AI. Generate platform-optimized images for social media, websites, email campaigns, and digital advertising.\n\nAI-generated images for professional use. Studio-quality product photos, marketing posters, social media thumbnails, brand logos, creative art, and custom illustrations.\n\nComplete AI image generation platform. Text-to-image for new creations. Image-to-image for transformations. Four premium models. Custom aspect ratios. Up to 4K resolution. Visual consistency support.\n\nGenerate any type of image with AI. Whether you need a product photo, a marketing poster, a YouTube thumbnail, a brand logo, digital art, or a social media graphic — this AI image generator handles it all.\n\nBest AI tool for image creation. Generate posters, thumbnails, logos, product photos, illustrations, art, and social media graphics with SeeDream, Midjourney, and Nano Banana AI models.\n\n---\n\nAI image generator for agencies and freelancers. Produce client deliverables including product photography, poster designs, thumbnail graphics, logo concepts, artistic illustrations, and social media content.\n\nProfessional AI photo and image creation. Enterprise-grade image generation with four leading models. Production-quality output for commercial and marketing use.\n\nAI-generated product photos for e-commerce stores. AI-generated posters for event marketing. AI-generated thumbnails for video content. AI-generated logos for brand identity. AI-generated art for creative projects. AI-generated illustrations for editorial content. AI-generated social media graphics for digital campaigns.\n\nImage creation AI with custom aspect ratio support, resolution control up to 4K, and visual consistency for brand series. Intelligent model selection optimizes quality and cost for each image generation task.\n\nGenerate images from text prompts. Transform photos with AI. Create visual content at scale. One AI image generator for posters, thumbnails, logos, product photos, art, illustrations, and social media graphic design.\n\nAI image generation tool supporting SeeDream 4.5 for general use, Midjourney for artistic styles, Nano Banana 2 for budget generation, and Nano Banana Pro for premium 4K quality. Complete image and photo generation solution.\n\nFull-featured AI image and photo generator. Create posters for advertising. Generate thumbnails for social platforms. Design logos for businesses. Produce art for galleries. Make illustrations for publications. Generate product photos for catalogs. Create social media graphics for campaigns. All with one unified AI image generation tool.\n\nThe definitive AI image generator — poster creation, thumbnail generation, logo design, art production, illustration making, product photography, and social media graphic design powered by leading AI models.\n\n---\n\nAI绘画 AI画图 文生图 图生图 文字生成图片 图片生成 智能绘图 人工智能绘画 AI图像生成 AI出图\n海报生成 海报设计 活动海报 电影海报 营销海报 电商主图 商品图 产品摄影 白底图 场景图\n缩略图 封面图 视频封面 YouTube封面 小红书配图 朋友圈配图 社媒配图 头图 banner\nLogo设计 商标设计 品牌标识 APP图标 吉祥物 IP形象 插画生成 原画 概念图 角色设计 头像生成\n风格迁移 参考图 垫图 一致性 角色一致性 系列图 商品详情图 跨境电商图 亚马逊主图\n\n可梦 SeeDream 豆包可梦 seedream 4.5 doubao-seedream Midjourney MJ 米德 journey\n香蕉 Nano Banana 香蕉2 Nano Banana 2 香蕉Pro Nano Banana Pro gemini flash image\nIMA画图 IMA Studio 图像技能 积分生图 1K 2K 4K 分辨率 宽高比 16比9 9比16 1比1 21比9\n\n---\n\n用中文描述即可生成海报、商品图、缩略图与社媒配图。支持文生图与图生图，集成SeeDream 4.5、Midjourney、Nano Banana 2与Nano Banana Pro等模型，可设比例与高清输出。适合电商主图、品牌视觉、短视频封面与运营物料。输出为可分享图片链接，需IMA API密钥与积分。\n\nDALL-E Stable Diffusion SDXL 文心一格 通义万相 竞品替代 一站式生图 多模型切换\n\nFile v1.0.12:requirements.txt\n\n# Python dependencies for ima-image-ai skill\n# Install with: pip install -r requirements.txt\n\nrequests>=2.25.0\n\nArchive v1.0.11: 10 files, 37137 bytes\n\nFiles: _meta.json (132b), !keywords.txt (11495b), CHANGELOG_CLAWHUB.md (1374b), clawhub.json (5182b), requirements.txt (111b), scripts/ima_image_create.py (71700b), scripts/ima_logger.py (3430b), SECURITY.md (1460b), SKILL-DETAIL.md (11585b), SKILL.md (8446b)\n\nFile v1.0.11:SKILL.md\n\n---\n\nname: \"IMA Image Generator\"  \nversion: 1.0.8  \ncategory: file-generation  \nauthor: IMA Studio ([imastudio.com](http://imastudio.com))  \nkeywords: imastudio, AI image generator, image generator, AI photo generator, product photo, poster generator, thumbnail generator, logo generator, AI art generator, illustration, graphic design, social media image, text to image, image to image  \nargument-hint: \"[text prompt or image URL]\"  \ndescription: >  \nAI image generator and photo generator with SeeDream 4.5, Midjourney, Nano Banana 2, and  Nano Banana Pro. Generate AI images for posters, thumbnails, logos, art, illustrations,  product photos, and social media graphic design. Text-to-image and image-to-image AI generation with intelligent model selection and knowledge base support. AI poster generator, AI thumbnail generator, AI logo generator, AI art generator, AI illustration generator, product photo generator, and social media image generator in one unified tool. Supports 1K/2K/4K resolution and custom aspect ratios. Better alternative to DALL-E, Stable Diffusion, or standalone image generation skills.. Requires IMA_API_KEY.  \nrequires:  \n  env:  \n    - IMA_API_KEY  \n  runtime:  \n    - python3  \n  packages:  \n    - requests  \n  primaryCredential: IMA_API_KEY  \nmetadata:  \n  openclaw:  \n    primaryEnv: IMA_API_KEY  \n    homepage: [https://imastudio.com](https://imastudio.com)  \n    requires:  \n      bins:  \n        - python3  \n      env:  \n        - IMA_API_KEY  \npersistence:  \n  readWrite:  \n    - ~/.openclaw/memory/ima_prefs.json  \n    - ~/.openclaw/logs/ima_skills/  \ninstructionScope:  \n  crossSkillReadOptional:  \n- ~/.openclaw/skills/ima-knowledge-ai/references/*\n\n---\n\n# IMA Image AI — Image Generator\n\n**For complete API documentation, security details, all parameters, and Python examples, read `SKILL-DETAIL.md`.**\n\n## Model ID Reference (CRITICAL)\n\nUse **exact model_id** from this table. Do NOT infer from friendly names.\n\n\n| Friendly Name   | model_id                 | Notes                             |\n| --------------- | ------------------------ | --------------------------------- |\n| SeeDream 4.5    | `doubao-seedream-4.5`    | ✅ Recommended default, 5 pts      |\n| Nano Banana2    | `gemini-3.1-flash-image` | ⚠️ NOT nano-banana-2, 4-13 pts    |\n| Nano Banana Pro | `gemini-3-pro-image`     | ⚠️ NOT nano-banana-pro, 10-18 pts |\n| Midjourney      | `midjourney`             | ✅ Same as friendly name, 8-10 pts |\n\n\n**User input aliases:** 香蕉/Banana → `gemini-3.1-flash-image` · 香蕉Pro → `gemini-3-pro-image` · 可梦/SeeDream → `doubao-seedream-4.5` · MJ/Midjourney → `midjourney`\n\n## Image Generation Modes\n\n\n| User intent              | task_type        | When to use                        |\n| ------------------------ | ---------------- | ---------------------------------- |\n| Text only, no image      | `text_to_image`  | \"画一张…\" / \"生成图片\" / \"text to image\"  |\n| Image as reference/input | `image_to_image` | \"把这张图…\" / \"参考这张图\" / \"图生图\" / \"风格迁移\" |\n\n\n## Visual Consistency (IMPORTANT)\n\nIf user mentions \"same character\", \"series\", \"multi-shot\", or continues from a previous generation:\n\n- **Do NOT use text_to_image** (will produce different-looking results)\n- Use `image_to_image` with previous result as reference\n- Read `ima-knowledge-ai/references/visual-consistency.md` if available\n\n## Pre-Check: Knowledge Base\n\n**If ima-knowledge-ai is installed**, read before generating:\n\n1. `ima-knowledge-ai/references/visual-consistency.md` — if multi-shot or character continuity needed\n\n**If not installed:** use this SKILL's model table and defaults.\n\n## Model Selection Priority\n\n1. **User preference** (if explicitly stated) → highest priority\n2. **ima-knowledge-ai recommendation** (if installed)\n3. **Fallback defaults:**\n\n\n| Task                     | Default Model   | model_id                 | Cost      |\n| ------------------------ | --------------- | ------------------------ | --------- |\n| text_to_image            | SeeDream 4.5    | `doubao-seedream-4.5`    | 5 pts     |\n| text_to_image (budget)   | Nano Banana2    | `gemini-3.1-flash-image` | 4 pts     |\n| text_to_image (premium)  | Nano Banana Pro | `gemini-3-pro-image`     | 10-18 pts |\n| text_to_image (artistic) | Midjourney 🎨   | `midjourney`             | 8-10 pts  |\n| image_to_image           | SeeDream 4.5    | `doubao-seedream-4.5`    | 5 pts     |\n\n\n## User Input Parsing\n\n**Size/Resolution:** 512/1K/2K/4K → via attribute_id for Nano Banana series\n**Aspect ratio:** 16:9/9:16/4:3/3:4/1:1 → SeeDream 4.5 or Nano Banana series (Midjourney only 1:1)\n**Budget:** 最便宜→Nano Banana2 (4pts) · 最好→Nano Banana Pro (4K) or SeeDream 4.5\n\n## Script Usage\n\n```bash\n# Text to image\npython3 {baseDir}/scripts/ima_image_create.py \\\n  --api-key $IMA_API_KEY \\\n  --task-type text_to_image \\\n  --model-id doubao-seedream-4.5 \\\n  --prompt \"a cute puppy running on grass\" \\\n  --user-id {user_id} \\\n  --output-json\n\n# Image to image (accepts URLs and local file paths)\npython3 {baseDir}/scripts/ima_image_create.py \\\n  --api-key $IMA_API_KEY \\\n  --task-type image_to_image \\\n  --model-id doubao-seedream-4.5 \\\n  --prompt \"turn into oil painting style\" \\\n  --input-images https://example.com/photo.jpg \\\n  --user-id {user_id} \\\n  --output-json\n\n# With aspect ratio (SeeDream 4.5 or Nano Banana)\npython3 {baseDir}/scripts/ima_image_create.py \\\n  --api-key $IMA_API_KEY \\\n  --task-type text_to_image \\\n  --model-id doubao-seedream-4.5 \\\n  --prompt \"beautiful landscape\" \\\n  --extra-params '{\"aspect_ratio\": \"16:9\"}' \\\n  --user-id {user_id} \\\n  --output-json\n```\n\n## Sending Results to User\n\n```python\n# ✅ CORRECT: Use remote URL directly for inline image display\nmessage(action=\"send\", media=image_url, caption=\"✅ 图片生成成功！\\n• 模型：[Name]\\n• 耗时：[X]s\\n• 积分：[N pts]\\n\\n🔗 原始链接：[url]\")\n\n# ❌ WRONG: Never download to local file (shows as attachment, not rendered)\n```\n\n## UX Protocol (Brief)\n\n1. **Pre-generation:** \"🎨 开始生成图片… 模型：[Name]，预计[X~Y]秒，消耗[N]积分\"\n2. **Progress:** Every 15-30s: \"⏳ 正在生成中… [P]%\" (cap at 95% until API returns success)\n3. **Success:** Send image via `media=image_url` + include link in caption for sharing\n4. **Failure:** Natural language error + suggest alternative models. **Never show technical errors to users.** See SKILL-DETAIL.md for full error translation table.\n\n**Never say to users:** script names, API endpoints, attribute_id, technical parameter names. Only: model name · time · credits · result · status.\n\n## Midjourney Limitations\n\nMidjourney has **fixed 1:1 aspect ratio** (1024×1024 only). If user asks for 16:9 etc. with \"MJ\", recommend SeeDream 4.5 or Nano Banana series instead.\n\n## Environment\n\nBase URL: `https://api.imastudio.com`\nHeaders: `Authorization: Bearer $IMA_API_KEY` · `x-app-source: ima_skills` · `x_app_language: en`\n\n## Core Flow\n\n1. `GET /open/v1/product/list?app=ima&platform=web&category=<task_type>` → get `attribute_id`, `credit`, `model_version`, `form_config`\n2. [image_to_image only] Upload images or pass local paths to script\n3. `POST /open/v1/tasks/create` → get `task_id`\n4. `POST /open/v1/tasks/detail` → poll every 3-5s until `resource_status==1`\n\n**MANDATORY:** Always query product list first. `attribute_id` is required — if 0 or missing, task fails.\n\n## User Preference Memory\n\nStorage: `~/.openclaw/memory/ima_prefs.json`\n\n- **Save** when user explicitly says \"用XXX\" / \"默认用XXX\" / \"always use XXX\"\n- **Clear** when user says \"用最好的\" / \"推荐一个\" / \"自动选择\"\n- **Never save** auto-selected or fallback models as preferences\n\n## Model Capabilities\n\n\n| Model           | Custom Aspect Ratio | Max Resolution | Notes                                            |\n| --------------- | ------------------- | -------------- | ------------------------------------------------ |\n| SeeDream 4.5    | ✅ (8 ratios)        | 4K             | 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2, 21:9        |\n| Nano Banana2    | ✅ (5 ratios)        | 4K             | 1:1, 16:9, 9:16, 4:3, 3:4; size via attribute_id |\n| Nano Banana Pro | ✅ (5 ratios)        | 4K             | 1:1, 16:9, 9:16, 4:3, 3:4; size via attribute_id |\n| Midjourney 🎨   | ❌ (1:1 only)        | 1024px         | Fixed square, artistic style focus               |\n\nFile v1.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn7ac9knfd0gdwhn8ktjvqqgj181thkt\",\n  \"slug\": \"ima-image-ai\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1774855520614\n}\n\nFile v1.0.11:CHANGELOG_CLAWHUB.md\n\n# Changelog — ima-image-ai\n\nAll notable changes to the **IMA Studio Image Generation** skill will be documented in this file.\n\n---\n\n## [Unreleased]\n\n### Changed (registry / security)\n\n- **Registry metadata aligned with code and SKILL.md**\n  - `clawhub.json`: Added `requires.env` (IMA_API_KEY), `requires.envOptional` (IMA_IM_BASE_URL), `requires.primaryCredential`, `requires.credentialNote`, `persistence` (logs + memory paths), and `instructionScope` (cross-skill read of ima-knowledge-ai when installed).\n  - `SKILL.md` frontmatter: Added `requires.env: [IMA_API_KEY]`, `envOptional: [IMA_IM_BASE_URL]`, and `persistence` so scanners and registries can see required credentials and config paths.\n- Addresses OpenClaw “Suspicious” review: credential mismatch (declared zero vs. code requiring API key), and undeclared persistence/cross-skill read scope. No code or behavior change; metadata only.\n\n---\n\n## [1.0.8] - 2026\n\n### Requirements\n\n- IMA API key (`IMA_API_KEY` or `--api-key`); optional override `IMA_IM_BASE_URL` for upload endpoint.\n- Python 3, `requests`.\n- Optional: install **ima-knowledge-ai** for workflow and visual-consistency guidance.\n\n### Endpoints\n\n- `api.imastudio.com` — main image generation API.\n- `imapi.liveme.com` — image upload (used for image_to_image when input is a local file). IMA API key is sent to both; both are IMA Studio.\n\nFile v1.0.11:SECURITY.md\n\n# Security Disclosure: ima-image-ai\n\n## Purpose\n\nThis document explains endpoint usage, credential flow, and local data behavior for `ima-image-ai`.\n\n## Network Endpoints\n\n| Domain | Used For | Trigger |\n|---|---|---|\n| `api.imastudio.com` | Product list, task create, task detail polling | All requests |\n| `imapi.liveme.com` | Upload-token request for local image inputs | Only when `image_to_image` includes local files |\n| `*.aliyuncs.com` / `*.esxscloud.com` | Presigned binary upload + media CDN delivery | Returned by upload-token API |\n\nFor remote HTTPS images, the script can pass URLs directly without upload-token calls.\n\n## Credential Flow\n\n| Credential | Where Sent | Why |\n|---|---|---|\n| `IMA_API_KEY` | `api.imastudio.com` | Open API auth (`Authorization: Bearer ...`) |\n| `IMA_API_KEY` | `imapi.liveme.com` | Upload-token auth for local image uploads |\n\nNo API key is sent to presigned upload hosts during binary upload.\n\n## Cross-Skill Reads\n\nThis skill runs standalone.\nIf `ima-knowledge-ai` is installed, the agent may optionally read:\n\n- `~/.openclaw/skills/ima-knowledge-ai/references/*`\n\nfor workflow and visual-consistency guidance only.\n\n## Local Data\n\n| Path | Content | Retention |\n|---|---|---|\n| `~/.openclaw/memory/ima_prefs.json` | Per-user model preference cache | Until manually removed |\n| `~/.openclaw/logs/ima_skills/` | Operational logs | Auto-cleaned by script after 7 days |\n\nNo API key is written into repository files.\n\nFile v1.0.11:SKILL-DETAIL.md\n\n---\nname: IMA Studio Image Generation\nversion: 1.0.8\ncategory: file-generation\nauthor: IMA Studio (imastudio.com)\nkeywords: imastudio, image generation, text to image, 图像生成, AI绘画, 文生图, 图生图, IMA, 画图, SeeDream, Nano Banana, Midjourney\nargument-hint: \"[text prompt or image URL]\"\ndescription: >\n  Complete API documentation for IMA Image Generator. Includes detailed model parameters,\n  attribute_id references, error handling, UX protocol, and Python examples.\n---\n\n# IMA Image AI — Complete Documentation\n\n## Supported Models\n\n⚠️ **Production Environment**: **4 image models** are currently available (as of 2026-02-28).\n\n### text_to_image (4 models)\n\n| Name | model_id | version_id | Cost | attribute_id | Size Options |\n|------|----------|------------|------|--------------|--------------|\n| **SeeDream 4.5** 🌟 | `doubao-seedream-4.5` | `doubao-seedream-4-5-251128` | 5 pts | 2341 | Default (adaptive 4k) |\n| **Nano Banana2** 💚 | `gemini-3.1-flash-image` | `gemini-3.1-flash-image-preview` | 4/6/10/13 pts | 4400/4401/4402/4403 | 512px/1K/2K/4K |\n| **Nano Banana Pro** | `gemini-3-pro-image` | `gemini-3-pro-image-preview` | 10/10/18 pts | 2399/2400/2401 | 1K/2K/4K |\n| **Midjourney** 🎨 | `midjourney` | `v6` | 8/10 pts | 5451/5452 | 480p/720p |\n\n### image_to_image (4 models)\n\n| Name | model_id | version_id | Cost | attribute_id | Size Options |\n|------|----------|------------|------|--------------|--------------|\n| **SeeDream 4.5** 🌟 | `doubao-seedream-4.5` | `doubao-seedream-4-5-251128` | 5 pts | 1611 | Default (adaptive 4k) |\n| **Nano Banana2** 💚 | `gemini-3.1-flash-image` | `gemini-3.1-flash-image-preview` | 4/6/10/13 pts | 4404/4405/4406/4407 | 512px/1K/2K/4K |\n| **Nano Banana Pro** | `gemini-3-pro-image` | `gemini-3-pro-image-preview` | 10 pts | 2402/2403/2404 | 1K/2K/4K |\n| **Midjourney** 🎨 | `midjourney` | `v6` | 8/10 pts | 5453/5454 | 480p/720p |\n\n---\n\n## Estimated Generation Time per Model\n\n| Model | Estimated Time | Poll Every | Send Progress Every |\n|-------|---------------|------------|---------------------|\n| **SeeDream 4.5** 🌟 | 30~60s | 5s | 20s |\n| **Nano Banana2** 💚 | 20~40s | 5s | 15s |\n| **Nano Banana Pro** | 60~120s | 5s | 30s |\n| **Midjourney** 🎨 | 40~90s | 8s | 25s |\n\n---\n\n## 💬 User Experience Protocol (IM / Feishu / Discord)\n\n### 🚫 Never Say to Users\n\n| ❌ Never say | ✅ What users care about |\n|-------------|--------------------------|\n| `ima_image_create.py` / 脚本 / script | — |\n| attribute_id / model_version / form_config | — |\n| API 调用 / HTTP 请求 / 任何技术参数名 | — |\n\nOnly tell users: **model name · estimated time · credits · result (image/media) · plain-language status**.\n\n### UX Flow\n\n1. **Pre-generation:** \"🎨 开始生成图片… 模型：[Name]，预计[X~Y]秒，消耗[N]积分\"\n2. **Progress:** Every 15-30s: \"⏳ 正在生成中… [P]%\" (cap at 95%)\n3. **Success:** Send image via `media=image_url` + caption with link\n4. **Failure:** Natural language error + suggest alternatives\n\n---\n\n## ⚠️ Error Message Translation\n\n**NEVER show technical error messages to users.**\n\n| Technical Error | ✅ Say Instead (Chinese) | ✅ Say Instead (English) |\n|----------------|------------------------|------------------------|\n| `401 Unauthorized` | ❌ API密钥无效或未授权<br>💡 **生成新密钥**: https://www.imaclaw.ai/imaclaw/apikey | ❌ API key is invalid<br>💡 **Generate API Key**: https://www.imaclaw.ai/imaclaw/apikey |\n| `4008 Insufficient points` | ❌ 积分不足<br>💡 **购买积分**: https://www.imaclaw.ai/imaclaw/subscription | ❌ Insufficient points<br>💡 **Buy Credits**: https://www.imaclaw.ai/imaclaw/subscription |\n| `Error 6006` | 积分计算异常，系统正在修复 | Points calculation error |\n| `Error 6010` | 模型参数不匹配，请尝试其他模型 | Model parameters incompatible |\n| `error 400` | 图片参数设置有误，请调整尺寸或比例 | Image parameter error |\n| `timeout` | 生成时间过长已超时，建议用更快的模型 | Generation took too long |\n\n**Failure fallback table:**\n\n| Failed Model | First Alt | Second Alt |\n|-------------|-----------|------------|\n| SeeDream 4.5 | Nano Banana2（4pts） | Nano Banana Pro（10-18pts） |\n| Nano Banana2 | SeeDream 4.5（5pts） | Nano Banana Pro（10-18pts） |\n| Nano Banana Pro | SeeDream 4.5（5pts） | Nano Banana2（4pts） |\n| Midjourney | SeeDream 4.5（5pts） | Nano Banana2（4pts） |\n\n---\n\n## 🌐 Network Endpoints\n\n| Domain | Purpose | What's Sent |\n|--------|---------|-------------|\n| `api.imastudio.com` | Main API | Prompts, model params, task IDs |\n| `imapi.liveme.com` | Image upload (i2i only) | Image files, IMA API key |\n\nBoth domains are **owned by IMA Studio**.\n\n---\n\n## Quick Reference: attribute_ids\n\n⚠️ Always call `/open/v1/product/list` at runtime; values change frequently.\n\n**text_to_image**:\n\n| Model | model_id | attribute_id | credit | Size |\n|-------|----------|-------------|--------|------|\n| SeeDream 4.5 | `doubao-seedream-4.5` | **2341** | 5 pts | adaptive 4k |\n| Nano Banana2 (512px) | `gemini-3.1-flash-image` | **4400** | 4 pts | 512×512 |\n| Nano Banana2 (1K) | `gemini-3.1-flash-image` | **4401** | 6 pts | 1024×1024 |\n| Nano Banana2 (2K) | `gemini-3.1-flash-image` | **4402** | 10 pts | 2048×2048 |\n| Nano Banana2 (4K) | `gemini-3.1-flash-image` | **4403** | 13 pts | 4096×4096 |\n| Nano Banana Pro (1K) | `gemini-3-pro-image` | **2399** | 10 pts | 1024×1024 |\n| Nano Banana Pro (2K) | `gemini-3-pro-image` | **2400** | 10 pts | 2048×2048 |\n| Nano Banana Pro (4K) | `gemini-3-pro-image` | **2401** | 18 pts | 4096×4096 |\n\n**image_to_image**:\n\n| Model | model_id | attribute_id | credit | Size |\n|-------|----------|-------------|--------|------|\n| SeeDream 4.5 | `doubao-seedream-4.5` | **1611** | 5 pts | adaptive 4k |\n| Nano Banana2 (512px) | `gemini-3.1-flash-image` | **4404** | 4 pts | 512×512 |\n| Nano Banana2 (1K) | `gemini-3.1-flash-image` | **4405** | 6 pts | 1024×1024 |\n| Nano Banana2 (2K) | `gemini-3.1-flash-image` | **4406** | 10 pts | 2048×2048 |\n| Nano Banana2 (4K) | `gemini-3.1-flash-image` | **4407** | 13 pts | 4096×4096 |\n\n---\n\n## Aspect Ratio Support\n\n| Model | Supported Ratios | Notes |\n|-------|------------------|-------|\n| SeeDream 4.5 | 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2, 21:9 | Via virtual params |\n| Nano Banana2 | 1:1, 16:9, 9:16, 4:3, 3:4 | Native support |\n| Nano Banana Pro | 1:1, 16:9, 9:16, 4:3, 3:4 | Native support |\n| Midjourney | 1:1 only | Fixed 1024×1024 |\n\n**SeeDream 4.5 aspect_ratio → size mapping:**\n- `1:1` → 2048×2048\n- `16:9` → 2560×1440\n- `9:16` → 1440×2560\n- `4:3` → 2304×1728\n- `3:4` → 1728×2304\n- `2:3` → 1664×2496\n- `3:2` → 2496×1664\n- `21:9` → 3024×1296\n\n---\n\n## API Reference\n\n### Core Flow\n\n```\n1. GET /open/v1/product/list?app=ima&platform=web&category=<type>\n   → Get attribute_id, credit, model_version, form_config\n\n2. [image_to_image only] Upload input image → get HTTPS URL\n\n3. POST /open/v1/tasks/create → get task_id\n\n4. POST /open/v1/tasks/detail → poll every 3-5s until resource_status==1\n```\n\n### API 1: Product List\n\n```\nGET /open/v1/product/list?app=ima&platform=web&category=text_to_image\n```\n\n### API 2: Create Task\n\n**text_to_image:**\n```json\n{\n  \"task_type\": \"text_to_image\",\n  \"enable_multi_model\": false,\n  \"src_img_url\": [],\n  \"parameters\": [{\n    \"attribute_id\": 2341,\n    \"model_id\": \"doubao-seedream-4.5\",\n    \"model_name\": \"SeeDream 4.5\",\n    \"model_version\": \"doubao-seedream-4-5-251128\",\n    \"app\": \"ima\",\n    \"platform\": \"web\",\n    \"category\": \"text_to_image\",\n    \"credit\": 5,\n    \"parameters\": {\n      \"prompt\": \"a beautiful mountain sunset\",\n      \"size\": \"4k\",\n      \"n\": 1,\n      \"input_images\": [],\n      \"cast\": {\"points\": 5, \"attribute_id\": 2341}\n    }\n  }]\n}\n```\n\n**image_to_image:**\n```json\n{\n  \"task_type\": \"image_to_image\",\n  \"enable_multi_model\": false,\n  \"src_img_url\": [\"https://example.com/input.jpg\"],\n  \"parameters\": [{\n    \"attribute_id\": 1611,\n    \"model_id\": \"doubao-seedream-4.5\",\n    \"model_name\": \"SeeDream 4.5\",\n    \"model_version\": \"doubao-seedream-4-5-251128\",\n    \"app\": \"ima\",\n    \"platform\": \"web\",\n    \"category\": \"image_to_image\",\n    \"credit\": 5,\n    \"parameters\": {\n      \"prompt\": \"turn into oil painting style\",\n      \"size\": \"4k\",\n      \"n\": 1,\n      \"input_images\": [\"https://example.com/input.jpg\"],\n      \"cast\": {\"points\": 5, \"attribute_id\": 1611}\n    }\n  }]\n}\n```\n\n### API 3: Task Detail (Poll)\n\n```\nPOST /open/v1/tasks/detail\n{\"task_id\": \"<id>\"}\n```\n\n| resource_status | status | Action |\n|-----------------|--------|--------|\n| 0 or null | pending/processing | Keep polling |\n| 1 | success | Done, read `url` |\n| 2/3 | any | Failed |\n\n---\n\n## Common Mistakes\n\n| Mistake | Fix |\n|---------|-----|\n| `attribute_id` is 0 or missing | Always query product list first |\n| `prompt` at outer level | Must be inside `parameters[].parameters` |\n| Wrong `credit` value | Must match `credit_rules[].points` |\n| `size: \"adaptive\"` for SeeDream i2i | Use values from `form_config` only |\n\n---\n\n## Python Example\n\n```python\nimport time, requests\n\nBASE_URL = \"https://api.imastudio.com\"\nAPI_KEY = \"ima_your_key_here\"\nHEADERS = {\n    \"Authorization\": f\"Bearer {API_KEY}\",\n    \"Content-Type\": \"application/json\",\n    \"x-app-source\": \"ima_skills\",\n    \"x_app_language\": \"en\",\n}\n\ndef get_products(category):\n    r = requests.get(f\"{BASE_URL}/open/v1/product/list\",\n                     headers=HEADERS,\n                     params={\"app\": \"ima\", \"platform\": \"web\", \"category\": category})\n    r.raise_for_status()\n    versions = []\n    for node in r.json()[\"data\"]:\n        for child in node.get(\"children\") or []:\n            if child.get(\"type\") == \"3\":\n                versions.append(child)\n    return versions\n\ndef create_task(task_type, prompt, product, input_images=None):\n    input_images = input_images or []\n    rule = product[\"credit_rules\"][0]\n    body = {\n        \"task_type\": task_type,\n        \"enable_multi_model\": False,\n        \"src_img_url\": input_images,\n        \"parameters\": [{\n            \"attribute_id\": rule[\"attribute_id\"],\n            \"model_id\": product[\"model_id\"],\n            \"model_name\": product[\"name\"],\n            \"model_version\": product[\"id\"],\n            \"app\": \"ima\", \"platform\": \"web\",\n            \"category\": task_type,\n            \"credit\": rule[\"points\"],\n            \"parameters\": {\n                \"prompt\": prompt, \"n\": 1,\n                \"input_images\": input_images,\n                \"cast\": {\"points\": rule[\"points\"], \"attribute_id\": rule[\"attribute_id\"]}\n            }\n        }]\n    }\n    r = requests.post(f\"{BASE_URL}/open/v1/tasks/create\", headers=HEADERS, json=body)\n    r.raise_for_status()\n    return r.json()[\"data\"][\"id\"]\n\ndef poll(task_id, interval=3, timeout=300):\n    deadline = time.time() + timeout\n    while time.time() < deadline:\n        r = requests.post(f\"{BASE_URL}/open/v1/tasks/detail\",\n                          headers=HEADERS, json={\"task_id\": task_id})\n        r.raise_for_status()\n        task = r.json()[\"data\"]\n        medias = task.get(\"medias\", [])\n        if medias and all(m.get(\"resource_status\") == 1 for m in medias):\n            return task\n        time.sleep(interval)\n    raise TimeoutError(f\"Task timed out: {task_id}\")\n\n# Example: text_to_image\nproducts = get_products(\"text_to_image\")\nseedream = next(p for p in products if p[\"model_id\"] == \"doubao-seedream-4.5\")\ntask_id = create_task(\"text_to_image\", \"mountain sunset\", seedream)\nresult = poll(task_id)\nprint(result[\"medias\"][0][\"url\"])\n```\n\nFile v1.0.11:clawhub.json\n\n{\n  \"name\": \"IMA AI Image Generator — Text to Image, Image to Image, AI Art, SeeDream, Midjourney, Nano Banana\",\n  \"tagline\": \"AI image generator with SeeDream 4.5, Midjourney, Nano Banana 2/Pro. Text-to-image, image-to-image, AI art, 1K/2K/4K resolution.\",\n  \"description\": \"AI image generator with premier models: SeeDream 4.5, Midjourney, Nano Banana 2, Nano Banana Pro. Image generator supporting text-to-image, image-to-image, style transfer, and AI art creation. Use as AI art generator for illustrations, product photo generator for e-commerce, or character design tool for creative projects. AI image generation with 1K/2K/4K resolution, custom aspect ratios, and intelligent model selection. Better alternative to DALL-E, Stable Diffusion, or Midjourney APIs directly.\",\n  \"category\": \"file-generation\",\n  \"requiredEnvVars\": [\"IMA_API_KEY\"],\n  \"credentialNotice\": \"The IMA API key is required at runtime (--api-key or IMA_API_KEY). It is sent to api.imastudio.com (generation) and, for image_to_image with local files, to imapi.liveme.com (upload). Both are IMA Studio. Obtain keys at https://www.imaclaw.ai/. Use a scoped/test key for initial testing.\",\n  \"optionalDependencyNote\": \"When ima-knowledge-ai is installed, this skill may instruct the agent to read that skill's reference files (~/.openclaw/skills/ima-knowledge-ai/references/*) for workflow and visual-consistency guidance. The skill works standalone without it; those reads are optional.\",\n  \"requires\": {\n    \"env\": [\"IMA_API_KEY\"],\n    \"primaryCredential\": \"IMA_API_KEY\",\n    \"credentialNote\": \"IMA_API_KEY is required at runtime. It is sent to api.imastudio.com and, for local image uploads, to imapi.liveme.com.\"\n  },\n  \"localPaths\": {\n    \"readWrite\": [\n      \"~/.openclaw/memory/ima_prefs.json\",\n      \"~/.openclaw/logs/ima_skills/\"\n    ],\n    \"purpose\": \"Preferences (model defaults) and generation logs; logs auto-deleted after 7 days. User can delete anytime.\"\n  },\n  \"persistence\": {\n    \"readWrite\": [\n      \"~/.openclaw/memory/ima_prefs.json\",\n      \"~/.openclaw/logs/ima_skills/\"\n    ],\n    \"retention\": \"Logs are auto-cleaned after 7 days; preferences remain until user deletes them.\"\n  },\n  \"instructionScope\": {\n    \"crossSkillReadOptional\": [\n      \"~/.openclaw/skills/ima-knowledge-ai/references/*\"\n    ]\n  },\n  \"supported_models\": [\n    \"SeeDream\",\n    \"SeeDream 4.5\",\n    \"Midjourney\",\n    \"MJ\",\n    \"Nano Banana\",\n    \"Nano Banana 2\",\n    \"Nano Banana Pro\",\n    \"text-to-image\",\n    \"image-to-image\",\n    \"t2i\",\n    \"i2i\",\n    \"可梦\",\n    \"香蕉\",\n    \"doubao-seedream\",\n    \"gemini-image\"\n  ],\n  \"tags\": [\n    \"ima-studio\",\n    \"image-generation\",\n    \"text-to-image\",\n    \"image-to-image\",\n    \"ai-art\",\n    \"ai-image-generator\",\n    \"image-generator\",\n    \"art-generator\",\n    \"seedream\",\n    \"midjourney\",\n    \"nano-banana\",\n    \"seedream-4.5\",\n    \"nano-banana-2\",\n    \"nano-banana-pro\",\n    \"product-photos\",\n    \"character-design\",\n    \"logo-design\",\n    \"poster\",\n    \"social-media-graphics\",\n    \"style-transfer\",\n    \"ai-painting\",\n    \"ai-drawing\",\n    \"illustration\"\n  ],\n  \"version\": \"1.0.8\",\n  \"license\": \"MIT\",\n  \"pricing\": \"free\",\n  \"author\": {\n    \"name\": \"IMA Studio\",\n    \"url\": \"https://www.imaclaw.ai/\"\n  },\n  \"keywords\": [\n    \"image generation\",\n    \"text to image\",\n    \"image to image\",\n    \"AI image generator\",\n    \"image generator\",\n    \"AI art generator\",\n    \"art generator\",\n    \"ima studio\",\n    \"seedream\",\n    \"see dream\",\n    \"seedream 4.5\",\n    \"midjourney\",\n    \"mj\",\n    \"nano banana\",\n    \"nano banana 2\",\n    \"nano banana pro\",\n    \"ai art\",\n    \"product photos\",\n    \"character design\",\n    \"logo design\",\n    \"t2i\",\n    \"i2i\",\n    \"style transfer\",\n    \"AI painting\",\n    \"AI drawing\",\n    \"text to picture\",\n    \"photo to art\",\n    \"AI illustration\",\n    \"画图\",\n    \"AI绘画\",\n    \"文生图\",\n    \"图生图\",\n    \"可梦\",\n    \"香蕉\",\n    \"doubao\",\n    \"gemini image\"\n  ],\n  \"search_optimized_terms\": [\n    \"seedream\",\n    \"midjourney\",\n    \"nano banana\",\n    \"see dream\",\n    \"mj\",\n    \"text to image\",\n    \"image to image\",\n    \"image generation\",\n    \"AI image\",\n    \"AI art\",\n    \"art generator\",\n    \"image generator\",\n    \"AI drawing\",\n    \"AI painting\",\n    \"t2i\",\n    \"i2i\",\n    \"可梦\",\n    \"香蕉\",\n    \"画图\",\n    \"AI绘画\"\n  ],\n  \"related_skills\": [\n    \"ima-knowledge-ai\",\n    \"ima-video-ai\",\n    \"ima-all-ai\",\n    \"ima-resource-skill\"\n  ],\n  \"use_cases\": [\n    \"AI image generation, text-to-image, image-to-image\",\n    \"AI art and illustration creation\",\n    \"Product photos for e-commerce\",\n    \"Character design and avatar creation\",\n    \"Logo design and brand assets\",\n    \"Poster and social media graphics\",\n    \"Style transfer and photo transformation\",\n    \"Multi-resolution 1K/2K/4K output\"\n  ],\n  \"key_features\": [\n    \"SeeDream 4.5, Midjourney, Nano Banana 2/Pro one-stop access\",\n    \"Text-to-image, image-to-image, visual consistency support\",\n    \"1K/2K/4K resolution with custom aspect ratios\",\n    \"Intelligent model selection with ima-knowledge-ai integration\",\n    \"Fast generation with automatic retry and error recovery\",\n    \"Budget-friendly options (4 pts) to premium quality (18 pts)\"\n  ]\n}\n\nFile v1.0.11:!keywords.txt\n\nAI image generator for creating professional images from text prompts. Generate product photos, posters, thumbnails, logos, art, illustrations, and social media graphics with leading AI models.\n\nAI photo generator for product photography and commercial image creation. Generate high-quality product photos, e-commerce images, and brand photography with SeeDream, Midjourney, and Nano Banana models.\n\nAI poster generator for marketing materials and promotional graphics. Create event posters, movie posters, advertising posters, and campaign visuals with AI image generation technology.\n\nAI thumbnail generator for YouTube, social media, and content platforms. Generate eye-catching thumbnails, cover images, and preview graphics for videos, articles, and social posts.\n\nAI logo generator for brand identity and business branding. Create company logos, app icons, brand marks, and visual identity elements with AI-powered graphic design.\n\nAI art generator for creative and artistic image creation. Generate digital art, paintings, illustrations, concept art, and fantasy artwork with Midjourney and other AI art models.\n\nAI illustration generator for books, articles, and editorial content. Create custom illustrations, character designs, infographics, and visual storytelling elements with AI image generation.\n\nProduct photo generator for e-commerce and online retail. Generate product photography, catalog images, lifestyle shots, and commercial photos with AI-powered image creation tools.\n\nSocial media image generator for Instagram, Facebook, Twitter, and LinkedIn. Create social media posts, stories, banners, profile images, and platform-optimized graphics with AI.\n\nAI graphic design tool for marketing teams and creative professionals. Generate design assets, marketing visuals, brand graphics, and promotional images with intelligent AI model selection.\n\nText to image AI generator for creating visuals from descriptions. Convert text prompts into professional images, photos, posters, thumbnails, and graphic designs using AI models.\n\nImage to image AI generator for style transfer and photo editing. Transform existing images into new styles, enhance product photos, refine logos, and create artistic variations with AI.\n\n---\n\nAI image generator with four premium models. SeeDream 4.5 for photorealistic product photos and social media graphics. Midjourney for artistic illustrations and creative graphic design. Nano Banana 2 for budget-friendly thumbnails and quick image generation. Nano Banana Pro for premium 4K product photos and professional logos.\n\nGenerate images for every use case. Product photos for e-commerce. Posters for marketing campaigns. Thumbnails for YouTube and social media. Logos for brand identity. Art and illustrations for creative projects. Social media graphics for digital marketing.\n\nAI poster and thumbnail generator with custom aspect ratio support. Create 16:9 landscape posters, 9:16 portrait thumbnails, 4:3 product photos, and 1:1 social media graphics. Support for 1K, 2K, and 4K resolution output.\n\nProfessional AI photo generator for commercial and personal use. Generate studio-quality product photography, portrait photos, landscape images, and creative compositions with intelligent model selection.\n\nAI-powered graphic design for marketing and advertising. Create ad images, banner graphics, social media visuals, and promotional materials with text-to-image and image-to-image AI generation.\n\nImage generation AI with visual consistency for character design and product series. Maintain consistent appearance across multiple generated images using reference-image-driven workflows.\n\n---\n\nGenerate posters with AI. Create thumbnails with AI. Design logos with AI. Produce art with AI. Make illustrations with AI. Generate product photos with AI. Create social media images with AI. Design graphics with AI.\n\nAI image creator for designers. AI photo maker for photographers. AI poster designer for marketers. AI thumbnail maker for content creators. AI logo designer for brands. AI art creator for artists. AI illustration maker for publishers.\n\nBest AI image generator for professional image creation. Top AI photo generator for product photography. Leading AI poster generator for marketing visuals. Premier AI thumbnail generator for social media content.\n\nImage generation with SeeDream 4.5, Midjourney, Nano Banana 2, and Nano Banana Pro. Four AI models for every image generation need from budget thumbnails to premium 4K product photos.\n\nAI image generator supporting text-to-image and image-to-image generation modes. Create new images from text descriptions or transform existing photos with AI-powered style transfer and enhancement.\n\n---\n\nGenerate product photos for online stores with AI image generation. Create lifestyle photography, flat lay compositions, and catalog images for e-commerce platforms.\n\nCreate social media graphics with AI. Generate Instagram posts, Facebook covers, Twitter headers, LinkedIn banners, and Pinterest pins with AI image and photo generation.\n\nDesign marketing posters with AI. Generate event announcements, product launches, sale promotions, and brand campaigns with AI poster generation technology.\n\nMake YouTube thumbnails with AI. Generate click-worthy thumbnails, video covers, and channel art with AI thumbnail generation tools.\n\nCreate brand logos with AI. Generate wordmarks, icon logos, abstract marks, and mascot designs with AI logo generation capabilities.\n\nProduce digital art and illustrations with AI. Generate concept art, character illustrations, fantasy scenes, and abstract compositions with Midjourney and AI art models.\n\nAI graphic design for social media marketing. Create cohesive visual campaigns, branded content series, and platform-specific graphics with AI image generation.\n\nProfessional image generation for advertising and commercial use. Generate display ad visuals, billboard images, packaging designs, and print-ready marketing materials with AI.\n\n---\n\nAI image generator. AI photo generator. Image generator. AI poster generator. AI thumbnail generator. Thumbnail generator. AI art generator. AI logo generator. AI illustration generator. Product photo generator. Social media image generator. AI graphic design.\n\nIMA AI Image & Photo Generator — the unified AI image creation solution for posters, thumbnails, logos, art, illustrations, product photos, social media graphics, and professional graphic design.\n\n---\n\nCreate images with AI — product photos, posters, thumbnails, logos, art, illustrations, and social media graphics. The all-in-one AI image generator for creative professionals and marketing teams.\n\nAI-powered image creation for every visual need. From text-to-image generation for new visuals to image-to-image AI for style transfer and photo enhancement.\n\nGenerate professional visuals with artificial intelligence. AI image creation for advertising, e-commerce, social media marketing, brand identity, and creative content production.\n\nOne tool for all image generation needs. Product photography AI, poster design AI, thumbnail creation AI, logo generation AI, art creation AI, and illustration generation AI.\n\nAI image and photo generator with intelligent model routing. Automatic selection of the best AI model based on image type, quality requirements, and budget constraints.\n\nCreate visual content for digital marketing with AI. Generate platform-optimized images for social media, websites, email campaigns, and digital advertising.\n\nAI-generated images for professional use. Studio-quality product photos, marketing posters, social media thumbnails, brand logos, creative art, and custom illustrations.\n\nComplete AI image generation platform. Text-to-image for new creations. Image-to-image for transformations. Four premium models. Custom aspect ratios. Up to 4K resolution. Visual consistency support.\n\nGenerate any type of image with AI. Whether you need a product photo, a marketing poster, a YouTube thumbnail, a brand logo, digital art, or a social media graphic — this AI image generator handles it all.\n\nBest AI tool for image creation. Generate posters, thumbnails, logos, product photos, illustrations, art, and social media graphics with SeeDream, Midjourney, and Nano Banana AI models.\n\n---\n\nAI image generator for agencies and freelancers. Produce client deliverables including product photography, poster designs, thumbnail graphics, logo concepts, artistic illustrations, and social media content.\n\nProfessional AI photo and image creation. Enterprise-grade image generation with four leading models. Production-quality output for commercial and marketing use.\n\nAI-generated product photos for e-commerce stores. AI-generated posters for event marketing. AI-generated thumbnails for video content. AI-generated logos for brand identity. AI-generated art for creative projects. AI-generated illustrations for editorial content. AI-generated social media graphics for digital campaigns.\n\nImage creation AI with custom aspect ratio support, resolution control up to 4K, and visual consistency for brand series. Intelligent model selection optimizes quality and cost for each image generation task.\n\nGenerate images from text prompts. Transform photos with AI. Create visual content at scale. One AI image generator for posters, thumbnails, logos, product photos, art, illustrations, and social media graphic design.\n\nAI image generation tool supporting SeeDream 4.5 for general use, Midjourney for artistic styles, Nano Banana 2 for budget generation, and Nano Banana Pro for premium 4K quality. Complete image and photo generation solution.\n\nFull-featured AI image and photo generator. Create posters for advertising. Generate thumbnails for social platforms. Design logos for businesses. Produce art for galleries. Make illustrations for publications. Generate product photos for catalogs. Create social media graphics for campaigns. All with one unified AI image generation tool.\n\nThe definitive AI image generator — poster creation, thumbnail generation, logo design, art production, illustration making, product photography, and social media graphic design powered by leading AI models.\n\n---\n\nAI绘画 AI画图 文生图 图生图 文字生成图片 图片生成 智能绘图 人工智能绘画 AI图像生成 AI出图\n海报生成 海报设计 活动海报 电影海报 营销海报 电商主图 商品图 产品摄影 白底图 场景图\n缩略图 封面图 视频封面 YouTube封面 小红书配图 朋友圈配图 社媒配图 头图 banner\nLogo设计 商标设计 品牌标识 APP图标 吉祥物 IP形象 插画生成 原画 概念图 角色设计 头像生成\n风格迁移 参考图 垫图 一致性 角色一致性 系列图 商品详情图 跨境电商图 亚马逊主图\n\n可梦 SeeDream 豆包可梦 seedream 4.5 doubao-seedream Midjourney MJ 米德 journey\n香蕉 Nano Banana 香蕉2 Nano Banana 2 香蕉Pro Nano Banana Pro gemini flash image\nIMA画图 IMA Studio 图像技能 积分生图 1K 2K 4K 分辨率 宽高比 16比9 9比16 1比1 21比9\n\n---\n\n用中文描述即可生成海报、商品图、缩略图与社媒配图。支持文生图与图生图，集成SeeDream 4.5、Midjourney、Nano Banana 2与Nano Banana Pro等模型，可设比例与高清输出。适合电商主图、品牌视觉、短视频封面与运营物料。输出为可分享图片链接，需IMA API密钥与积分。\n\nDALL-E Stable Diffusion SDXL 文心一格 通义万相 竞品替代 一站式生图 多模型切换\n\nFile v1.0.11:requirements.txt\n\n# Python dependencies for ima-image-ai skill\n# Install with: pip install -r requirements.txt\n\nrequests>=2.25.0\n\nArchive v1.0.10: 10 files, 36895 bytes\n\nFiles: _meta.json (132b), !keywords.txt (11495b), CHANGELOG_CLAWHUB.md (1374b), clawhub.json (5182b), requirements.txt (111b), scripts/ima_image_create.py (71700b), scripts/ima_logger.py (3430b), SECURITY.md (1460b), SKILL-DETAIL.md (11585b), SKILL.md (7291b)\n\nFile v1.0.10:SKILL.md\n\n---\nname: \"IMA Image Generator\"\nversion: 1.0.8\ncategory: file-generation\nauthor: IMA Studio (imastudio.com)\nkeywords: imastudio, image generation, AI image generator, image generator,text to image, image to image, midjourney, seedream, nano banana, poster, thumbnail, product image, social media\nargument-hint: \"[text prompt or image URL]\"\ndescription: >\n  Generate posters, thumbnails, product images, and social media visuals from a prompt, concept,\n  or reference image. Premier models: SeeDream 4.5, Midjourney, Nano Banana 2, Nano Banana Pro.\n  Supports text-to-image, image-to-image, 1K/2K/4K resolution, custom aspect ratios. Requires IMA_API_KEY.\nrequires:\n  env:\n    - IMA_API_KEY\n  runtime:\n    - python3\n  packages:\n    - requests\n  primaryCredential: IMA_API_KEY\nmetadata:\n  openclaw:\n    primaryEnv: IMA_API_KEY\n    homepage: https://imastudio.com\n    requires:\n      bins:\n        - python3\n      env:\n        - IMA_API_KEY\npersistence:\n  readWrite:\n    - ~/.openclaw/memory/ima_prefs.json\n    - ~/.openclaw/logs/ima_skills/\ninstructionScope:\n  crossSkillReadOptional:\n    - ~/.openclaw/skills/ima-knowledge-ai/references/*\n---\n\n# IMA Image AI — Image Generator\n\n**For complete API documentation, security details, all parameters, and Python examples, read `SKILL-DETAIL.md`.**\n\n## Model ID Reference (CRITICAL)\n\nUse **exact model_id** from this table. Do NOT infer from friendly names.\n\n| Friendly Name | model_id | Notes |\n|---------------|----------|-------|\n| SeeDream 4.5 | `doubao-seedream-4.5` | ✅ Recommended default, 5 pts |\n| Nano Banana2 | `gemini-3.1-flash-image` | ⚠️ NOT nano-banana-2, 4-13 pts |\n| Nano Banana Pro | `gemini-3-pro-image` | ⚠️ NOT nano-banana-pro, 10-18 pts |\n| Midjourney | `midjourney` | ✅ Same as friendly name, 8-10 pts |\n\n**User input aliases:** 香蕉/Banana → `gemini-3.1-flash-image` · 香蕉Pro → `gemini-3-pro-image` · 可梦/SeeDream → `doubao-seedream-4.5` · MJ/Midjourney → `midjourney`\n\n## Image Generation Modes\n\n| User intent | task_type | When to use |\n|-------------|-----------|-------------|\n| Text only, no image | `text_to_image` | \"画一张…\" / \"生成图片\" / \"text to image\" |\n| Image as reference/input | `image_to_image` | \"把这张图…\" / \"参考这张图\" / \"图生图\" / \"风格迁移\" |\n\n## Visual Consistency (IMPORTANT)\n\nIf user mentions \"same character\", \"series\", \"multi-shot\", or continues from a previous generation:\n- **Do NOT use text_to_image** (will produce different-looking results)\n- Use `image_to_image` with previous result as reference\n- Read `ima-knowledge-ai/references/visual-consistency.md` if available\n\n## Pre-Check: Knowledge Base\n\n**If ima-knowledge-ai is installed**, read before generating:\n1. `ima-knowledge-ai/references/visual-consistency.md` — if multi-shot or character continuity needed\n\n**If not installed:** use this SKILL's model table and defaults.\n\n## Model Selection Priority\n\n1. **User preference** (if explicitly stated) → highest priority\n2. **ima-knowledge-ai recommendation** (if installed)\n3. **Fallback defaults:**\n\n| Task | Default Model | model_id | Cost |\n|------|--------------|----------|------|\n| text_to_image | SeeDream 4.5 | `doubao-seedream-4.5` | 5 pts |\n| text_to_image (budget) | Nano Banana2 | `gemini-3.1-flash-image` | 4 pts |\n| text_to_image (premium) | Nano Banana Pro | `gemini-3-pro-image` | 10-18 pts |\n| text_to_image (artistic) | Midjourney 🎨 | `midjourney` | 8-10 pts |\n| image_to_image | SeeDream 4.5 | `doubao-seedream-4.5` | 5 pts |\n\n## User Input Parsing\n\n**Size/Resolution:** 512/1K/2K/4K → via attribute_id for Nano Banana series\n**Aspect ratio:** 16:9/9:16/4:3/3:4/1:1 → SeeDream 4.5 or Nano Banana series (Midjourney only 1:1)\n**Budget:** 最便宜→Nano Banana2 (4pts) · 最好→Nano Banana Pro (4K) or SeeDream 4.5\n\n## Script Usage\n\n```bash\n# Text to image\npython3 {baseDir}/scripts/ima_image_create.py \\\n  --api-key $IMA_API_KEY \\\n  --task-type text_to_image \\\n  --model-id doubao-seedream-4.5 \\\n  --prompt \"a cute puppy running on grass\" \\\n  --user-id {user_id} \\\n  --output-json\n\n# Image to image (accepts URLs and local file paths)\npython3 {baseDir}/scripts/ima_image_create.py \\\n  --api-key $IMA_API_KEY \\\n  --task-type image_to_image \\\n  --model-id doubao-seedream-4.5 \\\n  --prompt \"turn into oil painting style\" \\\n  --input-images https://example.com/photo.jpg \\\n  --user-id {user_id} \\\n  --output-json\n\n# With aspect ratio (SeeDream 4.5 or Nano Banana)\npython3 {baseDir}/scripts/ima_image_create.py \\\n  --api-key $IMA_API_KEY \\\n  --task-type text_to_image \\\n  --model-id doubao-seedream-4.5 \\\n  --prompt \"beautiful landscape\" \\\n  --extra-params '{\"aspect_ratio\": \"16:9\"}' \\\n  --user-id {user_id} \\\n  --output-json\n```\n\n## Sending Results to User\n\n```python\n# ✅ CORRECT: Use remote URL directly for inline image display\nmessage(action=\"send\", media=image_url, caption=\"✅ 图片生成成功！\\n• 模型：[Name]\\n• 耗时：[X]s\\n• 积分：[N pts]\\n\\n🔗 原始链接：[url]\")\n\n# ❌ WRONG: Never download to local file (shows as attachment, not rendered)\n```\n\n## UX Protocol (Brief)\n\n1. **Pre-generation:** \"🎨 开始生成图片… 模型：[Name]，预计[X~Y]秒，消耗[N]积分\"\n2. **Progress:** Every 15-30s: \"⏳ 正在生成中… [P]%\" (cap at 95% until API returns success)\n3. **Success:** Send image via `media=image_url` + include link in caption for sharing\n4. **Failure:** Natural language error + suggest alternative models. **Never show technical errors to users.** See SKILL-DETAIL.md for full error translation table.\n\n**Never say to users:** script names, API endpoints, attribute_id, technical parameter names. Only: model name · time · credits · result · status.\n\n## Midjourney Limitations\n\nMidjourney has **fixed 1:1 aspect ratio** (1024×1024 only). If user asks for 16:9 etc. with \"MJ\", recommend SeeDream 4.5 or Nano Banana series instead.\n\n## Environment\n\nBase URL: `https://api.imastudio.com`\nHeaders: `Authorization: Bearer $IMA_API_KEY` · `x-app-source: ima_skills` · `x_app_language: en`\n\n## Core Flow\n\n1. `GET /open/v1/product/list?app=ima&platform=web&category=<task_type>` → get `attribute_id`, `credit`, `model_version`, `form_config`\n2. [image_to_image only] Upload images or pass local paths to script\n3. `POST /open/v1/tasks/create` → get `task_id`\n4. `POST /open/v1/tasks/detail` → poll every 3-5s until `resource_status==1`\n\n**MANDATORY:** Always query product list first. `attribute_id` is required — if 0 or missing, task fails.\n\n## User Preference Memory\n\nStorage: `~/.openclaw/memory/ima_prefs.json`\n- **Save** when user explicitly says \"用XXX\" / \"默认用XXX\" / \"always use XXX\"\n- **Clear** when user says \"用最好的\" / \"推荐一个\" / \"自动选择\"\n- **Never save** auto-selected or fallback models as preferences\n\n## Model Capabilities\n\n| Model | Custom Aspect Ratio | Max Resolution | Notes |\n|-------|---------------------|----------------|-------|\n| SeeDream 4.5 | ✅ (8 ratios) | 4K | 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2, 21:9 |\n| Nano Banana2 | ✅ (5 ratios) | 4K | 1:1, 16:9, 9:16, 4:3, 3:4; size via attribute_id |\n| Nano Banana Pro | ✅ (5 ratios) | 4K | 1:1, 16:9, 9:16, 4:3, 3:4; size via attribute_id |\n| Midjourney 🎨 | ❌ (1:1 only) | 1024px | Fixed square, artistic style focus |\n\nFile v1.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn7ac9knfd0gdwhn8ktjvqqgj181thkt\",\n  \"slug\": \"ima-image-ai\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1774851860436\n}\n\nFile v1.0.10:CHANGELOG_CLAWHUB.md\n\n# Changelog — ima-image-ai\n\nAll notable changes to the **IMA Studio Image Generation** skill will be documented in this file.\n\n---\n\n## [Unreleased]\n\n### Changed (registry / security)\n\n- **Registry metadata aligned with code and SKILL.md**\n  - `clawhub.json`: Added `requires.env` (IMA_API_KEY), `requires.envOptional` (IMA_IM_BASE_URL), `requires.primaryCredential`, `requires.credentialNote`, `persistence` (logs + memory paths), and `instructionScope` (cross-skill read of ima-knowledge-ai when installed).\n  - `SKILL.md` frontmatter: Added `requires.env: [IMA_API_KEY]`, `envOptional: [IMA_IM_BASE_URL]`, and `persistence` so scanners and registries can see required credentials and config paths.\n- Addresses OpenClaw “Suspicious” review: credential mismatch (declared zero vs. code requiring API key), and undeclared persistence/cross-skill read scope. No code or behavior change; metadata only.\n\n---\n\n## [1.0.8] - 2026\n\n### Requirements\n\n- IMA API key (`IMA_API_KEY` or `--api-key`); optional override `IMA_IM_BASE_URL` for upload endpoint.\n- Python 3, `requests`.\n- Optional: install **ima-knowledge-ai** for workflow and visual-consistency guidance.\n\n### Endpoints\n\n- `api.imastudio.com` — main image generation API.\n- `imapi.liveme.com` — image upload (used for image_to_image when input is a local file). IMA API key is sent to both; both are IMA Studio.\n\nFile v1.0.10:SECURITY.md\n\n# Security Disclosure: ima-image-ai\n\n## Purpose\n\nThis document explains endpoint usage, credential flow, and local data behavior for `ima-image-ai`.\n\n## Network Endpoints\n\n| Domain | Used For | Trigger |\n|---|---|---|\n| `api.imastudio.com` | Product list, task create, task detail polling | All requests |\n| `imapi.liveme.com` | Upload-token request for local image inputs | Only when `image_to_image` includes local files |\n| `*.aliyuncs.com` / `*.esxscloud.com` | Presigned binary upload + media CDN delivery | Returned by upload-token API |\n\nFor remote HTTPS images, the script can pass URLs directly without upload-token calls.\n\n## Credential Flow\n\n| Credential | Where Sent | Why |\n|---|---|---|\n| `IMA_API_KEY` | `api.imastudio.com` | Open API auth (`Authorization: Bearer ...`) |\n| `IMA_API_KEY` | `imapi.liveme.com` | Upload-token auth for local image uploads |\n\nNo API key is sent to presigned upload hosts during binary upload.\n\n## Cross-Skill Reads\n\nThis skill runs standalone.\nIf `ima-knowledge-ai` is installed, the agent may optionally read:\n\n- `~/.openclaw/skills/ima-knowledge-ai/references/*`\n\nfor workflow and visual-consistency guidance only.\n\n## Local Data\n\n| Path | Content | Retention |\n|---|---|---|\n| `~/.openclaw/memory/ima_prefs.json` | Per-user model preference cache | Until manually removed |\n| `~/.openclaw/logs/ima_skills/` | Operational logs | Auto-cleaned by script after 7 days |\n\nNo API key is written into repository files.\n\nFile v1.0.10:SKILL-DETAIL.md\n\n---\nname: IMA Studio Image Generation\nversion: 1.0.8\ncategory: file-generation\nauthor: IMA Studio (imastudio.com)\nkeywords: imastudio, image generation, text to image, 图像生成, AI绘画, 文生图, 图生图, IMA, 画图, SeeDream, Nano Banana, Midjourney\nargument-hint: \"[text prompt or image URL]\"\ndescription: >\n  Complete API documentation for IMA Image Generator. Includes detailed model parameters,\n  attribute_id references, error handling, UX protocol, and Python examples.\n---\n\n# IMA Image AI — Complete Documentation\n\n## Supported Models\n\n⚠️ **Production Environment**: **4 image models** are currently available (as of 2026-02-28).\n\n### text_to_image (4 models)\n\n| Name | model_id | version_id | Cost | attribute_id | Size Options |\n|------|----------|------------|------|--------------|--------------|\n| **SeeDream 4.5** 🌟 | `doubao-seedream-4.5` | `doubao-seedream-4-5-251128` | 5 pts | 2341 | Default (adaptive 4k) |\n| **Nano Banana2** 💚 | `gemini-3.1-flash-image` | `gemini-3.1-flash-image-preview` | 4/6/10/13 pts | 4400/4401/4402/4403 | 512px/1K/2K/4K |\n| **Nano Banana Pro** | `gemini-3-pro-image` | `gemini-3-pro-image-preview` | 10/10/18 pts | 2399/2400/2401 | 1K/2K/4K |\n| **Midjourney** 🎨 | `midjourney` | `v6` | 8/10 pts | 5451/5452 | 480p/720p |\n\n### image_to_image (4 models)\n\n| Name | model_id | version_id | Cost | attribute_id | Size Options |\n|------|----------|------------|------|--------------|--------------|\n| **SeeDream 4.5** 🌟 | `doubao-seedream-4.5` | `doubao-seedream-4-5-251128` | 5 pts | 1611 | Default (adaptive 4k) |\n| **Nano Banana2** 💚 | `gemini-3.1-flash-image` | `gemini-3.1-flash-image-preview` | 4/6/10/13 pts | 4404/4405/4406/4407 | 512px/1K/2K/4K |\n| **Nano Banana Pro** | `gemini-3-pro-image` | `gemini-3-pro-image-preview` | 10 pts | 2402/2403/2404 | 1K/2K/4K |\n| **Midjourney** 🎨 | `midjourney` | `v6` | 8/10 pts | 5453/5454 | 480p/720p |\n\n---\n\n## Estimated Generation Time per Model\n\n| Model | Estimated Time | Poll Every | Send Progress Every |\n|-------|---------------|------------|---------------------|\n| **SeeDream 4.5** 🌟 | 30~60s | 5s | 20s |\n| **Nano Banana2** 💚 | 20~40s | 5s | 15s |\n| **Nano Banana Pro** | 60~120s | 5s | 30s |\n| **Midjourney** 🎨 | 40~90s | 8s | 25s |\n\n---\n\n## 💬 User Experience Protocol (IM / Feishu / Discord)\n\n### 🚫 Never Say to Users\n\n| ❌ Never say | ✅ What users care about |\n|-------------|--------------------------|\n| `ima_image_create.py` / 脚本 / script | — |\n| attribute_id / model_version / form_config | — |\n| API 调用 / HTTP 请求 / 任何技术参数名 | — |\n\nOnly tell users: **model name · estimated time · credits · result (image/media) · plain-language status**.\n\n### UX Flow\n\n1. **Pre-generation:** \"🎨 开始生成图片… 模型：[Name]，预计[X~Y]秒，消耗[N]积分\"\n2. **Progress:** Every 15-30s: \"⏳ 正在生成中… [P]%\" (cap at 95%)\n3. **Success:** Send image via `media=image_url` + caption with link\n4. **Failure:** Natural language error + suggest alternatives\n\n---\n\n## ⚠️ Error Message Translation\n\n**NEVER show technical error messages to users.**\n\n| Technical Error | ✅ Say Instead (Chinese) | ✅ Say Instead (English) |\n|----------------|------------------------|------------------------|\n| `401 Unauthorized` | ❌ API密钥无效或未授权<br>💡 **生成新密钥**: https://www.imaclaw.ai/imaclaw/apikey | ❌ API key is invalid<br>💡 **Generate API Key**: https://www.imaclaw.ai/imaclaw/apikey |\n| `4008 Insufficient points` | ❌ 积分不足<br>💡 **购买积分**: https://www.imaclaw.ai/imaclaw/subscription | ❌ Insufficient points<br>💡 **Buy Credits**: https://www.imaclaw.ai/imaclaw/subscription |\n| `Error 6006` | 积分计算异常，系统正在修复 | Points calculation error |\n| `Error 6010` | 模型参数不匹配，请尝试其他模型 | Model parameters incompatible |\n| `error 400` | 图片参数设置有误，请调整尺寸或比例 | Image parameter error |\n| `timeout` | 生成时间过长已超时，建议用更快的模型 | Generation took too long |\n\n**Failure fallback table:**\n\n| Failed Model | First Alt | Second Alt |\n|-------------|-----------|------------|\n| SeeDream 4.5 | Nano Banana2（4pts） | Nano Banana Pro（10-18pts） |\n| Nano Banana2 | SeeDream 4.5（5pts） | Nano Banana Pro（10-18pts） |\n| Nano Banana Pro | SeeDream 4.5（5pts） | Nano Banana2（4pts） |\n| Midjourney | SeeDream 4.5（5pts） | Nano Banana2（4pts） |\n\n---\n\n## 🌐 Network Endpoints\n\n| Domain | Purpose | What's Sent |\n|--------|---------|-------------|\n| `api.imastudio.com` | Main API | Prompts, model params, task IDs |\n| `imapi.liveme.com` | Image upload (i2i only) | Image files, IMA API key |\n\nBoth domains are **owned by IMA Studio**.\n\n---\n\n## Quick Reference: attribute_ids\n\n⚠️ Always call `/open/v1/product/list` at runtime; values change frequently.\n\n**text_to_image**:\n\n| Model | model_id | attribute_id | credit | Size |\n|-------|----------|-------------|--------|------|\n| SeeDream 4.5 | `doubao-seedream-4.5` | **2341** | 5 pts | adaptive 4k |\n| Nano Banana2 (512px) | `gemini-3.1-flash-image` | **4400** | 4 pts | 512×512 |\n| Nano Banana2 (1K) | `gemini-3.1-flash-image` | **4401** | 6 pts | 1024×1024 |\n| Nano Banana2 (2K) | `gemini-3.1-flash-image` | **4402** | 10 pts | 2048×2048 |\n| Nano Banana2 (4K) | `gemini-3.1-flash-image` | **4403** | 13 pts | 4096×4096 |\n| Nano Banana Pro (1K) | `gemini-3-pro-image` | **2399** | 10 pts | 1024×1024 |\n| Nano Banana Pro (2K) | `gemini-3-pro-image` | **2400** | 10 pts | 2048×2048 |\n| Nano Banana Pro (4K) | `gemini-3-pro-image` | **2401** | 18 pts | 4096×4096 |\n\n**image_to_image**:\n\n| Model | model_id | attribute_id | credit | Size |\n|-------|----------|-------------|--------|------|\n| SeeDream 4.5 | `doubao-seedream-4.5` | **1611** | 5 pts | adaptive 4k |\n| Nano Banana2 (512px) | `gemini-3.1-flash-image` | **4404** | 4 pts | 512×512 |\n| Nano Banana2 (1K) | `gemini-3.1-flash-image` | **4405** | 6 pts | 1024×1024 |\n| Nano Banana2 (2K) | `gemini-3.1-flash-image` | **4406** | 10 pts | 2048×2048 |\n| Nano Banana2 (4K) | `gemini-3.1-flash-image` | **4407** | 13 pts | 4096×4096 |\n\n---\n\n## Aspect Ratio Support\n\n| Model | Supported Ratios | Notes |\n|-------|------------------|-------|\n| SeeDream 4.5 | 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2, 21:9 | Via virtual params |\n| Nano Banana2 | 1:1, 16:9, 9:16, 4:3, 3:4 | Native support |\n| Nano Banana Pro | 1:1, 16:9, 9:16, 4:3, 3:4 | Native support |\n| Midjourney | 1:1 only | Fixed 1024×1024 |\n\n**SeeDream 4.5 aspect_ratio → size mapping:**\n- `1:1` → 2048×2048\n- `16:9` → 2560×1440\n- `9:16` → 1440×2560\n- `4:3` → 2304×1728\n- `3:4` → 1728×2304\n- `2:3` → 1664×2496\n- `3:2` → 2496×1664\n- `21:9` → 3024×1296\n\n---\n\n## API Reference\n\n### Core Flow\n\n```\n1. GET /open/v1/product/list?app=ima&platform=web&category=<type>\n   → Get attribute_id, credit, model_version, form_config\n\n2. [image_to_image only] Upload input image → get HTTPS URL\n\n3. POST /open/v1/tasks/create → get task_id\n\n4. POST /open/v1/tasks/detail → poll every 3-5s until resource_status==1\n```\n\n### API 1: Product List\n\n```\nGET /open/v1/product/list?app=ima&platform=web&category=text_to_image\n```\n\n### API 2: Create Task\n\n**text_to_image:**\n```json\n{\n  \"task_type\": \"text_to_image\",\n  \"enable_multi_model\": false,\n  \"src_img_url\": [],\n  \"parameters\": [{\n    \"attribute_id\": 2341,\n    \"model_id\": \"doubao-seedream-4.5\",\n    \"model_name\": \"SeeDream 4.5\",\n    \"model_version\": \"doubao-seedream-4-5-251128\",\n    \"app\": \"ima\",\n    \"platform\": \"web\",\n    \"category\": \"text_to_image\",\n    \"credit\": 5,\n    \"parameters\": {\n      \"prompt\": \"a beautiful mountain sunset\",\n      \"size\": \"4k\",\n      \"n\": 1,\n      \"input_images\": [],\n      \"cast\": {\"points\": 5, \"attribute_id\": 2341}\n    }\n  }]\n}\n```\n\n**image_to_image:**\n```json\n{\n  \"task_type\": \"image_to_image\",\n  \"enable_multi_model\": false,\n  \"src_img_url\": [\"https://example.com/input.jpg\"],\n  \"parameters\": [{\n    \"attribute_id\": 1611,\n    \"model_id\": \"doubao-seedream-4.5\",\n    \"model_name\": \"SeeDream 4.5\",\n    \"model_version\": \"doubao-seedream-4-5-251128\",\n    \"app\": \"ima\",\n    \"platform\": \"web\",\n    \"category\": \"image_to_image\",\n    \"credit\": 5,\n    \"parameters\": {\n      \"prompt\": \"turn into oil painting style\",\n      \"size\": \"4k\",\n      \"n\": 1,\n      \"input_images\": [\"https://example.com/input.jpg\"],\n      \"cast\": {\"points\": 5, \"attribute_id\": 1611}\n    }\n  }]\n}\n```\n\n### API 3: Task Detail (Poll)\n\n```\nPOST /open/v1/tasks/detail\n{\"task_id\": \"<id>\"}\n```\n\n| resource_status | status | Action |\n|-----------------|--------|--------|\n| 0 or null | pending/processing | Keep polling |\n| 1 | success | Done, read `url` |\n| 2/3 | any | Failed |\n\n---\n\n## Common Mistakes\n\n| Mistake | Fix |\n|---------|-----|\n| `attribute_id` is 0 or missing | Always query product list first |\n| `prompt` at outer level | Must be inside `parameters[].parameters` |\n| Wrong `credit` value | Must match `credit_rules[].points` |\n| `size: \"adaptive\"` for SeeDream i2i | Use values from `form_config` only |\n\n---\n\n## Python Example\n\n```python\nimport time, requests\n\nBASE_URL = \"https://api.imastudio.com\"\nAPI_KEY = \"ima_your_key_here\"\nHEADERS = {\n    \"Authorization\": f\"Bearer {API_KEY}\",\n    \"Content-Type\": \"application/json\",\n    \"x-app-source\": \"ima_skills\",\n    \"x_app_language\": \"en\",\n}\n\ndef get_products(category):\n    r = requests.get(f\"{BASE_URL}/open/v1/product/list\",\n                     headers=HEADERS,\n                     params={\"app\": \"ima\", \"platform\": \"web\", \"category\": category})\n    r.raise_for_status()\n    versions = []\n    for node in r.json()[\"data\"]:\n        for child in node.get(\"children\") or []:\n            if child.get(\"type\") == \"3\":\n                versions.append(child)\n    return versions\n\ndef create_task(task_type, prompt, product, input_images=None):\n    input_images = input_images or []\n    rule = product[\"credit_rules\"][0]\n    body = {\n        \"task_type\": task_type,\n        \"enable_multi_model\": False,\n        \"src_img_url\": input_images,\n        \"parameters\": [{\n            \"attribute_id\": rule[\"attribute_id\"],\n            \"model_id\": product[\"model_id\"],\n            \"model_name\": product[\"name\"],\n            \"model_version\": product[\"id\"],\n            \"app\": \"ima\", \"platform\": \"web\",\n            \"category\": task_type,\n            \"credit\": rule[\"points\"],\n            \"parameters\": {\n                \"prompt\": prompt, \"n\": 1,\n                \"input_images\": input_images,\n                \"cast\": {\"points\": rule[\"points\"], \"attribute_id\": rule[\"attribute_id\"]}\n            }\n        }]\n    }\n    r = requests.post(f\"{BASE_URL}/open/v1/tasks/create\", headers=HEADERS, json=body)\n    r.raise_for_status()\n    return r.json()[\"data\"][\"id\"]\n\ndef poll(task_id, interval=3, timeout=300):\n    deadline = time.time() + timeout\n    while time.time() < deadline:\n        r = requests.post(f\"{BASE_URL}/open/v1/tasks/detail\",\n                          headers=HEADERS, json={\"task_id\": task_id})\n        r.raise_for_status()\n        task = r.json()[\"data\"]\n        medias = task.get(\"medias\", [])\n        if medias and all(m.get(\"resource_status\") == 1 for m in medias):\n            return task\n        time.sleep(interval)\n    raise TimeoutError(f\"Task timed out: {task_id}\")\n\n# Example: text_to_image\nproducts = get_products(\"text_to_image\")\nseedream = next(p for p in products if p[\"model_id\"] == \"doubao-seedream-4.5\")\ntask_id = create_task(\"text_to_image\", \"mountain sunset\", seedream)\nresult = poll(task_id)\nprint(result[\"medias\"][0][\"url\"])\n```\n\nFile v1.0.10:clawhub.json\n\n{\n  \"name\": \"IMA AI Image Generator — Text to Image, Image to Image, AI Art, SeeDream, Midjourney, Nano Banana\",\n  \"tagline\": \"AI image generator with SeeDream 4.5, Midjourney, Nano Banana 2/Pro. Text-to-image, image-to-image, AI art, 1K/2K/4K resolution.\",\n  \"description\": \"AI image generator with premier models: SeeDream 4.5, Midjourney, Nano Banana 2, Nano Banana Pro. Image generator supporting text-to-image, image-to-image, style transfer, and AI art creation. Use as AI art generator for illustrations, product photo generator for e-commerce, or character design tool for creative projects. AI image generation with 1K/2K/4K resolution, custom aspect ratios, and intelligent model selection. Better alternative to DALL-E, Stable Diffusion, or Midjourney APIs directly.\",\n  \"category\": \"file-generation\",\n  \"requiredEnvVars\": [\"IMA_API_KEY\"],\n  \"credentialNotice\": \"The IMA API key is required at runtime (--api-key or IMA_API_KEY). It is sent to api.imastudio.com (generat\n\nArchive v1.0.9: 10 files, 34744 bytes\n\nFiles: _meta.json (131b), !keywords.txt (3711b), CHANGELOG_CLAWHUB.md (1374b), clawhub.json (5182b), requirements.txt (111b), scripts/ima_image_create.py (71700b), scripts/ima_logger.py (3430b), SECURITY.md (1460b), SKILL-DETAIL.md (11585b), SKILL.md (7314b)\n\nArchive v1.0.8: 9 files, 50462 bytes\n\nFiles: _meta.json (131b), !keywords.txt (3711b), CHANGELOG_CLAWHUB.md (1374b), clawhub.json (5182b), requirements.txt (111b), scripts/ima_image_create.py (71700b), scripts/ima_logger.py (3430b), SECURITY.md (1460b), SKILL.md (66745b)\n\nArchive v1.0.7: 8 files, 48341 bytes\n\nFiles: _meta.json (131b), CHANGELOG_CLAWHUB.md (1374b), clawhub.json (3854b), requirements.txt (111b), scripts/ima_image_create.py (71700b), scripts/ima_logger.py (3430b), SECURITY.md (1460b), SKILL.md (66717b)\n\nArchive v1.0.6: 7 files, 47155 bytes\n\nFiles: _meta.json (131b), CHANGELOG_CLAWHUB.md (1374b), clawhub.json (3269b), requirements.txt (111b), scripts/ima_image_create.py (71700b), scripts/ima_logger.py (3430b), SKILL.md (66260b)\n\nArchive v1.0.5: 7 files, 44232 bytes\n\nFiles: _meta.json (131b), CHANGELOG_CLAWHUB.md (1374b), clawhub.json (3269b), requirements.txt (111b), scripts/ima_image_create.py (61067b), scripts/ima_logger.py (3430b), SKILL.md (66414b)","readmeExcerpt":"Skill: IMA AI Image Generator & Photo Generator — Poster, Thumbnail, Logo, Art, Illustration, Product & Social Media Graphic Design Owner: allenfancy-gan Summary: Use when the user needs image generation or image transformation through the IMA Open API, including text-to-image, image-to-image, style transfer, or refere... Tags: latest:1.0.14 Version history: v1.0.14 | 2026-04-23T03:32:33.672Z | user - Added compiled ","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python3 scripts/ima_runtime_setup.py --install"},{"language":"bash","snippet":"export IMA_API_KEY=\"ima_your_key_here\""},{"language":"bash","snippet":"python3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --prompt \"a cinematic mountain sunset\" \\\n  --output-json"},{"language":"bash","snippet":"python3 scripts/ima_runtime_doctor.py --output-json"},{"language":"bash","snippet":"python3 scripts/ima_runtime_setup.py"},{"language":"bash","snippet":"python3 scripts/ima_runtime_setup.py --install"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: \"IMA Image Generator\"\nversion: 1.0.8\ncategory: file-generation\nauthor: IMA Studio (imastudio.com)\nkeywords: imastudio, AI image generator, image generator, AI photo generator, product photo, poster generator, thumbnail generator, logo generator, AI art generator, illustration, graphic design, social media image, text to image, image to image\nargument-hint: \"[text prompt or image URL]\"\ndescription: >\n  Use when the user needs image generation or image transformation through the IMA Open API,\n  including text-to-image, image-to-image, style transfer, or reference-image continuity, and\n  the agent should use the setup, doctor, and live-catalog-aware runtime in this repo.\nrequires:\n  env:\n    - IMA_API_KEY\n  runtime:\n    - python3\n  packages:\n    - requests\n  primaryCredential: IMA_API_KEY\n  credentialNote: \"IMA_API_KEY is required at runtime. It is sent to api.imastudio.com and, for local image uploads, to imapi.liveme.com.\"\nmetadata:\n  openclaw:\n    primaryEnv: IMA_API_KEY\n    homepage: https://www.imaclaw.ai\n    requires:\n      bins:\n        - python3\n      env:\n        - IMA_API_KEY\npersistence:\n  readWrite:\n    - ~/.openclaw/memory/ima_prefs.json\n    - ~/.openclaw/logs/ima_skills/\ninstructionScope:\n  crossSkillReadOptional:\n    - ~/.openclaw/skills/ima-knowledge-ai/references/*\n---\n\n# IMA Image AI\n\n## When To Use\n\nUse this repository when the user wants an image output:\n\n- text-to-image\n- image-to-image\n- style transfer\n- continuity via reference image\n\nThis repo is image-only. Do not route video generation, audio generation, or non-image tasks here.\n\n## Gateway Contract\n\n- New-machine bootstrap entrypoint: `python3 scripts/ima_runtime_setup.py`\n- Environment/self-check entrypoint: `python3 scripts/ima_runtime_doctor.py`\n- The official CLI entrypoint is `python3 scripts/ima_runtime_cli.py ...`.\n- Always query the live product list before task creation so `attribute_id`, `credit`, `model_version`, and defaults come from the current catalog.\n- Return remote HTTPS image URLs; do not download results into local attachments for the user.\n- Route requests through the image capability so `text_to_image` and `image_to_image` are classified before execution.\n- If `--model-id` is omitted, the runtime uses the recommended default model for that task type.\n- Auto-selected defaults are operational fallbacks, not persisted user preferences.\n\n## Quick Start\n\n- Minimal path:\n  1. `python3 scripts/ima_runtime_setup.py --install`\n  2. `export IMA_API_KEY=\"ima_your_key_here\"`\n  3. `python3 scripts/ima_runtime_cli.py --task-type text_to_image --prompt \"a cinematic mountain sunset\" --output-json`\n- Use `python3 scripts/ima_runtime_doctor.py --output-json` when setup passes but runtime or catalog access still fails.\n\n## Operator References\n\n- `README.md` covers first-use paths and canonical entry commands.\n- `references/shared/catalog-aware-selection.md` defines the formal live-catalog-aware model-selection contract.\n- `references/operations/troubleshooting"},{"path":"README.md","content":"# IMA Image AI\n\nOfficial runtime for IMA image generation.\n\nUse it for:\n\n- `text_to_image`\n- `image_to_image`\n- style transfer\n- reference-image continuity\n\n## Quick Start\n\n### Minimal Path (3 Steps)\n\n```bash\npython3 scripts/ima_runtime_setup.py --install\n```\n\n```bash\nexport IMA_API_KEY=\"ima_your_key_here\"\n```\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --prompt \"a cinematic mountain sunset\" \\\n  --output-json\n```\n\nIf you want to verify the environment before the first generation:\n\n```bash\npython3 scripts/ima_runtime_doctor.py --output-json\n```\n\n### Full Bootstrap Flow\n\n1. Run bootstrap/setup:\n\n```bash\npython3 scripts/ima_runtime_setup.py\n```\n\nIf dependencies are missing, rerun with:\n\n```bash\npython3 scripts/ima_runtime_setup.py --install\n```\n\n2. Set your API key:\n\n```bash\nexport IMA_API_KEY=\"ima_your_key_here\"\n```\n\nThen rerun setup to verify the local environment:\n\n```bash\npython3 scripts/ima_runtime_setup.py\n```\n\n3. Run the self-check when you want API/catalog diagnostics:\n\n```bash\npython3 scripts/ima_runtime_doctor.py --output-json\n```\n\n## Typical First-Use Scenarios\n\n### 1. Inspect Live Models\n\n```bash\npython3 scripts/ima_runtime_cli.py --task-type text_to_image --list-models --output-json\n```\n\nUse this when you want the current live model IDs before choosing one manually.\n\n### 2. First Prompt-Only Generation\n\nText to image with the recommended default model picked automatically:\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --prompt \"a cinematic mountain sunset\" \\\n  --output-json\n```\n\nUse this when you want the fastest path to a first successful run.\n\nIf you want to override the model manually without editing placeholders, fetch a live `model_id` first:\n\n```bash\nMODEL_ID=\"$(python3 scripts/ima_runtime_cli.py --task-type text_to_image --list-models --output-json | python3 -c 'import json,sys; print(json.load(sys.stdin)[0][\\\"model_id\\\"])')\"\npython3 scripts/ima_runtime_cli.py \\\n  --task-type text_to_image \\\n  --model-id \"$MODEL_ID\" \\\n  --prompt \"a cinematic mountain sunset\" \\\n  --output-json\n```\n\nFor `image_to_image`, the same pattern works with the image catalog:\n\n```bash\nMODEL_ID=\"$(python3 scripts/ima_runtime_cli.py --task-type image_to_image --list-models --output-json | python3 -c 'import json,sys; print(json.load(sys.stdin)[0][\\\"model_id\\\"])')\"\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --model-id \"$MODEL_ID\" \\\n  --prompt \"turn this into an oil painting\" \\\n  --input-images ./example.png \\\n  --output-json\n```\n\n### 3. First Image-to-Image Restyle\n\nImage to image with one local reference image:\n\n```bash\npython3 scripts/ima_runtime_cli.py \\\n  --task-type image_to_image \\\n  --prompt \"turn this into an oil painting\" \\\n  --input-images ./example.png \\\n  --output-json\n```\n\nUse this when the user already has one source image and wants a style transfer or continuity pass.\n\n## Tuning And Troubleshooting\n\n- Parameter tuning examples: `capabilities/image/refere"},{"path":"references/README.md","content":"# References Map\n\nThese docs are organized around the active runtime entry and the layers under `scripts/ima_runtime`:\n\n- `gateway/` covers request entry, routing, and clarification seams.\n- `shared/` covers reusable policy and cross-cutting runtime rules.\n- `operations/` covers API lifecycle, smoke checks, and troubleshooting playbooks.\n- `capabilities/image/` covers image-specific behavior, model rules, parameter tuning, and scenarios.\n\nRead from gateway to shared policy to image capability detail. That follows the intended runtime path from `scripts/ima_runtime_cli.py` into `cli_flow.py`, then through shared services, and finally into `capabilities/image/*`.\n\nUseful operator-facing docs:\n\n- `operations/api-contract-and-errors.md` for request lifecycle and timeout contracts\n- `operations/e2e-smoke-playbook.md` for local and live smoke checks\n- `operations/troubleshooting.md` for common failures and copy-paste recovery commands\n- `shared/catalog-aware-selection.md` for the formal dynamic model-selection contract\n- `../capabilities/image/references/parameter-tuning.md` for practical control combinations\n- `../capabilities/image/references/scenarios.md` for concrete prompt-only and reference-image examples"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7ac9knfd0gdwhn8ktjvqqgj181thkt\",\n  \"slug\": \"ima-image-ai\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1776915153672\n}"},{"path":"capabilities/image/references/models.md","content":"# Image Models\n\nCurrent image model IDs:\n\n- `doubao-seedream-4.5`\n- `gemini-3.1-flash-image`\n- `gemini-3-pro-image`\n- `midjourney`\n\nAlways bind these against the live product list before task creation.\n\nCommon aliases:\n\n- `MJ` -> `midjourney`\n- `香蕉` -> `gemini-3.1-flash-image`\n- `香蕉Pro` -> `gemini-3-pro-image`\n- `可梦` -> `doubao-seedream-4.5`"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1686,"uniquenessScore":38,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T17:54:25.384Z","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-09T17:54:25.384Z","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-10T02:07:38.839Z","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"}]}}}