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:
@@ -723,20 +723,14 @@ async def seed_workflows(
|
||||
async def renderer_status(
|
||||
admin: User = Depends(require_global_admin),
|
||||
):
|
||||
"""Check health of renderer services."""
|
||||
from app.services.render_blender import find_blender, is_blender_available
|
||||
blender_available = is_blender_available()
|
||||
blender_bin = find_blender()
|
||||
return {
|
||||
"blender": {
|
||||
"available": blender_available,
|
||||
"note": (
|
||||
f"render-worker subprocess ({blender_bin})"
|
||||
if blender_available
|
||||
else "Blender not found — check render-worker container and BLENDER_BIN"
|
||||
),
|
||||
},
|
||||
}
|
||||
"""Check Blender availability on the render-worker via Celery task."""
|
||||
from app.tasks.gpu_tasks import check_blender_status
|
||||
try:
|
||||
result = check_blender_status.apply_async()
|
||||
data = result.get(timeout=10)
|
||||
except Exception as exc:
|
||||
data = {"available": False, "blender_bin": "", "version": "", "error": str(exc)}
|
||||
return {"blender": data}
|
||||
|
||||
|
||||
@router.post("/import-media-assets")
|
||||
|
||||
@@ -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."""
|
||||
|
||||
Reference in New Issue
Block a user