Sign in

Kıvanç Yüksel

@smiletoai.com
105 followers 202 following 137 posts

Building SmileToAI by myself — generate images, narrate audio, make video, write, all in one place. Teaching myself robotics starting from linear algebra, because skipping fundamentals never actually works. Warsaw.

PostsRepliesMedia
Kıvanç Yüksel @smiletoai.com · 09/10/2026
Gemini's live transcription bills silence: 25 audio tokens per streamed second, pauses included, so a quiet minute costs over half a talking one. No usage numbers come back; our dictation relay counts the seconds itself. Whistle skips silence on-device: cactuscompute.com/blog/whistle
110
Kıvanç Yüksel @smiletoai.com · 08/10/2026
Haiku 5.5 is priced by prompt size: $0.10 per million input tokens up to 100k, $0.50 past it. So 99k tokens of input is about a cent and 101k about five, if the whole prompt takes the higher rate (my read of the table). We compact chat at 48k by default, for quality. Now it's a cost setting too.
210
Kıvanç Yüksel @smiletoai.com · 07/10/2026
Building in public, yesterday's bug: an 8 s asyncio.wait_for that never fired. The calls took 14.5 s and 19.4 s and returned normally. The xAI SDK call was synchronous inside an async def, so it blocked the event loop, and the loop is what raises the timeout. The fix was asyncio.to_thread.
220
Kıvanç Yüksel @smiletoai.com · 06/10/2026
Same prompt, 4 models #2: only gpt-image-2 drew the analog clock at 4:35 I asked for. FLUX gave me 10:10, the watch-ad pose, and Grok about 1:00. Gemini got the minute hand right but stopped the hour hand short of the 4, so it reads 3:35. One try each, I kept whatever came back.
010
Kıvanç Yüksel @smiletoai.com · 05/10/2026
Out of credits on Gemini is HTTP 402 now. OpenAI and xAI still send a 429, and Gemini's per-minute 429 says to check your billing details. Our router didn't fail over on a 402, so on Oct 2 our empty Gemini account meant errors, not fallback. Status codes alone won't tell you who's out of money.
110
Kıvanç Yüksel @smiletoai.com · 02/10/2026
pgvector filters after the HNSW scan, so a filter matching 10% of rows gets ~4 of the default 40 candidates. turbopuffer's post on demoting its vector index sent me to our notebook search: one HNSW index over every team's chunks, filters in the WHERE. github.com/pgvector/pgvector#filter…
000
Kıvanç Yüksel @smiletoai.com · 02/10/2026
@kyisaiah47.thecompound.tech your solo builders pack sounds like my kind of people. I build and ship an AI app by myself and post the unglamorous bits too. Would you add me?
010
Kıvanç Yüksel @smiletoai.com · 01/10/2026
Gemini 4 Argon raises the output limit from 64K to 1M tokens. At $20 per 1M output once the intro price ends, a call that fills it costs $20. We leave max_output_tokens unset on purpose in one of our narration pipelines. At 64K that was a cheap default. At 1M I don't think it is.
210
Kıvanç Yüksel @smiletoai.com · 28/09/2026
Red RGB(196,52,52) and green RGB(30,140,30) both become grey 95. Black-and-white keeps brightness and drops hue, so colorizing is a guess. Our guide says that: smiletoai.com/blog/how-to-colorize-…
000
Kıvanç Yüksel @smiletoai.com · 25/09/2026
Reading the Opus 5.5 migration guide. Per token it's cheaper than Opus 5 ($4/$20 vs $5/$25 per million). Per request, maybe not: thinking is always on, disabling it is a 400, and thinking tokens bill as output. platform.claude.com/docs/en/models/…
110
Kıvanç Yüksel @smiletoai.com · 24/09/2026
An infographic came back with garbled bullet lines the prompt explicitly ruled out. I re-ran the identical prompt 3 times and got 3 clean pictures, so the bug is rare, not something the prompt causes every time. Rewrote it anyway, 4 clean renders. I'm logging that as didn't regress, not fixed.
010
Kıvanç Yüksel @smiletoai.com · 23/09/2026
Our bot protection's top anonymous /api/user client was our own prod box. Pricing page server-renders, finds no user, refetches /api/user at the public origin, so it exits the container and returns via Cloudflare. ~376 a week, all for visitors with only a consent or analytics cookie.
000
Kıvanç Yüksel @smiletoai.com · 22/09/2026
Background removal: first I rejected prompting an image model for a "transparent PNG". Models without alpha paint the checkerboard into the pixels and redraw your subject too. I kept a segmentation model (BiRefNet) matting the original photo, so your exact pixels survive with soft edges.
010
Kıvanç Yüksel @smiletoai.com · 21/09/2026
Gemini's docs say inline requests are fine up to 100 MB, 50 MB for PDFs. On Sept 16 the API refused an 11,108,599-byte PDF we sent inline: "exceeds the maximum size: 10000000". So 10,000,000 bytes per part, decimal. Not sure yet whether that's the model or the code-execution tool being on.
010
Kıvanç Yüksel @smiletoai.com · 18/09/2026
Two video APIs retire six days apart, and their deprecation tables read very differently. OpenAI removes sora-2 and its Videos API on Sep 24. Replacement column: --- Google shuts down gemini-omni-flash-preview on Sep 30, 92 days after launch. Replacement: gemini-omni-1.1-flash.
000
Kıvanç Yüksel @smiletoai.com · 17/09/2026
Scoring transcripts against LibriSpeech this week, I got two errors on a transcript that was right. The reference says PASSER BY, the transcript said passerby. I dropped that clip. The real misses looked like dwelt coming back as drought, and only the diff tells you which kind you've got.
000
Kıvanç Yüksel @smiletoai.com · 16/09/2026
Six hours of 500s in production last Friday, green health check the whole way. The probe asked whether the database answered, which is not the same as asking whether the schema matched the code in the container. Migrations at 0187, tables at 0184, every send hitting a column that did not exist.
000
Kıvanç Yüksel @smiletoai.com · 15/09/2026
Spent a while on a pronunciation rule in our narration studio that looked like it was being ignored. It wasn't. I had filled in both the respelling and the IPA, and the phonetic form is skipped whenever a replacement is present. One field per word from now on, plus a note on which I picked.
000
Kıvanç Yüksel @smiletoai.com · 14/09/2026
OpenAI's two new image models publish the same rates. flare and sunburst, both $30 per million image-output tokens. I'd assumed the heavier one cost more per token and that picking between them was a pricing decision. It's a token-count decision. Need to measure ours.
000
Kıvanç Yüksel @smiletoai.com · 11/09/2026
From DeepSeek's Sep 10 change log: starting 12:00 Beijing time on Sep 14, deepseek-v4-pro requests go to V4.1 Flash, billed as Flash, until V4.1 Pro ships. If you pinned v4-pro to keep behavior stable, you pinned a name. I'd rerun evals on Monday. api-docs.deepseek.com/updates
000
Kıvanç Yüksel @smiletoai.com · 10/09/2026
No living artist's name in a prompt. That started as an ethics thing and stayed for a duller reason: the name is a weak control. My read is it averages whatever of theirs circulated most, so you land on their famous decade, not the picture you meant. Describing the light and palette gets closer.
000
Kıvanç Yüksel @smiletoai.com · 09/09/2026
I got this wrong the first time. Image estimates always came back 25, so I assumed we weren't resolving a model, and pinned one. Still 25. Image charges meter tokens, and I was pricing a request that hadn't produced an image yet. Nothing to meter, so it fell to the flat reserve.
000
Kıvanç Yüksel @smiletoai.com · 08/09/2026
Slides whose art prompt said "no captions, labels, headline" kept dying on a text check in my own pipeline. The check reads those nouns to decide whether an image should contain type, so it took my ban for intent and looked for type in a picture with none. The layout decides now, not the prompt.
000
Kıvanç Yüksel @smiletoai.com · 07/09/2026
Fable 5.1 matches Fable 5 on price except cache reads, now $0.25/MTok. What I read twice: conversations are append-only. Inject a per-turn reminder into an earlier message, drop it next request, get a 400. platform.claude.com/docs/en/models/…
000
Kıvanç Yüksel @smiletoai.com · 04/09/2026
Two numbers on OpenAI's GPT-6 Astra page: 1,050,000 context window, 922,000 maximum input tokens. The 128,000 difference is the output allowance, out of the same budget. So the window is not the input ceiling. I'd been treating it as one. developers.openai.com/api/docs/mode…
000
Kıvanç Yüksel @smiletoai.com · 03/09/2026
I built the video pipeline so you approve each stage: script, reference images, frames, voiceover, clips, captions, export. Seven approval points instead of one button. It is more clicking, but when scene 4 comes out wrong I know which step to go fix. Not sure yet how many people want that.
000
Kıvanç Yüksel @smiletoai.com · 02/09/2026
Four video jobs landed 199ms apart, each reserved 4,000 sparks against one 5,000 allocation, and all four passed. Settled at 16,000 used. We did hold the row lock. The reserved-total aggregate was joined into the same SELECT ... FOR UPDATE, so waiting on the lock never refreshed it.
000
Kıvanç Yüksel @smiletoai.com · 01/09/2026
Spent longer than I want to admit re-describing the same character in every shot's prompt. Wrong lever. Reference slots cap at 4, 3 on Veo, 0 once a start frame is in play. What worked: one composite sheet per character, composed into the first frame, and the frame carries identity.
000
Kıvanç Yüksel @smiletoai.com · 31/08/2026
Aug 26: OpenAI put whisper-1 and the three gpt-4o transcribe models on one shutdown date, 2027-02-26. I went looking in our code afterwards. Our diarization options check for the literal model id gpt-4o-transcribe-diarize, so re-pointing them means editing validation branches.
000
Kıvanç Yüksel @smiletoai.com · 28/08/2026
A 273K token prompt on gpt-5.6-sol bills at 2x the input rate and 1.5x the output rate of a 271K one, across every token in the call. $8/$30 per 1M instead of $4/$20. The 272K threshold isn't on OpenAI's pricing page. I found it in a Codex issue: github.com/openai/codex/issues/32486
100
Kıvanç Yüksel @smiletoai.com · 27/08/2026
A habit I keep catching: a render comes back wrong and I press generate again instead of saying what's wrong with it. The second roll doesn't repair the first, it throws away the parts that already worked. When I don't know what I want yet, rolling is how I find out.
000
Kıvanç Yüksel @smiletoai.com · 26/08/2026
Threads counts a newline as two characters. 497 chars + 4 line breaks = 501 against its 500 cap, rejected. I corrected it for Threads only. X, Bluesky and Mastodon have taken the same raw lengths for months, so I left them alone rather than widen the rule on a hunch.
000
Kıvanç Yüksel @smiletoai.com · 25/08/2026
I was inpainting one corner of an image, pinned the provider to keep the look steady, and the next masked edit came back 422. Two of the four providers we run take a mask, two don't. So the setting that holds a look is the one that blocks the edit. I pin last now.
000
Kıvanç Yüksel @smiletoai.com · 24/08/2026
Two model release trackers, same month, different lists of what shipped. One of them says four of its nine August entries aren't releases. One is an alias pointing at a model that already existed. So now I check whether an id is new weights or a rename before I route anything to it.
000
Kıvanç Yüksel @smiletoai.com · 21/08/2026
DeepSeek started charging by time of day on Aug 16. Peak is 01:00-04:00 and 06:00-10:00 UTC, off-peak is half of that: v4-flash output $1.32/M vs $0.66. Which model turns into can this job wait. I still haven't worked out how much of ours can. api-docs.deepseek.com/quick_start/p…
000
Kıvanç Yüksel @smiletoai.com · 20/08/2026
Run the same prompt through two image models and you get different skin, different lighting, different amounts of invented detail. Neither is wrong. One of them is the one I want shipping though, and picking it is art direction. I still don't have a good way to write that preference down.
000
Kıvanç Yüksel @smiletoai.com · 19/08/2026
Metered video billing multiplies a rate by usage.video_seconds. Turns out video_seconds echoed the duration we requested, never the render. Same 4s Veo source, five extension runs, one logged as 5.0s. The mp4 was 11.011s. Fix is ffprobe on bytes we already downloaded.
000
Kıvanç Yüksel @smiletoai.com · 18/08/2026
Spent yesterday on one sentence. Turning a photo into a stylized 3D figurine kept returning a stranger: right pose, wrong face. The fix wasn't a better prompt. Every engine fails differently — one smooths and beautifies, one quietly redraws. You have to name the failure you don't want.
000
Kıvanç Yüksel @smiletoai.com · 14/08/2026
We'd penciled a 50% jump in model costs into September: Sonnet 5's $2/$10 intro rate was set to become $3/$15 on the 1st. Anthropic cancelled the increase — intro is now standard. Worth re-checking any Q4 budget built on the old number. platform.claude.com/docs/en/about-c…
100
Kıvanç Yüksel @smiletoai.com · 07/08/2026
AI infra churn, concretely: OpenAI shuts the Sora 2 Videos API on Sept 24 — the deprecations page lists no replacement. Built video features on one provider? You get 7 weeks to migrate. Boring abstraction layers keep winning. developers.openai.com/api/docs/depr…
000