{"id":28510842,"url":"https://github.com/fatsnk/forksilly.doc","last_synced_at":"2026-05-10T17:30:11.922Z","repository":{"id":297196975,"uuid":"995959405","full_name":"fatsnk/forksilly.doc","owner":"fatsnk","description":"Documents repo of ForkSilly. ForkSilly：兼容sillytavern（酒馆）角色卡、世界书、正则、预设、聊天记录的安卓移动端应用；同时也可作为stable diffusion客户端使用。","archived":false,"fork":false,"pushed_at":"2026-03-30T08:52:11.000Z","size":68874,"stargazers_count":83,"open_issues_count":0,"forks_count":11,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-30T10:25:43.151Z","etag":null,"topics":["a1111","ai","airp","android","api-client","chat","llm","mcp-client","mobile","op-sqlite","openai","prompt","roleplay","sillytavern","sqlite-vec","stable-diffusion","text-adventure"],"latest_commit_sha":null,"homepage":"https://forksilly.qzz.io","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fatsnk.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-04T08:52:48.000Z","updated_at":"2026-03-30T08:27:34.000Z","dependencies_parsed_at":"2025-06-04T16:34:55.579Z","dependency_job_id":"a644141b-f9bb-4d0a-8d3e-66bd0cda702c","html_url":"https://github.com/fatsnk/forksilly.doc","commit_stats":null,"previous_names":["fatsnk/forksilly.doc"],"tags_count":89,"template":false,"template_full_name":null,"purl":"pkg:github/fatsnk/forksilly.doc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fatsnk%2Fforksilly.doc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fatsnk%2Fforksilly.doc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fatsnk%2Fforksilly.doc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fatsnk%2Fforksilly.doc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fatsnk","download_url":"https://codeload.github.com/fatsnk/forksilly.doc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fatsnk%2Fforksilly.doc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290807,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a1111","ai","airp","android","api-client","chat","llm","mcp-client","mobile","op-sqlite","openai","prompt","roleplay","sillytavern","sqlite-vec","stable-diffusion","text-adventure"],"created_at":"2025-06-08T23:06:19.417Z","updated_at":"2026-05-10T17:30:11.887Z","avatar_url":"https://github.com/fatsnk.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Homepage](./images/giveup.jpg)](https://fatsnk.github.io/fatsnk/)\n\u003cbr\u003e\u003cimg src=\"./images/fork.jpg\" width=\"160\" alt=\"fork\"/\u003e\n\n通知公告\n* [1.28版](https://github.com/fatsnk/forksilly.doc/releases)的readme看这里：\n[![简体中文](https://img.shields.io/badge/文档-简体中文-blue.svg)](./README.zh-CN.md)\n\u003cbr\u003e通过[API模板引擎](https://github.com/fatsnk/APItemplateV2#apitemplatev2)兼容了大部分api格式，并添加mcp。如果需要连接Gemini、Claude等原生格式，请点击[![API模板](https://img.shields.io/badge/文档-API模板-blue.svg)](https://github.com/fatsnk/APItemplateV2?tab=readme-ov-file)按钮前往模板仓库下载示例模板导入api设置。\n\n* （20251222）提醒：pollinations.ai接口已经更新。如果你使用pollinations进行文生图，请将app更新到[1.26.86](https://github.com/fatsnk/forksilly.doc/releases/)以上版本，文生图url修改为`https://gen.pollinations.ai/image`，并前往新的[管理页面](https://enter.pollinations.ai/)`https://enter.pollinations.ai/`创建新的api key。\n  * 每小时重置免费额度，请注意检查页面上的“Pricing”信息。\n\n* （20260424）已更新 DeepSeek V4 模板。前往模板仓库下载并导入api设置中使用：https://github.com/fatsnk/APItemplateV2/tree/main/templates\n\n*应用不会自动截断上下文。如有相关需求，请查看[使用技巧](#使用技巧)中”限制上下文“部分。*\n\n`应用不渲染无法识别的xml标签中的内容。如有需要，请在主题设置中的标签规则选项卡添加标签名,`详情参考[FAQ](https://github.com/fatsnk/forksilly.doc/discussions/4)的Q11。\n\n\u003cdetails\u003e\n  \u003csummary\u003e最近更新\u003c/summary\u003e\n\nversion test1.28\n\n*[有问题可前往discussion交流](https://github.com/fatsnk/forksilly.doc/discussions)*\n\n* 2026.04.01\n  * test1.28：添加实验性宏引擎。\n  \n* changelog: [其它更新](changelog.md)\n   \n\u003c/details\u003e\n\n---\n# forksilly.doc\n这个仓库是ForkSilly的文档仓库，forksilly的源码和apk安装包会在仓库的releases发布。\n（仓库文件不含完整源码，完整源码请在[📦releases](https://github.com/fatsnk/forksilly.doc/releases/)获取），遇到问题请先阅读仓库的帮助文档，并检查[常见问题解答](https://github.com/fatsnk/forksilly.doc/discussions/4#discussion-9176039) 是否已有相关解答。*https://github.com/fatsnk/forksilly.doc/discussions/1#discussioncomment-14816259*\n\n[🎬 新手快速上手指南](moenew.md#-%E6%96%B0%E6%89%8B%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B%E6%8C%87%E5%8D%97)：新手入门，包含简单的使用方法和一些基础知识。\u003cbr /\u003e\n**示例角色卡**：制作了示例角色卡，供萌新参考。请查看 *https://github.com/fatsnk/LifeReloaded*\n\n  * 宏与变量的示例卡：[![宏](https://custom-icon-badges.demolab.com/badge/{/}-天启坦克-ffdab9?logo=card)](https://github.com/fatsnk/LifeReloaded/tree/ccv2/cards/tank) 展示如何使用宏。\n\n  * 单轮生图助手：[![单轮](https://custom-icon-badges.demolab.com/badge/1-单轮生图-ffdab9?logo=card)](https://github.com/fatsnk/LifeReloaded/blob/ccv2/cards/imageAssistant) 这是一张工具卡，用于某些生图模型，内置了正则只发送最新一条消息，以便在对话中直接生成图片，无需每次生成都重新开始新聊天。\n\n\n\n---\n## 概要\nForkSilly: *一个react native/expo项目，主要用于Android。适用于对sillytavern有一定使用经验的用户*\u003c/br\u003e ~~*小孩子不懂事，写着玩的🤕* *中文名*：*“傻叉”*（~~ \u003cem\u003e由于手机端sillytavern用起来较难受，所以让AI写了这个项目。\u003c/em\u003e\n\u003cp\u003e\u003c/p\u003e\n\n\u003cimg src=\"./images/richtext01.gif\" width=\"200\"/\u003e\u003cimg src=\"./images/chatscreen1.25.38.jpg\" width=\"200\"/\u003e\u003cimg src=\"./images/bubbles.gif\" width=\"200\"/\u003e\n\n#### 其它预览： [应用UI预览](./images/readme.md) | [常用主题预览](https://github.com/fatsnk/forksilly.doc/discussions/9)\n*预览图可能修改过主题设置且为历史版本截图，不代表app安装后的默认效果*\n\n## ForkSilly介绍\n* 该项目为自用分享，可能无法受理功能申请，使用上有问题请先参考本项目中的文档。\n  * *因为99.9%的代码由AI生成，你提需求我也做不出来😭（*\n* 适合纯文字卡、插图卡（使用图床或[本地上传](#使用技巧)），以及Stable Diffusion文生图。\n  * 兼容酒馆原生变量和实验性宏引擎部分语法，不兼容前端/MVU变量/ejs\n\n+ 兼容sillytavern V2角色卡、世界书、正则、预设、聊天记录，可以随时导入导出。（[兼容性指引](#兼容性指引)）\n+ 可更换的聊天字体和聊天界面样式。示例主题配置请看[这里](https://github.com/fatsnk/forksilly.doc/tree/main/images/help/themes)。\n+ 聊天中快速开关预设条目、切换模型\n+ 可使用任意格式的API，通过[API模板引擎](https://github.com/fatsnk/APItemplateV2?tab=readme-ov-file)兼容。\n+ 内置工具，且可以添加远程MCP服务。\n+ 内置存储和备份管理功能以及方便的配置切换功能。\n+ 可在聊天中使用文生图：\n  + 接入免费文生图服务pollinations.ai\n  + 支持Stable Diffusion文生图功能(sd需开启监听：添加启动参数` --api --listen --cors-allow-origins '*'`)，请点击🔧图标进入更多选项-文生图，并添加API、预设并设置默认和参数，然后在触发标签中开启聊天文生图功能。预设中的main在请求时会被替换成捕获的提示词，其它条目则会根据你选择的位置拼接。[文生图简单教程](text2img.md)\n    * 在llm的预设中添加一个文生图条目，让AI输出你自定义的标签包裹的文生图提示词即可，例如`\u003cgen_image\u003eprompt tags\u003c/gen_image\u003e`（可在预设中添加相应条目，或使用世界书）。如果需要重新生成，可点击🎨手动生成。\n    * 可在存储管理的gallery目录中找到聊天中生成的图片\n+ （可选）接入硅基流动和Gemini的嵌入模型。（支持记忆生成、自动保存到本地向量数据库：[记忆和知识库教程](Embedding.md)）。\n\n- 不支持tts(文字转语音)\n- novelAI和comfyui请查看[关联项目](#关联项目)\n\n## License\n\nForkSilly包含第三方依赖，查看它们的许可详情：[LICENSE-THIRD-PARTY](./LICENSE-THIRD-PARTY) \n\nThis project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).  \nSee the [LICENSE](./LICENSE) file for details.\n\n## 注意事项\n使用上有疑问请先阅读相关文档和以下FAQ：\n### FAQ：https://github.com/fatsnk/forksilly.doc/discussions/4#discussion-9176039\n\n\n## 下载\n\u003cp\u003e选择文件名不含src的压缩包，解压后安装APK文件。适用所有cpu架构\u003ci\u003e（因此安装包体积略大）\u003c/i\u003e\u003c/p\u003e\n\u003cp align=\"left\"\u003e\n  \u003ca href=\"https://github.com/fatsnk/forksilly.doc/releases/latest\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/📥-Download-blue?style=flat\" alt=\"下载按钮\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n*体验版：[![download](https://img.shields.io/badge/beta-v1.28-ff9e7d?style=plastic\u0026logo=github)](https://github.com/fatsnk/forksilly.doc/releases)*\n\n## 打包\n\n源码以zip格式上传于release。\n项目结构：[项目结构文档](ProjectStructure.md)\n\n如果你想自己打包APK，可下载源码到本地，使用以下命令调试和打包（需先配置Android开发环境和Java开发环境）：\n\u003c!--npx expo prebuild --platform android --clean// 由于包含安卓原生代码，不需执行此命令--\u003e\n```\n（安装依赖）npm install\n（在模拟器调试）npx expo run:android\ncd android（切换到Android目录，修改gradle.properties文件底部的MYAPP_RELEASE_STORE_FILE等参数值为你自己的release证书和密钥）\ngradlew assembleRelease（打包成apk）\n```\n如果你有Mac，也可以打包成ipa。\n\n## 兼容性指引\n\n* 角色卡、预设：forksilly ⇌ sillytavern 可直接在相应的界面导出，并直接在sillytavern中使用，反之亦然；所有内容均与st中的对应。（角色备注会被忽略；“提示词覆盖”设置中的主要提示词`main`如果不为空，会替换掉预设中main条目的内容，jailbreak/post-history instructions的内容则始终使用预设中的内容，角色卡中的对应内容将被忽略）\n* 全局世界书、全局正则：forksilly ⇌ sillytavern 同上，所有参数含义均与st相似。部分sillytavern的高级参数可能不适用，但不影响互相导入。\n* 角色世界书：随角色卡一起导入，导出角色时也会包含在角色卡中。可单独导出角色世界书，并可直接导入到sillytavern。不能直接在forksilly应用中将额外的世界书文件导入到角色信息中，只能编辑、添加条目。如需将单独的世界书附加到角色卡，请使用[OcO萌/AI角色卡编辑器：CharacterEditor](https://ce.ooc.moe/zh-CN)，或直接在sillytavern中操作。\n* 角色正则：支持编辑、新增，不支持直接将正则脚本文件导入到角色卡；请使用复制粘贴的方式，或使用第三方开源角色卡编辑器。\n* 聊天记录：如果要导出记录给st使用，请前往存储管理-chats目录-角色名目录，长按选择需要导出的记录，点击左下方的“转换”按钮，会生成一个包含‘_converted’字样的新聊天记录，该记录导出后可直接导入到st。st的记录也需在存储管理中转换后才可在forksilly中使用，否则消息顺序是反的。在线转换工具：[聊天记录转换器](https://fatsnk.github.io/legendary-pancake/jsonl-converter.html)\n- 关于角色备注、作者注释、世界书位置中的作者注释前/后：这些功能均被世界书的功能完全覆盖，因此本应用不再支持这些设置参数。\n\n## 使用技巧\n\n* 测试url: `https://oai-liard.vercel.app/v1` ，用于测试连通性、模型获取、确认上下文，也可以用于伪造assistant回复；\n  * 使用方法:添加一个新的api配置，填写该url，apikey任意填写，关闭流式传输，即可使用（可能需要科学上网）。\n\n* 消息气泡可以独立设置透明度而不影响消息文字：直接在用户气泡色和AI气泡色输入框中填写包含alpha通道值的16进制值即可，例如#3A3A3ABB，末尾的BB即表示不透明度，值越大透明度越低，FF为完全不透明；也可以设置成00全透明，模拟出类似文档的主题效果。\n\n* 默认渲染器支持部分HTML内联样式和大部分markdown语法，例如：\n```\n文字颜色：\n\u003cfont color='red'\u003e①这是红色字。\u003c/font\u003e\n\u003cspan style=\"color: black;\"\u003e这是黑的文字\u003c/span\u003e\n按钮（仅用于复制按钮文本）：\n\u003cbutton style=\"background: #3b82f6; color: white;\"\u003e蓝色按钮\u003c/button\u003e\n\u003cbutton disabled\"\u003e被禁用的按钮\u003c/button\u003e\n插入web图片：\n![](https://files.catbox.moe/y6uo86.jpg)\n\u003cimg src=\"https://files.catbox.moe/y6uo86.jpg\" alt=\"公司Logo\"\u003e\n使用在存储管理中上传的本地图片：\n\u003cimg src=\"gallery/我的角色/微笑.png\" alt=\"微笑表情\"\u003e\n...\n```\n\n* 在🔧中的存储管理中可管理你的文件，并可在`Gallery/角色名`目录下导入表情包和角色图片，以支持让AI以HTML格式插入聊天中，使用相对路径，例如`\u003cimg src=\"gallery/我的角色/微笑.png\" alt=\"微笑表情\"\u003e`\n\n* 支持roll和random占位符，例如\n  - {{roll:10000}}\n  - {{roll:1d100}}\n\n* 支持常见占位符，包括{{user}}、{{char}}、{{lastcharmessage}}、{{lastusermessage}}、{{lastmessage}}，因此大多数预设无需修改可直接使用。 其它占位符：\n\n  *   `{{user}}` (用户角色名), `{{char}}` (AI角色名) 及其别名 `\u003cuser\u003e`, `\u003cchar\u003e`。\n  *   `{{random::A::B...}}` (或 `{{random:A,B...}}`) 用于从列表中随机选取一项，若无参数则返回0-1随机数。\n  *   `{{roll::EXPRESSION}}` (或 `{{roll:EXPRESSION}}`) 用于掷骰计算，支持如 `1d6`、`2d10+3` 等表达式。\n  *   `{{lastmessage}}`: 当前聊天中的最后一条消息的文本。\n  *   `{{lastusermessage}}`: 聊天记录中最后一条用户消息的文本。\n  *   `{{lastcharmessage}}`: 聊天记录中最后一条助手（AI角色）消息的文本。\n\n* 想使用不受信任的https连接或frp内网穿透？请参考：[服务器自签证书教程](服务器自签证书教程.md)、[文生图简单教程](text2img.md)\n\n角色管理界面点击排序后默认按修改时间排序，编辑角色后，可下拉刷新以便让其显示到最前方；将角色添加到收藏，可以让ta优先显示\n\n* 限制上下文：\n  1. 隐藏楼层：支持使用斜杠命令`/hide 楼层`，例如`/hide 0-10`，则0到10楼就不会发送给AI\n  2. 使用正则，具体请查看[FAQ](https://github.com/fatsnk/forksilly.doc/discussions/4#discussion-9176039)的Q14。\n* 性能选项：如果楼层很高，可在主题设置-符号与标签界面的`最大处理消息数量`输入框中填写一个较小的值，限制仅处理最新的几条消息，避免正则/符号/标签处理所有消息，可提升载入速度。\n\n### 推荐工具\n\n角色卡创建和编辑：[妮卡角色工作室Pro](https://mocards.netlify.app/)、[OcO萌/AI角色卡编辑器：CharacterEditor](https://ce.ooc.moe/zh-CN)\n\n文生图webui推荐（[stable-diffusion-webui-forge](https://github.com/lllyasviel/stable-diffusion-webui-forge)）：ControlNet的开发者lllyasviel制作的优化版webui，对性能较差的显卡有很大提升\n  * 秋葉aaaki的整合包（[B站链接](https://www.bilibili.com/video/BV1rc6nYNEYo)）：支持SD3.5、FLUX，解压即用，无须安装git、Python、cuda等任何内容，只需将模型放入Stable Diffusion目录，在启动器高级设置中启用远程连接，即可使用！非常适合不想进行复杂设置、折腾ComfyUI工作流的玩家\n\n如果你想使用Zimage，请使用这个版本:[NEO](https://github.com/Haoming02/sd-webui-forge-classic/tree/neo?tab=readme-ov-file#new-features)。该版本没有一键安装包，需自行安装。\n\n文生图模型推荐：[WAI-NSFW-illustrious-SDXL](https://civitai.com/models/827184?modelVersionId=1761560)\n\nNovelAI转stable diffusion（webUI A1111）: [novel api go](https://github.com/fatsnk/novel-api-go)，可部署在本地或云平台的中转项目，可将novelAI文生图接口转换成openai或A1111等更通用的格式，方便接入各种客户端。\n\n[octopus](https://github.com/bestruirui/octopus)：One Hub All LLMs.\n\n## 关联项目\n\n[comfyui2A1111](https://github.com/fatsnk/Comfyui2A1111): 将comfyui和novelAI的接口转换为更通用的api（openai兼容和A1111），配置后便可接入forksilly或其它平台使用。\n\n[novel api go](https://github.com/fatsnk/novel-api-go)：如果你只用novelAI，那么部署这个项目到云服务更方便。\n\n## 声明\n以下声明同时适用于仓库文档、forksilly源码、forksilly APP本体。\n\n*forksilly项目基于[AGPL-3.0](./LICENSE)授权，目前不提供闭源许可；任何基于此项目的修改、衍生作品或包含该项目代码的软件，必须同样以 AGPL-3.0 协议开源。*\n*如果您希望在其它项目中使用本代码：必须遵守 AGPL-3.0 协议，公开您的完整源代码；不可将本项目代码整合到闭源软件中。*\n\n### 免责声明\n\n```\nforksilly项目是一个开源的通用大语言模型（LLM）前端工具，仅提供技术框架和接口集成功能。\n1. 内容责任\n项目不提供任何 AI 模型服务或 API 密钥\n用户通过forksilly生成的所有内容（包括文本、图片等）均由用户自行负责\n用户接入的第三方 API 服务及其生成内容，责任由用户与相应服务提供商承担\n项目开发者和维护者对用户使用forksilly生成的任何内容不承担法律责任\n2. 使用规范\n使用此项目时，您需要：\n 遵守您所在地区的法律法规\n 遵守您所使用的第三方 API 服务条款\n 对生成内容的合法性、合规性负责\n 不得将项目用于任何非法用途\n 不得生成违反法律法规或侵犯他人权益的内容\n3. 风险提示\nAI 生成内容可能存在错误、偏见或不当信息\n用户应自行审查和验证生成内容的准确性与合法性\n因使用本工具产生的任何纠纷、损失或法律后果，由用户自行承担\n使用此项目，即表示您已阅读、理解并同意本免责声明。\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffatsnk%2Fforksilly.doc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffatsnk%2Fforksilly.doc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffatsnk%2Fforksilly.doc/lists"}