summaryrefslogtreecommitdiffstats
path: root/krebs/5pkgs/simple/stable-interrogate/default.nix
blob: 7cc7509ebf26a6f10ec0a7b96fc8ac8f4a6413d9 (plain)
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
{ pkgs, lib, ... }:

pkgs.writers.writeBashBin "stable-interrogate" ''
  set -xefu
  set -o pipefail

  export PATH=${lib.makeBinPath [
    pkgs.coreutils
    pkgs.curl
    pkgs.jq
  ]}

  STABLE_URL=''${STABLE_URL:-http://stable-confusion.r}

  (if test -e "$1"; then
    cat "$1"
  elif [[ "$1" =~ ^https?: ]]; then
    curl -fSs "$1"
  else
    echo 'input not recognized' >&2
    exit 1
  fi) | base64 |
    jq -Rsrc '{
      image: .,
      model: "deepdanbooru", # clip is broken right now :(
    }' |
    curl -Ssf "$STABLE_URL/sdapi/v1/interrogate" \
      -X POST -H 'Content-Type: application/json' -d @- |
    jq -r '.caption'
''