# 文生图简单教程
**建议添加一个对AI隐藏img标签的正则,** 防止AI后续生成不存在的img标签内容:[正则设置](#可选设置)
## Stable Diffusion
1.部署Stable Diffusion并打开监听端口,建议使用([stable-diffusion-webui-forge](https://github.com/lllyasviel/stable-diffusion-webui-forge)),下载秋葉aaaki的整合包([B站链接](https://www.bilibili.com/video/BV1rc6nYNEYo)),请参考相关教程,这里不再过多介绍。*暂不支持填写API key,请勿设置密码*
2.打开forksilly,点击右上角🔧,选择文生图,进入文生图设置。
点击`API管理`标签,添加你部署好的Stable Diffusion的地址并保存:
3.点击`预设管理`标签,添加一个预设,随意填写一些预定义的提示词,例如high quality,点击保存:
4.点击“生成设置”,选择刚才保存的API配置,然后在下方的生成参数中填写你的模型使用的参数,并点击“保存到当前API配置”。点击保存按钮后,界面参数可能会恢复原始值,返回重新进入该设置界面即可。你也可以在这里测试图片生成是否正常:
## 通用设置
5.点击`触发标签`选项卡,打开“启用触发功能”开关,然后点击保存。你也可以自行填写喜欢的触发标签,不修改则默认是"gen_image".
6.在llm的预设或世界书中新增条目,填写文生图提示词,指导AI使用正确格式输出关键词,例如:
```
请在每次回复的正文后调用文生图工具,以可用于Stable Diffusion的关键词格式输出。根据角色、地点、情境等,只使用一张图片,关键词需要足够详细。
调用格式:
keyword1, keyword2, keyword3, ...
```
将``改成你自己设置的触发标签。
7.到这里已经设置完毕。如果在第四点生成设置中测试能正常生成图片,则已经可以正常使用。
参考效果图:
## 其它图片生成方式
* 使用内置工具调用生图api: 可通过在api设置中(聊天模型的api设置界面)导入api模板来使用其它常见的生图模型,例如openai的图片生成api,详情参请查看[API模板引擎的文档](https://github.com/fatsnk/APItemplateV2)。配合内置工具“内容追加”,也可以在RP对话中调用这些api进行配图,可自行探索。
* 使用novelAI:添加文生图API配置时,长按“添加新API配置”弹窗的标题文字,便可选择novelAI类型(仅支持4和4.5,可能不会兼容后续新模型)。novelAI的url需填写完整url。
* 要使用comfyui,请查看关联项目[comfyui2A1111](https://github.com/fatsnk/Comfyui2A1111)或[ChatAndImage](https://github.com/fatsnk/Chat_And_Image/releases): 将comfyui和novelAI的接口转换为更通用的api(openai兼容和A1111),配置后便可接入forksilly或其它平台使用。
### Pollinations
[Pollinations.AI](https://pollinations.ai/):官方称提供简单易用的文本和图像生成API,~~每天有一定免费额度~~现已收费,不再推荐使用。
打开forksilly,点击右上角🔧,选择文生图,进入文生图设置。
切换到`API管理`标签页,选择API类型为“Pollinations”,获取模型名称(flux或turbo等,现在有大香蕉、seedream、Zimage等新模型,可以点击get models查看)并保存,点击设为默认按钮。
前往[管理页面](https://enter.pollinations.ai/) 登录你的GitHub账号,并生成API密钥,填写到文生图的APi设置中。
然后前往预设管理页面随便添加一个预设保存并设为默认。
接下来,切换到生成设置标签页,填写你喜欢的参数,然后点击下方的保存到预设。
注意参数以API中保存的为准,所以建议先点击保存到当前预设,然后再点击保存到当前API设置,这里的模型(model)也会覆盖API管理中的设置。
*(Zimage性价比最高。turbo模型似乎对非正方形比例支持较好,flux有时会拉伸图像;其余模型消耗积分很多,一天用不了几次,请自行检查官方的priceing。Pollinations的图像有缓存,因此重新生成是不会改变图片的,需要手动修改种子。)*
在聊天中启用文生图,请阅读后续的[通用设置](#通用设置)
## 查看大图
聊天中有图片时,点击聊天气泡下方菜单中的🖼️按钮,或长按🎨按钮(触发文生图时使用),可放大图片。
## 可选设置
隐藏生成图片的img标签和原始文生图标签,避免影响AI回复,节省tokens。
在全局正则中添加以下两个正则:
`/<\s*gen_image\s*>([^<]*)<\/\s*gen_image\s*>(?!.*<\s*gen_image)/i`
gen_image改成你自定义的触发标签。最小深度可以设置为3,为AI保留前一个回复的触发标签。
`
]*?\ssrc\s*=\s*(?:"([^"]*)"|'([^']*)'|([^'"\s>]+))[^>]*?\salt\s*=\s*(?:"([^"]*)"|'([^']*)'|([^'"\s>]+))[^>]*?>`
删除所有img标签,避免AI学习。注意不要打开修改聊天显示的开关,否则自己也看不到图片了。

9.公网使用
a. 使用frp工具将webui服务暴露到公网,或者使用zerotier等内网穿透工具将你的手机和电脑连接到同一局域网。
b. 使用cloudflare tunnel(可能很慢,建议优先使用上面提到的服务)
参考教程:
https://github.com/cloudflare/cloudflared/releases/latest
下载 cloudflared-windows-amd64.exe,重命名成 cloudflared.exe,放到任意目录,加入 PATH 就好。
#### 方法1
临时地址(无需登录cloudflare):cloudflared tunnel --url http://localhost:7860
稍等几秒,终端会输出类似:
Your quick Tunnel has been created! Visit it at (it may take some time to be reachable):
https://proud-tiger-sunrise-abc123.trycloudflare.com
可以直接使用,重启后需要重新执行命令,地址会变成一个全新的随机地址,旧地址直接失效。
#### 方法2
永久地址(需登录cloudflare且有托管的域名):
1. 创建 Tunnel
登录并创建 Tunnel
cloudflared tunnel login
这步会在浏览器打开cloudflare进行登录并授权tunnel的域名,注意你的网络环境需要能访问cloudflare。
cloudflared tunnel create my-tunnel
这个命令会生成一个 Tunnel ID,记下来。
2. 写配置文件
在 C:\Users\你Windows系统的登录用户名\.cloudflared\config.yml 创建:
```
yamltunnel:
credentials-file: C:\Users\你Windows系统的登录用户名\.cloudflared\.json
ingress:
- hostname: 98793930-9d18-45a1-b043-49f5aae68768.yourdomain.com
service: http://localhost:7860
- service: http_status:404
```
替换、credentials-file路径、hostname、service为你自己的。
请将hostname替换成你自己在cloudflare托管的域名,不要直接复制!建议子域名使用uuid例如98793930-9d18-45a1-b043-49f5aae68768防止被别人使用。
3. 在 Cloudflare DNS 添加记录
cloudflared tunnel route dns my-tunnel 98793930-9d18-45a1-b043-49f5aae68768
这一步会自动在 Cloudflare 的 DNS 里加 CNAME,不用手动去控制台操作。
4. 启动
cloudflared tunnel run my-tunnel
最终url就是你上面填写的: https://98793930-9d18-45a1-b043-49f5aae68768.yourdomain.com
https是自动的,无需额外操作。