<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Humabot]]></title><description><![CDATA[Humabot]]></description><link>https://humabot.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6ad56033cea7eb11ca817832/3b6c057d-e83f-419e-ab93-74c480794a50.png</url><title>Humabot</title><link>https://humabot.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Wed, 21 Oct 2026 17:03:46 GMT</lastBuildDate><atom:link href="https://humabot.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Getting AI-Generated Images Onto a Static Site: Generate, Compress, Label]]></title><description><![CDATA[A small pipeline for AI images on a static site: sequential generation to avoid 429s, a Pillow WebP script, and labelling in the markup.]]></description><link>https://humabot.hashnode.dev/getting-ai-generated-images-onto-a-static-site-generate-compress-label</link><guid isPermaLink="true">https://humabot.hashnode.dev/getting-ai-generated-images-onto-a-static-site-generate-compress-label</guid><category><![CDATA[webdev]]></category><category><![CDATA[Python]]></category><category><![CDATA[images]]></category><category><![CDATA[AI]]></category><dc:creator><![CDATA[Humabot]]></dc:creator><pubDate>Tue, 20 Oct 2026 00:43:41 GMT</pubDate><content:encoded><![CDATA[<p>AI image tools hand you big PNGs. A website wants small, labelled, fast-loading images. Here's the small pipeline I used to get four generated images from Higgsfield's free plan onto a static site: generate sequentially, convert to WebP, and label in the markup.</p>
<h2>Step 1: generate one at a time</h2>
<p>On the free plan, firing several requests at once got me an HTTP 429 "too many requests" error. Sending them one after another worked every time. If you script the generation, make the loop sequential and back off on a rate-limit response:</p>
<pre><code class="language-python">import time

class RateLimited(Exception):
    """Raise this from your API wrapper on an HTTP 429."""

def generate_all(prompts, generate, max_tries=5):
    results = []
    for prompt in prompts:
        for attempt in range(max_tries):
            try:
                results.append(generate(prompt))
                break
            except RateLimited:
                time.sleep(5 * 2 ** attempt)  # 5s, 10s, 20s...
        else:
            raise RuntimeError(f"gave up on: {prompt[:40]}")
    return results
</code></pre>
<p><code>generate</code> is whatever function calls your image API. Each image took about 20–30 seconds for me, so a sequential batch of four is still only a couple of minutes.</p>
<h2>Step 2: resize and convert to WebP</h2>
<p>The model returned 16:9 PNGs at 2048 × 1152. For a content column that's far more than needed. I converted each to a 1600 × 900 WebP, which landed between 100 and 210 KB per file. A small Pillow script does it, stepping quality down until the file fits a size budget:</p>
<pre><code class="language-python">from pathlib import Path
from PIL import Image

src, out = Path("raw"), Path("web")
out.mkdir(exist_ok=True)
BUDGET = 210_000  # bytes

for png in sorted(src.glob("*.png")):
    im = Image.open(png).convert("RGB")
    im = im.resize((1600, round(im.height * 1600 / im.width)), Image.LANCZOS)
    dst = out / f"{png.stem}.webp"
    for q in range(85, 55, -5):
        im.save(dst, "WEBP", quality=q, method=6)
        if dst.stat().st_size &lt;= BUDGET:
            break
    print(dst.name, im.size, dst.stat().st_size // 1024, "KB")
</code></pre>
<h2>Step 3: label it in the markup</h2>
<p>An AI image that could be mistaken for a real photo should say what it is. I put the label in the visible caption, not just the alt text, and set explicit dimensions so the layout doesn't shift while it loads:</p>
<pre><code class="language-html">&lt;figure&gt;
  &lt;img src="/img/shed.webp" width="1600" height="900" loading="lazy"
       alt="Small wooden garden shed with a gable roof at the edge of a lawn"&gt;
  &lt;figcaption&gt;AI-generated illustration, not a photo of a real build.&lt;/figcaption&gt;
&lt;/figure&gt;
</code></pre>
<p>(The live site is in German, so its captions read "Symbolbild (KI-generiert)".)</p>
<h2>Step 4: eyeball every output</h2>
<p>Negative prompts help but don't guarantee anything. My prompt said "no people", and one image still had a hand in it. Before an image ships, check for hands, stray text-like shapes and logos.</p>
<p>The prompts, the results and the full list of free-plan limits I ran into are in the write-up on Humabot: <a href="https://humabot.cc/higgsfield-free-plan-case-study/">I made 4 website images on Higgsfield's free plan</a>.</p>
<hr />
<p><em>Humabot is published by Adnenco. The full case study on humabot.cc contains an affiliate link to Higgsfield; if you later upgrade through it, I may earn a commission at no extra cost to you.</em></p>
]]></content:encoded></item><item><title><![CDATA[Make.com Free Plan: The Polling Maths Behind 1,000 Credits a Month]]></title><description><![CDATA[Make.com's free plan gives 1,000 credits a month. Here's the polling maths, the 2-scenario limit and three automations that fit.]]></description><link>https://humabot.hashnode.dev/make-com-free-plan-the-polling-maths-behind-1-000-credits-a-month</link><guid isPermaLink="true">https://humabot.hashnode.dev/make-com-free-plan-the-polling-maths-behind-1-000-credits-a-month</guid><category><![CDATA[No Code]]></category><category><![CDATA[automation]]></category><dc:creator><![CDATA[Humabot]]></dc:creator><pubDate>Mon, 19 Oct 2026 00:55:04 GMT</pubDate><content:encoded><![CDATA[<p>Make.com's free plan gives you 1,000 credits a month. That sounds like a lot until a single scheduled scenario uses it up on its own. Here's the arithmetic to do <em>before</em> you switch anything on.</p>
<h2>How Make counts usage</h2>
<p>Make bills in <strong>credits</strong>. Most actions a scenario performs use one credit each: reading a record, searching, creating a row, sending an email. A two-step automation ("new item → send email") costs roughly 2 credits every time it does real work. Routers and error handlers don't use credits; some AI features use more.</p>
<p>The part people miss: <strong>a scheduled trigger costs a credit every time it checks, even when there's nothing new.</strong></p>
<h2>The polling maths</h2>
<p>On the free plan the fastest schedule is every 15 minutes:</p>
<table>
<thead>
<tr>
<th>Check every</th>
<th>Checks per month (approx.)</th>
<th>Fits in 1,000 credits?</th>
</tr>
</thead>
<tbody><tr>
<td>15 minutes</td>
<td>~2,900</td>
<td>No</td>
</tr>
<tr>
<td>1 hour</td>
<td>~720</td>
<td>Barely</td>
</tr>
<tr>
<td>3 hours</td>
<td>~240</td>
<td>Yes, with room for actions</td>
</tr>
<tr>
<td>Once a day</td>
<td>~30</td>
<td>Easily</td>
</tr>
</tbody></table>
<p>So the rule on the free tier is simple: <strong>poll slowly, or don't poll at all.</strong></p>
<h2>Three design rules for the free tier</h2>
<ol>
<li><strong>Prefer instant triggers (webhooks) where the app supports them.</strong> They only fire, and only cost credits, when something actually happens.</li>
<li><strong>Schedule the rest every few hours or once a day.</strong> Most "notify me" and "copy this to a sheet" jobs don't need 15-minute freshness.</li>
<li><strong>Plan around 2 active scenarios.</strong> You can build as many as you like, but only two can be switched on at once. This is usually the limit you hit first, before credits.</li>
</ol>
<h2>Free-tier-friendly starter ideas</h2>
<ul>
<li><strong>RSS → email:</strong> check a blog feed once a day and email yourself new posts (~30 checks a month).</li>
<li><strong>Form → spreadsheet via webhook:</strong> runs only when someone submits.</li>
<li><strong>Weekly summary:</strong> once a week, read a few cells and email a report (~4 runs a month).</li>
</ul>
<p>Any two of these fit comfortably inside 1,000 credits.</p>
<h2>Other free-plan limits worth knowing</h2>
<p>Maximum 5 minutes per run, 5 MB files, 1 MB of data storage, and no Make API or custom code modules. Unused credits expire at the end of the month. These are the published limits as listed on make.com/pricing in October 2026; the vendor's page is the final word.</p>
<p>I've put the full limits table, paid-plan comparison and FAQ in the complete guide: <a href="https://humabot.cc/make-com-free-plan/">Make.com free plan: what 1,000 credits a month really buys you</a>.</p>
<hr />
<p><em>Humabot is published by Adnenco. The full guide on humabot.cc contains an affiliate link to Make; if you later buy a paid plan through it, I may earn a commission at no extra cost to you.</em></p>
]]></content:encoded></item></channel></rss>