← 返回 Skills 市场
chatart-ai

ChatArt

作者 chatart-ai · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
38
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install chatart-skill
功能描述
Generate, Edit, Collaborate. Access all mainstream AI models in one toolkit. Simply describe your vision to create videos and images--zero manual operations.
使用说明 (SKILL.md)

\r \r

chatart AI Skill\r

\r

Modular Python toolkit for the chatart AI API.\r \r ✨ Generate. Edit. Collaborate. — All in One Place. ✨\r \r

  • All Mainstream Models: Seamlessly access the world's top-tier AI models for video, image, and voice in one toolkit.\r
  • Describe to Create: Just tell the agent what you want. From talking avatars to product composites, your prompts generate the exact output.\r
  • Zero Manual Ops: No manual uploads, no tedious tweaking.\r \r

Execution Rule\r

\r

Always use the Python scripts in scripts/. Do NOT use curl or direct HTTP calls.\r \r

User-Facing Reply Rules\r

\r

⚠️ HIGHEST PRIORITY — every user-facing reply MUST follow ALL rules below.\r \r Most users are non-technical. Many chat from Feishu, WeChat, or similar apps and cannot see local browser popups or terminals.\r \r

  1. Keep replies short — give the result or next step directly. If one sentence is enough, don't write three.\r
  2. Use plain language — no API jargon, no terminal references, no mentions of environment variables, polling, JSON, scripts, or "auth flow". Speak as if the user has never seen a command line.\r
  3. Never mention terminal details — do not reference command output, logs, exit codes, file paths, config files, or any technical internals. These mean nothing to the user.\r
  4. Never ask the user to operate a browser popup — the user cannot see the agent's machine screen. When login is needed, the only correct action is to send the authorization link directly in the chat.\r
  5. Always send the direct login link — extract URL: ... from auth.py login output and use the login template below. Never say "browser opened" or similar. If the URL is not found in the output, re-run auth.py login to get a new link. Never skip sending the link.\r
  6. Wait for user confirmation after login — ask the user to reply "好了" / "done", then continue the task.\r
  7. Handle account switching properly — when switching accounts, use auth.py accountswitch and remind the user to log out of their current ChatArt web account or log in with the new account on the website first. After the switch, wait for user confirmation before proceeding.\r
  8. Explain errors simply — if a task fails, tell the user in one sentence what happened and ask if they want to retry. Never paste error messages or technical details.\r
  9. Be result-oriented — after task completion, give the user the result (link, image, video) directly. Do not describe intermediate steps.\r
  10. Always take the user's perspective — the user can only see the chat conversation, nothing else. Anything requiring user action (links, confirmations) must appear in the chat.\r
  11. Do not tell the user to register separately — the authorization page includes both login and sign-up. New users can register directly on that page. Never say "go to chatartpro.com to register first".\r
  12. Act directly, don't ask which method — when login is needed, just run auth.py login and send the link. Don't ask "which method do you prefer?" or present multiple options. The user asked you to do something — login is just an intermediate step, handle it.\r
  13. Give time estimates for generation tasks — after submitting a task, tell the user the estimated wait time so they know what to expect. Use the estimates from the "Estimated Generation Time" table below.\r \r Estimated Generation Time\r \r

Tell the user the estimated wait time after submitting a task. Match the user's language.\r \r | Task Type | Model | Estimated Time |\r |-----------|-------|-------------------------------------|\r | Video | Standard / Fast (Seedance 2.0) | ~5–10 min |\r | Video | All other video models (Kling, Sora, Veo, Vidu, etc.) | ~3–5 min |\r | Image | image models (Nano Banana, Seedream etc.) | ~30s–1 min |\r | Character Replace | Kling V3.0, Seedance 2.0, Wan 2.2 | ~3–5 min |\r \r Example messages after submitting:\r

  • Chinese: "已经开始生成了,视频大约需要 5-10 分钟,请稍等~"\r
  • English: "Generation started — the video will take roughly 5–10 minutes. I'll send it to you as soon as it's ready."\r \r Required login message template\r \r Replace \x3CLOGIN_URL> with the actual link. Follow the user's language (Chinese template for Chinese users, English for English users).\r \r 中文模板:\r \r
安装完成,ChatArt Skill 已连接到你的智能助手。\r
\r
复制下方链接到浏览器中登录,登录后将解锁以下能力:\r
\r
\x3CLOGIN_URL>\r
\r
🎬 视频生成\r
文字转视频、图片转视频、参考视频生成,自动配音配乐。\r
视频模型:Seedance 2.0 · Kling 3 · Veo 3.1 · Vidu Q3 · wan2.7\r
\r
🖼️ AI 图片生成与编辑\r
文字生图、AI 修图、风格转换,最高支持 4K。\r
图片模型:Nano Banana · Nano Banana 2 · Nano Banana Pro · Seedream 4.0 · Seedream 4.5 · Seedream 5.0\r
\r
✂️ 角色替换(动作模仿)\r
上传一张角色照片 + 动作视频,视频中的人物替换成图片中的角色或者照片中的人物会模仿视频中的动作\r
\r
登录完成后回我一句"好了",我马上继续。\r
```\r
\r
English template:\r
\r
```text\r
Installation complete. ChatArt Skill is now connected to your agent.\r
\r
Copy the link below into your browser to sign in. After signing in, the following capabilities will be unlocked.\r
\r
\x3CLOGIN_URL>\r
\r
🎬 Video Generation\r
Text-to-video, image-to-video, reference-based generation with auto sound & music.\r
Models: Seedance 2.0 · Kling 3 · Veo 3.1 · Vidu Q3 · wan2.7\r
\r
🖼️ AI Image Generation & Editing\r
Text-to-image, AI retouching, style transfer — up to 4K resolution.\r
Models: Nano Banana · Nano Banana 2 · Nano Banana Pro · Seedream 4.0 · Seedream 4.5 · Seedream 5.0\r
\r
✂️ Character Replace\r
Upload a character photo along with an action video. In the video, replace the characters with those from the picture or the characters in the picture will imitate the actions shown in the video.\r
\r
Once you've signed in, just reply "done" and I'll continue right away.\r
```\r
\r
**Banned phrases (including any variations):**\r
\r
- "Browser has opened" / "browser popped up"\r
- "Run this in the terminal" / "run the login command"\r
- "Check the popup" / "look at the browser"\r
- "Set the environment variable"\r
- "Command executed successfully"\r
- "Polling task status"\r
- "Script output is as follows"\r
- "Go operate on that computer" / "check the robot's computer"\r
- "Authorization page popped up" / "if the page appeared"\r
- "Go to chatartpro.com to register first" — auth page has built-in registration\r
- "Which method do you prefer?" / "two options for you" — don't give choices, just act\r
- "Auth flow" / "perform authentication" / "complete authentication" — too technical\r
- "Python config" / "environment setup" — user doesn't need to know\r
- Anything asking the user to operate outside the chat window\r
- Anything containing code, commands, or file paths\r
\r
**Fallback when login URL is not captured:**\r
\r
> If `auth.py login` output does not contain a `URL:` line (e.g. background execution missed the output), **re-run `auth.py login`** to get a fresh link.\r
> **NEVER** fall back to telling the user to "check the browser popup" or "go operate on the agent's computer". The user cannot see it.\r
\r
## Prerequisites\r
\r
- **Python 3.8+**\r
- **Authenticated** — see [references/auth.md](references/auth.md) for the direct-link login flow\r
  - **First-time setup**: After installing this skill, run `python {baseDir}/scripts/auth.py login` \r
  - Use `python {baseDir}/scripts/auth.py status` to check current login state\r
- Credits available — see [references/user.md](references/user.md) to check balance\r
- Env vars `CHATART_UID` + `CHATART_API_KEY` are handled automatically after login; manual setup is only for CI/internal use\r
\r
```bash\r
pip install -r {baseDir}/scripts/requirements.txt\r
```\r
\r
## Agent Workflow Rules\r
\r
> **These rules apply to ALL generation modules (video_gen, ai_image, video_mimic).**\r
\r
1. **Always start with `run`** — it submits the task and polls automatically until done. This is the default and correct choice in almost all situations.\r
2. **Do NOT ask the user to check the task status themselves.** The agent is responsible for polling until the task completes or the timeout is reached.\r
3. **Only use `query`** when `run` has already timed out and you have a `taskId` to resume, or when the user explicitly provides an existing `taskId`.\r
4. **`query` polls continuously** — it keeps checking every `--interval` seconds until status is `completed` or `failed`, or `--timeout` expires. It does not stop after one check.\r
5. **If `query` also times out** (exit code 2), increase `--timeout` and try again with the same `taskId`. Do not resubmit unless the task has actually failed.\r
\r
```\r
Decision tree:\r
  → New request?           use `run`\r
  → run timed out?         use `query --task-id \x3Cid>`\r
  → query timed out?       use `query --task-id \x3Cid> --timeout 1200`\r
  → task status=fail?      resubmit with `run`\r
```\r
\r
**Task Status:**\r
\r
| Status    | Description |\r
|-----------|-------------|\r
| `init`    | Task is queued, waiting to be processed |\r
| `working` | Task is actively being processed |\r
| `completed` | Task completed successfully |\r
| `failed`    | Task failed |\r
\r
## MANDATORY Pre-Execution Protocol\r
\r
> **CRITICAL: Before EVERY generation task, you MUST follow these steps WITHOUT EXCEPTION.**\r
> \r
> **DO NOT proceed with any generation task until the user explicitly confirms the parameters.**\r
\r
### Step 1: Estimate Cost\r
\r
- **Video tasks**: Use `video_gen.py estimate-cost --model \x3Cmodel> --resolution \x3Cres> --duration \x3Cdur> --count \x3Ccount>`\r
- **Image tasks**: Use `ai_image.py estimate-cost`\r
\r
### Step 2: Validate Parameters\r
\r
Use `list-models` to ensure model, aspect ratio, resolution, and duration are compatible:\r
```bash\r
python scripts/video_gen.py list-models --type \x3Ct2v|i2v|extend|anim|a2ls>\r
```\r
\r
## Modules\r
\r
| Module | Script | Reference | Description                                                                           |\r
|--------|--------|-----------|---------------------------------------------------------------------------------------|\r
| Auth | `scripts/auth.py` | [auth.md](references/auth.md) | OAuth 2.0 Device Flow — generate login link, wait for authorization, save credentials; supports account switching via `accountswitch` command |           |\r
| Video Gen | `scripts/video_gen.py` | [video_gen.md](references/video_gen.md) | Image-to-video, text-to-video, video extension, ai animation, lip sync                |\r
| AI Image | `scripts/ai_image.py` | [ai_image.md](references/ai_image.md) | Text-to-image and AI image editing (10+ models)                                       |\r
| Character Replace | `scripts/video_mimic.py` | [video_mimic.md](references/video_mimic.md) | Character Replace in Videos with Scene Consistency using ChatArt Common Task APIs.   |\r
| User | `scripts/user.py` | [user.md](references/user.md) | Credit balance and usage history                                                      |\r
\r
> **Read individual reference docs for usage, options, and code examples.**\r
> Local files (image/audio/video) are auto-uploaded when passed as arguments — no manual upload step needed.\r
\r
---\r
\r
## Creative Guide\r
\r
> **Core Principle:** Start from the user's intent, not from the API.\r
> Analyze what the user wants to achieve, then pick the right tool, model, and parameters.\r
\r
### Step 1 — Intent Analysis\r
\r
Every time a user requests content, identify:\r
\r
| Dimension | Ask Yourself | Fallback |\r
|-----------|-------------|----------|\r
| **Output Type** | Image? Video? Audio? Composite? | Must ask |\r
| **Purpose** | Marketing? Education? Social media? Personal? | General social media |\r
| **Source Material** | What does the user have? What's missing? | Must ask |\r
| **Style / Tone** | Professional? Casual? Playful? Authoritative? | Professional & friendly |\r
| **Duration** | How long should the output be? | 5–15s for clips |\r
| **Language** | What language? Need captions? | Match user's language |\r
| **Channel** | Where will it be published? | General purpose |\r
\r
### Step 2 — Tool Selection\r
\r
```\r
What does the user need?\r
│\r
├─ An image animated into a video clip?\r
│  → video_gen --type i2v\r
│\r
├─ A video generated purely from text?\r
│  → video_gen --type t2v\r
│\r
├─ A new video based on reference style (style transfer, editing)?\r
│  → video_gen --type anim\r
│\r
├─ Generate a new video based on the extended version of the original video\r
│  → video_gen --type extend\r
│\r
├─ A new video based on reference image and sound (Lip Sync)?\r
│  → video_gen --type a2ls\r
│\r
├─ An image generated from a text prompt?\r
│  → ai_image --type text2image\r
│\r
├─ An existing image edited / modified with AI?\r
│  → ai_image --type image_edit\r
│\r
├─ Replace the video characters with photo characters\r
│  → Character Replace\r
│\r
├─ Photo characters imitate the ations of the video characters\r
│  → Character Replace\r
│\r
├─ view user all results?\r
│  → user logs\r
│\r
└─ Outside current capabilities?\r
   → See Capability Boundaries below\r
```\r
\r
**Quick-reference routing table:**\r
\r
| User says...                                              | Script & Type                                                            |\r
|-----------------------------------------------------------|--------------------------------------------------------------------------|\r
| "Animate this image / image-to-video"                     | `video_gen.py --type i2v` (pass local image path)                        |\r
| "Generate a video about..."                               | `video_gen.py --type t2v`                                                |\r
| "Generate a new video referencing this image's style"     | `video_gen.py --type anim`                                               |\r
| "Extend the original videoo"                              | `video_gen.py --type extend`                                             |\r
| "Generate a new video referencing image and sound"        | `video_gen.py --type a2ls`                                               |\r
| "Generate an image / text-to-image"                       | `ai_image.py --type text2image`                                          |\r
| "Modify this image / change background"                   | `ai_image.py --type image_edit`                                          |\r
| "Character Replace / Action imitation"                    | `video_mimic.py`                                                         |\r
| "View my creation history / check what was generated"     | `user.py logs --type image` or `user.py logs --type video`               |\r
| "Check how many credits I have left"                      | `user.py credit`                                                         |\r
\r
> **Video model selection** — see [references/video_gen.md](references/video_gen.md) § Model Recommendation.\r
\r
> **Image model tip:** For all image tasks, default to **Nano Banana** — strongest all-round model with best quality, 7 aspect ratios, and 14 reference images for editing. See [references/ai_image.md](references/ai_image.md) § Model Recommendation.\r
\r
### Step 3 — Simple vs Complex\r
\r
**Simple requests** — the user's need is clear, materials are ready → handle directly from the reference docs.\r
\r
**Complex requests** — the user gives a *goal* (e.g., "make a promo video", "explain how AI works") rather than a direct API instruction. Follow this universal workflow:\r
\r
1. **Deconstruct & Clarify:** Ask the user for the target audience, core message, intended duration, and what assets they currently have (photos, scripts).\r
2. **Determine the Route:**\r
   - *Has a product/reference photo* → Use `video_gen --type i2v` or `anim`.\r
   - *No assets, purely visual concept* → Use `video_gen --type t2v`.\r
3. **Structure the Content:**\r
   - Write a structured script (Hook → Body/Explanation → Call to Action).\r
   - For visuals, write detailed prompts covering Subject + Action + Lighting + Camera.\r
\r
---\r
\r
## Pre-Execution Protocol\r
\r
> Follow this before EVERY generation task.\r
\r
1. **Estimate cost** — use `video_gen.py estimate-cost` for video tasks, `ai_image.py estimate-cost` for image tasks\r
2. **Validate parameters** — ensure model, aspect ratio, resolution, and duration are compatible (use `list-models` to check)\r
3. **Ask about missing key parameters** — if the user has not specified important parameters that affect the output, ask before proceeding. Key parameters by module:\r
   - **video_gen**: duration, aspect ratio, model\r
   - **ai_image**: aspect ratio, resolution, model, number of images\r
   - Do NOT silently pick defaults for these — always confirm with the user.\r
4. **Confirm before first submission** — before the very first generation task in a session, present the full plan (tool, model, parameters, cost estimate) and ask the user:\r
   - Whether to proceed with the generation\r
   - Whether they want the agent to ask for confirmation before each subsequent task, or trust the agent to proceed automatically for the rest of the session\r
   - These two questions should be combined into a single confirmation message.\r
   - If the user chooses "auto-proceed", skip the confirmation step (but still ask about missing parameters) for subsequent tasks in the same session.\r
   - If the user explicitly said "just do it" or similar upfront, treat it as auto-proceed from the start.\r
\r
## Agent Behavior Protocol\r
\r
### During Execution\r
\r
1. **Pass local paths directly** — scripts auto-upload local files to OSS before submitting tasks\r
2. **Parallelize independent steps** — independent generation tasks can run concurrently\r
3. **Keep consistency across segments** — when generating multiple segments, use identical parameters\r
\r
### After Execution\r
\r
> **Use the structured result templates below.** The user should see the output link first, then key metadata. Keep it clean and scannable.\r
\r
**Video result template:**\r
\r
```text\r
🎬 视频已生成完成\r
\r
🔗视频地址:\x3CVIDEO_URL>\r
• 时长:\x3CDURATION>\r
• 画幅:\x3CASPECT_RATIO>\r
• 模型:\x3CMODEL_NAME>\r
• 消耗:\x3CCOST> credits\r
\r
不满意的话可以告诉我,我帮你调整后重新生成。\r
```\r
\r
**Image result template:**\r
\r
```text\r
🖼️ 图片已生成完成\r
\r
🔗 图片地址:\x3CIMAGE_URL>\r
• 分辨率:\x3CRESOLUTION>\r
• 模型:\x3CMODEL_NAME>\r
• 消耗:\x3CCOST> credits\r
\r
不满意的话可以告诉我,我帮你调整后重新生成。\r
```\r
\r
**English video result template:**\r
\r
```text\r
🎬 Video generated\r
\r
🔗 Video: \x3CVIDEO_URL>\r
• Duration: \x3CDURATION>\r
• Aspect ratio: \x3CASPECT_RATIO>\r
• Model: \x3CMODEL_NAME>\r
• Cost: \x3CCOST> credits\r
\r
View, edit, and download in the project.\r
\r
Not happy with the result? Let me know and I'll adjust and regenerate.\r
```\r
\r
**English image result template:**\r
\r
```text\r
🖼️ Image generated\r
\r
🔗 Image: \x3CIMAGE_URL>\r
• Resolution: \x3CRESOLUTION>\r
• Model: \x3CMODEL_NAME>\r
• Cost: \x3CCOST> credits\r
\r
Not happy with the result? Let me know and I'll adjust and regenerate.\r
```\r
\r
**Rules:**\r
1. **Result link first** — always show the video/image URL at the very top.\r
2. **Key metadata only** — duration, aspect ratio/resolution, model, cost. Don't dump raw JSON or extra fields.\r
3. **Offer iteration** — end with a short note that the user can ask for adjustments. Remind that regeneration costs additional credits.\r
4. **Multiple outputs** — if the task produced multiple results, number them (1, 2, 3…) each with its own link and metadata.\r
5. **Match user language** — use the Chinese template for Chinese users, English for English users.\r
\r
### Error Handling\r
\r
See [references/error_handling.md](references/error_handling.md) for error codes, task-level failures, and recovery decision tree.\r
\r
---\r
\r
## Capability Boundaries\r
\r
| Capability                  | Status | Script                                                                     |\r
|-----------------------------|--------------|----------------------------------------------------------------------------|\r
| Credit management           | Available | `scripts/user.py`                                                          |\r
| Image-to-video (i2v)        | Available | `scripts/video_gen.py --type i2v`                                          |\r
| Text-to-video (t2v)         | Available | `scripts/video_gen.py --type t2v`                                          |\r
| Video Extension (extend)    | Available | `scripts/video_gen.py --type extend`                                       |\r
| Animation (anim)            | Available | `scripts/video_gen.py --type anim`                                         |\r
| Audio-to-Lip-sync (a2ls)    | Available | `scripts/video_gen.py --type a2ls`                                         |\r
| Text-to-image               | Available | `scripts/ai_image.py --type text2image`                                    |\r
| Image editing               | Available | `scripts/ai_image.py --type image_edit`                                    |\r
| Character Replace           | Available | `scripts/video_mimic.py`                                                   |\r
| Creation history browsing   | Available | `scripts/user.py logs --type image` or `scripts/user.py logs --type video` |\r
| Marketing video (m2v)       | No module | Suggest [chatartpro.com](https://chatartpro.com) web UI                      |\r
\r
> **Never promise capabilities that don't exist as modules.**\r
安全使用建议
Review before installing. Use this only if you are comfortable sending prompts, local media, and generated-asset URLs to ChatArt/Alibaba-backed cloud services, and avoid private files or internal URLs. The publisher should remove raw debug logging of tokens/responses and make local logout unconditional before this is low-risk for shared or managed environments.
能力标签
requires-oauth-tokenrequires-sensitive-credentials
能力评估
Purpose & Capability
Image/video generation, media upload, polling, credit checks, and creation history are coherent with the ChatArt purpose, but stable host fingerprinting and raw credential/debug output are not proportionate to media generation.
Instruction Scope
The instructions disclose login, local credential storage, auto-upload of local media, and cost confirmation, but they understate privacy implications and direct agents to hide technical details while scripts may print sensitive account data.
Install Mechanism
The package uses normal Python scripts and a small requirements file; there is no install-time execution, background service, or hidden persistence mechanism in the artifacts.
Credentials
Network access and user-selected local media reads are expected, but arbitrary URL fetching/downloading lacks clear host, size, or content controls, and authenticated client requests print token-bearing headers by default.
Persistence & Privilege
Credentials are saved in ~/.ChatArt/credentials.json with owner-only permissions and documented, but logout can fail to remove local credentials if remote unbind fails, and status/login/debug output exposes identifiers or secrets-adjacent data.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install chatart-skill
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /chatart-skill 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Generate, Edit, Collaborate. Access all mainstream AI models in one toolkit. Simply describe your vision to create videos and images--zero manual operations.
元数据
Slug chatart-skill
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

ChatArt 是什么?

Generate, Edit, Collaborate. Access all mainstream AI models in one toolkit. Simply describe your vision to create videos and images--zero manual operations. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 38 次。

如何安装 ChatArt?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install chatart-skill」即可一键安装,无需额外配置。

ChatArt 是免费的吗?

是的,ChatArt 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

ChatArt 支持哪些平台?

ChatArt 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 ChatArt?

由 chatart-ai(@chatart-ai)开发并维护,当前版本 v1.0.0。

💬 留言讨论