gopngchunkschara

package module
v0.0.0-...-db836ac Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2023 License: GPL-3.0 Imports: 6 Imported by: 0

README

go-png-chunks-chara

Reads and writes embedded data in PNGs for AI Character Card, V1 & V2 spec

Leverages go-png-chunks to read tEXt chunks from PNG, and then marshalls the b64 encoded data of the Character Card V1 & V2 spec to a CharacterCardV1V2 struct.

Example usage;

package main

import (
	gopngchunkschara "github.com/chrisbward/go-png-chunks-chara"
)

func CreateCharacterCard(characterCard gopngchunkschara.CharacterCardV1V2, inputFilePath string, outputFilePath string) error {

    err := characterCard.WriteToPng(inputFilePath, outputFilePath)
	if err != nil {
		return err
	}
	return nil

}

func main() {

    characterCard := gopngchunkschara.CharacterCardV1V2{
        Name:        "Chris Ward",
        Description: "",
        ... etc
    }

    CreateCharacterCard(characterCard, "test.png", "out.png")
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ReadtEXtChunksFromFile

func ReadtEXtChunksFromFile(inputFilePath string) (tEXtChunks []gopngchunks.TEXtChunk, err error)

Types

type CharacterCardV1V2

type CharacterCardV1V2 struct {
	Name           string                `json:"name"`
	Description    string                `json:"description"`
	Personality    string                `json:"personality"`
	Scenario       string                `json:"scenario"`
	FirstMes       string                `json:"first_mes"`
	MesExample     string                `json:"mes_example"`
	Creatorcomment string                `json:"creatorcomment"`
	Avatar         string                `json:"avatar"`
	Chat           string                `json:"chat"`
	Talkativeness  string                `json:"talkativeness"`
	Fav            bool                  `json:"fav"`
	CreateDate     string                `json:"create_date"`
	Spec           string                `json:"spec"`
	SpecVersion    string                `json:"spec_version"`
	Data           CharacterCardV1V2Data `json:"data"`
}

CharacterCardV1V2 - https://github.com/malfoyslastname/character-card-spec-v2/blob/main/spec_v2.md

func (*CharacterCardV1V2) PopulateFromPng

func (character *CharacterCardV1V2) PopulateFromPng(inputFilePath string) error

func (*CharacterCardV1V2) WriteToPng

func (character *CharacterCardV1V2) WriteToPng(inputFilePath string, outputFilePath string) error

type CharacterCardV1V2Data

type CharacterCardV1V2Data struct {
	Name                    string        `json:"name"`
	Description             string        `json:"description"`
	Personality             string        `json:"personality"`
	Scenario                string        `json:"scenario"`
	FirstMes                string        `json:"first_mes"`
	MesExample              string        `json:"mes_example"`
	CreatorNotes            string        `json:"creator_notes"`
	SystemPrompt            string        `json:"system_prompt"`
	PostHistoryInstructions string        `json:"post_history_instructions"`
	Tags                    []interface{} `json:"tags"`
	Creator                 string        `json:"creator"`
	CharacterVersion        string        `json:"character_version"`
	AlternateGreetings      []interface{} `json:"alternate_greetings"`
	Extensions              struct {
		Talkativeness string `json:"talkativeness"`
		Fav           bool   `json:"fav"`
	} `json:"extensions"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL