Skip to content

Commit 31d7cfc

Browse files
authored
Merge branch 'main' into feature/raster-blend-boolean
2 parents 7c4737f + 36e400d commit 31d7cfc

File tree

14 files changed

+430
-215
lines changed

14 files changed

+430
-215
lines changed

.github/CODEOWNERS

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,32 @@
11
# continuous integration
2-
/.github/workflows/ @lstein @blessedcoolant @hipsterusername @ebr @jazzhaiku @psychedelicious
2+
/.github/workflows/ @lstein @blessedcoolant
33

44
# documentation
5-
/docs/ @lstein @blessedcoolant @hipsterusername @psychedelicious
6-
/mkdocs.yml @lstein @blessedcoolant @hipsterusername @psychedelicious
5+
/docs/ @lstein @blessedcoolant
6+
/mkdocs.yml @lstein @blessedcoolant
77

88
# nodes
9-
/invokeai/app/ @blessedcoolant @psychedelicious @hipsterusername @jazzhaiku
9+
/invokeai/app/ @blessedcoolant @lstein
1010

1111
# installation and configuration
12-
/pyproject.toml @lstein @blessedcoolant @psychedelicious @hipsterusername
13-
/docker/ @lstein @blessedcoolant @psychedelicious @hipsterusername @ebr
14-
/scripts/ @ebr @lstein @psychedelicious @hipsterusername
15-
/installer/ @lstein @ebr @psychedelicious @hipsterusername
16-
/invokeai/assets @lstein @ebr @psychedelicious @hipsterusername
17-
/invokeai/configs @lstein @psychedelicious @hipsterusername
18-
/invokeai/version @lstein @blessedcoolant @psychedelicious @hipsterusername
12+
/pyproject.toml @lstein @blessedcoolant
13+
/docker/ @lstein @blessedcoolant
14+
/scripts/ @lstein
15+
/installer/ @lstein
16+
/invokeai/assets @lstein
17+
/invokeai/configs @lstein
18+
/invokeai/version @lstein @blessedcoolant
1919

2020
# web ui
21-
/invokeai/frontend @blessedcoolant @psychedelicious @lstein @maryhipp @hipsterusername
21+
/invokeai/frontend @blessedcoolant @lstein
2222

2323
# generation, model management, postprocessing
24-
/invokeai/backend @lstein @blessedcoolant @hipsterusername @jazzhaiku @psychedelicious @maryhipp
24+
/invokeai/backend @lstein @blessedcoolant
2525

2626
# front ends
27-
/invokeai/frontend/CLI @lstein @psychedelicious @hipsterusername
28-
/invokeai/frontend/install @lstein @ebr @psychedelicious @hipsterusername
29-
/invokeai/frontend/merge @lstein @blessedcoolant @psychedelicious @hipsterusername
30-
/invokeai/frontend/training @lstein @blessedcoolant @psychedelicious @hipsterusername
31-
/invokeai/frontend/web @psychedelicious @blessedcoolant @maryhipp @hipsterusername
27+
/invokeai/frontend/CLI @lstein
28+
/invokeai/frontend/install @lstein
29+
/invokeai/frontend/merge @lstein @blessedcoolant
30+
/invokeai/frontend/training @lstein @blessedcoolant
31+
/invokeai/frontend/web @blessedcoolant @lstein
32+

docs/installation/patchmatch.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ Prior to installing PyPatchMatch, you need to take the following steps:
7070
`from patchmatch import patch_match`: It should look like the following:
7171

7272
```py
73-
Python 3.10.12 (main, Jun 11 2023, 05:26:28) [GCC 11.4.0] on linux
73+
Python 3.12.3 (main, Aug 14 2025, 17:47:21) [GCC 13.3.0] on linux
7474
Type "help", "copyright", "credits" or "license" for more information.
7575
>>> from patchmatch import patch_match
7676
Compiling and loading c extensions from "/home/lstein/Projects/InvokeAI/.invokeai-env/src/pypatchmatch/patchmatch".

docs/installation/requirements.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ The requirements below are rough guidelines for best performance. GPUs with less
4141

4242
You don't need to do this if you are installing with the [Invoke Launcher](./quick_start.md).
4343

44-
Invoke requires python 3.10 through 3.12. If you don't already have one of these versions installed, we suggest installing 3.12, as it will be supported for longer.
44+
Invoke requires python 3.11 through 3.12. If you don't already have one of these versions installed, we suggest installing 3.12, as it will be supported for longer.
4545

4646
Check that your system has an up-to-date Python installed by running `python3 --version` in the terminal (Linux, macOS) or cmd/powershell (Windows).
4747

@@ -56,7 +56,7 @@ Check that your system has an up-to-date Python installed by running `python3 --
5656
=== "macOS"
5757

5858
- Install python with [an official installer].
59-
- If model installs fail with a certificate error, you may need to run this command (changing the python version to match what you have installed): `/Applications/Python\ 3.10/Install\ Certificates.command`
59+
- If model installs fail with a certificate error, you may need to run this command (changing the python version to match what you have installed): `/Applications/Python\ 3.11/Install\ Certificates.command`
6060
- If you haven't already, you will need to install the XCode CLI Tools by running `xcode-select --install` in a terminal.
6161

6262
=== "Linux"

invokeai/backend/model_manager/configs/controlnet.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,9 @@ def from_model_on_disk(cls, mod: ModelOnDisk, override_fields: dict[str, Any]) -
8888

8989
cls._validate_base(mod)
9090

91-
return cls(**override_fields)
91+
repo_variant = {"repo_variant": override_fields.get("repo_variant", cls._get_repo_variant_or_raise(mod))}
92+
args = override_fields | repo_variant
93+
return cls(**args)
9294

9395
@classmethod
9496
def _validate_base(cls, mod: ModelOnDisk) -> None:

invokeai/frontend/web/public/locales/de.json

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1630,12 +1630,6 @@
16301630
"showNonRasterLayers": "Nicht-Rasterebenen anzeigen (Umschalt+H)",
16311631
"hideNonRasterLayers": "Nicht-Rasterebenen ausblenden (Umschalt+H)"
16321632
},
1633-
"upsell": {
1634-
"shareAccess": "Zugang teilen",
1635-
"professional": "Professionell",
1636-
"inviteTeammates": "Teamkollegen einladen",
1637-
"professionalUpsell": "Verfügbar in der Professional Edition von Invoke. Klicken Sie hier oder besuchen Sie invoke.com/pricing für weitere Details."
1638-
},
16391633
"upscaling": {
16401634
"creativity": "Kreativität",
16411635
"structure": "Struktur",

invokeai/frontend/web/public/locales/es.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -466,11 +466,6 @@
466466
"prompts_other": "Prompts",
467467
"prune": "Eliminar"
468468
},
469-
"upsell": {
470-
"inviteTeammates": "Invitar compañeros de equipo",
471-
"shareAccess": "Compartir acceso",
472-
"professionalUpsell": "Disponible en la edición profesional de Invoke. Haga clic aquí o visite invoke.com/pricing para obtener más detalles."
473-
},
474469
"controlLayers": {
475470
"layer_one": "Capa",
476471
"layer_many": "Capas",

invokeai/frontend/web/public/locales/fr.json

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2249,12 +2249,6 @@
22492249
"toGetStartedLocal": "Pour commencer, assurez-vous de télécharger ou d'importer des modèles nécessaires pour exécuter Invoke. Ensuite, saisissez le prompt dans la boîte et cliquez sur <StrongComponent>Invoke</StrongComponent> pour générer votre première image. Sélectionnez un template de prompt pour améliorer les résultats. Vous pouvez choisir de sauvegarder vos images directement sur <StrongComponent>Galerie</StrongComponent> ou les modifier sur la <StrongComponent>Toile</StrongComponent>.",
22502250
"lowVRAMMode": "Pour de meilleures performances, suivez notre <LinkComponent>guide Low VRAM</LinkComponent>."
22512251
},
2252-
"upsell": {
2253-
"shareAccess": "Partager l'accès",
2254-
"inviteTeammates": "Inviter des collègues",
2255-
"professionalUpsell": "Disponible dans l'édition professionnelle d'Invoke. Cliquez ici ou visitez invoke.com/pricing pour plus de détails.",
2256-
"professional": "Professionnel"
2257-
},
22582252
"supportVideos": {
22592253
"watch": "Regarder",
22602254
"gettingStarted": "Commencer",

invokeai/frontend/web/public/locales/it.json

Lines changed: 17 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -197,14 +197,7 @@
197197
"assets": "Risorse",
198198
"images": "Immagini",
199199
"useForPromptGeneration": "Usa per generare il prompt",
200-
"deleteVideo_one": "Elimina video",
201-
"deleteVideo_many": "Elimina {{count}} video",
202-
"deleteVideo_other": "Elimina {{count}} video",
203-
"deleteVideoPermanent": "I video eliminati non possono essere ripristinati.",
204-
"videos": "Video",
205-
"videosTab": "Video creati e salvati in Invoke.",
206200
"jump": "Salta",
207-
"noVideoSelected": "Nessun video selezionato",
208201
"noImagesInGallery": "Nessuna immagine da visualizzare",
209202
"unableToLoad": "Impossibile caricare la Galleria",
210203
"selectAnImageToCompare": "Seleziona un'immagine da confrontare",
@@ -276,10 +269,6 @@
276269
"title": "Seleziona la scheda Genera",
277270
"desc": "Seleziona la scheda Genera."
278271
},
279-
"selectVideoTab": {
280-
"title": "Seleziona la scheda Video",
281-
"desc": "Seleziona la scheda Video."
282-
},
283272
"promptHistoryPrev": {
284273
"title": "Prompt precedente nella cronologia",
285274
"desc": "Quando il prompt è attivo, passa al prompt precedente (più vecchio) nella cronologia."
@@ -579,9 +568,6 @@
579568
"desc": "Aggiungi/Rimuovi contrassegno all'immagine selezionata.",
580569
"title": "Aggiungi / Rimuovi contrassegno immagine"
581570
}
582-
},
583-
"video": {
584-
"title": "Video"
585571
}
586572
},
587573
"modelManager": {
@@ -664,7 +650,7 @@
664650
"loraTriggerPhrases": "Frasi Trigger LoRA",
665651
"mainModelTriggerPhrases": "Frasi Trigger del modello principale",
666652
"inplaceInstall": "Installazione sul posto",
667-
"inplaceInstallDesc": "Installa i modelli senza copiare i file. Quando si utilizza il modello, verrà caricato da questa posizione. Se disabilitato, i file del modello verranno copiati nella directory dei modelli gestiti da Invoke durante l'installazione.",
653+
"inplaceInstallDesc": "Installa i modelli senza spostare i file. Quando si utilizza il modello, verrà caricato dalla posizione originale. Se disabilitato, i file del modello verranno spostati nella directory dei modelli gestiti da Invoke durante l'installazione.",
668654
"installQueue": "Coda di installazione",
669655
"install": "Installa",
670656
"installRepo": "Installa Repository",
@@ -752,7 +738,17 @@
752738
"filterModels": "Filtra i modelli",
753739
"ipAdapters": "Adattatori IP",
754740
"showOnlyRelatedModels": "Correlati",
755-
"starterModelsInModelManager": "I modelli di avvio possono essere trovati in Gestione Modelli"
741+
"starterModelsInModelManager": "I modelli di avvio possono essere trovati in Gestione Modelli",
742+
"unidentifiedModelTitle": "Impossibile identificare il modello",
743+
"unidentifiedModelMessage": "Non siamo riusciti a identificare il tipo, la base e/o il formato del modello installato. Prova a modificare il modello e a selezionare le impostazioni appropriate.",
744+
"unidentifiedModelMessage2": "Se non vedi le impostazioni corrette o il modello non funziona dopo averle modificate, chiedi aiuto su <DiscordLink /> o crea un problema su <GitHubIssuesLink />.",
745+
"modelFormat": "Formato del modello",
746+
"modelSettingsWarning": "Queste impostazioni indicano a Invoke di che tipo di modello si tratta e come caricarlo. Se Invoke non le ha rilevate correttamente durante l'installazione del modello, o se il modello è classificato come Sconosciuto, potrebbe essere necessario modificarle manualmente.",
747+
"reidentify": "Reidentificare",
748+
"reidentifyTooltip": "Se un modello non è stato installato correttamente (ad esempio, ha il tipo sbagliato o non funziona), puoi provare a identificarlo nuovamente. Questo reimposterà tutte le impostazioni personalizzate che potresti aver applicato.",
749+
"reidentifySuccess": "Modello reidentificato con successo",
750+
"reidentifyUnknown": "Impossibile identificare il modello",
751+
"reidentifyError": "Errore durante la reidentificazione del modello"
756752
},
757753
"parameters": {
758754
"images": "Immagini",
@@ -835,7 +831,6 @@
835831
"promptExpansionResultPending": "Accetta o ignora il risultato dell'espansione del prompt",
836832
"promptExpansionPending": "Espansione del prompt in corso",
837833
"noStartingFrameImage": "Nessuna immagine del fotogramma iniziale",
838-
"videoIsDisabled": "La generazione di video non è abilitata per gli account {{accountType}}.",
839834
"incompatibleLoRAs": "Aggiunti LoRA incompatibili",
840835
"emptyBatches": "lotti vuoti",
841836
"fluxModelIncompatibleBboxWidth": "$t(parameters.invoke.fluxRequiresDimensionsToBeMultipleOf16), la larghezza del riquadro è {{width}}",
@@ -875,17 +870,9 @@
875870
"images_withCount_one": "Immagine",
876871
"images_withCount_many": "Immagini",
877872
"images_withCount_other": "Immagini",
878-
"videos_withCount_one": "Video",
879-
"videos_withCount_many": "Video",
880-
"videos_withCount_other": "Video",
881-
"startingFrameImage": "Fotogramma iniziale",
882-
"videoActions": "Azioni video",
883-
"sendToVideo": "Invia al Video",
884-
"video": "Video",
885873
"resolution": "Risoluzione",
886874
"downloadImage": "Scarica l'immagine",
887-
"showOptionsPanel": "Mostra pannello laterale (O o T)",
888-
"startingFrameImageAspectRatioWarning": "Le proporzioni dell'immagine non corrispondono alle proporzioni del video ({{videoAspectRatio}}). Ciò potrebbe causare ritagli imprevisti durante la generazione del video."
875+
"showOptionsPanel": "Mostra pannello laterale (O o T)"
889876
},
890877
"settings": {
891878
"models": "Modelli",
@@ -1283,12 +1270,6 @@
12831270
"uncategorizedImages": "Immagini non categorizzate",
12841271
"deleteAllUncategorizedImages": "Elimina tutte le immagini non categorizzate",
12851272
"locateInGalery": "Trova nella Galleria",
1286-
"movingVideosToBoard_one": "Spostamento di {{count}} video sulla bacheca:",
1287-
"movingVideosToBoard_many": "Spostamento di {{count}} video sulla bacheca:",
1288-
"movingVideosToBoard_other": "Spostamento di {{count}} video sulla bacheca:",
1289-
"videosWithCount_one": "{{count}} video",
1290-
"videosWithCount_many": "{{count}} video",
1291-
"videosWithCount_other": "{{count}} video",
12921273
"deletedImagesCannotBeRestored": "Le immagini eliminate non possono essere ripristinate.",
12931274
"hideBoards": "Nascondi bacheche",
12941275
"viewBoards": "Visualizza le bacheche"
@@ -1919,12 +1900,6 @@
19191900
"seamlessXAxis": "Asse X senza giunte",
19201901
"seamlessYAxis": "Asse Y senza giunte",
19211902
"vae": "VAE",
1922-
"videoDetails": "Dettagli video",
1923-
"noVideoDetails": "Nessun dettaglio video trovato",
1924-
"videoModel": "Modello",
1925-
"videoDuration": "Durata",
1926-
"videoAspectRatio": "Proporzioni",
1927-
"videoResolution": "Risoluzione",
19281903
"parsingFailed": "Analisi non riuscita",
19291904
"recallParameter": "Richiama {{label}}"
19301905
},
@@ -2618,8 +2593,7 @@
26182593
"upscaling": "Amplia",
26192594
"upscalingTab": "$t(ui.tabs.upscaling) $t(common.tab)",
26202595
"gallery": "Galleria",
2621-
"generate": "Genera",
2622-
"video": "Video"
2596+
"generate": "Genera"
26232597
},
26242598
"launchpad": {
26252599
"workflowsTitle": "Approfondisci i flussi di lavoro.",
@@ -2697,23 +2671,13 @@
26972671
"generate": {
26982672
"canvasCalloutTitle": "Vuoi avere più controllo, modificare e affinare le tue immagini?",
26992673
"canvasCalloutLink": "Per ulteriori funzionalità, vai su Tela."
2700-
},
2701-
"videoTitle": "Genera video da prompt testuale.",
2702-
"addStartingFrame": {
2703-
"title": "Aggiungi un fotogramma iniziale",
2704-
"description": "Aggiungi un'immagine per controllare il primo fotogramma del tuo video."
2705-
},
2706-
"video": {
2707-
"startingFrameCalloutTitle": "Aggiungi un fotogramma iniziale",
2708-
"startingFrameCalloutDesc": "Aggiungi un'immagine per controllare il primo fotogramma del tuo video."
27092674
}
27102675
},
27112676
"panels": {
27122677
"launchpad": "Rampa di lancio",
27132678
"workflowEditor": "Editor del flusso di lavoro",
27142679
"imageViewer": "Visualizzatore",
2715-
"canvas": "Tela",
2716-
"video": "Video"
2680+
"canvas": "Tela"
27172681
}
27182682
},
27192683
"upscaling": {
@@ -2739,12 +2703,6 @@
27392703
"tileSize": "Dimensione del riquadro",
27402704
"tileOverlap": "Sovrapposizione riquadro"
27412705
},
2742-
"upsell": {
2743-
"inviteTeammates": "Invita collaboratori",
2744-
"shareAccess": "Condividi l'accesso",
2745-
"professional": "Professionale",
2746-
"professionalUpsell": "Disponibile nell'edizione Professional di Invoke. Fai clic qui o visita invoke.com/pricing per ulteriori dettagli."
2747-
},
27482706
"stylePresets": {
27492707
"active": "Attivo",
27502708
"choosePromptTemplate": "Scegli un modello di prompt",
@@ -2803,9 +2761,8 @@
28032761
"readReleaseNotes": "Leggi le note di rilascio",
28042762
"watchRecentReleaseVideos": "Guarda i video su questa versione",
28052763
"items": [
2806-
"Seleziona oggetto v2: selezione degli oggetti migliorata con input di punti e riquadri o prompt di testo.",
2807-
"Regolazioni del livello raster: regola facilmente la luminosità, il contrasto, la saturazione, le curve e altro ancora del livello.",
2808-
"Cronologia prompt: rivedi e richiama rapidamente i tuoi ultimi 100 prompt."
2764+
"Gestione modelli: se non è possibile identificare un modello durante l'installazione, ora è possibile selezionare manualmente il tipo di modello e l'architettura.",
2765+
"Interno: sistema di identificazione dei modelli migliorato, che semplifica per i collaboratori l'aggiunta del supporto per nuovi modelli."
28092766
],
28102767
"watchUiUpdatesOverview": "Guarda la panoramica degli aggiornamenti dell'interfaccia utente"
28112768
},
@@ -2858,9 +2815,5 @@
28582815
},
28592816
"lora": {
28602817
"weight": "Peso"
2861-
},
2862-
"video": {
2863-
"noVideoSelected": "Nessun video selezionato",
2864-
"selectFromGallery": "Seleziona un video dalla galleria per riprodurlo"
28652818
}
28662819
}

0 commit comments

Comments
 (0)