@@ -9,14 +9,14 @@ import (
9
9
"os/exec"
10
10
"path/filepath"
11
11
"runtime"
12
- "strconv"
13
12
"strings"
14
13
"time"
15
14
16
15
"github.com/aandrew-me/tgpt/v2/client"
17
16
"github.com/aandrew-me/tgpt/v2/providers"
18
17
"github.com/aandrew-me/tgpt/v2/structs"
19
18
http "github.com/bogdanfinn/fhttp"
19
+
20
20
"github.com/olekukonko/ts"
21
21
22
22
tls_client "github.com/bogdanfinn/tls-client"
@@ -42,16 +42,16 @@ var (
42
42
43
43
func getDataResponseTxt (input string , params structs.Params , extraOptions structs.ExtraOptions ) string {
44
44
return makeRequestAndGetData (input , structs.Params {
45
- ApiKey : * apiKey ,
46
- ApiModel : * apiModel ,
47
- Provider : * provider ,
48
- Max_length : * max_length ,
49
- Temperature : * temperature ,
50
- Top_p : * top_p ,
51
- Preprompt : * preprompt ,
52
- Url : * url ,
45
+ ApiKey : * apiKey ,
46
+ ApiModel : * apiModel ,
47
+ Provider : * provider ,
48
+ Max_length : * max_length ,
49
+ Temperature : * temperature ,
50
+ Top_p : * top_p ,
51
+ Preprompt : * preprompt ,
52
+ Url : * url ,
53
53
PrevMessages : params .PrevMessages ,
54
- ThreadID : params .ThreadID ,
54
+ ThreadID : params .ThreadID ,
55
55
}, extraOptions )
56
56
}
57
57
@@ -489,70 +489,163 @@ func handleStatus400(resp *http.Response) {
489
489
os .Exit (1 )
490
490
}
491
491
492
- func generateImage (prompt string ) {
493
- bold .Println ("Generating images..." )
492
+ // func generateImageCraiyon(prompt string) {
493
+ // bold.Println("Generating images...")
494
+ // client, err := client.NewClient()
495
+ // if err != nil {
496
+ // fmt.Fprintln(os.Stderr, err)
497
+ // os.Exit(1)
498
+ // }
499
+
500
+ // url := "https://api.craiyon.com/v3"
501
+
502
+ // safeInput, _ := json.Marshal(prompt)
503
+
504
+ // payload := strings.NewReader(fmt.Sprintf(`{
505
+ // "prompt": %v,
506
+ // "token": null,
507
+ // "model": "photo",
508
+ // "negative_prompt": "",
509
+ // "version": "c4ue22fb7kb6wlac"
510
+ // }`, string(safeInput)))
511
+
512
+ // req, _ := http.NewRequest("POST", url, payload)
513
+
514
+ // req.Header.Set("Content-Type", "application/json")
515
+ // req.Header.Set("User-Agent", "Mozilla/5.0 (X11; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0")
516
+
517
+ // res, err := client.Do(req)
518
+
519
+ // if err != nil {
520
+ // fmt.Fprint(os.Stderr, "Check your internet connection\n\n")
521
+ // fmt.Fprintln(os.Stderr, "Error:", err)
522
+ // os.Exit(0)
523
+ // }
524
+
525
+ // defer res.Body.Close()
526
+
527
+ // var responseObj ImgResponse
528
+
529
+ // err = json.NewDecoder(res.Body).Decode(&responseObj)
530
+ // if err != nil {
531
+ // // Handle error
532
+ // fmt.Fprintln(os.Stderr, "Error:", err)
533
+ // return
534
+ // }
535
+
536
+ // imgList := responseObj.Images
537
+
538
+ // fmt.Println("Saving images in current directory in folder:", prompt)
539
+ // if _, err := os.Stat(prompt); os.IsNotExist(err) {
540
+ // err := os.Mkdir(prompt, 0755)
541
+ // if err != nil {
542
+ // fmt.Fprintln(os.Stderr, err)
543
+ // os.Exit(1)
544
+ // }
545
+ // }
546
+
547
+ // for i := 0; i < len(imgList); i++ {
548
+ // downloadUrl := "https://img.craiyon.com/" + imgList[i]
549
+ // downloadImage(downloadUrl, prompt)
550
+
551
+ // }
552
+ // }
553
+
554
+ func generateImageBlackbox (prompt string ) {
555
+ bold .Println ("Generating image..." )
556
+
494
557
client , err := client .NewClient ()
495
558
if err != nil {
496
559
fmt .Fprintln (os .Stderr , err )
497
560
os .Exit (1 )
498
561
}
499
562
500
- url := "https://api.craiyon.com/v3"
501
-
502
- safeInput , _ := json .Marshal (prompt )
563
+ url := "https://www.blackbox.ai/api/chat"
503
564
504
- payload := strings .NewReader (fmt .Sprintf (`{
505
- "prompt": %v,
506
- "token": null,
507
- "model": "photo",
508
- "negative_prompt": "",
509
- "version": "c4ue22fb7kb6wlac"
510
- }` , string (safeInput )))
565
+ payload := strings .NewReader (fmt .Sprintf (`
566
+ {
567
+ "messages": [
568
+ {
569
+ "content": "%v",
570
+ "role": "user"
571
+ }
572
+ ],
573
+ "previewToken": null,
574
+ "userId": null,
575
+ "codeModelMode": true,
576
+ "agentMode": {
577
+ "mode": true,
578
+ "id": "ImageGenerationLV45LJp",
579
+ "name": "Image Generation"
580
+ },
581
+ "trendingAgentMode": {},
582
+ "isMicMode": false,
583
+ "maxTokens": 1024,
584
+ "isChromeExt": false,
585
+ "githubToken": null,
586
+ "clickedAnswer2": false,
587
+ "clickedAnswer3": false,
588
+ "clickedForceWebSearch": false,
589
+ "visitFromDelta": false,
590
+ "mobileClient": false
591
+ }` , string (prompt )))
511
592
512
593
req , _ := http .NewRequest ("POST" , url , payload )
513
594
514
- req .Header .Set ("Content-Type" , "application/json" )
515
- req .Header .Set ("User-Agent" , "Mozilla/5.0 (X11; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0" )
595
+ req .Header .Add ("accept" , "*/*" )
596
+ req .Header .Add ("content-type" , "application/json" )
597
+ req .Header .Add ("origin" , "https://www.blackbox.ai" )
598
+ req .Header .Add ("priority" , "u=1, i" )
599
+ req .Header .Add ("referer" , "https://www.blackbox.ai/agent/ImageGenerationLV45LJp" )
600
+ req .Header .Add ("sec-ch-ua-platform" , "Linux" )
601
+ req .Header .Add ("sec-fetch-dest" , "empty" )
602
+ req .Header .Add ("sec-fetch-mode" , "cors" )
603
+ req .Header .Add ("sec-fetch-site" , "same-origin" )
604
+ req .Header .Add ("sec-gpc" , "1" )
605
+ req .Header .Add ("user-agent" , "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36" )
516
606
517
- res , err := client .Do (req )
518
-
519
- if err != nil {
520
- fmt .Fprint (os .Stderr , "Check your internet connection\n \n " )
521
- fmt .Fprintln (os .Stderr , "Error:" , err )
522
- os .Exit (0 )
523
- }
607
+ res , _ := client .Do (req )
524
608
525
609
defer res .Body .Close ()
610
+ body , _ := io .ReadAll (res .Body )
611
+ responseText := string (body )
526
612
527
- var responseObj ImgResponse
613
+ if strings .Contains (responseText , "![Generated Image]" ) {
614
+ imgLink := strings .ReplaceAll (strings .ReplaceAll (responseText , ", ")" , "" )
528
615
529
- err = json .NewDecoder (res .Body ).Decode (& responseObj )
530
- if err != nil {
531
- // Handle error
532
- fmt .Fprintln (os .Stderr , "Error:" , err )
533
- return
534
- }
616
+ fmt .Println ("Generated image link: " + imgLink )
535
617
536
- imgList := responseObj .Images
618
+ bold .Print ("\n Download image? [y/n]: " )
619
+ reader := bufio .NewReader (os .Stdin )
620
+ userInput , _ := reader .ReadString ('\n' )
621
+ userInput = strings .TrimSpace (userInput )
537
622
538
- fmt . Println ( "Saving images in current directory in folder:" , prompt )
539
- if _ , err := os . Stat ( prompt ); os . IsNotExist ( err ) {
540
- err := os . Mkdir ( prompt , 0755 )
541
- if err != nil {
542
- fmt .Fprintln ( os . Stderr , err )
543
- os . Exit ( 1 )
623
+ if userInput == "y" || userInput == "" {
624
+ err := downloadImage ( imgLink , "" )
625
+
626
+ if err != nil {
627
+ fmt .Println ( err )
628
+ }
544
629
}
630
+ } else {
631
+ fmt .Println ("Some error has occured, try again later. Response body: " + responseText )
545
632
}
633
+ }
546
634
547
- for i := 0 ; i < len (imgList ); i ++ {
548
- downloadUrl := "https://img.craiyon.com/" + imgList [i ]
549
- downloadImage (downloadUrl , prompt , strconv .Itoa (i + 1 ))
635
+ func downloadImage (url string , destDir string ) error {
636
+ client , err := client .NewClient ()
637
+ if err != nil {
638
+ return err
639
+ }
550
640
641
+ req , err := http .NewRequest (http .MethodGet , url , nil )
642
+ if err != nil {
643
+ // Handle error
644
+ return err
551
645
}
552
- }
553
646
554
- func downloadImage ( url string , destDir string , filename string ) error {
555
- response , err := http . Get ( url )
647
+ response , err := client . Do ( req )
648
+
556
649
if err != nil {
557
650
return err
558
651
}
@@ -569,7 +662,7 @@ func downloadImage(url string, destDir string, filename string) error {
569
662
if err != nil {
570
663
return err
571
664
}
572
- fmt .Println ("Saved image" , filename )
665
+ fmt .Println ("Saved image" , fileName )
573
666
574
667
return nil
575
668
}
0 commit comments