refactor: clean up Render Settings — remove 11 unused settings, fix Blender status

Removed from UI (saved to DB but never read by any service):
- Max Concurrent Renders, Stall Timeout, Thumbnail Format, Product Thumbnail Priority
- Render Linear/Angular Deflection (only Scene deflections are used)
- GLB Scale Factor, Smooth Normals, GLB Material Mode, PBR Roughness, PBR Metallic

Fixed Blender status check:
- Old: called is_blender_available() in backend container (Blender not installed there)
- New: dispatches Celery task on asset_pipeline queue → runs in render-worker container
- Returns: available=true, version="Blender 5.0.1", binary path
- Status card moved to System Tools tab with refresh button

Kept active: engine, device, samples, smooth angle, tessellation, scene deflections,
3D viewer zoom limits

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-15 09:37:54 +01:00
parent 9a794ff2da
commit 2c7eb81aab
3 changed files with 137 additions and 418 deletions
+20
View File
@@ -5,6 +5,26 @@ from app.tasks.celery_app import celery_app
logger = logging.getLogger(__name__)
@celery_app.task(name="app.tasks.gpu_tasks.check_blender_status", queue="asset_pipeline")
def check_blender_status() -> dict:
"""Quick Blender availability check on the render-worker."""
import subprocess
from app.services.render_blender import find_blender
blender_bin = find_blender()
if not blender_bin:
return {"available": False, "blender_bin": "", "version": ""}
try:
result = subprocess.run(
[blender_bin, "--version"],
capture_output=True, text=True, timeout=10,
)
version = result.stdout.strip().split("\n")[0] if result.returncode == 0 else "unknown"
except Exception:
version = "unknown"
return {"available": True, "blender_bin": blender_bin, "version": version}
@celery_app.task(name="app.tasks.gpu_tasks.probe_gpu", queue="asset_pipeline")
def probe_gpu() -> dict:
"""Run Blender GPU probe on the render-worker. Stores result in system_settings."""