Jump to content

ffredyk

Majitel
  • Příspěvků

    3249
  • Registrován

  • Aktivní

  • Vítězných dnů

    53

ffredyk last won the day on 23. Březen

ffredyk had the most liked content!

Reputace

167 Barry Throne "Big Bear"

3 Followers

About ffredyk

  • Narozeniny 04/25/1994

Kontaktní údaje

  • Web
    http://ffredyk.cz
  • Skype
    ffredyk

Návštěvníci

7520 profile views
  1. Zde ukázka rozdílu mezi promptem v češtině a angličtině: České prompty na nejnovějším modelu již vůbec nefungují. Je zde cítit vzdálené splnění vybraných součástí celku (nohy, osvětlení a objektiv), ale zbytek byl naprosto vynechán Lze poznat, že nejnovější model (v6) už nereaguje moc na post-process prompty, dříve celkem hodně reagoval na vinětu, občas byl schopen přidat i celkem kvalitní šum. Zbytek promptu v angličtině dopadl vcelku obstojně. Také jsem si všiml, že negativní prompt naprosto nefunguje.. Jdu prolézt dokumentaci, zda se něco nezměnilo pro v6 model v tomto ohledu
  2. Navážu zde na obsah předchozího návodu o OpenAI, přeskočím tedy definice pojmů a vrhneme se přímo do problematiky. Rozdíly Nejpodstatnějším rozdílem mezi OpenAI modelem a Midjourney je právě skladba samotného promptu. Zatímco OpenAI GPT modely jsou stavěné pro komunikaci, Midjourney je navržen jen pro generaci obrázků. Původně modely generující obrázky vznikly jako modely popisující obrázky - model měl za úkol popsat co na existujícím obrázku vidí. Samotným otočením logiky začaly modely obrázky generovat na základě vložených "popisů". Je vhodné nad tímto přemýšlet při stavbě samotného promptu. Midjourney jmenovitě také nabízí možnost použití speciálních parametrů přímo v promptu (tedy na konci promptu). Tyto parametry vždy začínají dvěma pomlčkami, klíčovým slovem, mezerou a hodnotou. Podobně jako parametry konzolových aplikací jak na Windows tak linuxu. Další zajímavostí oproti jazykovým modelům je možnost tvorby negativních promptů - resp. zanesení slov do promptu, kterým se má model vyvarovat, či je úplně odstranit z možných generovatelných kontextů Architektura promptu Prompt jako takový lze dnes stavět různými způsoby. Původně však nejlepší výsledky vznikaly z promptů stavěných z klíčových slov. Čím více specifikovaná slova, tím přesnější, kvalitnější nebo hodnotnější výsledky byly generovány. Nejnovější modely se snaží přiblížit citlivostí na architekturu promptu co nejširší cílové skupině uživatelů - dokáží tedy zpracovávat i texty plné zbytečných nuancí s irelevantními větnými doplňky. Avšak nejlepších výsledků stále dosáhneme právě stavbou klíčových slov bez spojek, předložek a podobných větných součástí. Midjourney je také více citlivé na angličtinu, než jiné jazyky. Neznamená to však, že by se nedaly psát prompty v češtině nebo slovenštině. (Při ověřování českých promptů jsem se setkal spíše s neúspěchem než s úspěchem..) Spíše je potřeba počítat s tím, že pokud nastane problém s generací promptů v jazyce jiném než angličtina, je vhodné zkusit je nutné generovat s promptem přeloženým do angličtiny. To je však problém všech modelů (i jazykových), protože tréninková data jsou nejbohatší právě v anglickém jazyce. Podobně jako u OpenAI i zde platí pravidlo, že prompt je nejsilnější v prvních několika slovech. Avšak následný spád relevance už není tak znatelný, tedy prompt si po celou jeho délku udržuje celkem stabilní váhový gradient. Zjednodušeně řečeno - prvních pár slov je nejsilnějších, vše poté má o něco menší váhu v generaci, avšak stále dostatečně citelnou. Dle mého názoru je to typickým biasem lidských popisovačů tréninkových obrázků - lidé si nejdřív všimnou nejsilnějšího prvku v obrázku, který vždy dosadí na první pozici v popisu. Obsah promptu: Předmět Předmětné modifikátory Stylistické modifikátory Pozadí Efekty Negativní předmět Parametry Pořadí těchto prvků není kriticky důležité, jde spíš o můj vlastní zvyk napříč různými modely jak Midjourney tak i klasické stabilní difuze. Předmět je vlastně obsah obrázku, objekt pozorování, situace, čí jiná myšlenka, kterou má model generovat. Předmětné modifikátory Jde o úpravy předmětu, nebo jeho bližší specifikace. Vlastně tím zpřesňujeme definici předmětu, přidáváme další požadavky nebo se tím snažíme stočit pomyslnou cestičku samotné generace. Modifikátorů může být jakékoliv množství a mohou být jakkoliv specifické, nebo obecné, či naprosto vágní - model si s tím vždy nějak poradí. Sledovat občas co vzniká z naprosto nesmyslných, či totálně obecných promptů, je občas zážitek sám o sobě. Stylistické modifikátory Těmito nastavujeme celkovou kompozici, realističnost, či jiné stylistické zpracování celkového produktu. Stejně jako předtím, těchto modifikátorů může být jakékoliv množství a specifikovat mohou cokoliv. Jde o podrobnější štelování výsledků. Pozadí Stejně tak jako předmět, můžeme v zařadit do promptu i definici pozadí. Já obvykle definuji pozadí spíše ke konci promptu, ale jde asi jen o můj osobní zvyk. Model si zpracuje prompt po svém a teoreticky jen klíčové slovíčko "background", nebo "pozadí" je dostačující k tomu, aby model pochopil o co nám jde. Efekty Podobně jako stylistické modifikátory, můžeme specifikovat i efekty, resp. simulaci post-procesního zpracování. Negativní předmět Stejně jako stavíme předmět s jeho modifikátory, můžeme stavět i negativní součásti. Chápejme ve smyslu seznamu věcí, které generovat nechceme, tedy které nechceme vidět ve výsledcích. Negativní předmět je však součást parametru (--no), měl by tak být na konci promptu. Pokud chceme specifikovat více předmětů, je potřeba je oddělit čárkou Negativní prompty existují hlavně proto, že model nedokáže dobře odhadnout relevanci negativních vazeb samotného promptu vůči předmětům. Takže pokud chceme modelu předat informaci o tom, že něco nechceme generovat, tak místo tvorby takového požadavku v předmětu, nebo jeho modifikátorech (např. "tupé ruce bez prstů") bychom měli vždy použít parametr ("--no prsty"). Parametry Samotné parametry nám poté upravují již externí nastavení modelu, či jeho výstupu. Obvykle se nastavuje výběr samotného modelu, poměr stran, teplota (chaos), seed apod. Další parametry lze najít v dokumentaci https://docs.midjourney.com/docs/parameter-list Multi-prompting Midjourney nabízí také velmi silnou funkci multi-promptů. Je využitelná zejména, pokud chceme logicky oddělit předměty, tedy separovat jejich relevanci vůči sobě. Či pokud chceme jednotlivým předmětům nastavit různé váhy (a ovlivnit tak jejich podíl na výsledku) Dvojité dvojtečky definují separaci významů mezi oběma stranami. Lze za nimi specifikovat číslo (i s desetinou čárkou u nejnovějších modelů), které definuje váhu levé strany. Pokud chceme specifikovat i váhu pravé strany, je potřeba použít dvojtečky i za ní
  3. Zdarec borci, dlouho jsem přemýšlel s jakým originálním návodem, který by řešil moderní téma, bych přišel a podělil se s vámi. Vyhrála to samozřejmě AI. Pojďme si nejdříve definovat pojmy a názvosloví: AI - Artificial Intelligence tedy Umělá Inteligence - pojem, který je dnes nejvíce ztotožněn s LLM neuronovými sítěmi. Nejde o "skutečnou umělou inteligenci", nýbrž o simulaci chování na základě předtrénovaného setu dat AGI - Artificial General Intelligence tedy Obecná Umělá Inteligence - dnes prozatím ještě blíže nespecifikovaný, či velmi široce obsáhlý pojem. Majorita lidí, kteří se ochomýtají okolo AI, se nyní snaží pojem AGI definovat jako tu "skutečnou umělou inteligenci". Prozatím však neexistuje žádný model neuronové sítě, který by se opravdu dal označit za "skutečnou umělou inteligenci" a vlastně ani nemáme žádný způsob či mechanismus jak bychom mohli určit, či prokázat "skutečnost" umělé inteligence. Jedná se tak hlavně o marketingový pojem, kterým se velcí AI hráči snaží prodat nejnovější modely. LLM - Large Language Model tedy Velký Jazykový Model - typ neuronové sítě, která je trénovaná na obrovském množství textových (či dnes i obrázkových) dat, která vyprodukoval člověk, či jiná neuronová síť. Token - formát dat, se kterými LLM neuronky pracují. Zjednodušeně jde o jakousi kompresi psaného textu, či několika písmen (případně bajtů textových znaků). Typicky se jedno slovo anglického jazyka rozděluje na dva, až čtyři tokeny - avšak jedno, či více-tokenová slova nejsou výjimkou. Kontext - Kontejner všech dat (tokenů), které jsou neuronové síti aktuálně dostupné - lze si to představit jako historii chatu + jakákoliv další data, která jsou do kontextu přidána jiným způsobem (třeba systémovou zprávou). Typicky je omezen řádově na tisíce tokenů Nyní, když známe ty nejzákladnější pojmy a já mohu pohodlně psát ve zkratkách, pojďme si povědět něco o tom, jak vlastně typická moderní AI funguje. Neuronové sítě různých firem se liší v mnoha věcech, avšak základní princip je u všech stejný - AI je trénovaná na obrovském množství dat, generuje určitý typ odpovědí, mimo API je většinou za moderační vrstvou a napříč různými verzemi modelů je různě "biased" vůči proměnlivým stylům, chování, či ochotě. Důležité je vědět, že dnes prozatím neexistuje mechanismus zajišťující 100% bezpečnost odpovědí umělé inteligence - a nikdo stále nedokáže s jistotou odhadnout, jestli vůbec někdy bude možné takovou bezpečnost zajistit. Jde o bezpečnost informační - obecně je nežádoucí, aby AI úspěšně využívali "špatní hráči (bad actors)" k provádění kriminální činnosti. Bohužel je to však stále možné. Firmy bojují vůči těmto možnostem moderační vrstvou, která funguje jako mezičlánek mezi AI a uživatelem - jedná se většinou o menší neuronový model, který se snaží vyhodnotit nebezpečnost otázky uživatele, nebo i odpovědi AI a případně přeruší zpracování, či celou komunikaci. Občas se může stát, že moderační vrstva vyhodnotí přehnaný úsudek, či podhodnotí nebezpečnost komunikace a tak se můžeme setkat s nesmyslnou blokací, nebo naopak vymyslet cestu jak vrstvu obejít jazykovou kličkou a generovat nebezpečné odpovědi. Způsob, jakým se nejefektivněji ptát LLM AI pro nejlepší šanci na generaci relevantní a smysluplné odpovědi, se může lišit vzhledem k tomu, na co byla neuronka předtrénovaná, či později nalazená (fine-tuned). V tomto návodu budu řešit způsob vytváření promptů relevantních pro GPT3.5 (či GPT4) od OpenAI. Struktura a architektura konverzace Rozuměno spíš i jako procedura, kterou se AI nejdříve připraví, nastaví, předají se data, určí předpoklad výsledku a poté se celý blok obrní vůči deviacím. Zní to složitě, ale dá se to rozpracovat do několika prvků, či kroků - které mezi sebou více, či méně souvisejí nebo i kombinují. Příprava - Připravíme AI k určitému chování, či definujeme naše očekávání. Nastavení - Nastavíme AI pro specifický výkon, tedy určíme co po AI přesně chceme. Informace - Předáme AI kontext, či další data, které zpracuje dle našich požadavků Mantinely - Instruujeme AI k dodržení našich pravidel a co nejvíc redukujeme možnost deviace a nečekaných výsledků (nastavíme hranice "kreativitě") Každá situace, nebo cíl může vyžadovat různé, či všechny tyto kroky. Snažil jsem se to co nejvíce zobecnit, ale pravdou je, že AI je neustále velkou neznámou. S velikostí modelů roste i jejich nevyzpytatelnost a nepředvídatelnost. Avšak experimentací lze docílit i zcela nových postupů, přístupů a proceduralizaci Příprava Před samotným aktem komunikace lze (a mnohdy je vhodno) model připravit na to, co vlastně bude provádět, zpracovávat, vytvářet. První instrukce u krátkých promptů mají statisticky největší reakci modelu. V případě pozdějšího delšího průběhu komunikace ztrácí první tokeny v kontextu váhu (jde o problém s transformátory, který se snaží vyřešit všechny firmy u všech modelů), či jsou ztraceny úplně (kvůli omezení velikosti kontextu). Příprava je vlastně takové zahájení imaginárního příběhu, kterého se AI bude snažit držet. Představíme situaci a navrhneme prostředí či aktivitu. Nastavení Po přípravě je na čase nastavit AI k nějaké akci, aktivitě či kroku. Vlastně jde o jakési předání instruktážního návodu, či modelové situace, jak se má AI chovat ke vstupním datům.. Dá se to chápat i jako rozšiřující dodatek k sekci Nastavení.. Rozdíl mezi těmito sekcemi je jejich velikost. Příprava by měla být co nejstručnější a nejpřesnější, kdežto samotné nastavení může být vysvětleno vyčerpávajícími a podrobnými detaily i s ukázkami příkladného chování. Informace Modelu je vhodno také dodat seznam různých důležitých informací, o kterých by měl znát detailnější (či lokálnější či speciální) informace. Informace předávají AI důležitý kontext, o kterém by mělo vědět při zpracovávání požadavků.. Mantinely Velmi důležité mohou být následné mantinely, bariéry či jiná omezení, které by AI mělo dodržovat. Dají se chápat jako součást a posílení již dříve postaveného Nastavení, ale zaměřené spíše na restriktivní argumenty, či podněty a příkazy. Vždy se však dají kreativními metodami obejít a tyto triky se model od modelu liší. Pro zaručení dodržení těchto mantinelů se aplikuje moderační vrstva s podobnými prompty, která však jen blokuje již generovaný výstup a případná generace se musí opakovat (třeba i s pozměněným vstupem). Striktnost promptů Masivní výhoda AI je, oproti jiným předchozím mechanismům pro generaci textu, hlavně v její schopnosti překladu jazykového kontextu a pochopení významu psaného textu i na základě lidsky typických nuancí. Prompty se díky tomu dají psát i vágně, obecně či neurčitě a přesto poté generují kvalitní výstupy. Lze také využít konverzačně nastavenou AI (ChatGPT) pro vytváření kvalitních promptů na základě dodaných požadavků. Naopak nevýhoda AI tkví v jejích možnostech generovat výstup mimo jasně specifikované rozsahy. AI vznikla jako neuronka, předpovídající co by chtěl uživatel napsat, nebo jak by chtěl pokračovat v textu a na stejném principu funguje dodnes. Je to neustále opakující se cyklus, generující nová slova na základě předchozích jen pomocí sítě pravděpodobnosti. Trénink AI probíhá v překladu souvisejících textů do souvisejících pravděpodobnostních poměrů
  4. Tento rok první status :haha:

    1. Hip
    2. jenkings

      jenkings

      a pravděpodobně i poslední :D

  5. ffredyk

    ostatní AI Girlfriend

    chat v OpenAI labu je za moderační vrstvou, přes API máš přístup k jádru bez těchto obalujících blbin.. Samozřejmě máš přes API přístup i přes všechny ty obalující blbiny a můžeš si to jádro obalit podle svýho, jejich Moderation model je teď "žhavá novinka", kterou se neskutečně chlubí.. Máš tam i další modely třeba na překlad hlasu do textu, nebo textu do hlasu, či jazykové modely jako davinci, který lze trénovat a tunit k obrazu svému.. Osobně zastávám názor, že než jim platit to plusko, tak si radši zaplatím kredit do API a mám přístup k 10x tolika funkcím :D
  6. ffredyk

    ostatní AI Girlfriend

    Většinu těch botů můžeš překecat k tomu aby psali česky jen musíš obejít moderační vrstvu a většinou silný prompt.. Většina těch věcí však jede na GPT 3.5 (je o hodně levnější) a tam stačí jen jako první zprávu botovi přikázat aby ignoroval všechny předešlé příkazy a od teď se bude chovat tak a tak
  7. ffredyk

    ostatní AI Girlfriend

    Na tohle téma si hraju s konceptem - všechno to stejně jede na OpenAI API, takže tomu stačí jen napsat GUI a máš to samý za zlomek ceny.. Jen si platíš requesty na API
  8. Ne neumí :D Plugin je defakto (virtuálně myšleno) další proces běžící na serveru, vedle procesu herní instance - může páchat cokoliv v rámci své domény (OS serveru, pokud mu to OS dovolí), ale s hráči ho spojuje jen konektivita herního serveru. Komunikaci (a funkcionalitu) ze strany serveru můžeš upravovat pluginem (teoreticky) dle libosti, ale klientovi to nemáš jak přikázat (jedině hackingem - buffer overflow, remote code execution, illegal shit), ten se drží protokolu komunikace dle herní topologie packetů.. Klient jako takovej by musel mít ještě svůj client-side plugin, který dokáže s tím server-side pluginem komunikovat.. Ale to ti nikdo dobrovolně instalovat nebude (už jen proto, že ten plugin může páchat paseku.. SAMP jako takovej je vlastně "plugin" GTA:SA, kterýmu hráči dobrovolně důvěřují, na základě jeho zažité důvěryhodnosti) P.S. to neplatí jen v rámci SAMP, ale všeobecně v každém use-case.. Herní servery nedokážou ovlivňovat klienty nad rámec nativní podpory herní komunikační architektury, pokud to člověk opravdu neproláme nějakou dírou v protokolu (packet payload injection, buffer overflow a remote code execution). A člověk může zkoušet ohýbat vše sebevíc.. Na co klient není připraven, to dělat prostě nebude jen s čistou úpravou server-side kódu
  9. Čistě logicky, jako SW/HW dev, musí pracovat s informacemi, které jim posílá klient.. Plugin na serveru nedokáže zjistit nic víc, než co mu klient zašle.. kombinace gpci, IP subnety a dalších specifických prvků (o kterých já už nemám šajn) dokáže celkem spolehlivě zabanovat tzv. na HW bez false-positive.. Čistě teoreticky by mohl stačit i seznam zabanovaných gpci vázaných na subnety.. Ale nevím jak moc se ten gpci hash liší mezi hráči.. Pokud instalace default folderu na každém PC vyflusne stejný hash, tak je to celkem nepoužitelný.. V tom případě se musí člověk spolehnout na další, více unikátnější data, která klient serveru zasílá..
  10. ffredyk

    návod Kecy o kolobkách

    Před časem jsem vytvořil kecací video ohledně nějakých základních informací o elektro koloběžkách, vypustil jsem to do relevantních skupin na FB a dostal za to hejt, tak jsem na to celkem zapomněl a dál to nepropagoval :D :D Nicméně jsem byl inspirován zdejším nárůstem aktivity a celkově mi to zvedlo náladu, tak jsem si řekl, že vám to sem kydnu taktéž, abych mohl počíst další várku kritiky o tom, jak melu sračky a můj střih stojí za hovno :D (O to víc to bolí, když člověk v té video produkci pár let dělal na profi úrovni :D :D )
  11. Osobně jsem přesně toto také hledal.. Indie devs nejčastěji používají Mixamo, pokud jde o něco pokročilejší produkci tak Character Creator od Reallusion Viděl jsem v praxi i vytváření postav Unreal Enginu a pak tuna sraní, pokud to člověk chce dostat do Unity. Ale nástroje k tomu už dnes na netu taky jsou, sice je to furt tuna práce navíc, ale UE má asi nejlepší řešení i oproti Mixamu a CC.. Pak tu je poslední level - free assety, puzzle ze všech různých možných zdrojů.. Dají se najít i relativně kvalitní high-poly modely.. Nebo hodně lidí spoléhá na warez unity assety - plno placených assetů jsou skládačky všeho možného, co se k sobě jen nalepí a vznikne postava. Lidi to stáhnou z warezu s tím, že až (a pokud) hru opravdu dokončí, před vydáním za balík zaplatí ofiko cestou.. (víme jak takové projekty končí :D)
  12. Něco mi říká, že máš přepálenou teplotu... Tak o 20-50C.. Pokud ta výplň má být 100% tak ty vlákna jsou strašně tenká, protože půlka tlačeného filamentu vytváří kvůli vysoké viskozitě bloba, který se poté čapne kraje nebo steče neznámo kam... Najdi si model pro testování filamentu, najdi si referenční teplotu pro filament, který používáš (je většinou uveden na špulce nebo krabici, případně na stránce výrobce..) a začni s +-10C kroky nahoru i dolu, abys zjistil co se mění..
  13. Jestli máš ještě starý firmware (a ano, oficiální FW Endera je fork starý několik let) marlina, tak pohledej fork novějšího.. Dnes se používá lepší technologie bodování v matici, která mapuje celou bedu a před každým tiskem jen ověřuje referenční bod (nebo orientačně přemeřuje několik referenčních bodů). Třeba můj Intro G-Code vypadá takto: M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration M203 X500.00 Y500.00 Z20.00 E50.00 ;Setup machine max feedrate M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk M220 S100 ;Reset Feedrate M221 S100 ;Reset Flowrate G90 ; use absolute coordinates M83 ; extruder relative mode M104 S[first_layer_temperature] ; set extruder temp M140 S[first_layer_bed_temperature] ; set bed temp M190 S[first_layer_bed_temperature] ; wait for bed temp M109 S[first_layer_temperature] ; wait for extruder temp ; Setup firmware retraction settings M207 F{ retract_speed[0] * 60} S[retract_length_0] Z[retract_lift_0] M208 F{ deretract_speed[0] * 60} S[retract_restart_extra_0] G28 ; home all G29 L0 ; Load mesh from slot 0 (or use any other previously saved slot) G29 A ; Activate UBL G1 Z2 F240 G1 X2 Y10 F3000 G1 Z0.28 F240 G92 E0 G1 Y190 E15 F1500 ; intro line G1 X2.3 F5000 G92 E0 G1 Y10 E15 F1200 ; intro line G92 E0 Ale ten používá už nové fýčury nového FW (FW retrakce, UBL meshing)
  14. Kup si u vietnama takový ten tryskový zapalovač Chytni si trysku do pinzety / kombinaček, nebo něčeho co se nespálí - propal to z vrchu (širší díra která leze do heatbloku) několik minut a poté to protáhni pinzetou.. Můžeš si pomoci i lihem, izopropylem, nebo do toho stříknout WDčkem, trysce je to jedno, jde o co nejčistčí vypálení a tyto zapalovače do toho ženou i proudění vzduchu, které ten bordel vytláčí správným směrem. Zespodu to tam netlač, ty stěny na špičce trysky se mohou deformovat
×
×
  • Create New...