SECRET - annna - Annna the nice friendly bot. HTML git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/ DIR Log DIR Files DIR Refs DIR Tags DIR README --- DIR commit 0dacd5e63c073d826e795b8a45d08b6da1b462ae DIR parent ffb07ed5c0ea054522a6145273249611bbf4d330 HTML Author: Annna Robert-Houdin <annna@bitreich.org> Date: Sun, 20 Jul 2025 22:11:18 +0200 SECRET Diffstat: M stable-diffusion | 58 +++++++++++++++++++++++-------- M stable-diffusion-emoji | 7 +++++-- 2 files changed, 48 insertions(+), 17 deletions(-) --- DIR diff --git a/stable-diffusion b/stable-diffusion @@ -1,27 +1,55 @@ #!/bin/sh +export PATH="$HOME/bin:$PATH" + if [ $# -lt 2 ]; then printf "usage: %s output.png some funny cat prompt ...\n" \ "$(basename "${0}")" >&2 exit 1 fi +sdnegative='nipples, busty, nude, lowres, worst quality, low quality, normal quality, cropped, infant, blur, haze, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, bad anatomy, watermark, signature, cut off, low contrast, underexposed, overexposed, bad art, beginner, amateur, distorted face, blurry, draft, grainy, nsfw' -sdbase="/br/ai/stable-diffusion.cpp" -sdcmd="${sdbase}/build/bin/sd -t 16 --steps 20 -s -1 -H 512 -W 512 --cfg-scale 8.0" -sdmodel="${SD_MODEL:-${sdbase}/models/epicphotogasm_x.f16.gguf}" -sdnegative='nipples, busty, nude, lowres, (worst quality, low quality, normal quality:2), cropped, infant, blur, haze, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, bad anatomy, watermark, signature, cut off, low contrast, underexposed, overexposed, bad art, beginner, amateur, distorted face, blurry, draft, grainy, nsfw' -outputf="${1}" -shift 1 +function local_sd() { + outputf="${1}" + prompt="${2}" -if mountpoint -q /br/ai/tmp; -then - sdbasename="$(basename "${sdmodel}")" - sdtmppath="/br/ai/tmp/${sdbasename}" - [ ! -r "${sdtmppath}" ] && cp "${sdmodel}" /br/ai/tmp - [ -r "${sttmppath}" ] && sdmodel="${sdtmppath}" -fi + sdbase="/br/ai/stable-diffusion.cpp" + sdcmd="${sdbase}/build/bin/sd -t 16 --steps 20 -s -1 -H 512 -W 512 --cfg-scale 8.0" + sdmodel="${sdbase}/${SD_MODEL:-models/epicphotogasm_x.f16.gguf}" + + if mountpoint -q /br/ai/tmp; + then + sdbasename="$(basename "${sdmodel}")" + sdtmppath="/br/ai/tmp/${sdbasename}" + [ ! -r "${sdtmppath}" ] && cp "${sdmodel}" /br/ai/tmp + [ -r "${sttmppath}" ] && sdmodel="${sdtmppath}" + fi -${sdcmd} --type f16 -m ${sdmodel} -o "${outputf}" -p "$@" -n "${sdnegative}" >/dev/null 2>&1 -#${sdcmd} -m ${sdmodel} -o "${outputf}" -p "$@" -n "${sdnegative}" -v + ${sdcmd} --type f16 -m ${sdmodel} -o "${outputf}" -p "${prompt}" -n "${sdnegative}" >/dev/null 2>&1 + #${sdcmd} -m ${sdmodel} -o "${outputf}" -p "$@" -n "${sdnegative}" -v +} + +function remote_sd() { + outputf="${1}" + ofilename="$(basename "${outputf}")" + prompt="${2}" + + sdbase="/home/annna/scm/stable-diffusion.cpp" + sdcmd="${sdbase}/build/bin/sd -t 16 --steps 20 -s -1 -H 512 -W 512 --cfg-scale 8.0" + sdmodel="${sdbase}/${SD_MODEL:-models/epicphotogasm_x.f16.gguf}" + + ollama-gpu \ + ${sdcmd} --type f16 -m ${sdmodel} -o "/tmp/${ofilename}" -p "${prompt}" -n "${sdnegative}" \ + >/dev/null 2>&1 + scp -P 5680 "annna@gpu.r-36.net:/tmp/${ofilename}" "${outputf}" + ollama-gpu rm "/tmp/${ofilename}" +} + +outputf="${1}" +shift 1 +prompt="$@" +remote_sd "${outputf}" "${prompt}" +[ ! -s "${outputf}" ] && local_sd "${outputf}" "${prompt}" +[ ! -s "${outputf}" -a -f "${outputf}" ] && rm -f "${outputf}" DIR diff --git a/stable-diffusion-emoji b/stable-diffusion-emoji @@ -32,14 +32,17 @@ case "${emojiprompt}" in emojiprompt="Beautiful Retro Collage Painting ${emojiprompt} by Pablo Picasso, 8k trending artstation cinematic, daylight, greyscale" ;; *) - emojiprompt="${emojiprompt} $(stable-diffusion-prompt-generator "${emojiprompt}")" + if [ ! -e "${emojidb}/${emojifile}" ]; + then + emojiprompt="${emojiprompt} $(stable-diffusion-prompt-generator "${emojiprompt}")" + fi ;; esac [ -z "${emojiprompt}" ] && exit 1 if [ ! -e "${emojidb}/${emojifile}" ]; then - SD_MODEL="/br/ai/stable-diffusion.cpp/models/epicphotogasm_x.f16.gguf" \ + SD_MODEL="models/epicphotogasm_x.f16.gguf" \ stable-diffusion "${emojidb}/${emojifile}" "${emojiprompt}" if [ -e "${emojidb}/${emojifile}" ]; then