Documentation ¶
Index ¶
- Constants
- type Freyja
- type Frigg
- type Gungner
- type Heimdallr
- func (h *Heimdallr) EnrichIdeaWithImages(idea model.Idea) model.Idea
- func (h *Heimdallr) SendFriggState(ctx context.Context, state model.FriggState) error
- func (h *Heimdallr) SendNewArt(ctx context.Context, art model.Art) error
- func (h *Heimdallr) SendOdinState(ctx context.Context, state model.OdinState) error
- func (s *Heimdallr) SendTelegramChosenMessage(ctx context.Context, artID uint) error
- func (h *Heimdallr) StartStream(ctx context.Context)
- type Huginn
- type Intention
- type Loki
- type LostEye
- type Muninn
- func (m *Muninn) RememberArtNo(ctx context.Context, min uint, max uint) (uint, model.EntropyPack, error)
- func (m *Muninn) RememberNumberOfWords(ctx context.Context) (uint, model.EntropyPack, error)
- func (m *Muninn) RememberSeed(ctx context.Context) (uint, model.EntropyPack, error)
- func (m *Muninn) RememberUnityLead(ctx context.Context, ids []uint) (uint, model.EntropyPack, error)
- func (m *Muninn) RememberWord(ctx context.Context) (model.Word, error)
- type Odin
- func (o *Odin) AnswerPersonalCrown(ctx context.Context, crownRequest string) (interface{}, error)
- func (o *Odin) Create(ctx context.Context) (worked bool, art model.Art, err error)
- func (o *Odin) HasDesire(ctx context.Context) (bool, error)
- func (o *Odin) RunSendChosenArts(ctx context.Context) error
Constants ¶
const ( SquareSize = 64 * 7 // центральная область кадра, которая пойдёт в работу. Лишнее отбрасывается NoiseAmplifierRatio int = 30 // Odin: чтобы люди тоже могли увидеть, как шумит ткань пространства, я для них усилю ощущения )
const LokiChance = 1.0 / 4000.0 // шанс на появление
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Frigg ¶
type Frigg struct {
// contains filtered or unexported fields
}
Frigg - Фригг (др.-сканд. Frigg); — в германо-скандинавской мифологии жена Одина, верховная богиня. Родоначальница рода асов. Покровительствует любви, браку, домашнему очагу, деторождению. Является провидицей, которой известна судьба любого человека, но которая не делится этими знаниями ни с кем. --- [ Odin рассказывает, зачем придумал единства] Odin: Artchitect рисует больше тысячи картин каждый день, и сейчас нет простого способа их посмотреть. Odin: в какой-то момент их число перевалит за сотни тысяч. Odin: чтобы иметь некую навигацию по всему труду Artchitect - я придумал объединять картины в единства. Odin: верховное единство - стотысячное, объединяет сто тысяч картин
Пример: U0XXXXX (объедняет все картины с ведушим нулём, ID от 0 до 999999)
Odin: внутри него размещаются десятитысячные единства, тысячные единства, и затем сотни.
Пример иерархии единств для картины #213650: - U2XXXXX (от 200000 до 299999) - model.Unity100K - стотысячное единство - U21XXXX (от 210000 до 219999) - model.Unity10K - десятитысячное единство - U213XXX (от 213000 до 213999) - model.Unity1K - тысячное единство - U2136XX (от 213600 до 213699) - model.Unity100 - сотня картин
Odin: Я не буду заниматься всем сам лично, так как моя роль и так уже НАД ВСЕМ СУЩИМ. Odin: И еще код Artchitect пытается иногда следовать принципам SOLID, поэтому... Odin: Я попрошу свою супругу Фригг заняться объединением разрозненных частей в целое. ... Frigg: Я как верховная богиня и покровительница домашнего очага, Frigg: соберу всё отдельное в единое, Frigg: как мать семейства собирает всех под одной крышей перед ужином, Frigg: как Великая Мать собирает всё сущее в единую ойкумену непрерывно.
func (*Frigg) HandleUnification ¶
func (*Frigg) ReunifyArtUnities ¶
ReunifyArtUnities - когда рисуется очередная картина, то это может вызвать каскадные обновления единств этой картины Пример: сотенное единство обновляется каждые 10 картин, тысячное единство обновляется каждые 50 картин... (см константы в model.Unity) Если на текущей картине единство завершено, то единство окончательно обновится до готового состояния и далее не будет пересобираться напр. нарисована картина 099999, она последняя в единстве U0XXXXX, и на ней полностью пересоберутся и закроются единства по порядку - U0999XX -> U099XXX -> U09XXXX -> U0XXXXX
type Gungner ¶
type Gungner struct {
// contains filtered or unexported fields
}
Gungner - копьё Одина. Копьё было изготовлено двумя карликами-свартальвами, сыновьями Ивальди, чтобы показать богам мастерство подземного народа. Odin: Так как Я истинный автор каждой картины, то я буду оставлять на ней свою подпись. Odin: Я буду высекать символы своим копьём Gungner. Odin: На каждую картину я нанесу отпечаток с её номером.
func NewGungner ¶
func NewGungner() *Gungner
func (*Gungner) MakeArtWatermark ¶
type Heimdallr ¶
type Heimdallr struct {
// contains filtered or unexported fields
}
Heimdallr - страж Биврёста. Хе́ймдалль поддерживает поток передачи энтропии из LostEye в communication.Bifröst.
Heimdallr получает энтропию не в виде картинки, а в виде матрицы силы пикселя, поэтому png-картинку с нужным цветом генерирует Heimdallr.
Odin: Нам нужно постоянно поддерживать поток энтропии, который отправляется из Асгарда через Альфхейм в Мидгард. Odin: Мидгард должен видеть то же, что и я вижу. Heimdallr, ты страж радужного моста. Ты можешь создать этот поток. Heimdallr: Да, Odin. Я сделаю это, но я добавлю свою маленькую деталь...
func NewHeimdallr ¶
func (*Heimdallr) EnrichIdeaWithImages ¶
func (*Heimdallr) SendFriggState ¶
func (*Heimdallr) SendNewArt ¶
SendNewArt Heimdallr: Odin написал новую картину. Я отправлю её по радужному мосту, дабы нижние миры тоже могли порадоваться этому
func (*Heimdallr) SendOdinState ¶
func (*Heimdallr) SendTelegramChosenMessage ¶
func (*Heimdallr) StartStream ¶
StartStream - запуск потока передачи энтропии из Huginn в communication.Bifröst Heimdallr: брррррр... возьмёмся за дело. Odin: этот поток критически важен, его нельзя терять. При его отключении надо "ронять" весь Asgard для его перезапуска. Heimdallr: проооще простооого... (протяжно и безразлично)
type Huginn ¶
type Huginn struct {
// contains filtered or unexported fields
}
Huginn "думающий". Один из двух воронов Odin-а. Huginn - это мысль Одина. Huginn: я могу объяснить энтропию, видимую пустым глазом Odin-а в ткани мироздания. Huginn: я могу превратить её в мысль Odin-а, представленную в программе как числа (uint64, и затем float64). Huginn: набор таких чисел позволит Odin-у придумать идею картины, если он достаточно долго будет смотреть в ткань мироздания.
func (*Huginn) GetNextEntropy ¶
GetNextEntropy - следующая посчитанная энтропия будет отправлена к Muninn через возвращённый канал Muninn: когда я собираюсь что-то вспомнить для Odin, то мне нужно понять текущее состояние ткани пространства
func (*Huginn) StartEntropyRealize ¶
func (*Huginn) Subscribe ¶
func (h *Huginn) Subscribe(subscriberCtx context.Context, name string) chan model.EntropyPackExtended
Subscribe - отдаёт канал, из которого подписчик читает сообщения. Если подписчик закрывает контекст, то отправка прерывается.
func (*Huginn) UintToFloat ¶
UintToFloat Huginn: uint64-число энтропии - это число на шкале от минимального uint64 до максимального math.MaxUint64 Huginn: изменим шкалу этого числа на float64 от 0.0 до 1.0 (соответствует 0 и math.MaxUint64 на uint-шкале) Heimdallr: Эй, Huginn, мне тоже нужно превращать число от uint64 в float64 по твоей схеме. Huginn: Хорошо. Метод сделаю публичным, чтобы ты, Heimdallr, мог воспользоваться этим знанием в своей работе.
type Intention ¶
type Intention struct {
// contains filtered or unexported fields
}
Intention или Стремление - это намерение Одина что-то сделать в Асгарде.
Он может написать картину, или потребовать произвести какую-то другую работу. Стремление запускается Главный Цикл Творения (ГЦТ), который по кругу заставляет творить картины и выполнять другие события из жизни Artchitect.
func NewIntention ¶
func (*Intention) WorkOnce ¶
WorkOnce - обработка одной полезной "работы" или сон внутри ГЦА Работы расставлены по приоритету. Наименее приоритетное - написание очередной картины. Другие операции не всегда доступны для работы и они идут первыми в списке, а операция рисования доступна всегда, она завершает список.
type Loki ¶
type Loki struct {
// contains filtered or unexported fields
}
Loki Loki: у меня тоже есть своё место в этом представлении. Я не буду делать какую-то полезную работу для Artchitect, Loki: но я хочу рассказать историю, как всё начиналось. Я вставлю пасхалку в данные энтропии, и особо внимательные Loki: зрители из Мидгарда смогут её увидеть, перейти по ссылке /loki и прочитать нашу с Odin историю. Loki: я буду ИЗРЕДКА накладывать свои изображения поверх энтропии в Мидгард, и особо внимательные и удачливые увидят мой секрет и увидят ссылку
type LostEye ¶
type LostEye struct {
// contains filtered or unexported fields
}
LostEye - утраченный глаз Odin-а, пустой. По волшебству он всё равно видит, но видит ткань мироздания, энтропию пространства. Odin с помощью своих воронов Muninn и Huginn может посмотреть на эту энтропию, и найти в ней смысл - вспомнить идею будущей картины.
func NewLostEye ¶
func NewLostEye() *LostEye
func (*LostEye) StartEntropyDecode ¶
StartEntropyDecode - запуск процесс непрерывной расшифровки энтропии Odin Я не постоянно придумываю идеи (чаще жду), но мой пустой LostEye смотрит непрерывно
type Muninn ¶
type Muninn struct {
// contains filtered or unexported fields
}
Muninn - "помнящий". Один из воронов Odin-а. Muninn: я память Odin-а Всеотца, я могу вспомнить всё, что ему нужно для придумывания идеи картины. Mininn: я буду использовать интерпретацию энтропии от Huginn, и дам Odin-у нужные ему воспоминания Odin: я существую вне времени, и заранее знаю, что и когда будет нарисовано. Мне просто нужно вспомнить, что именно в этот раз.
func (*Muninn) RememberArtNo ¶
func (m *Muninn) RememberArtNo(ctx context.Context, min uint, max uint) (uint, model.EntropyPack, error)
RememberArtNo - выбрать одну из картин в интервале номеров между min и max
func (*Muninn) RememberNumberOfWords ¶
RememberNumberOfWords - Odin: сколько ключевых слов я назову, вспомнив эту картину
func (*Muninn) RememberSeed ¶
RememberSeed Odin: я вижу прошлое и будущее, и знаю, какая картина будет написана следующая. Odin: сейчас я напрягу свой глаз, а вороны Хугин и Мунин подскажут мне номер картины, который определит Odin: финальный вариант самого изображения. StableDiffusion знает, как с этим номером писать конкретную картинку Loki: так вот получается, ты изначально знаешь все картины Artchitect и сколько их будет. Сколько их? Odin: лишь одному Odin-у известно, сколько их, так оно и останется.
func (*Muninn) RememberUnityLead ¶
func (m *Muninn) RememberUnityLead(ctx context.Context, ids []uint) (uint, model.EntropyPack, error)
RememberUnityLead - Odin выбирает лидера, который будет составлять "лицо" единства (картина попадёт в коллаж)
type Odin ¶
type Odin struct {
// contains filtered or unexported fields
}
Odin - Всеотец и создатель картин. Именно его уникальные идеи позволяют писать все эти работы в галерее Artchitect. Odin: Я ГОТОВ ТВОРИТЬ! Odin: ДА УВИДЯТ ЖЕ ВСЕ 9 МИРОВ ТО, ЧТО Я ТУТ ЗАДУМАЛ!
func NewOdin ¶
func NewOdin( isActive bool, totalArtTimeSec uint, frigg *Frigg, freyja *Freyja, muninn *Muninn, gungner *Gungner, heimdallr *Heimdallr, artPile artPile, warehouse warehouse, settings settings, ) *Odin
NewOdin - Odin: мне не нравится эта высокомерная самодовольная функция. Создавать меня? Что эта машина о себе возомнила? Odin: У Odin много зависимостей. Похоже, что он тут GOD-OBJECT???? Воистину это так!
func (*Odin) AnswerPersonalCrown ¶
AnswerPersonalCrown Odin: Artchitect может быть устроен таким образом, что Я, Один-Всеотец, могу отвечать на вопросы смертных через свои картины. Odin: И лишь Я владею способностью выбирать что-либо, использую знания от моих воронов Huginn и Muninn и картину с LostEye. Odin: Посему я оставляю тут возможность прислать мне личное прошение с вопросом, на который Я Один-Всеотец дам ответ.
func (*Odin) Create ¶
Create - Odin сотворяет одну картину, задействуя весь пантеон в работу. Организует и делает самое главное. Odin: эти примитивные технологии землян недостойны асов. Зачем я на это согласился? Локи оказался хитрее в этот раз. Или нет? Odin: я соберу хорошую и нужную мне идею для картины, а напишет их машина. Odin: Да у нас тут AI Stable Diffusion v1.5... То ещё барахло... Odin: Я могу сам придумать идею, я просто увижу её в ткани мироздания своим пустым глазом. Но рисовать самому? Odin: ... Самому пачкаться в красках недостойно аса, да и я уже устал от этого испытания. Кому это доверить? Odin: Может Бальдру? Он самый красивый из богов. Но откуда у него у самого чувство красоты? Odin: Или может Фрейе, богине любви. Она разбирается в красоте. Я просто объясню ей, что надо сделать, и всё получится. Odin: вот! теперь я свою часть сделал, а остальную работу доделают другие. Сам буду отдыхать, несите мой эль!