From 589b775cda1e517ea3f61f7cd24be0c90314a541 Mon Sep 17 00:00:00 2001 From: Ryan Shpeherd Date: Fri, 25 Sep 2026 22:40:24 -0400 Subject: [PATCH] Fixes and new ai model --- aiworker/run.pl | 14 ++++++++------ ui/app.py | 20 +++++++++++++++----- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/aiworker/run.pl b/aiworker/run.pl index 00bdc12..c5cbf68 100755 --- a/aiworker/run.pl +++ b/aiworker/run.pl @@ -6,13 +6,15 @@ use JSON; use Data::Dumper; my $seconds = $ENV{'SECONDS_PER_FRAME'} || 30; -my $ollama = $ENV{'OLLAMA_URL'} || die "OLLAMA_URL environment variable not set\n"; -my $api = $ENV{'API_BASE_URL'} || die "API_BASE_URL environment variable not set\n"; +my $ollama = $ENV{'OLLAMA_URL'} || 'http://10.0.1.7:11434'; +my $api = $ENV{'API_BASE_URL'} || 'http://10.0.1.7:3000'; my $task_count = $ENV{'TASK_COUNT'} || 1; my $sensitivity = 20; my $resolution = "672:672"; +my $model = "hf.co/Jommarn/UNSEEN_Gemma_4_26B_NSFW-GGUF:Q8_0"; chdir("/tmp") || die "Unable to change directory to /tmp: $!\n"; + my $ua = LWP::UserAgent->new; $ua->timeout(60); @@ -56,16 +58,16 @@ sub CheckPath { $data=undef; my $ref = { - 'model' => 'srizon/pixie:latest', - 'prompt' => "Are there any african american people in this photo, whether they are shown completely or not? Please answer 'yes' or 'no' only.", + 'model' => $model, + 'prompt' => "Are there any african american men in this photo, whether they are shown completely or not? Judge based on skin tone, accounting for shadows. Answer yes for very dark skin.Please answer 'yes' or 'no' only.", 'images' => [$base64], }; my $url = "$ollama/api/generate"; my $res = GetRest($url, $ref); - print "\t$res\n"; + print "$file\t$res\n"; $total++; - if($res=~/yes/i) { + if($res=~/yes$/i) { $yes++; } unlink($file); diff --git a/ui/app.py b/ui/app.py index 7042024..86c7d63 100644 --- a/ui/app.py +++ b/ui/app.py @@ -214,6 +214,10 @@ def index(): @app.route("/review/") def review_task(task_id): """Detail view: show task info + embedded video player.""" + return_page = request.args.get("page", 1, type=int) or 1 + return_page = max(return_page, 1) + return_queue_url = "/" if return_page == 1 else f"/?page={return_page}" + try: data = api_get(f"task/{task_id}") if not data or not data.get("id"): @@ -240,7 +244,11 @@ def review_task(task_id): except (json.JSONDecodeError, TypeError): video_obj["prev_results"] = {} - return render_template_string(_REVIEW_TEMPLATE, video=video_obj) + return render_template_string( + _REVIEW_TEMPLATE, + video=video_obj, + return_queue_url=return_queue_url, + ) # --------------------------------------------------------------------------- @@ -411,7 +419,7 @@ _INDEX_TEMPLATE = """ {{ t.task_type }} {{ t.status }} {{ t.created_at|string|truncate(19, True, '') if t.created_at else '—' }} - Review + Review {% endfor %} @@ -464,7 +472,7 @@ _REVIEW_TEMPLATE = """
{% if video.prev_results and video.prev_results.review_verdict %} @@ -505,6 +513,8 @@ _REVIEW_TEMPLATE = """