release: v1.0.2 — rename Seedance 2.0 models to SD 2, fix Windows build size

- Rename Seedance 2.0 → SD 2 (t2v, extend, i2v models)
- Bump version to 1.0.2
- Update README download links to v1.0.2
- Fix afterPack.js to strip platform-inappropriate @next/swc native binaries,
  reducing Windows installer from ~739 MB unpacked to ~144 MB
- Windows build now targets x64 only (arm64 cross-compile via Wine is broken on macOS)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Anil Matcha 2026-04-22 06:57:25 +05:30
parent 4c48d58159
commit aa6917e339
4 changed files with 37 additions and 11 deletions

View file

@ -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)

View file

@ -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}`);

View file

@ -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"
]
}
]

View file

@ -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",