Civitai Creator Studio 架构与页面规格全解:创作者变现中台的实施计划与源码对照 Civitai Creator Studio 架构与页面规格全解创作者变现中台的实施计划与源码对照【免费下载链接】civitaiA repository of models, textual inversions, and more项目地址: https://gitcode.com/GitHub_Trending/ci/civitaiCreator Studio 是 Civitai 在creator.civitai.com推出的全新 SvelteKit spoke 应用定位为创作者管理一切收入来源的唯一入口是Creator Release 2026的 UI 层它将过去固定的 25% 生成补偿替换为由创作者自主控制的许可费licensing fee、可售卖模型访问权不限时以及创作者商店Creator Shop。本文以 docs/creator-studio/README.md 的页面规格体系为主线结合实施计划、各页面规格文档与apps/creator-studio/的真实源码完整讲解它的技术架构、页面划分、数据流、权限模型与落地状态读者可直接据此理解该应用的设计决策并对照源码继续深入。一、文档体系README 是规格的导航中枢docs/creator-studio/README.md是整个 Creator Studio 特性/页面规格feature/page specs的索引它把散落的文档组织成四个层次任何后续开发都从这张图开始伞形文档umbrella docs先读creator-studio-plan.md——实施计划含范围、决策与架构creator-studio-overview.md——一页纸的包packages 页面pages摘要buzz-client-handoff.md——已建成的civitai/buzz客户端说明。实现追踪状态唯一事实源implementation-checklist.md 汇总了所有未完成事项——各页面构建状态、未决决策、后端阻塞、已标记 bug、延期工作用[x]/[ ]/[~]、 阻塞、 待决策、⏭ 延期、 上游 bug 等图例标注。付费访问Paid Accessmonetization/下的 paid-access-current-state.md当前状态、paid-access-followups.md评审行动清单、paid-access-schema.mdPaidAccess表与terms结构及 onsite-monetization-parity.md。决策与 QA已答复作参考/理由pre-implementation-decisions.mdA/B/C 决策日志、questions-koen-backend.md后端 A1–A5、questions-justin-product.md产品 B1–B11、questions-justin-models-scope.md/models范围 B12–B13、feedback-justin-round-2.md、owner-rollup-handoff.md 与 cdc-koen.md。每份页面规格文档遵循同一模板路由与目的 → 用户故事 → 布局与组件 → 数据读→ 动作写→ 状态 → 门禁Gating→ 共享/交叉引用 → 开放问题。这意味着任何页面都能独立阅读也方便对照源码逐一验证。二、应用定位spoke 应用与 Creator Release 2026根据 creator-studio-plan.md §1Creator Studio 是 monorepo 中的spoke 应用与apps/moderator、apps/auth同构但不移植主应用main app的 React/Mantine 组件——spoke 应用统一采用Svelte 5 / SvelteKit / Tailwind v4技术栈。范围全部面向创作者批量许可费编辑跨多个模型带模型类型默认费用建议商店管理外观提交、排序、模型开关、发布延期先在主应用构建收益 分析许可费、打赏、模型访问销售、外观销售与用量分析模型管理早期/付费访问开关。v1 仅限 Studio 自身不吸收主应用的通用创作者界面模型上传、帖子、资料设置。访问模型Justin 确认任何登录用户都可以进入 Creator Studio具体条目/动作按订阅tier对会员限制。应用门口的门禁是已认证authenticated而非CPCreator Program专属会员能力如设置许可费按动作级强制。许可费规则设计师确认许可费是按模型版本设置的会员可开启并调整非会员不能设置。另外25% 补偿的退役cutover是与 v1 解耦的独立后端轨道应用大约在 cutover 前一周上线此窗口内设置的费用带一个暂不可支付标志。技术栈决策表关注点决策框架SvelteKit sveltejs/adapter-nodeSvelte 5ViteUIcivitai/uishadcn-svelte / bits-uiCivitai 复合组件EdgeMedia、ImageGuard、masonry在基础之上构建样式Tailwind v4tailwindcss/vite暗色优先html classdarkimport civitai/ui/theme.css认证hooks.server.ts中createSpokeGuard门禁为任意已认证用户require: (u) !!u数据civitai/db/kysely无 Prisma 引擎、免环境变量做领域读写变现写入进程内执行Buzzcivitai/buzz——仅服务端的 buzz 服务客户端交易 收益读取绝不进入浏览器代码环境变量应用本地.env 提交的.env.examplevite.config.ts中的process.envshim包纪律避免蔓延一个东西只有在(1) ≥2 个应用实际导入它且(2) 它是内聚、可命名的能力时才升格为共享civitai/*包否则就是应用内模块rule-of-three。v1 恰好只新增一个包——civitai/buzz——变现写入与分析读取都作为 creator-studio 模块存在直到全面 cutover 时再收敛。三、v1 页面清单与导航机制页面路由表apps/creator-studio/src/routes/下的真实路由路由页面目的/Dashboard / overview全来源收益概览 关键指标 各区块入口/earningsEarnings按来源拆解许可费、打赏、模型访问销售、外观销售时间序列 总计/earnings/analyticsBasic analytics ⭐驱动费用的模型用量每资源生成数、下载量、随时间互动——v1 优先保持基础/licensingLicensing fees批量编辑器多选版本设置/清除费用应用模型类型默认建议LoRA ~0.1base ~1 buzz/image支持小数定价/modelsModel management ⭐按模型分组版本嵌套含草稿逐版本早期/付费访问全配置、许可费开关 金额仅会员、无限期售卖访问权CP 会员、发布/排期/settingsPayout settingsTipalti 状态、会员/tier状态、每账号默认费用建议/joinMembership upsell面向非会员的会员权益与订阅引导实际源码中的路由布局apps/creator-studio/src/routes/与规格存在演进(app)组下已有dashboard/、models/含export/、search/子路由、earnings/、analytics/含audience/、base-models/、content/、engagement/、models/子页、sales/、settings/、join/含welcome/、announcements/另有(admin)/admin/monetization/管理后台、api/认证、账号切换、封面上传、客户端错误上报等。公开/白名单路径门禁前/favicon.svg、健康检查。导航单一nav.ts常量桌面侧边栏与移动端头部共用同一个应用内常量apps/creator-studio/src/lib/nav.ts{ href, label, icon, memberOnly?, nonMemberOnly?, flag?, adminOnly?, children? }数组。规格要求它镜像页面表加页面只需改一行避免两份导航漂移。源码里还揭示了几个规格之外的细节图标随条目内嵌icon: NavIcon组件引用无需维护名称→组件映射memberOnly只是显示提示真正的强制在$lib/server/membership.ts按动作执行条目可挂flag如 Sales 子页挂在scheduled-model-sales特性开关下flag 未开时直接丢弃链接而非禁用isMember参数传入的是Creator Program 门禁B1而非订阅 tier——即membership.isCreatorProgramMember激活态匹配对嵌套路由/earningsvs/earnings/analytics用isNavChildActive/isNavActive精确处理。nav.ts中memberOnly: true的条目是 Monetization/modelsnonMemberOnly: true的是/joinJoin Creator Program与规格中非会员专属升级页的设定一致。四、核心架构决策业务逻辑在哪里运行4.1 资金账本已是外部服务createBuzzTransaction不写本地表——它 POST 到BUZZ_ENDPOINTbuzzApiFetch(/transaction)。buzz 服务是独立的.NET / ASP.NET Core Minimal APIPostgreSQLClickHouse 仅作为提交后追踪 sink。因此账本无需抽取每个应用都是它的客户端。主应用持有的是变现编排orchestration而非账本校验 → 调用 buzz 服务 → 在同一流程内共写领域行如早期访问购买同时铸造 buzz 交易与EntityAccess授权 版本 meta加上费用规则、叠加、拆分收款人、tier 门禁——全部落在ModelVersion/CustomerSubscription之上。4.2 决策服务端、进程内、无主应用 tRPC 跳转civitai/buzz (PACKAGE — built) buzz 服务的服务端客户端主应用广泛使用且 creator-studio 也需要 从 buzz.service.ts 中抽出。SERVER-ONLY无浏览器入口。 monetization module (creator-studio MODULE — apps/creator-studio/src/lib/server/monetization/暂非包) 创作者操作setLicensingFee / bulkSetLicensingFee / setUnlimitedAccess 会员 tier 门禁。 依赖civitai/db (kysely) civitai/buzz。无 ClickHouse。无叠加后端处理。调用链BROWSER ─► creator-studio SERVER ─► monetization module ─► civitai/buzz ─► buzz service (.NET) (no buzz) (SvelteKit load/actions) (kysely domain writes) (package)为什么进程内而非独立服务或 tRPC 跳转独立变现服务是错误形态——编排要共写主应用领域表服务化要么搬走领域、要么在资金代码上引入分布式事务失败模式进程内执行把 buzz 调用 ↔ 领域写的事务一致性留在每个消费方内部。civitai/buzz够格成包主应用 creator-studio 都用变现操作暂不够格v1 只有单一调用方——等主应用采纳时再抽取。4.3 收益/分析读取ClickHouse而非 buzz 服务所有收益与分析都从ClickHouse读取——用 buzz 服务做仪表盘太慢。Buzz 收益已落入 ClickHouseresourceCompensations等聚合表已是日聚合是正确数据源。设计上从物化视图 / 日记录出发绝不查单行。Creator Studio 通过civitai/clickhousev1 必需依赖读取源码可见其客户端工厂封装在 apps/creator-studio/src/lib/server/clickhouse.ts懒构造 globalThis缓存避免 dev HMR 泄漏连接。4.4 复用主应用已有端点/服务需求现有面用户是否为付费会员按tierCustomerSubscription → Product.metadata.tierbronze/silver/gold⚠️creatorProgram.getCreatorRequirements额外要求创作者分数 ≥40k完整 CP 会员门槛更严收益 分析全部经civitai/clickhouse读 ClickHouseCP 现金 / 银行 / 池creatorProgram.getCash/getBanked/getCompensationPool设置许可费单个modelVersionupsert——licensingFee*字段flaglicensing-fee早期/付费访问配置 购买modelVersion.earlyAccessPurchase等外观购买 70/30 分成cosmeticShop.purchaseShopItemcomputeCreatorShopSplit支付给Cosmetic.createdById→TransactionType.Sell五、变现模块源码剖析setLicensingFee/bulkSetLicensingFee模块真实存在于 apps/creator-studio/src/lib/server/monetization/licensing-fee.ts直接写入ModelVersion表kysely无 buzz 调用、无 ClickHouse。规格中的操作映射为源码中的真实函数且带规格未展开的防御逻辑5.1 输入校验licensingFeeRatioSchema费用以N ⚡ per M 张图的整数比输入永不输入小数服务端变换为存储的每图费用null 清除buzz整数字符串强转z.coerce.number().int()不小于 00即清除images必须是FEE_IMAGE_OPTIONS提供的选项之一变换逻辑perImage round((buzz / images) * 100) / 100若perImage 0报最小是 1 ⚡ per 100 generations若超过FEE_SCHEMA_CEILING报上限。源码注释明确UI 镜像这些规则但无论客户端发什么服务端强制。5.2 三重防护非商用基础模型、真实人物POI、上限非商用基础模型NON_COMMERCIAL_BASE_MODELS new Set([Ideogram 4.0])镜像主应用server/common/constants.ts的nonCommercialBaseModels以nonCommercial许可证标志为唯一事实源需保持同步真实人物licensingFeeBlockedFor({ poi })——描绘真实人物的模型不能变现媒体类型相关的上限maxLicensingFeeCeiling(capMediaType(baseModel))——视频轴不同FEE_SCHEMA_CEILING maxLicensingFeeCeiling(video) 500且raisesOverCap判断只增是否会越界因此对混合选择重新应用祖父化费用是允许的。5.3 所有权与授权在模块内强制ownedVersions用WHERE Model.userId userId AND Model.deletedAt IS NULL同时完成所有权校验That version does not exist or is not yours.writeFee的 UPDATE 又在 WHERE 里再次嵌入所有权子查询纵深防御。批量场景中单个违规版本会让整个批次被拒并点名前 5 个违规版本NAMED_IN_ERROR 5名称截断到 60 字符——因为跨页批量选择里1 of them根本无法定位。5.4 月度定价额度pricing slots源码中assertPricingAllowed/unpricedVersionIds/recordPricingSlots/releasePricingSlotspricing-slot.ts落实了 monetization-rules.md 中的 R3 规则会员身份决定每月可设置多少个新价格free 3 / bronze 10 / silver 25 / gold ∞且有 10k 创作者分数下限。关键豁免无价格指既无费用也无永久门禁——只编辑或清除已有费用不占额度已定价版本的重新定价无论选择多大免费。清除费用后还会在事务外释放可释放的额度槽位读取的是提交后的状态。5.5 权利声明rights affirmation设置费用前若版本的meta中无当前权利声明hasCurrentRightsAffirmation必须确认拥有变现权利RIGHTS_AFFIRMATION_REQUIRED_ERROR。声明通过 SQL 的COALESCE(meta, {}::jsonb) || ${affirmation}::jsonb合并写入而非读改写避免与主应用共享meta键时覆盖并发变更费用写入与声明盖章在同一事务内。5.6 事务与清理单笔setLicensingFeedbWrite.transaction()内依次writeFee→stampRightsAffirmation→recordPricingSlots清除费用时writeFee同时清空licensingFeeType与licensingFeeSettlementCurrency与upsertModelVersion行为一致避免残留描述一个不存在的费用批量bulkSetLicensingFee走同一事务模式返回{ ok: true, updated }报告实际更新行数。5.7 附加产物费用 CSV 往返与预览模块中还包含fee-csv.ts的FeePreview类型variedFeeEntry/variedFeeSkip/FeeChange——按版本逐一目标费用的 CSV 往返编辑row回显源行号供创作者定位needsRightsAffirmation提示确认步骤需收集声明。这说明/models页面含export/、search/子路由已远超最初规格的批量表格编辑。六、成员门禁Membership Gate6.1 最终决策2026-07-09所有会员专属动作采用单一门槛完整 Creator Program 会员fee-set 与 sell-indefinitely 皆是而非仅 tier 或按特性拆分。理由仅按 tier 会让刚订阅 bronze 的新用户就能给别人的模型设置费用门禁CP 要求创作者分数。从onboarding的 CP 标志解析。源码实现在 apps/creator-studio/src/lib/server/membership.tsconst CREATOR_PROGRAM_ONBOARDING_FLAG 16; // OnboardingSteps.CreatorProgram const isCreatorProgramMember ((user?.onboarding ?? 0) CREATOR_PROGRAM_ONBOARDING_FLAG) ! 0;同时resolveMembership支持仅限版主的测试覆盖cs-test-membershipcookie 设为creator-program可模拟 CP 会员保留真实 tier仅强制叠加 CP方便不建真实账号演练 CP 门禁流程。6.2 会员解析与显示 tierrealMembership从SessionUser读取由共享会话缓存/hub 解析而非重复查询tier非free且memberInBadState为假则为会员displayTier把无订阅与free统一归一为free。cappedTier委托共享规则resolveCapTier保证 spoke 与主应用对失效、未知 tier、founder解析一致。七、收益与分析的数据管道7.1/earnings五来源一次性读取earnings.md 记录了一个关键转向D2, 2026-07-14所有五个收益来源都从default.buzzTransactions读取——它已经按创作者键控toAccountId 创作者userId经 1,791/1,791 purchase 行与 22,310/22,310 tip 行双重验证 1:1因此无需 owner-keyed rollup、无需字典、无需 CDC。源码 apps/creator-studio/src/lib/server/earnings.ts 落实了规格与 handoff 文档中的每个要点-- RECEIVING_TYPES 常量源码原样 type IN (tip,compensation,licenseFee,27,sell) OR (type purchase AND (externalTransactionId LIKE early-access-% OR externalTransactionId LIKE permanent-access-%))来源过滤条件打赏 Tiptype tip补偿 Compensationtype compensation许可费 License feetype IN (licenseFee,27)—— ⚠️ 摄入 bug目前以27落地双值过滤直到 MV 修复 回填访问销售 Access saletype purchase AND externalTransactionId LIKE early-access-%或permanent-access-%外观销售 Cosmetic saletype sell极易踩坑的点文档与源码双重强调裸typepurchase不是销售——90 天窗口内np-deposit-用户给自己充值 buzz39,402 行 / 686M buzz远多于early-access-的 29,993 行 / 54.8M buzz且这些充值的toAccountId就是买家本人naive 查询会把创作者自己的 buzz 购买算成收益。必须过滤externalTransactionId前缀并排除accountId 0系统/平台账号。源码fetchSummary用multiIf表达式把 type 映射为来源词汇GROUP BY source, currency保持按toAccountType分币种yellow/blue/green/cashSettled/cashPending/creatorProgramBank/club 等绝不转换或合并——B8/D1fetchSeries提供按来源的 buzz-only 趋势序列现金进面板不进趋势图。收益金额是整数是正确的resourceCompensations是分数应计accrualbuzzTransactions是整数结算settlement夜间任务在日界一次性 floorA2本页报告的是创作者实际收到的钱。性能保障default.buzzTransactions带PROJECTION byToAccount (SELECT * ORDER BY toAccountId, date, fromAccountId, transactionId)基础表ORDER BY以date开头toAccountId过滤会全扫——投影使其变为点查handoff 文档明确用它在证明太慢前不要新增 MV。查询结果经 apps/creator-studio/src/lib/server/cache.ts 的 Redis 读穿缓存createRedisCacheBuilder命名空间cs:TTL 随范围缩放缓存。7.2/analytics内容/创作者分析与用量分析的边界analytics.md 的核心约束是作用域缺口所有用量聚合表daily_resource_generation_counts、daily_downloads、entityMetric*等按modelVersionId, date键控没有一个按创作者userId——现有userId列是生成者/下载者。因此我的模型的作用域需要modelVersion → ownerUserId映射。演进结果对照 implementation-checklist.md 与源码内容/创作者分析B4b已实现源码 apps/creator-studio/src/lib/server/analytics.ts 的注释说明每个指标在 ClickHouse 中直接按创作者userId键控reactions、followers、images、posts、profileViews、imageViews、articleViews、modelViews、impressions按日/周滚动窗口、补洞gap-filled使图表连续totals/getAllTimeTotals还含全时段的评论总数来自 PostgresThread.commentCount因为 ClickHouse 无正确替代源Audience 页getFollowerReach$lib/server/follower-reach.ts探测新的default.user_activity_rollup每用户最后活跃时间 最后已知国家由user-activity-rollupcron 每 30 分钟刷新做粉丝活跃触达近 30/60/100 天活跃占比 粉丝国家环形图25 粉丝以下隐藏面板、5 粉丝以下国家折叠进 Other披露规则服务端redactReach强制rollup 缺失或超过 12 小时陈旧时渲染unavailable而非自信的 0%模型用量部分A1 Part 2modelVersionId → ownerUserId字典经写入时打戳owner stamping解决——ResourceCompensation每行在写入时盖上 ownerper-model 收益变为普通GROUP BY ownerId见 licensing-fee-owner-stamping.mdCDC 字典计划随之退役。7.3 日期范围与缓存date-range.ts提供 7/30/90 天预设 日/周粒度URL 驱动rangeTtlSeconds按范围缩放 Redis TTL/analytics图表用civitai/ui的 Chart.jsChart包装SSR 安全chartColor()主题桥接并实现了同步十字线插件createSyncedCrosshair()跨共享日期轴的图表共享悬停索引。八、页面规格速览Dashboard / Settings / Join / Licensing8.1 Dashboard/只读着陆页收益摘要ClickHouse 日聚合 头部统计卡 各区入口。规格要点任何登录用户可见收益与 CP 现金会员/非会员差异只影响 upsell 卡是否渲染top-earning models小组件依赖 owner rollup后端就绪后已落地。源码中 routes/(app)/dashboard//dashboard/) 含 headline 统计卡 区块链接卡 会员徽章30 天内容活动行reactions/followers/images/posts/profile viewsgetContentTotals以及 Buzz earned30d CP 现金卡ready/pending/withdrawn经civitai/buzz权威读取现金卡仅 CP 会员可见。v1 无任何写动作提现 CTA 只链接到/earnings//settings。8.2 Settings/settings读 链接出去页面自身无写PayoutTipalti 状态Set up/Not set up、Membershiptier 状态Active/Lapsed、只读的按模型类型费用建议B9 否决了每账号默认费用设置建议是固定系统值创作者自定默认改为命名模板 pricing-templates.md。结算货币不是创作者选择Justin仅 Civitai 在特殊情况下代创作者做现金结算。Payout 解锁#16设置收款提示在结算现金 ≥ $50getCreatorCash后解锁。8.3 Join/join非会员的升级面会员解锁能力价值主张卡设置许可费 · 无限期售卖访问权 会员对比卡 单一订阅 CTA链接出去不重建计费/CP 注册已是会员则重定向到/。JoinUpsell是可复用组件/models、/licensing上被门禁的控件以 tooltip/卡形式内联复用它保证文案不漂移。8.4 Licensing批量编辑器licensing.md 记录了一个开放分叉独立/licensing页还是/models的?modebulk最终由 pre-implementation-decisions.md C2 拍板/licensing/models上的?modebulk——同一路由、同一行组件、同一setLicensingFee/bulkSetLicensingFee模块绝不是第二套实现。批量操作对选中版本应用费用、清除费用、按类型应用默认经getDefaultFeeSuggestions逐版本解析确认对话框涉及钱汇总影响42 versions selected、8 already have a fee, overwrite?部分失败时 toast 行内错误并回滚乐观更新。批量场景paginate/virtualize——批量场景本身就是多版本场景。九、ClickHouse 物化视图清单与缺口creator-studio-plan.md §7.6 给出了 2026-07-01 实测审计的复用清单全部按modelVersionId, date键控需求表按资源 来源comp / licenseFee此处无 tip的收益orchestration.resourceCompensationsSummingMergeTreeaccountType、source收益镜像comp/tip 拆分default.buzz_resource_compensation每资源生成数default.daily_resource_generation_counts下载量default.daily_downloads、daily_downloads_unique、modelVersionUniqueDownloads模型/版本指标default.entityMetric*套件缺口即创作者/所有者维度早期每个收益聚合都按modelVersionId而非所有者userId键控。两条演进路径都已闭环收益侧Part 1读已按创作者键控的buzzTransactions模型侧Part 2以写入时 owner 打戳取代了字典 CDC。遗留事项见 checklist 的 区licenseFee的27摄入 bugJustin 负责修复 回填、内容分析 90 天读取扫描原始事件表的性能优化B4缓存了但偏重、access sales 永远记黄色forward-only 修复等上游问题。十、实施状态已构建 vs 待决implementation-checklist.md 显示 v1 主体已落地已构建应用脚手架与认证门禁、会员解析器CP 门禁 版主测试模拟器、变现模块单笔/批量费用 按类型默认、Axiom 错误日志handleErrorhook、Redis 读穿缓存、Chart.js 图表原语、civitai/buzz接线、内容/创作者分析读取模块、收益/现金读取模块/models分组表、费用增改清、批量编辑?modebulk、非商用基础模型守卫、完整早期/付费访问配置编辑器、Dashboard、/earnings按来源拆解 分币种忠实展示 CP 现金面板、/analytics内容区 受众区 日期范围控制、/settingsPayout 解锁、/joinCP 框架升级面。开放——需产品决策Justin #23 早期访问重构后端mergeEarlyAccessConfigUpdate已强制发布后不可启用 EA剩余是/modelsUX B13 发布/排期是否进 v1推荐 fast-follow。阻塞——后端/主应用依赖 A4 无限期售卖复用早期访问无上限需主应用表示 nullabletimeframe/indefinite标志licenseFee的27摄入 bug B4 按所有者键控的日 SummingMergeTree MV性能优化不阻塞功能。上游 bug塑造数字非本应用可修access sales 永远记黄色外观创作者打款 best-effort失败不留行导致/earnings无信号少报ClickHousebuzzTransactions镜像缺口不影响 studio因为现金读取走 buzz 服务。十一、关键代码索引附录变现写入apps/creator-studio/src/lib/server/monetization/licensing-fee.tssetLicensingFee/bulkSetLicensingFee、licensingFeeRatioSchema、非商用/POI/上限守卫、同目录pricing-slot.ts月度额度、paid-access.tsREST 边界、fee-csv.ts批量 CSV 往返。会员门禁apps/creator-studio/src/lib/server/membership.tsCP flag 16、cs-test-membership模拟 cookie。认证钩子apps/creator-studio/src/hooks.server.tscreateSpokeGuard门禁、公开路径/favicon.svg、AxiomhandleError、init注册枚举数组类型解析器、fail-open 语义。导航apps/creator-studio/src/lib/nav.tsNAV常量 navForMember 激活态工具。收益/分析读取apps/creator-studio/src/lib/server/earnings.tsdefault.buzzTransactions五来源 前缀过滤、apps/creator-studio/src/lib/server/analytics.ts内容/创作者 userId 键控指标、follower-reach.ts、clickhouse.ts客户端封装、cache.tscs:命名空间读穿缓存。主应用侧规格引用src/server/jobs/deliver-creator-compensation.ts日 02:00 UTC 打款tip|compensation|licenseFee来源、ModelVersion.licensingFee*licensingSourceVersionId衍生模型的显式父根LicensingRoot表、MAX_LICENSING_FEE100model-version.schema.ts、creator-program.service.ts:205getCreatorRequirementsMIN_CREATOR_SCORE40000。测试apps/creator-studio/src/lib/server/tests/含licensing-fee-poi-guard.test.ts覆盖 GOLD 会员与 free 用户的门禁分支。十二、为后续工作者的速查从文档到源码的验证路径想继续付费访问工作从 paid-access-current-state.md 开始——PaidAccess表endsAtNULL永久 / future活跃计时 / past过期terms的 bundle 语义买 download 送 generation共享映射器buildModelVersionTerms()在packages/civitai-buzz/src/paid-access.ts想了解还剩什么直接读 implementation-checklist.md 的图例区按 ///⏭ 分类过滤想验证某个页面行为路由源码在 apps/creator-studio/src/routes/(app)//)服务端逻辑在page.server.ts读写模块在src/lib/server/组件在src/lib/components/——与规格文档的数据/动作/门禁三节一一对应想了解为何这样设计决策理由集中在 pre-implementation-decisions.mdA/B/C 决策日志与 creator-studio-plan.md §9已决 开放问题。一言以蔽之Creator Studio 是账本外包buzz 服务、编排进程内模块、分析走 ClickHouse 日聚合这一拓扑决策在创作者侧落地的完整样本——规格文档给出为什么与做什么apps/creator-studio/源码给出怎么做与防御细节两者互为校验是理解 Civitai monorepo spoke 应用标准打法的理想入口。【免费下载链接】civitaiA repository of models, textual inversions, and more项目地址: https://gitcode.com/GitHub_Trending/ci/civitai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考