Spaces:
Sleeping
Sleeping
File size: 3,170 Bytes
624088c 8c5d17c 624088c 932a7fd 624088c 8c5d17c 624088c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
import { FontName, actionman, komika, vtc } from "@/lib/fonts"
import { NextFontWithVariable } from "next/dist/compiled/@next/font"
export type ComicFamily =
| "american"
| "asian"
| "european"
export type ComicColor =
| "color"
| "grayscale"
| "monochrome"
export interface Preset {
label: string
family: ComicFamily
color: ComicColor
font: FontName
llmPrompt: string
imagePrompt: (prompt: string) => string[]
negativePrompt: (prompt: string) => string[]
}
// ATTENTION!! negative prompts are not supported by the VideoChain API yet
export const presets: Record<string, Preset> = {
japanese_manga: {
label: "Japanese",
family: "asian",
color: "grayscale",
font: "komika",
llmPrompt: "japanese manga",
imagePrompt: (prompt: string) => [
`japanese manga about ${prompt}`,
"single panel",
"manga",
"japanese",
"grayscale",
"intricate",
"detailed",
"drawing"
],
negativePrompt: () => [
"franco-belgian comic",
"color album",
"color",
"american comic",
"photo",
"painting",
"3D render"
],
},
franco_belgian: {
label: "Franco-Belgian",
family: "european",
color: "color",
font: "paeteround",
llmPrompt: "Franco-Belgian comic (a \"bande dessinée\"), in the style of Franquin, Moebius etc",
imagePrompt: (prompt: string) => [
`franco-belgian color comic about ${prompt}`,
"bande dessinée",
"franco-belgian comic",
"comic album",
"color drawing"
],
negativePrompt: () => [
"manga",
"anime",
"american comic",
"grayscale",
"monochrome",
"photo",
"painting",
"3D render"
],
},
american_comic: {
label: "American",
family: "american",
color: "color",
font: "actionman",
llmPrompt: "american comic",
imagePrompt: (prompt: string) => [
`american comic about ${prompt}`,
"single panel",
"american comic",
"comicbook style",
"1950",
"50s",
"color comicbook",
"color drawing"
],
negativePrompt: () => [
"manga",
"anime",
"american comic",
"action",
"grayscale",
"monochrome",
"photo",
"painting",
"3D render"
],
},
armorican: {
label: "Armorican",
family: "european",
color: "monochrome",
font: "paeteround",
llmPrompt: "new color album",
imagePrompt: (prompt: string) => [
`color album panel`,
`about ${prompt}`,
"romans",
"gauls",
"french comic panel",
"franco-belgian style",
"bande dessinée",
"single panel",
"comical",
"comic album",
"color drawing"
],
negativePrompt: () => [
"manga",
"anime",
"american comic",
"grayscale",
"monochrome",
"photo",
"painting",
"3D render"
],
}
}
export type PresetName = keyof typeof presets
export const defaultPreset: PresetName = "japanese_manga"
export const getPreset = (preset?: PresetName): Preset => presets[preset || defaultPreset] || presets[defaultPreset] |