MCPcopy Create free account

hub / github.com/MemeCalculate/moyin-creator / functions

Functions1,435 in github.com/MemeCalculate/moyin-creator

↓ 1 callersFunctionacquire
()
src/lib/utils/concurrency.ts:40
↓ 1 callersMethodaddCharacter
* Add a new character
src/packages/ai-core/services/character-bible.ts:66
↓ 1 callersFunctionaddTag
(tagId: EmotionTag)
src/components/panels/director/emotion-tags.tsx:42
↓ 1 callersFunctionallowedShotFromSize
(shot?: ShotSizeType | null)
src/components/panels/sclass/sclass-scenes.tsx:1923
↓ 1 callersFunctionallowedShotFromSize
(shot?: ShotSizeType | null)
src/components/panels/director/split-scenes.tsx:2189
↓ 1 callersFunctionallowedShotFromSize
(shot?: ShotSizeType | null)
src/components/panels/director/use-image-generation.ts:211
↓ 1 callersFunctionanalyzeCharacterStages
( background: ProjectBackground, characters: ScriptCharacter[], totalEpisodes: number, promptLangu
src/lib/script/character-stage-analyzer.ts:54
↓ 1 callersFunctionanalyzeScriptStructureWithAI
(text: string)
src/lib/script/script-normalizer.ts:207
↓ 1 callersFunctionapiCorsProxyPlugin
* Vite 插件:API CORS 代理 * * 在开发服务器上注册 /__api_proxy 中间件, * 将浏览器端的外部 API 请求由服务端转发,绕过 CORS 限制。 * * 用法(前端): * fetch('/__api_proxy?url=' + enco
vite.config.ts:15
↓ 1 callersFunctionapiCorsProxyPlugin
* Vite 插件:API CORS 代理 * 在开发服务器上注册 /__api_proxy 中间件, * 将浏览器端的外部 API 请求由服务端转发,绕过 CORS 限制。
electron.vite.config.ts:11
↓ 1 callersFunctionappendVeoMultipartReferences
( form: FormData, model: string, endpointTypes: string[] | undefined, uploadFiles?: FreedomVideoUp
src/lib/freedom/freedom-api.ts:1041
↓ 1 callersFunctionapplyAIAnalysis
(text: string, analysis: ScriptStructureAnalysis)
src/lib/script/script-normalizer.ts:337
↓ 1 callersFunctionapplyCalibrationToScene
* 将校准结果写回 SplitScene(对齐 full-script-service.ts:1265-1305 的映射) * 保留已生成的图片/视频 URL 不变
src/lib/script/recalibrate-scenes.ts:95
↓ 1 callersFunctionbatchGenerateShotImages
( shots: Shot[], config: ShotGenerationConfig, onShotProgress: (shotId: string, progress: number) =>
src/lib/script/shot-generator.ts:347
↓ 1 callersFunctionbuildAnchorPhrase
(styleTokens?: string[])
src/components/panels/sclass/sclass-scenes.tsx:1982
↓ 1 callersFunctionbuildAnchorPhrase
(styleTokens?: string[])
src/components/panels/director/split-scenes.tsx:2248
↓ 1 callersFunctionbuildAnchorPhrase
(_styleTokens?: string[])
src/components/panels/director/use-image-generation.ts:269
↓ 1 callersFunctionbuildCharacterContext
* 构建角色上下文信息
src/lib/character/character-prompt-service.ts:118
↓ 1 callersFunctionbuildCharacterIdentityBlock
(contexts: SceneCharacterContext[])
src/components/panels/director/split-scenes.tsx:254
↓ 1 callersFunctionbuildCharacterIdentityNotes
( character: Character, selectedVariation?: CharacterVariation, )
src/components/panels/director/split-scenes.tsx:210
↓ 1 callersFunctionbuildCharacterSheetPrompt
* 构建角色设定图提示词 * * 优先级: * 1. 根据 promptLanguage 选择主提示词:zh→visualPromptZh, en→visualPromptEn, zh+en→两者合并 * 2. 有参考图 + 有锚点:简化描述 + 最强锚点 * 3. 无参考图
src/components/panels/characters/generation-panel.tsx:1244
↓ 1 callersFunctionbuildCharacterSheetPrompt
( description: string, name: string, selectedElements: SheetElementId[], styleId?: string )
src/components/panels/characters/character-generator.tsx:397
↓ 1 callersFunctionbuildContactSheetDataFromViewpoints
( viewpoints: Array<{ id: string; name: string; nameEn?: string; shotIds: string[];
src/lib/script/scene-viewpoint-generator.ts:1181
↓ 1 callersFunctionbuildDialoguePromptPart
* 将对白片段转为唇形同步指令文本
src/components/panels/sclass/sclass-prompt-builder.ts:429
↓ 1 callersFunctionbuildEndpoint
(root: string, path: string)
src/components/panels/SettingsPanel.tsx:293
↓ 1 callersFunctionbuildEndpoint
(baseUrl: string, path: string)
src/lib/ai/style-extractor.ts:63
↓ 1 callersFunctionbuildEndpoint
(root: string, path: string)
src/lib/storyboard/scene-prompt-generator.ts:302
↓ 1 callersFunctionbuildExtendEditPrompt
* 延长/编辑模式的 prompt 构建器 * * 与常规多镜头叙事不同: * - 不建格子图 * - source video 自动占据 @视频1 位 * - prompt 使用延长/编辑专用模板
src/components/panels/sclass/sclass-prompt-builder.ts:767
↓ 1 callersFunctionbuildForArch
(arch)
scripts/build-desktop.mjs:164
↓ 1 callersFunctionbuildGlobalContext
* 从 script-store 构建 GlobalContext
src/lib/script/recalibrate-scenes.ts:51
↓ 1 callersFunctionbuildImageWithRoles
( firstFrameUrl: string | undefined, lastFrameUrl: string | undefined )
src/components/panels/director/use-video-generation.ts:131
↓ 1 callersFunctionbuildMidjourneyPrompt
(params: FreedomImageParams)
src/lib/freedom/freedom-api.ts:606
↓ 1 callersFunctionbuildPromptFromAnchors
* 从6层身份锚点构建提示词 * * @param anchors - 6层身份锚点 * @param hasReferenceImages - 是否有参考图 * @returns 构建的提示词字符串 * * 参考图优先级逻辑: * - 有参考图时:只使用最强锚点(u
src/components/panels/characters/generation-panel.tsx:1150
↓ 1 callersFunctionbuildSceneCharacterCastLine
(contexts: SceneCharacterContext[])
src/components/panels/director/split-scenes.tsx:274
↓ 1 callersFunctionbuildSceneTree
(parentScenes: Scene[], depth: number = 0)
src/components/panels/scenes/scene-gallery.tsx:204
↓ 1 callersFunctionbuildShotSegment
* 为单个镜头构建描述片段(完整版 — 涵盖分镜卡片上所有可用字段)
src/components/panels/sclass/sclass-prompt-builder.ts:444
↓ 1 callersFunctionbuildVeoUnifiedVideoBody
( params: FreedomVideoParams, model: string, endpointTypes: string[] | undefined, )
src/lib/freedom/freedom-api.ts:1071
↓ 1 callersFunctionbuildVeoUploadFiles
( capability: VeoUploadCapability, singleUpload: LocalUploadAsset | null, firstFrameUpload: LocalUplo
src/components/panels/freedom/VideoStudio.tsx:110
↓ 1 callersFunctioncacheDiscoveredLimits
( modelName: string, limits: Partial<DiscoveredModelLimits>, )
src/lib/ai/model-registry.ts:235
↓ 1 callersFunctioncalculateGridLayout
(sceneCount: number)
src/components/panels/sclass/sclass-scenes.tsx:2118
↓ 1 callersFunctioncalculateGridLayout
* 计算网格布局(N×N 策略)
src/components/panels/sclass/sclass-prompt-builder.ts:95
↓ 1 callersFunctioncalculateGridLayout
(sceneCount: number)
src/components/panels/director/split-scenes.tsx:2426
↓ 1 callersFunctioncalculateLandscapeGrid
* Calculate optimal grid layout for landscape (16:9) aspect ratio * Prioritizes cols >= rows for landscape layout
src/lib/storyboard/grid-calculator.ts:65
↓ 1 callersFunctioncalculatePortraitGrid
* Calculate optimal grid layout for portrait (9:16) aspect ratio * Prioritizes rows >= cols for portrait layout
src/lib/storyboard/grid-calculator.ts:133
↓ 1 callersFunctioncalibrateEpisodeScenes
( episodeIndex: number, currentScenes: ScriptScene[], background: ProjectBackground, episodeScript
src/lib/script/scene-calibrator.ts:523
↓ 1 callersFunctioncalibrateGroup
( group: ShotGroup, scenes: SplitScene[], characters: Character[], _sceneLibrary: Scene[], )
src/components/panels/sclass/sclass-calibrator.ts:77
↓ 1 callersFunctioncalibrateSingleShot
( shotId: string, projectId: string, options: ShotCalibrationOptions, onProgress?: (message: strin
src/lib/script/full-script-service.ts:1592
↓ 1 callersFunctioncallAIForCharacterDesign
* 调用 AI 生成角色设计
src/lib/character/character-prompt-service.ts:198
↓ 1 callersFunctioncallAIForShotCalibration
* 调用 AI API 校准分镜 - 复用 callChatAPI
src/lib/script/full-script-service.ts:1762
↓ 1 callersFunctioncallKlingVideoApi
( apiKey: string, prompt: string, baseUrl: string, model: string, aspectRatio: string, image
src/components/panels/director/use-video-generation.ts:1009
↓ 1 callersFunctioncallOpenAIOfficialVideoApi
( apiKey: string, prompt: string, baseUrl: string, model: string, aspectRatio: string, durat
src/components/panels/director/use-video-generation.ts:1131
↓ 1 callersFunctioncallReplicateVideoApi
( apiKey: string, prompt: string, baseUrl: string, model: string, aspectRatio: string, image
src/components/panels/director/use-video-generation.ts:1210
↓ 1 callersFunctioncallUnifiedVideoApi
( apiKey: string, prompt: string, baseUrl: string, model: string, aspectRatio: string, image
src/components/panels/director/use-video-generation.ts:534
↓ 1 callersFunctioncallVolcVideoApi
( apiKey: string, prompt: string, baseUrl: string, model: string, aspectRatio: string, image
src/components/panels/director/use-video-generation.ts:689
↓ 1 callersFunctioncallWanVideoApi
( apiKey: string, prompt: string, baseUrl: string, model: string, imageWithRoles: Array<{ url:
src/components/panels/director/use-video-generation.ts:884
↓ 1 callersFunctioncameraLabels
(id: string)
src/components/panels/script/property-panel.tsx:508
↓ 1 callersFunctioncancel
()
src/components/panels/overview/index.tsx:115
↓ 1 callersFunctioncancelEdit
()
src/components/panels/director/editable-text-field.tsx:56
↓ 1 callersFunctioncancelEditing
()
src/components/ui/editable-timecode.tsx:46
↓ 1 callersFunctioncharacterOverlap
计算两个镜头的角色重叠度 (0~1)
src/components/panels/sclass/auto-grouping.ts:46
↓ 1 callersFunctionchineseToNumber
* 中文数字转阿拉伯数字
src/lib/script/episode-parser.ts:680
↓ 1 callersFunctionclassifyModelByName
(modelName: string)
src/lib/api-key-manager.ts:75
↓ 1 callersFunctioncleanLocationString
* 清理场景地点字符串,移除人物信息等无关内容
src/lib/script/scene-viewpoint-generator.ts:149
↓ 1 callersFunctioncleanLocationString
* 清理场景地点字符串,移除人物信息等无关内容 * 如 "乡村公路/大巴车 人物:沈星晴、村民" -> "乡村公路/大巴车"
src/lib/script/episode-parser.ts:34
↓ 1 callersMethodclearVideo
(mediaId: string)
src/lib/video-cache.ts:227
↓ 1 callersFunctioncloneScriptCharactersForRecovery
* 角色恢复兜底:优先保留带名字的角色,并去重
src/lib/script/character-calibrator.ts:801
↓ 1 callersMethodcloseSample
(sample: VideoSample | null)
src/lib/video-cache.ts:34
↓ 1 callersFunctioncollectAllRefs
( group: ShotGroup, scenes: SplitScene[], characters: Character[], sceneLibrary: Scene[], gridI
src/components/panels/sclass/sclass-prompt-builder.ts:311
↓ 1 callersFunctioncollectCharacterStats
( characterNames: string[], episodeScripts: EpisodeRawScript[] )
src/lib/script/character-calibrator.ts:170
↓ 1 callersFunctioncollectSceneStats
( episodeScripts: EpisodeRawScript[] )
src/lib/script/scene-calibrator.ts:108
↓ 1 callersFunctioncompareVersions
(left: string, right: string)
electron/main.ts:73
↓ 1 callersFunctioncompressReferenceImage
* 压缩 base64 参考图到合理体积 * 中转站(new_api/one_api)在做 OpenAI → Gemini 格式转换时, * 超大 base64 会导致 JSON 解析失败或 body size 超限,报 "contents is required"。 * 将参考图缩小到
src/lib/ai/image-generator.ts:239
↓ 1 callersFunctionconvertToScriptData
( background: ProjectBackground, episodeScripts: EpisodeRawScript[] )
src/lib/script/episode-parser.ts:999
↓ 1 callersFunctionconvertToScriptScenes
( calibrated: CalibratedScene[], originalScenes?: ScriptScene[], promptLanguage: PromptLanguage = 'zh
src/lib/script/scene-calibrator.ts:646
↓ 1 callersFunctioncopyFile
(src, dest)
scripts/prepare-demo-data.cjs:44
↓ 1 callersFunctioncountVideoUploadFiles
(grouped: ReturnType<typeof groupVideoUploadFiles>)
src/lib/freedom/freedom-api.ts:950
↓ 1 callersFunctioncreateBatches
* 双重约束贪心分组 * * 约束 1(Input): 每批 systemPromptTokens + sum(itemTokens) ≤ inputBudget * 约束 2(Output): sum(itemOutputTokens) ≤ outputBudget * * 贪
src/lib/ai/batch-processor.ts:246
↓ 1 callersFunctiondataUrlToBlob
(dataUrl: string, mimeHint?: string)
src/lib/freedom/freedom-api.ts:1023
↓ 1 callersFunctiondedup
(arr: string[])
src/components/panels/sclass/sclass-scenes.tsx:2052
↓ 1 callersFunctiondeepReplace
(obj, search, replace)
scripts/prepare-demo-data.cjs:52
↓ 1 callersFunctiondeleteOldFiles
(dirPath: string, cutoffTime: number)
electron/main.ts:360
↓ 1 callersFunctiondetectAtmosphere
* 检测场景氛围
src/lib/script/episode-parser.ts:1092
↓ 1 callersFunctiondetectFreedomImageRoute
(model: string, endpointTypes?: string[])
src/lib/freedom/freedom-api.ts:189
↓ 1 callersFunctiondetectFreedomVideoRoute
(model: string, endpointTypes?: string[])
src/lib/freedom/freedom-api.ts:295
↓ 1 callersFunctiondetectInputType
* Detect the type of creative input
src/lib/script/script-parser.ts:1010
↓ 1 callersFunctiondetectStoryType
()
src/lib/script/ai-character-finder.ts:200
↓ 1 callersFunctiondetectVideoApiFormat
* 根据模型的 supported_endpoint_types 元数据检测应使用的视频 API 格式 * 优先使用 MemeFast /api/pricing_new 同步的元数据,fallback 到模型名推断
src/components/panels/director/use-video-generation.ts:235
↓ 1 callersFunctiondiscoverProjectsFromDisk
* 扫描磁盘上 _p/ 目录下的实际项目文件夹, * 将未在 projects 列表中注册的项目自动恢复。 * * 解决以下场景: * - 更改存储路径并迁移数据后,前端 store 未 reload,或 moyin-project-store.json * 中的 proj
src/stores/project-store.ts:163
↓ 1 callersFunctiondismiss
()
src/hooks/use-toast.ts:153
↓ 1 callersFunctiondownloadImage
(url: string, filePath: string, maxRedirects: number = 5)
electron/main.ts:428
↓ 1 callersFunctionenrichCharactersWithVisualPrompts
* 为主角和重要配角生成专业的视觉提示词 * 调用世界级角色设计大师 AI
src/lib/script/character-calibrator.ts:893
↓ 1 callersFunctionenrichScenesWithVisualPrompts
* 为主要场景生成专业的视觉提示词
src/lib/script/scene-calibrator.ts:548
↓ 1 callersFunctionensureMinImageSize
* 视频生成 API 通常要求输入图片满足最小尺寸(如 Seedance 要求宽度 ≥ 300px)。 * 当九宫格切割后的图片尺寸过小时,自动放大到满足最低要求后重新上传。 * @param imageUrl HTTP URL 图片地址 * @param minDimension
src/components/panels/director/use-video-generation.ts:332
↓ 1 callersMethodensureSink
(mediaId: string, file: File)
src/lib/video-cache.ts:177
↓ 1 callersFunctionensureTags
(val: any)
src/lib/script/ai-scene-finder.ts:253
↓ 1 callersFunctionestimateGroupRefs
( group: ShotGroup, scenes: SplitScene[], )
src/components/panels/sclass/sclass-prompt-builder.ts:869
↓ 1 callersFunctionestimateRemainingTime
(pendingScenes: number)
src/components/panels/director/generation-progress.tsx:259
↓ 1 callersFunctionexecuteSceneInternal
* Internal scene execution (used by both EXECUTE_SCENE and EXECUTE_SCREENPLAY)
src/workers/ai-worker.ts:1053
↓ 1 callersMethodexecuteScreenplayImages
* Execute screenplay images only (Step 1) * Generates images for all scenes without videos
src/lib/ai/worker-bridge.ts:190
↓ 1 callersMethodexecuteScreenplayVideos
* Execute screenplay videos only (Step 2) * Generates videos from existing scene images
src/lib/ai/worker-bridge.ts:201
← previousnext →401–500 of 1,435, ranked by callers