bluelovers / ai-tag

It's an AI Tag (Prompt) generator for magic drawer! We have many tags and support to generate prompts easily!

Home Page:https://magic-tag.netlify.app/#/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

魔导绪论

AI 魔咒生成器, 使用由 B 站 UP 主 十二今天也很可爱 提供的 4 万个 tag , 合并 Novelai 词条百科共享站 的中文翻译,提供中文检索和魔咒生成服务,并提供了魔咒社区方便魔法师们直接复制生成。永远免费,永无广告,无商业。

衍生项目

  1. promptor 纯粹的魔咒解析库。
  2. prompt-extractor,独立法术解析库 解析 SD,Paddle,NovelAI 三种图片产出信息,并统一格式
  3. tag-collection Tag 仓库项目,提供 Tag 数据文件。
  4. 独立画廊页面 全新画廊页面,使用瀑布流查看社区图片,真爽。

项目联合

  1. Web 字体网站,使用中文(江西拙楷 2.0)和英文 (aclonica)字体,在设置面板中可以进行默认字体调整。

v4 计划

  • 法术解析页面
  • 国际化文本:英语,日语(如果有兴趣可以帮助翻译 locales 文件夹下面的文件)。
  • 更加友善的词条分类
  • 自建词库
  • 人工智能自动出魔咒
  • 人工智能划分词汇
  • 白昼模式
  • Notebook 页面管理用户词条
    • 超级拖拽直接创建词条
    • 超级拖拽联合魔导绪论
    • 本地图片收藏夹
    • 远程同步功能
    • 导出为 Word

魔导绪论指南

基础操作讲解

我在 Notion 写了指南,这里就不写了。请查看 魔导绪论教程

功能列表

多多点赞,我就多多更新 (● ∀ ●)。

  • Tag 编辑器
    • tag 加减权,删除,一键复制导入,自主创建
    • 绑定 tags,网页 URL 指向了你的魔咒
    • 搜索标签排除
    • 搜索卡顿消除(采用 Worker 和 Shared Worker)
    • tag 符号 {} () 切换
    • 支持换行符进行分割,SD 不识别换行符,所以可以在文本中使用
    • 支持 数值加权 ,Prompt editing, Alternating Words, (Stable Diffusion 专有)
  • 系统方面
    • 设置面板可以更改系统参数
    • 本地化设置参数
    • 青少年模式
  • 部署方面
    • CSV 文件静默更新
    • 使用 Netlify 云函数 + Notion 后台组成社区数据库
    • 使用 Github Issues 作为反馈后台
  • 社区方面
    • 分享模式
    • 社区魔咒复制!
    • 社区魔咒融合!(非词汇融合)
    • 社区分页
    • 社区搜索
  • 画廊
    • 联合社区中的图片
    • 瀑布流布局 😍
  • 反馈信息
    • Bug 反馈
    • 违禁词反馈
    • 反馈信息回调优化
  • 网站样式
    • Iframe 通道通信
    • 拖拽联合:包括了非常多的拖拽操作与数据联合
    • 白昼模式

开发者相关

开发者与测试的流程

pnpm i
pnpm i netlify-cli -g # 需要全局安装
pnpm function # 开启 netlify 的调试云函数,主要是社区需要使用
pnpm dev # 开发者模式查看
pnpm build # 打包版本,一般 Netlify 自动打包

关于社区的搜索方式

社区的搜索方式采用了类似 Github 的高级搜索方式。默认搜索字符串就是搜索标题。

灰色

标题中包含灰色

username:=江夏尧

指定上传者的名称全等于 江夏尧

username:Top tags:masterpiece 红

指定上传者的名称包含 Top;魔咒中包含 masterpiece;标题中包含

拖拽通道服务

  1. 在浏览器不同页面中可以通过 拖拽来导入或者导出一些东西,比如说 魔导绪论 v4 开始采用 MPA 的方式管理 NoteBook 、Gallery 和主页,这三者都可以通过 拖拽信道 进行拖拽信息的交流检测。但是这些操作我还没有汇总出来 😭

Iframe 服务

魔导绪论提供了 iframe 接口可以为不同网站提供魔咒生成操作,主站完全不需要进行任何修改,直接 iframe 嵌入我们的主页,并且进行几十行代码的接口使用,即可与魔导绪论无缝衔接。

快速上手

<iframe
    sandbox="allow-scripts allow-popups allow-top-navigation-by-user-activation allow-same-origin allow-storage-access-by-user-activation"
    src="https://magic-tag.netlify.app"
></iframe>
// comlink 是必须要的依赖
import { wrap, windowEndpoint, proxy } from 'comlink';
const ifr = document.querySelector('iframe');
await new Promise((resolve) => (ifr.onload = resolve));
const app = wrap(windowEndpoint(ifr.contentWindow));

// 监听魔导绪论数据变化,为了安全考虑响应有延迟
await app.onPromptChange(
    proxy((str) => {
        console.log('%cchanged prompts:' + str, 'background-color:green;color:white');
    })
);
// 注入魔咒
await app.inputPrompt('masterpease');
// 获取现在的魔咒
const str = await app.getPrompt();

原理

  1. 我们采用通用的 MessageChannel 的方式在网站间传递数据,这个也是常用的网站联合操作,传输数据为限制的数据格式,可以安全地形成网站数据联合。
  2. iframe 标签上必须使用 sandbox 属性保证两边网站的安全权限,具体调配请访问 MDN
  3. 例子
    1. CodeSandbox 的代码在线演示广泛应用于官网教程网站,也是通过 iframe 方式加载的,详见 Sandpack 源码
    2. Notion 支持直接导入网站,也是以 iframe 方式,采用 sandbox 进行 iframe 的安全策略。
    3. XMind 也支持直接在网站联合查看,使用 iframe + MessageChannel 的方式

Q&A

  1. 想要加友链?
    • 直接提交一个 issues 格式随意!或者直接在魔导绪论里面提交反馈!
  2. 如何跳转并注入一段魔咒
    • https://magic-tag.netlify.app/#/?tags={{masterpiece}} 你看这里的 tags 后面就是魔咒。

License

这个仓库 GPL 3.0 注意啦,作者不建议商用

社区上传的资源我们采用 CCO 的方式共享,如果您有疑问可以联系我。

About

It's an AI Tag (Prompt) generator for magic drawer! We have many tags and support to generate prompts easily!

https://magic-tag.netlify.app/#/

License:GNU General Public License v3.0


Languages

Language:TypeScript 76.1%Language:CSS 21.6%Language:HTML 1.8%Language:JavaScript 0.4%