
Civitai Orchestration 工作流查询实战基于 civitai-client.js 的作业检索、内容审核扫描与结果下载指南【免费下载链接】civitaiA repository of models, textual inversions, and more项目地址: https://gitcode.com/GitHub_Trending/ci/civitai本指南围绕当前仓库中.claude/skills/civitai-orchestration技能包展开系统讲解如何通过其配套命令行客户端civitai-client.js与 Civitai Orchestration API 交互实现按用户、工作流 ID、日期范围、标签与元数据检索生成作业深入查看包含hive_csam_score等内容审核扫描结果的作业详情并下载最终图像/视频产物。读完本文你将掌握一套可直接复用的 Orchestration 查询与排障命令体系并理解其底层 API 端点与参数设计。技能包概览为什么需要 Orchestration 查询能力Civitai 的生成服务背后是一套异步编排系统用户提交的文本生图、视频生成、ComfyUI 工作流等任务会被拆解为Workflow工作流→ Step步骤→ Job作业→ Blob产物对象的层级结构。civitai-orchestration技能正是为 Agent 提供这一层级的查询入口其元信息定义在 SKILL.md 的 frontmatter 中name: civitai-orchestration description: Query and explore Civitai Orchestration workflows, jobs, and results. Use for analyzing image/video generation jobs, viewing job results, searching by workflow ID, job ID, user, or date range. allowed-tools: Bash(node:*) argument-hint: [command] [options]技能目录下包含两个文件SKILL.md面向 Agent 的命令与 API 参考手册civitai-client.js约 850 行的 Node.js 零依赖客户端内部使用原生fetch与https/fs/path模块无需安装任何 npm 依赖即可运行。从源码结构看客户端将命令分为两组 API 消费者user/user-workflows走Manager 端点可查询指定用户的工作流需要 Manager 权限 token其余命令走Consumer 端点仅能查询自己拥有的工作流这一点会在后文详细展开。快速开始配置凭据与连通性验证环境变量客户端在启动时按优先级加载两份.env技能目录下的.claude/skills/civitai-orchestration/.env优先其次为仓库根目录的.env对应源码 civitai-client.js 中的SKILL_DIR与PROJECT_ROOT拼接逻辑。两个关键变量为CIVITAI_API_TOKENyour_bearer_token CIVITAI_API_URLhttps://orchestration.civitai.comCIVITAI_API_TOKENBearer 认证令牌未设置时客户端会直接报错CIVITAI_API_TOKEN not setCIVITAI_API_URLAPI 基地址。注意 SKILL.md 示例写的是https://orchestration.civitai.com而代码中的默认兜底值是https://orchestration-new.civitai.com见 civitai-client.js——实际生效地址以.env显式配置为准建议总是显式写入以避免歧义。作为仓库侧佐证主应用通过ORCHESTRATOR_ENDPOINT与ORCHESTRATOR_ACCESS_TOKEN配置其服务端编排客户端见 .env-example并且NEXT_PUBLIC_ORCHESTRATOR_ENDPOINThttps://orchestration.civitai.com.env-examplesrc/server/services/orchestrator/client.ts 展示了服务端如何基于civitai/client以系统用户身份构造编排客户端与技能包的 Consumer 客户端形成对照。验证连接node .claude/skills/civitai-orchestration/civitai-client.js testtest命令会打印当前 API URL 与 token 前 8 位并向/v2/consumer/workflows发起一次take1的探测请求源码 testConnection成功即输出Connection successful!。命令参考八个核心命令命令作用用法test验证 API 连接与凭据node civitai-client.js testuser userId按 Civitai 用户 ID 查询其工作流Managernode civitai-client.js user 12345 [options]workflows列出/搜索自己的工作流Consumernode civitai-client.js workflows [options]workflow workflowId获取指定工作流详情--wait可轮询等待完成node civitai-client.js workflow id [--wait]job jobId获取作业详情含lastEvent.context审核扫描结果node civitai-client.js job jobId [--raw]step workflowId stepName获取工作流内某步骤详情node civitai-client.js step id stepNameresults workflowId查看/下载工作流产物node civitai-client.js results id [--download] [--dirpath]blob blobId按 ID 获取单个图像/视频对象可处理 NSFWnode civitai-client.js blob blobId [--download] [--nsfw]user与workflows命令虽都列出工作流但语义不同前者命中 Manager 端点/v1/manager/workflows并携带UserId参数可跨用户查询后者命中 Consumer 端点/v2/consumer/workflows只能看到当前 token 归属用户自己的工作流。这与--take上限也有差异——user命令按 API 限制最大take10而workflows默认take20。搜索与过滤六种检索维度与组合用法1. 按用户 ID# 获取用户 12345 的工作流 node civitai-client.js user 12345 # 附带过滤与排序 node civitai-client.js user 12345 --take5 --excludeFailed --oldestuser命令支持--take、--tag、--query、--excludeFailed、--oldest其底层会把--oldest映射为 Manager 端点的Inversetrue参数源码 queryUserWorkflows实现从旧到新排序。2. 按工作流 ID 直查node civitai-client.js workflow 0-019be44b-181e-7a7e-ab1b-b58dc7610dca工作流 ID 形如上述 UUID 风格字符串也见作业示例中的8484131-20260121222126332直查返回完整 JSON。3. 按日期范围日期过滤的功能取决于 API 访问级别可能受限。日期默认按 UTC 解释# 最近 7 天 node civitai-client.js workflows --from2024-01-15 --to2024-01-22 # 单日 node civitai-client.js workflows --from2024-01-20 --to2024-01-20 # 显式 UTC 时间窗 node civitai-client.js workflows --from2024-01-20T06:00:00Z --to2024-01-20T12:00:00Z客户端的日期规范化逻辑源码 listWorkflows值得一提仅含日期无T的--to会被补全为T23:59:59.999Z当天 UTC 最后一毫秒含T但无时区标记的 ISO 串会自动追加Z按 UTC 处理随后统一转为fromDate/toDate查询参数。备选方案当日范围查询不可靠时可用--oldest从最旧开始翻页node civitai-client.js workflows --oldest --take504. 按标签AND 逻辑标签在创建工作流时设置可按常见模式过滤# 单标签 node civitai-client.js workflows --taguser:12345 # 多标签AND 关系全部命中才返回 node civitai-client.js workflows --tagproject:myproject --tagtype:image源码的 parseArgs 支持同一参数名多次出现并聚合为数组因此--taga --tagb会转换为tagsatagsb两个独立查询参数。5. 按元数据搜索# 在元数据中检索字符串 node civitai-client.js workflows --queryportrait--query映射到 API 的query参数对工作流元数据做文本搜索。6. 按状态API 不提供按具体状态筛选的参数仅支持排除失败类状态# 排除 failed/canceled/expired只保留 succeeded/processing node civitai-client.js workflows --excludeFailed # 默认包含全部状态 node civitai-client.js workflows源码中有一个值得注意的细节--statussucceeded会被映射为excludeFailedtruelistWorkflows而不是真正按状态过滤。SKILL.md 建议如需精确状态应在创建工作流时借助 tags/metadata 打标查询后在客户端侧过滤。分页与组合过滤# 首页 node civitai-client.js workflows --take50 # 下一页cursor 取自上一响应 node civitai-client.js workflows --take20 --cursornextCursor组合示例# 指定标签下成功的 50 条工作流 node civitai-client.js workflows --taguser:12345 --excludeFailed --take50 # 元数据搜索 排除失败 node civitai-client.js workflows --queryportrait --excludeFailed --take20作业详情与内容审核扫描结果job命令是内容审核排查的核心工具它始终以detailedtrue请求/v1/consumer/jobs/{jobId}以携带lastEvent.context源码 getJobnode civitai-client.js job jobId [--raw]--raw输出原始 JSON默认输出格式化摘要重点高亮lastEvent.context中的四个审核相关字段hive_csam_scoreCSAM 评分、hive_vlm_summary视觉语言模型摘要、blocked_reason拦截原因、nsfwLevelNSFW 分级。文档给出的真实输出示例Job Summary: ID: 58de87d7-d594-4d71-ae43-dd8fc1bcbd23 Type: TextToImageV2 Workflow ID: 8484131-20260121222126332 Prompt Classification: sexual, young, scan Results (2 blob(s)): - JNFDW54JNTATNW42HACYCWSQP0.jpeg (available: true) Last Event: Type: Succeeded Provider: ValdiAI Event Context (scan results, metrics): ** hive_csam_score: 0.00 %, 0.00 % ** hive_vlm_summary: X, No_Child除扫描分数外摘要还包含Prompt Classification由promptClassificationResult聚合的标签sexual、young、CR、scan用于快速判断提示词是否触达敏感分类Results作业产出的 blob 列表及available可用性标记Last Event事件类型如Succeeded、执行 Provider、Worker ID、作业耗时其余 context 字段超出 80 字符会被截断显示归入Other context。这条链路与主仓库的内容审核体系呼应——docs/prompt-analysis-audit-2026-08-05.md 等文档记录了提示词审核分析的审计工作而hive_*字段正是生成作业侧审核结果的可观测入口。产物下载results 与 blob从工作流下载全部产物# 查看产物清单 node civitai-client.js results workflowId # 下载到指定目录默认 ./civitai-downloads node civitai-client.js results workflowId --download --dir./my-imagesresults命令先拉取工作流详情再遍历每个 step 的output兼容多种输出格式images[]、videos[]、blobId、blobIds[]、blob对象含宽高与 URL。下载时依据 blob ID 后缀推断扩展名.webp/.mp4/.jpg/.jpeg/.png默认.png文件名格式为${workflowId}_${stepName}_${序号}${ext}源码 getResults。获取单个 blobnode civitai-client.js blob blobId [--download] [--nsfw]blob 端点/v2/consumer/blobs/{blobId}的行为是返回308 重定向到实际内容地址源码 apiRequest 专门处理了308状态并提取Location头。--nsfw会附加hideMatureContentfalse参数用于获取默认被隐藏的成人内容--download以redirect: follow跟随重定向并落盘为${blobId}.png。API 参考查询参数、状态机与步骤类型Workflows 端点查询参数参数类型说明tagsarray按标签过滤可多个querystring搜索工作流元数据fromDate/toDateISO 8601日期范围支持程度取决于访问级别cursorstring分页游标takenumber结果数量默认 100excludeFailedboolean排除 failed/expired/canceledascendingboolean从旧到新排序注意默认值差异API 文档中take默认为 100而客户端workflows命令默认取 20listWorkflows显式传参会覆盖默认。工作流状态机状态说明preparing正在准备scheduled已排入执行计划processing执行中succeeded成功完成failed失败含错误canceled被取消expired超时deleted已删除步骤类型Recipes生成链路中可能遇到的步骤类型textToImage/imageGen—— 文生图 / 通用图像生成videoGen、videoEnhancement、videoFrameExtraction、videoUpscaler、videoInterpolation—— 视频生成与后处理增强、抽帧、超分、插帧convertImage—— 图像格式转换comfy—— ComfyUI 工作流执行preprocessImage—— ControlNet 图像预处理器输出为 image blobpreprocessVideo—— ControlNet 视频预处理器输出为 VideoBlobaceStepAudio—— 音频生成blob 为 AudioBlob封面图模式下为 VideoBlobminiMaxMusic3—— 音乐生成user命令的输出摘要会展示每个 step 的名称:类型(状态)并对textToImage步骤打印截断到 100 字符的 prompt源码 queryUserWorkflows便于快速识别生成内容主题。错误处理速查错误码含义处理建议401token 无效或过期检查CIVITAI_API_TOKEN404工作流/作业不存在核对 ID429触发限流等待后重试422参数无效检查参数格式客户端遇到非 2xx 响应会抛出API request failed: status body并process.exit(1)所有函数同时通过module.exports导出civitai-client.js可被其他脚本以require方式复用如listWorkflows、getJob、getResults等。实战建议小结身份选择查他人工作流用userManager 端点查自己的工作流用workflowsConsumer 端点token 权限要与端点匹配审核排查优先job jobId而非workflow只有detailedtrue的作业响应才携带hive_csam_score、hive_vlm_summary等lastEvent.context审核字段日期精度日期一律按 UTC 处理--to单日会被补到当日23:59:59.999Z需要明确时区就写Z后缀状态过滤API 只支持excludeFailed精确状态过滤需结合 tags/metadata 在设计工作流时预留大结果集善用--cursor翻页或--oldest --takeN从历史向近期推进。如需查看技能包完整命令文档可直接阅读 SKILL.md客户端实现细节见 civitai-client.js主应用侧服务端编排客户端与端点配置可对照 src/server/services/orchestrator/client.ts 与 .env-example 进一步研究。【免费下载链接】civitaiA repository of models, textual inversions, and more项目地址: https://gitcode.com/GitHub_Trending/ci/civitai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考