diff --git a/README.md b/README.md index 5f5337d..f048a7b 100644 --- a/README.md +++ b/README.md @@ -24,9 +24,9 @@ One-click installers — no Node.js or terminal required. | Platform | Download | |---|---| -| macOS Apple Silicon (M1/M2/M3/M4) | [Open Generative AI-1.0.0-arm64.dmg](https://github.com/Anil-matcha/Open-Generative-AI/releases/download/v1.0.0/Open.Generative.AI-1.0.0-arm64.dmg) | -| macOS Intel (x64) | [Open Generative AI-1.0.0.dmg](https://github.com/Anil-matcha/Open-Generative-AI/releases/download/v1.0.0/Open.Generative.AI-1.0.0.dmg) | -| Windows (x64 + ARM64) | [Open Generative AI Setup 1.0.0.exe](https://github.com/Anil-matcha/Open-Generative-AI/releases/download/v1.0.0/Open.Generative.AI.Setup.1.0.0.exe) | +| macOS Apple Silicon (M1/M2/M3/M4) | [Open Generative AI-1.0.2-arm64.dmg](https://github.com/Anil-matcha/Open-Generative-AI/releases/download/v1.0.2/Open.Generative.AI-1.0.2-arm64.dmg) | +| macOS Intel (x64) | [Open Generative AI-1.0.2.dmg](https://github.com/Anil-matcha/Open-Generative-AI/releases/download/v1.0.2/Open.Generative.AI-1.0.2.dmg) | +| Windows (x64 + ARM64) | [Open Generative AI Setup 1.0.2.exe](https://github.com/Anil-matcha/Open-Generative-AI/releases/download/v1.0.2/Open.Generative.AI.Setup.1.0.2.exe) | | Linux (Ubuntu x64) | Build locally with `npm run electron:build:linux` | All releases: [github.com/Anil-matcha/Open-Generative-AI/releases](https://github.com/Anil-matcha/Open-Generative-AI/releases) diff --git a/afterPack.js b/afterPack.js index 869b8ce..f407ee0 100644 --- a/afterPack.js +++ b/afterPack.js @@ -1,8 +1,35 @@ import { execSync } from 'child_process'; import path from 'path'; +import fs from 'fs'; export default async function afterPack({ appOutDir, packager }) { - if (packager.platform.name !== 'mac') return; + const platformName = packager.platform.name; + + // Remove Next.js SWC native binaries that don't belong on this target platform. + // They are bundled because `next` is in dependencies, but only the host-platform + // binary is ever used at runtime in the Electron app. + const nextDir = path.join(appOutDir, + platformName === 'mac' + ? `${packager.appInfo.productName}.app/Contents/Resources` + : 'resources', + 'app.asar.unpacked/node_modules/@next' + ); + + if (fs.existsSync(nextDir)) { + const keepPrefix = platformName === 'mac' ? 'swc-darwin' + : platformName === 'windows' ? 'swc-win32' + : 'swc-linux'; + + for (const entry of fs.readdirSync(nextDir)) { + if (entry.startsWith('swc-') && !entry.startsWith(keepPrefix)) { + const fullPath = path.join(nextDir, entry); + fs.rmSync(fullPath, { recursive: true, force: true }); + console.log(` • removed foreign SWC binary path=${fullPath}`); + } + } + } + + if (platformName !== 'mac') return; const appPath = path.join(appOutDir, `${packager.appInfo.productName}.app`); console.log(` • ad-hoc signing path=${appPath}`); diff --git a/package.json b/package.json index 75ae726..6af5412 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "open-generative-ai", "description": "Open-source alternative to Higgsfield AI — AI image, video, cinema and lip sync studio", "private": true, - "version": "1.0.1", + "version": "1.0.2", "workspaces": [ "packages/studio" ], @@ -52,8 +52,7 @@ { "target": "nsis", "arch": [ - "x64", - "arm64" + "x64" ] } ] diff --git a/src/lib/models.js b/src/lib/models.js index 0a9a010..f4c4073 100644 --- a/src/lib/models.js +++ b/src/lib/models.js @@ -2162,7 +2162,7 @@ export const t2vModels = [ }, { "id": "seedance-v2.0-t2v", - "name": "Seedance 2.0", + "name": "SD 2", "inputs": { "prompt": { "type": "string", "title": "Prompt", "name": "prompt", "description": "The prompt to generate the video" }, "aspect_ratio": { "enum": ["16:9", "9:16", "4:3", "3:4"], "title": "Aspect Ratio", "name": "aspect_ratio", "type": "string", "description": "Aspect ratio of the output video.", "default": "16:9" }, @@ -2172,10 +2172,10 @@ export const t2vModels = [ }, { "id": "seedance-v2.0-extend", - "name": "Seedance 2.0 Extend", + "name": "SD 2 Extend", "requiresRequestId": true, "inputs": { - "request_id": { "type": "string", "title": "Request ID", "name": "request_id", "description": "Request ID of the original Seedance 2.0 video generation.", "placeholder": "abcdefg-123-456-789-a1b2c3d4e5f6" }, + "request_id": { "type": "string", "title": "Request ID", "name": "request_id", "description": "Request ID of the original SD 2 video generation.", "placeholder": "abcdefg-123-456-789-a1b2c3d4e5f6" }, "prompt": { "type": "string", "title": "Prompt", "name": "prompt", "description": "Optional prompt to guide the extension. If omitted, the model continues with the original scene." }, "duration": { "enum": [5, 10, 15], "title": "Duration", "name": "duration", "type": "int", "description": "The duration of the generated video extension in seconds", "default": 5 }, "quality": { "enum": ["high", "basic"], "title": "Quality", "name": "quality", "type": "string", "description": "Quality of the generated video.", "default": "basic" } @@ -7938,7 +7938,7 @@ export const i2vModels = [ }, { "id": "seedance-v2.0-i2v", - "name": "Seedance 2.0 I2V", + "name": "SD 2 I2V", "endpoint": "seedance-v2.0-i2v", "family": "seedance-v2.0", "imageField": "images_list",