Skip to content

loadnetwork/chaingpt-nft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

A Rust SDK for ChainGPT's AI NFT generator with Load's load0 data storage.

Usage Example

Add chaingpt-nft to Cargo.toml

chaingpt_nft = {git = "https://github.com/loadnetwork/chaingpt-nft.git", branch = "main"} 

Create chaingpt_nft client

use chaingpt_nft::core::api::Client;

let API_KEY: &str = "...";
let client = Client::new(API_KEY).build().unwrap();

Generate image

Reference: https://docs.chaingpt.org/dev-docs-b2b-api-sdk/ai-nft-generator-api-and-sdk/api-reference#post-nft-generate-image

use chaingpt_nft::core::api::Client;
use chaingpt_nft::core::nft_generate_image::{Enhance, GenerateImageRequest, Model};

async fn create_image() {
    let client = Client::new("").build().unwrap();
    // create a request
    let request = GenerateImageRequest::new(
        "a day in antarctica's life",
        Model::Velogen,
        Some(1),
        512,
        512,
        Some(Enhance::X1),
        None, // set to None for generate_image
        None // generate_image
    )
    .build()
    .unwrap();

    let res = client.generate_image(request, true).await.unwrap(); // true is set to store the result on Load Network
    println!("{:?}", res)
}

// returns

pub struct GenerateImageResponse {
    pub data: Vec<u8>,
    pub load0_hash: String,
}

// example of NFT media stored on load network: https://load0.network/download/0xe93b7b6192b7745b6f93596d8e1d18bbb8e6ffce8b5862f96ccd539a4ce8ae97

Generate NFT Queue

Reference: https://docs.chaingpt.org/dev-docs-b2b-api-sdk/ai-nft-generator-api-and-sdk/api-reference#post-nft-generate-nft-queue

use chaingpt_nft::core::api::Client;
use chaingpt_nft::core::nft_generate_image::{Enhance, GenerateImageRequest, Model};

async fn create_image() {
    let client = Client::new("").build().unwrap();
    // create a request
    let request = GenerateImageRequest::new(
        "a day in antarctica's life",
        Model::Velogen,
        Some(1),
        512,
        512,
        Some(Enhance::X1),
        Some("0x_your_address"), // wallet address
        Some(56) // chainId
    )
    .build()
    .unwrap();

    let res = client.generate_nft_queue(request).await.unwrap();
    println!("{:?}", res)
}

// returns
pub struct GenerateImageQueueResponse {
    pub collection_id: String
}

Mint NFT

Reference: https://docs.chaingpt.org/dev-docs-b2b-api-sdk/ai-nft-generator-api-and-sdk/api-reference#post-nft-mint-nft

// ...init client...
let collection_id: &str = "";
let res = client.mint_nft(collection_id, "name", "description", "$TICKER").await.unwrap();

Prompt Enhancement

Reference: https://docs.chaingpt.org/dev-docs-b2b-api-sdk/ai-nft-generator-api-and-sdk/api-reference#prompt-enhancement-post-nft-enhanceprompt

// ...init client...
let prompt: &str = "your prompt here";
let enhanced_prompted = client.enhance_prompt(prompt).await.unwrap();

Queued NFT progress

Reference: https://docs.chaingpt.org/dev-docs-b2b-api-sdk/ai-nft-generator-api-and-sdk/api-reference#get-nft-progress-collectionid

// ...init client...
let collection_id: &str = "";
let progress = client.get_nft_progress(collection_id).await.unwrap();

Get supported chains

Reference: https://docs.chaingpt.org/dev-docs-b2b-api-sdk/ai-nft-generator-api-and-sdk/api-reference#supported-chains-get-nft-get-chains

// ...init client...
let chains: Vec<Chain> = client.get_chains(true).await.unwrap(); // true to include testnets

// returns a Vec of Chain
pub struct Chain {
    pub chain_id: i32,
    pub chain_name: String,
    pub network: String,
    pub network_type: String,
}

Get the ChainGPT NFT ABI

Reference: https://docs.chaingpt.org/dev-docs-b2b-api-sdk/ai-nft-generator-api-and-sdk/api-reference#contract-abi-get-nft-abi

// ...init client...
let abi = client.get_nft_abi().await.unwrap();

License

This project is licensed under the MIT License

About

A Rust SDK for ChainGPT's AI NFT generator with Load's load0 data storage.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages