mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Merge branch 'main' into dev
This commit is contained in:
@ -1,3 +1,4 @@
|
|||||||
|
.git
|
||||||
node_modules
|
node_modules
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
readme*
|
readme*
|
||||||
|
11
Dockerfile
11
Dockerfile
@ -3,8 +3,10 @@ FROM node:19.1.0-alpine3.16
|
|||||||
# Arguments
|
# Arguments
|
||||||
ARG APP_HOME=/home/node/app
|
ARG APP_HOME=/home/node/app
|
||||||
|
|
||||||
|
# Install system dependencies
|
||||||
|
RUN apk add gcompat tini
|
||||||
|
|
||||||
# Ensure proper handling of kernel signals
|
# Ensure proper handling of kernel signals
|
||||||
RUN apk add tini
|
|
||||||
ENTRYPOINT [ "tini", "--" ]
|
ENTRYPOINT [ "tini", "--" ]
|
||||||
|
|
||||||
# Create app directory
|
# Create app directory
|
||||||
@ -14,7 +16,7 @@ WORKDIR ${APP_HOME}
|
|||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
RUN \
|
RUN \
|
||||||
echo "*** Install npm packages ***" && \
|
echo "*** Install npm packages ***" && \
|
||||||
npm install
|
npm install && npm cache clean --force
|
||||||
|
|
||||||
# Bundle app source
|
# Bundle app source
|
||||||
COPY . ./
|
COPY . ./
|
||||||
@ -25,8 +27,8 @@ RUN \
|
|||||||
mv "./public/characters" "./public/characters.default" && \
|
mv "./public/characters" "./public/characters.default" && \
|
||||||
mv "./public/chats" "./public/chats.default" && \
|
mv "./public/chats" "./public/chats.default" && \
|
||||||
mv "./public/User Avatars" "./public/User Avatars.default" && \
|
mv "./public/User Avatars" "./public/User Avatars.default" && \
|
||||||
mv "./public/settings.json" "./public/settings.json.default" && \
|
mv "./public/settings.json" "./public/settings.json.default" && \
|
||||||
|
\
|
||||||
echo "*** Create symbolic links to config directory ***" && \
|
echo "*** Create symbolic links to config directory ***" && \
|
||||||
ln -s "${APP_HOME}/config/characters" "${APP_HOME}/public/characters" && \
|
ln -s "${APP_HOME}/config/characters" "${APP_HOME}/public/characters" && \
|
||||||
ln -s "${APP_HOME}/config/chats" "${APP_HOME}/public/chats" && \
|
ln -s "${APP_HOME}/config/chats" "${APP_HOME}/public/chats" && \
|
||||||
@ -38,7 +40,6 @@ RUN \
|
|||||||
echo "*** Cleanup ***" && \
|
echo "*** Cleanup ***" && \
|
||||||
mv "./docker/docker-entrypoint.sh" "./" && \
|
mv "./docker/docker-entrypoint.sh" "./" && \
|
||||||
rm -rf "./docker" && \
|
rm -rf "./docker" && \
|
||||||
rm -rf "./.git" && \
|
|
||||||
echo "*** Make docker-entrypoint.sh executable ***" && \
|
echo "*** Make docker-entrypoint.sh executable ***" && \
|
||||||
chmod +x "./docker-entrypoint.sh" && \
|
chmod +x "./docker-entrypoint.sh" && \
|
||||||
echo "*** Convert line endings to Unix format ***" && \
|
echo "*** Convert line endings to Unix format ***" && \
|
||||||
|
@ -6,10 +6,10 @@
|
|||||||
"metadata": {},
|
"metadata": {},
|
||||||
"source": [
|
"source": [
|
||||||
"**Links**<br>\n",
|
"**Links**<br>\n",
|
||||||
"Cohee's TavernAI fork Github https://github.com/Cohee1207/SillyTavern<br>\n",
|
"SillyTavern GitHub: https://github.com/Cohee1207/SillyTavern<br>\n",
|
||||||
"Cohee's TavernAI Extras Github https://github.com/Cohee1207/TavernAI-extras/<br>\n",
|
"Extensions API GitHub: https://github.com/Cohee1207/TavernAI-extras/<br>\n",
|
||||||
"TavernAI Discord https://discord.gg/zmK2gmr45t<br>\n",
|
"SillyTavern community Discord (support and discussion): https://discord.gg/RZdyAEUPvj<br>\n",
|
||||||
"Questions? Hit me up on Discord: Cohee#1207"
|
"Contact the maintainer directly: Cohee#1207"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
2
faq.md
2
faq.md
@ -132,7 +132,7 @@ When using Poe, be careful, it's implemented in a hacky way. If you don't get an
|
|||||||
|
|
||||||
iPhones and iPads are not capable of running the whole Tavern app, but since it's just a web interface, you can run it on another computer on your home wifi, and then access in your mobile browser. Refer to https://github.com/Cohee1207/SillyTavern#remote-connections
|
iPhones and iPads are not capable of running the whole Tavern app, but since it's just a web interface, you can run it on another computer on your home wifi, and then access in your mobile browser. Refer to https://github.com/Cohee1207/SillyTavern#remote-connections
|
||||||
|
|
||||||
For Android users, in addition to the above, you can run the whole Tavern directly on your phone, without needing a PC, using the Termux app. Refer to https://rentry.org/TAI_Termux .
|
For Android users, in addition to the above, you can run the whole Tavern directly on your phone, without needing a PC, using the Termux app. Refer to https://rentry.org/STAI-Termux .
|
||||||
|
|
||||||
## Q: How can I download pre-made characters to chat with?
|
## Q: How can I download pre-made characters to chat with?
|
||||||
|
|
||||||
|
24
readme.md
24
readme.md
@ -27,10 +27,25 @@ https://colab.research.google.com/github/Cohee1207/SillyTavern/blob/main/colab/G
|
|||||||
|
|
||||||
> **This fork can be run natively on Android phones using Termux. Please refer to this guide by ArroganceComplex#2659:**
|
> **This fork can be run natively on Android phones using Termux. Please refer to this guide by ArroganceComplex#2659:**
|
||||||
|
|
||||||
https://rentry.org/TAI_Termux
|
https://rentry.org/STAI-Termux
|
||||||
|
|
||||||
**.webp character cards import/export is not supported in Termux. Use either JSON or PNG formats instead.**
|
**.webp character cards import/export is not supported in Termux. Use either JSON or PNG formats instead.**
|
||||||
|
|
||||||
|
## Questions or suggestions?
|
||||||
|
|
||||||
|
### We now have a community Discord server!
|
||||||
|
|
||||||
|
Get support, share favorite characters and prompts:
|
||||||
|
|
||||||
|
### [Join](https://discord.gg/RZdyAEUPvj)
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
Get in touch with the developers directly:
|
||||||
|
* Discord: Cohee#1207 or RossAscends#1779
|
||||||
|
* Reddit: /u/RossAscends or /u/sillylossy
|
||||||
|
* [Post a GitHub issue](https://github.com/Cohee1207/SillyTavern/issues)
|
||||||
|
|
||||||
## This version includes
|
## This version includes
|
||||||
* A heavily modified TavernAI 1.2.8 (more than 50% of code rewritten or optimized)
|
* A heavily modified TavernAI 1.2.8 (more than 50% of code rewritten or optimized)
|
||||||
* Swipes
|
* Swipes
|
||||||
@ -100,7 +115,7 @@ https://rentry.org/TAI_Termux
|
|||||||
*NOTE: This branch is intended for local install purposes, and has not been thoroughly tested on a colab or other cloud notebook service.*
|
*NOTE: This branch is intended for local install purposes, and has not been thoroughly tested on a colab or other cloud notebook service.*
|
||||||
|
|
||||||
### Windows
|
### Windows
|
||||||
1. install [NodeJS](https://nodejs.org/en)
|
1. install [NodeJS](https://nodejs.org/en) (latest LTS version is recommended)
|
||||||
2. download the zip from this GitHub repo
|
2. download the zip from this GitHub repo
|
||||||
3. unzip it into a folder of your choice
|
3. unzip it into a folder of your choice
|
||||||
4. run start.bat via double-clicking or in a command line.
|
4. run start.bat via double-clicking or in a command line.
|
||||||
@ -166,11 +181,6 @@ Try enabling the No Blur Effect (Fast UI) mode on the User settings panel.
|
|||||||
2. Send bug reports without providing any context
|
2. Send bug reports without providing any context
|
||||||
3. Ask the questions that were already answered numerous times
|
3. Ask the questions that were already answered numerous times
|
||||||
|
|
||||||
## Questions or suggestions?
|
|
||||||
Contact us on:
|
|
||||||
* Discord: Cohee#1207 or RossAscends#1779
|
|
||||||
* Reddit: /u/RossAscends or /u/sillylossy
|
|
||||||
|
|
||||||
## Screenshots
|
## Screenshots
|
||||||
<img width="400" alt="image" src="https://user-images.githubusercontent.com/18619528/228649245-8061c60f-63dc-488e-9325-f151b7a3ec2d.png">
|
<img width="400" alt="image" src="https://user-images.githubusercontent.com/18619528/228649245-8061c60f-63dc-488e-9325-f151b7a3ec2d.png">
|
||||||
<img width="400" alt="image" src="https://user-images.githubusercontent.com/18619528/228649856-fbdeef05-d727-4d5a-be80-266cbbc6b811.png">
|
<img width="400" alt="image" src="https://user-images.githubusercontent.com/18619528/228649856-fbdeef05-d727-4d5a-be80-266cbbc6b811.png">
|
||||||
|
11
server.js
11
server.js
@ -798,11 +798,13 @@ async function charaWrite(img_url, data, target_img, response = undefined, mes =
|
|||||||
|
|
||||||
fs.writeFileSync(charactersPath + target_img + '.png', new Buffer.from(encode(chunks)));
|
fs.writeFileSync(charactersPath + target_img + '.png', new Buffer.from(encode(chunks)));
|
||||||
if (response !== undefined) response.send(mes);
|
if (response !== undefined) response.send(mes);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
if (response !== undefined) response.send(err);
|
if (response !== undefined) response.status(500).send(err);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2458,7 +2460,12 @@ async function convertWebp() {
|
|||||||
await webp.dwebp(source, dest, "-o");
|
await webp.dwebp(source, dest, "-o");
|
||||||
|
|
||||||
console.log(`Write... ${dest}`);
|
console.log(`Write... ${dest}`);
|
||||||
await charaWrite(dest, data, path.parse(dest).name);
|
const success = await charaWrite(dest, data, path.parse(dest).name);
|
||||||
|
|
||||||
|
if (!success) {
|
||||||
|
console.log(`Failure on ${source} -> ${dest}`);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
console.log(`Remove... ${source}`);
|
console.log(`Remove... ${source}`);
|
||||||
fs.rmSync(source);
|
fs.rmSync(source);
|
||||||
|
@ -71,11 +71,13 @@ async function charaWrite(img_url, data, target_img, response = undefined, mes =
|
|||||||
|
|
||||||
fs.writeFileSync(target_img, new Buffer.from(encode(chunks)));
|
fs.writeFileSync(target_img, new Buffer.from(encode(chunks)));
|
||||||
if (response !== undefined) response.send(mes);
|
if (response !== undefined) response.send(mes);
|
||||||
|
return true;
|
||||||
|
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
if (response !== undefined) response.send(err);
|
if (response !== undefined) response.status(500).send(err);
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,7 +104,12 @@ async function charaWrite(img_url, data, target_img, response = undefined, mes =
|
|||||||
await webp.dwebp(source, dest, "-o")
|
await webp.dwebp(source, dest, "-o")
|
||||||
|
|
||||||
console.log(`Write... ${dest}`)
|
console.log(`Write... ${dest}`)
|
||||||
await charaWrite(dest, data, dest)
|
const success = await charaWrite(dest, data, path.parse(dest).name);
|
||||||
|
|
||||||
|
if (!success) {
|
||||||
|
console.log(`Failure on ${source} -> ${dest}`);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
console.log(`Remove... ${source}`)
|
console.log(`Remove... ${source}`)
|
||||||
fs.rmSync(source)
|
fs.rmSync(source)
|
||||||
|
Reference in New Issue
Block a user