Skip to content

Commit 90c5e1c

Browse files
committed
Update README.md
1 parent 566cef2 commit 90c5e1c

3 files changed

Lines changed: 26 additions & 9 deletions

File tree

README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ A Java based implementation for StableHorde's Generations UI. Aimed to be more f
66
- Text Generation Scribe Worker
77
- KoboldAI Client Verifier
88
- Generation Popper
9+
- Interrogation Alchemist Worker
10+
- Image Captioning
11+
- NSFW Checking
12+
- Image Interrogation
13+
- Strip Background Post Processing
914

1015
## How to install and use
1116

@@ -20,7 +25,10 @@ Please note that this requires the usage of Java 11 or higher to use the bridge.
2025
| API Key | -a, --kai_apikey | Set the Horde Worker API Key | -a Qjr8u2I0j2D8ZjXrA0aZ4r |
2126
| Config File | -c, --config | The configuration file to grab the Horde Worker information from | -c config.yml |
2227
| Interval | -i, --interval | The interval to check if there are new generations | -i 1 |
28+
| Worker Type | -t, --worker_type | The Worker type to specify (text/interrogation) | -t text |
2329
| KoboldAI URL | -k, --kai_url | The KoboldAI URL to grab generations from | -k http://127.0.0.1:5000 |
2430
| Horde Worker Name | -n, --kai_name | Set the Horde Worker name | -n "A Java-Horde-Bridge Worker" |
2531
| Priority Usernames | -p, --priority_usernames | The usernames to prioritize generations | -p Logicism#14426,db0#1,Henk#1326 |
26-
| Cluster URL | -u, --cluster_url | Set the cluster url to grab prompts and to send generations to | -u https://stablehorde.net |
32+
| Cluster URL | -u, --cluster_url | Set the cluster url to grab prompts and to send generations to | -u https://aihorde.net |
33+
| Backup Cluster URL | -b, --backup_cluster_url | Set the backup cluster url if the main cluster is down | -b https://stablehorde.net |
34+
| Forms | -f, --forms | The interrogation forms to enable for the worker | -f caption,nsfw,interrogation,strip_background |

src/main/java/me/Logicism/JavaHordeBridge/HordeBridge.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public class HordeBridge {
3636
private static String clusterURL = "https://aihorde.net";
3737
private static String backupClusterURL = "https://stablehorde.net";
3838
private static String[] priorityUsernames = new String[0];
39+
private static String[] forms = new String[0];
3940

4041
private static ExecutorService service = Executors.newSingleThreadExecutor();
4142

@@ -52,7 +53,8 @@ public static void main(String[] args) {
5253
Option kai_apikey = Option.builder("a").longOpt("kai_apikey").argName("kai_apikey").hasArg().desc("Set the Horde Worker API Key").numberOfArgs(1).build();
5354
Option cluster_url = Option.builder("u").longOpt("cluster_url").argName("cluster_url").hasArg().desc("Set the cluster url to grab prompts and to send generations to").numberOfArgs(1).build();
5455
Option backup_cluster_url = Option.builder("b").longOpt("backup_cluster_url").argName("backup_cluster_url").hasArg().desc("Set the backup cluster url if the main cluster is down").numberOfArgs(1).build();
55-
Option priority_usernames = Option.builder("p").longOpt("priority_usernames").argName("priority_usernames").hasArg().valueSeparator(',').desc("The usernames to prioritize generations").build();
56+
Option priority_usernames = Option.builder("p").longOpt("priority_usernames").argName("priority_usernames").hasArg().valueSeparator(',').desc("The usernames to prioritize generations").numberOfArgs(1).build();
57+
Option oForms = Option.builder("f").longOpt("forms").argName("forms").hasArg().valueSeparator(',').desc("The interrogation forms to enable for the worker").numberOfArgs(1).build();
5658

5759
options.addOption(interval);
5860
options.addOption(config);
@@ -63,6 +65,7 @@ public static void main(String[] args) {
6365
options.addOption(cluster_url);
6466
options.addOption(backup_cluster_url);
6567
options.addOption(priority_usernames);
68+
options.addOption(oForms);
6669

6770
HelpFormatter helper = new HelpFormatter();
6871
try {
@@ -76,7 +79,7 @@ public static void main(String[] args) {
7679
if (workerType.equals("text")) {
7780
service.execute(new TextHordeRunnable(INSTANCE, kaiURL, kaiName, kaiAPIKey, clusterURL, backupClusterURL, priorityUsernames));
7881
} else if (workerType.equals("interrogate")) {
79-
service.execute(new InterrogationHordeRunnable(INSTANCE, kaiURL, kaiName, kaiAPIKey, clusterURL, backupClusterURL, priorityUsernames));
82+
service.execute(new InterrogationHordeRunnable(INSTANCE, kaiURL, kaiName, kaiAPIKey, clusterURL, backupClusterURL, priorityUsernames, forms));
8083
}
8184
} catch (ParseException e) {
8285
System.out.println(e.getMessage());
@@ -125,6 +128,9 @@ public HordeBridge(CommandLine cmd) {
125128
if (cmd.hasOption("priority_usernames")) {
126129
priorityUsernames = cmd.getOptionValues("priority_usernames");
127130
}
131+
if (cmd.hasOption("forms")) {
132+
forms = cmd.getOptionValues("forms");
133+
}
128134
} else {
129135
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
130136

@@ -162,8 +168,4 @@ public KAIGenerator getGenerator() {
162168
public InterrogationGenerator getInterroGenerator() {
163169
return interroGenerator;
164170
}
165-
166-
public HordeConfig getConfig() {
167-
return config;
168-
}
169171
}

src/main/java/me/Logicism/JavaHordeBridge/runnables/InterrogationHordeRunnable.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class InterrogationHordeRunnable implements Runnable {
2424
private String clusterURL;
2525
private String backupClusterURL;
2626
private String[] priorityUsernames;
27+
private String[] forms;
2728

2829
private boolean isRunning = true;
2930
private int failedRequestsCount = 0;
@@ -32,14 +33,15 @@ public class InterrogationHordeRunnable implements Runnable {
3233
private Long lastValidated = null;
3334
private boolean online = false;
3435

35-
public InterrogationHordeRunnable(HordeBridge bridge, String kaiURL, String kaiName, String apiKey, String clusterURL, String backupClusterURL, String[] priorityUsernames) {
36+
public InterrogationHordeRunnable(HordeBridge bridge, String kaiURL, String kaiName, String apiKey, String clusterURL, String backupClusterURL, String[] priorityUsernames, String[] forms) {
3637
this.bridge = bridge;
3738
this.kaiURL = kaiURL;
3839
this.kaiName = kaiName;
3940
this.apiKey = apiKey;
4041
this.backupClusterURL = backupClusterURL;
4142
this.clusterURL = clusterURL;
4243
this.priorityUsernames = priorityUsernames;
44+
this.forms = forms;
4345
}
4446

4547
@Override
@@ -87,7 +89,7 @@ public void run() {
8789

8890
if (online) {
8991
JSONObject interrogatePayload = new JSONObject();
90-
interrogatePayload.put("name", kaiName).put("forms", bridge.getConfig().getInterrogationForms()).put("amount", 1).put("threads", 1).put("max_tiles", 64).put("bridge_version", HordeBridge.BRIDGE_VERSION).put("bridge_agent", HordeBridge.BRIDGE_AGENT);;
92+
interrogatePayload.put("name", kaiName).put("amount", 1).put("threads", 1).put("max_tiles", 64).put("bridge_version", HordeBridge.BRIDGE_VERSION).put("bridge_agent", HordeBridge.BRIDGE_AGENT);;
9193
if (priorityUsernames.length != 0) {
9294
JSONArray priorityUsernameArrays = new JSONArray();
9395

@@ -97,6 +99,11 @@ public void run() {
9799

98100
interrogatePayload.put("priority_usernames", priorityUsernameArrays);
99101
}
102+
JSONArray formsArray = new JSONArray();
103+
for (String form : forms) {
104+
formsArray.put(form);
105+
}
106+
interrogatePayload.put("forms", formsArray);
100107

101108
Map<String, String> headers = new HashMap<>();
102109
headers.put("apikey", apiKey);

0 commit comments

Comments
 (0)