diff --git a/backend/server.js b/backend/server.js index b8ad62f..64e22f6 100644 --- a/backend/server.js +++ b/backend/server.js @@ -516,7 +516,9 @@ app.post('/api/sparkplug/generate-3d', authenticate, async (req, res) => { const response = await axios.post('https://api.meshy.ai/openapi/v1/multi-image-to-3d', { image_urls: base64Images, - enable_pbr: true + enable_pbr: true, + topology: 'quad', + target_polycount: 50000 }, { headers: { 'Authorization': `Bearer ${meshyKey}`, diff --git a/src/pages/SparkPlug.tsx b/src/pages/SparkPlug.tsx index 27211f4..8db4ab0 100644 --- a/src/pages/SparkPlug.tsx +++ b/src/pages/SparkPlug.tsx @@ -35,6 +35,9 @@ export default function SparkPlug() { // Step 4: 3D Model const [modelProgress, setModelProgress] = useState(0); const [generatedGlbUrl, setGeneratedGlbUrl] = useState(null); + + // HQ Image Preview + const [previewImage, setPreviewImage] = useState(null); const handleFileUpload = async (e: React.ChangeEvent) => { if (e.target.files && e.target.files[0]) { @@ -338,14 +341,17 @@ export default function SparkPlug() {
{generatedImages.length > 0 ? (
- {generatedImages.map((img, idx) => ( -
- {`View -
- {idx === 0 ? 'FRONT' : idx === 1 ? 'BACK' : idx === 2 ? 'LEFT' : 'RIGHT'} + {generatedImages.map((img, idx) => ( +
setPreviewImage(img)}> + {`View +
+ {idx === 0 ? 'FRONT' : idx === 1 ? 'BACK' : idx === 2 ? 'LEFT' : 'RIGHT'} +
+
+ Preview HQ +
-
- ))} + ))}
) : (
@@ -428,6 +434,30 @@ export default function SparkPlug() {
+ + {/* HQ Image Preview Modal */} + {previewImage && ( +
setPreviewImage(null)} + > + + HQ Preview e.stopPropagation()} + /> +
+ )}
); }