 ##  [Opret flotte grafikker med Nushell og Gemini 3](/index.php/da/node/142) 

    *Indsendt af Lennart den tor, 11 dec 2025 - 09:28*  

  ![kaffe](/sites/default/files/styles/wide/public/2025-12/coffee.png.webp?itok=bkbDzWk7)

 

Forestil dig at kunne oprette grafik i alle mulige populære formater.

Direkte fra kommandolinjen!

Jeg ved, at det ikke er alles drøm. Men så igen, du burde virkelig prøve kommandolinjen med Nushell.

Så mange ting kan gøres hurtigere og mere konsekvent på den måde.

Under alle omstændigheder, her er et lille Nushell-modul, jeg lavede til at arbejde med Googles Gemini 3 pro billed-preview-model. (Google, I må finde på et kortere navn.)

```
export def main [
        file: string = output.png
        --aspectratio (-a): string@aspectRatios = "1:1"
        --imagesize (-i): string@imageSizes
] {
        let prompt = ( 'CREATE AN IMAGE' + ': ' + $in )
        let payload = ( {
                contents: [
                        { parts: [ { text: $prompt } ] }
                ],
                generationConfig: {
                        responseModalities: [ IMAGE ],
                        imageConfig: { aspectRatio: $aspectratio, imageSize: $imagesize }
                }
        } )
        let response = ( http post
                        --content-type application/json
                        --full
                        https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image-preview:generateContent?key=REDACTED
                        $payload ) | collect
        ($response).body.candidates.content.parts.0.inlineData.data.0
        | decode base64 | save --force $file
}

def imageSizes [] {
        [
                1K
                2K
                4K
        ]
}

def aspectRatios [] {
        [
                { value: "1:1", description: "Kvadratisk format, der almindeligvis bruges til opslag på sociale medier (f.eks. Instagram-gitter)."}
                { value: "3:2", description: "Standardformat for mange DSLR-kameraer og nogle bærbare computere."}
                { value: "2:3", description: "Lodret orientering til professionel portrætfotografering."}
                { value: "3:4", description: "Lodret skærmlayout til ældre tablets og lodret orienterede mobilapps."}
                { value: "4:3", description: "Traditionelt standardformat for ældre tv'er, skærme og nogle tablets."}
                { value: "4:5", description: "Almindeligt lodret format til feeds på sociale medier (f.eks. lodrette opslag på Instagram)."}
                { value: "5:4", description: "Historisk brugt i storformatfotografering; mindre almindeligt i moderne brug."}
                { value: "9:16", description: "Lodret format til smartphones og videoplatforme (TikTok, Instagram Stories, YouTube Shorts)."}
                { value: "16:9", description: "Den universelle standard for HDTV, skærme og online videoindhold (bredformat)."}
                { value: "21:9", description: "Ultra-bredformat cinematiske format til specifikke film og specialiserede ultravidvinkel-skærme."}
        ]
}

```

Så når jeg er i kommandolinjen, kan jeg simpelthen gøre:

```
'motivational about coffee' | gemima -a 16:9

```

Og det vil returnere et billede gemt som output.png

En meget nyttig ting her er autocompletering til billedformater. Når jeg trykker på tab efter `-a`-flaget, vises beskrivelserne. På den måde kan jeg vælge det korrekte for den opgave, jeg er i gang med at løse.

Hav en god dag!



### Tags

- [nushell](/index.php/taxonomy/term/3)