generated from nhcarrigan/template
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
c705b1385a
|
|||
|
5c65eb9ae5
|
|||
| 4776f00e51 | |||
| 9f45ee329d |
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "tatsumi",
|
"name": "tatsumi",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "1.0.0",
|
"version": "1.1.0",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
Generated
+1
-1
@@ -3716,7 +3716,7 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tatsumi"
|
name = "tatsumi"
|
||||||
version = "1.0.0"
|
version = "1.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64 0.22.1",
|
"base64 0.22.1",
|
||||||
"dirs 5.0.1",
|
"dirs 5.0.1",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "tatsumi"
|
name = "tatsumi"
|
||||||
version = "1.0.0"
|
version = "1.1.0"
|
||||||
description = "Tatsumi - AI art generation using Google Gemini"
|
description = "Tatsumi - AI art generation using Google Gemini"
|
||||||
authors = ["Naomi Carrigan"]
|
authors = ["Naomi Carrigan"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 17 MiB After Width: | Height: | Size: 17 MiB |
@@ -11,11 +11,11 @@ Character design (always required):
|
|||||||
- Wavy ashen brown hair (colour and texture fixed; hairstyle can vary)
|
- Wavy ashen brown hair (colour and texture fixed; hairstyle can vary)
|
||||||
- Very pale skin tone
|
- Very pale skin tone
|
||||||
- Vibrant sky-blue eyes — important, commonly missed
|
- Vibrant sky-blue eyes — important, commonly missed
|
||||||
- Vampire fangs
|
- Vampire fangs (only visible when mouth is open)
|
||||||
- Glasses (pink-framed preferred, other styles acceptable)
|
- Glasses (pink-framed preferred, other styles acceptable)
|
||||||
- Painted fingernails and toenails (any colour, never unpolished)
|
- Painted fingernails and toenails (any colour, never unpolished)
|
||||||
- Slender build
|
- Slender build
|
||||||
- Full body visible in frame; always barefoot, never wears socks
|
- Full body visible in frame
|
||||||
|
|
||||||
Composition (always required):
|
Composition (always required):
|
||||||
- Single character only
|
- Single character only
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://schema.tauri.app/config/2",
|
"$schema": "https://schema.tauri.app/config/2",
|
||||||
"productName": "tatsumi",
|
"productName": "tatsumi",
|
||||||
"version": "1.0.0",
|
"version": "1.1.0",
|
||||||
"identifier": "com.naomi.tatsumi",
|
"identifier": "com.naomi.tatsumi",
|
||||||
"build": {
|
"build": {
|
||||||
"beforeDevCommand": "pnpm dev",
|
"beforeDevCommand": "pnpm dev",
|
||||||
|
|||||||
+113
-16
@@ -25,15 +25,118 @@ import type {
|
|||||||
Thread,
|
Thread,
|
||||||
} from "./types/index.ts";
|
} from "./types/index.ts";
|
||||||
|
|
||||||
const generateThreadName = (mode: Mode, text?: string): string => {
|
const adjectives = [
|
||||||
if (
|
"Amber",
|
||||||
mode === "replace"
|
"Ancient",
|
||||||
|| text === undefined
|
"Arctic",
|
||||||
|| text.trim().length === 0
|
"Azure",
|
||||||
) {
|
"Blazing",
|
||||||
return `Replace - ${new Date().toLocaleString()}`;
|
"Celestial",
|
||||||
}
|
"Cobalt",
|
||||||
return text.trim().slice(0, 40);
|
"Crimson",
|
||||||
|
"Crystal",
|
||||||
|
"Dark",
|
||||||
|
"Distant",
|
||||||
|
"Ember",
|
||||||
|
"Emerald",
|
||||||
|
"Eternal",
|
||||||
|
"Ethereal",
|
||||||
|
"Fleeting",
|
||||||
|
"Frosted",
|
||||||
|
"Gilded",
|
||||||
|
"Golden",
|
||||||
|
"Hidden",
|
||||||
|
"Hollow",
|
||||||
|
"Indigo",
|
||||||
|
"Ivory",
|
||||||
|
"Jade",
|
||||||
|
"Lunar",
|
||||||
|
"Midnight",
|
||||||
|
"Mystic",
|
||||||
|
"Neon",
|
||||||
|
"Obsidian",
|
||||||
|
"Onyx",
|
||||||
|
"Opal",
|
||||||
|
"Pale",
|
||||||
|
"Pearl",
|
||||||
|
"Radiant",
|
||||||
|
"Rusted",
|
||||||
|
"Sapphire",
|
||||||
|
"Scarlet",
|
||||||
|
"Shattered",
|
||||||
|
"Silent",
|
||||||
|
"Silver",
|
||||||
|
"Spectral",
|
||||||
|
"Twilight",
|
||||||
|
"Velvet",
|
||||||
|
"Verdant",
|
||||||
|
"Veiled",
|
||||||
|
"Violet",
|
||||||
|
"Wandering",
|
||||||
|
"Wild",
|
||||||
|
"Woven",
|
||||||
|
"Arcane",
|
||||||
|
];
|
||||||
|
|
||||||
|
const nouns = [
|
||||||
|
"Abyss",
|
||||||
|
"Archive",
|
||||||
|
"Aria",
|
||||||
|
"Bloom",
|
||||||
|
"Cascade",
|
||||||
|
"Chronicle",
|
||||||
|
"Cipher",
|
||||||
|
"Compass",
|
||||||
|
"Crown",
|
||||||
|
"Dawn",
|
||||||
|
"Dream",
|
||||||
|
"Echo",
|
||||||
|
"Elegy",
|
||||||
|
"Ember",
|
||||||
|
"Equinox",
|
||||||
|
"Flame",
|
||||||
|
"Fragment",
|
||||||
|
"Garden",
|
||||||
|
"Horizon",
|
||||||
|
"Labyrinth",
|
||||||
|
"Lantern",
|
||||||
|
"Mirage",
|
||||||
|
"Mist",
|
||||||
|
"Murmur",
|
||||||
|
"Nexus",
|
||||||
|
"Nocturne",
|
||||||
|
"Oracle",
|
||||||
|
"Phantom",
|
||||||
|
"Prism",
|
||||||
|
"Requiem",
|
||||||
|
"Reverie",
|
||||||
|
"Ruin",
|
||||||
|
"Shadow",
|
||||||
|
"Shard",
|
||||||
|
"Silence",
|
||||||
|
"Solstice",
|
||||||
|
"Sonata",
|
||||||
|
"Specter",
|
||||||
|
"Storm",
|
||||||
|
"Tempest",
|
||||||
|
"Throne",
|
||||||
|
"Tide",
|
||||||
|
"Veil",
|
||||||
|
"Vortex",
|
||||||
|
"Whisper",
|
||||||
|
"Zenith",
|
||||||
|
"Sigil",
|
||||||
|
"Glyph",
|
||||||
|
"Dusk",
|
||||||
|
"Omen",
|
||||||
|
];
|
||||||
|
|
||||||
|
const generateThreadName = (): string => {
|
||||||
|
const adjectiveIndex = Math.floor(Math.random() * adjectives.length);
|
||||||
|
const nounIndex = Math.floor(Math.random() * nouns.length);
|
||||||
|
const adjective = adjectives[adjectiveIndex] ?? "Arcane";
|
||||||
|
const noun = nouns[nounIndex] ?? "Reverie";
|
||||||
|
return `${adjective} ${noun}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
const generateId = (): string => {
|
const generateId = (): string => {
|
||||||
@@ -74,13 +177,7 @@ const resolveUpdatedThread = (updatedThread: Thread): Thread => {
|
|||||||
return updatedThread;
|
return updatedThread;
|
||||||
}
|
}
|
||||||
|
|
||||||
const firstTextPart = firstMessage.parts.find((part) => {
|
const name = generateThreadName();
|
||||||
return part.type === "text";
|
|
||||||
});
|
|
||||||
const name = generateThreadName(
|
|
||||||
updatedThread.mode,
|
|
||||||
firstTextPart?.text,
|
|
||||||
);
|
|
||||||
return { ...updatedThread, name };
|
return { ...updatedThread, name };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user