diff --git a/README.md b/README.md index ebdd875..7c224fe 100644 --- a/README.md +++ b/README.md @@ -67,9 +67,23 @@ Modly supports external AI model extensions. Each extension is a GitHub reposito ### Official extensions -| Extension | Model | -|-----------|-------| -| [modly-hunyuan3d-mini-extension](https://github.com/lightningpixel/modly-hunyuan3d-mini-extension) | Hunyuan3D 2 Mini | +| Extension | Model | URL | +|-----------|-------|-----| +| [modly-hunyuan3d-mini-extension](https://github.com/lightningpixel/modly-hunyuan3d-mini-extension) | Hunyuan3D 2 Mini | https://github.com/lightningpixel/modly-hunyuan3d-mini-extension | + +### How to install an extension + +**1.** Go to the **Models** page and click **Install from GitHub**. + +![Install from GitHub](docs/install-from-github.png) + +**2.** Enter the HTTPS URL of the extension repository and confirm. + +![Enter extension URL](docs/install-extension.png) + +**3.** Once the extension is installed, download the model or one of its variants. + +![Install models](docs/install-models.png) --- diff --git a/docs/install-extension.png b/docs/install-extension.png new file mode 100644 index 0000000..f64b545 Binary files /dev/null and b/docs/install-extension.png differ diff --git a/docs/install-from-github.png b/docs/install-from-github.png new file mode 100644 index 0000000..1de4163 Binary files /dev/null and b/docs/install-from-github.png differ diff --git a/docs/install-models.png b/docs/install-models.png new file mode 100644 index 0000000..1c4ca09 Binary files /dev/null and b/docs/install-models.png differ diff --git a/package.json b/package.json index 629dceb..8a2af26 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "modly", - "version": "0.1.1", + "version": "0.1.2", "description": "Local AI-powered 3D mesh generation from images", "main": "./out/main/index.js", "author": "Modly", diff --git a/src/areas/generate/components/GenerationOptions.tsx b/src/areas/generate/components/GenerationOptions.tsx index 0814b6c..f89a772 100644 --- a/src/areas/generate/components/GenerationOptions.tsx +++ b/src/areas/generate/components/GenerationOptions.tsx @@ -1,6 +1,6 @@ import { useEffect, useRef, useState } from 'react' import { useAppStore } from '@shared/stores/appStore' -import { FieldLabel, Tooltip } from '@shared/components/ui' +import { FieldLabel, Tooltip, ConfirmModal } from '@shared/components/ui' import type { CatalogModel } from '../models' @@ -161,6 +161,7 @@ export default function GenerationOptions(): JSX.Element { ) const isDisabled = currentJob?.status === 'uploading' || currentJob?.status === 'generating' + const [showTextureWarning, setShowTextureWarning] = useState(false) useEffect(() => { window.electron.model.listDownloaded() @@ -186,6 +187,7 @@ export default function GenerationOptions(): JSX.Element { } return ( + <>

Options

@@ -416,7 +418,13 @@ export default function GenerationOptions(): JSX.Element {
+ + {showTextureWarning && ( + { + setGenerationOptions({ enableTexture: true }) + setShowTextureWarning(false) + }} + onCancel={() => setShowTextureWarning(false)} + /> + )} + ) } diff --git a/src/areas/setup/FirstRunSetup.tsx b/src/areas/setup/FirstRunSetup.tsx index 2493ffc..518e36f 100644 --- a/src/areas/setup/FirstRunSetup.tsx +++ b/src/areas/setup/FirstRunSetup.tsx @@ -71,7 +71,7 @@ function InstallingPanel({ progress }: { progress: SetupProgress | null }): JSX. const done = idx < currentIdx const active = idx === currentIdx return ( -
+
-

+

{progress?.currentPackage ?? (currentIdx >= 0 ? STEPS[currentIdx]?.label : 'Initialising…')}

{percent}%

@@ -167,9 +167,38 @@ export default function FirstRunSetup(): JSX.Element { } return ( -
- - {renderPanel()} +
+ {/* Title bar */} +
+
+
+ + +
+
+ + {/* Content */} +
+ + {renderPanel()} +
) } diff --git a/src/shared/stores/appStore.ts b/src/shared/stores/appStore.ts index 9b009a8..8bb11bd 100644 --- a/src/shared/stores/appStore.ts +++ b/src/shared/stores/appStore.ts @@ -44,7 +44,7 @@ const DEFAULT_OPTIONS: GenerationOptions = { modelId: 'sf3d', vertexCount: 10000, remesh: 'quad', - enableTexture: true, + enableTexture: false, textureResolution: 512, octreeResolution: 380, guidanceScale: 5.5,