توليد صور بالذكاء الاصطناعي محليًا على حاسوب AMD صغير: ComfyUI + Z-Image Turbo

تاريخ النشر
11 يوليو 2026
بقلم
جاكوب لويد — كُتب بمساعدة الذكاء الاصطناعي بعد إنجاز المشروع
مدة القراءة
قراءة 2 دقيقة

بعبارة مبسطة: كيف أعددت حاسوبي الصغير من AMD لإنشاء صور بالذكاء الاصطناعي في المنزل — نحو 27 ثانية لكل صورة، بلا اشتراك وبلا رسم لكل صورة. يستعرض الدليل الإعداد بحيث يبدأ تلقائيًا ويعمل بلا تدخل. يثبت أنك لا تحتاج خدمة سحابية باهظة أو ماركة معيّنة من بطاقات الرسوميات لصنع فن بالذكاء الاصطناعي.

حاسوبي الصغير يحوّل نصًا وصفيًا إلى صورة مكتملة بدقة 1024×1024 في نحو 27 ثانية: بلا حساب سحابي، بلا رسم لكل صورة، بلا طابور خلف آلاف من طلبات أشخاص آخرين. وهذا كله على شريحة AMD يفترض معظم الناس أنها عاجزة عن هذا تمامًا.

الخلاصة

  • ما هو: ComfyUI + Z-Image Turbo، يولّدان الصور بالكامل على عتاد محلي — OpenAI وMidjourney لا وجود لهما في الحلقة إطلاقًا.
  • التكلفة: صفر دولار لكل صورة، مهما كان عددها. لا يوجد حتى حساب لتسجّل فيه.
  • ما تحتاجه: وحدة معالجة مدمجة أو بطاقة رسومية من AMD بذاكرة VRAM حقيقية (عندي 64GB)، جهاز لينكس، وجلسة واحدة من معاناة إعداد ROCm. مرة واحدة فقط.
  • ما تحصل عليه في النهاية: نحو 27 ثانية لكل صورة بدقة 1024×1024، خدمة systemd دائمة التشغيل، وأمر واحد لتوليد الصور بالجملة بلا واجهة رسومية.

ما تحصل عليه في النهاية

حديث الإعداد ينتظر قليلًا. في الاستخدام اليومي، أفتح تبويب متصفح أو أطلقه من الطرفية. في الحالتين:

المقياسالقيمة
الدقة1024×1024
الخطوات / CFG8 خطوات، CFG 1.0
زمن التوليد بعد التسخين~27 ثانية (نطاق مقاس: 26.5–30.4 ثانية)
البدء البارد (أول صورة بعد الإقلاع)~43.5 ثانية أثناء تحميل نحو 20GB من الأوزان

الاستخدام الحقيقي على هذا الجهاز ليس فنًا لأجل الفن. إنه سكربت يولّد بالجملة تنويعات صور رمزية لمشروع روبوت محادثة: 222 ملف PNG في مجلد المخرجات وما زال العدد يتزايد. بنية تحتية مملة وموثوقة، وهذا بالضبط ما تريده من شيء بنيته للمتعة ثم بدأت تعتمد عليه.

العتاد

هذا جهاز بذاكرة موحّدة سعتها 128GB: معالج AMD Ryzen AI Max+ 395 (المعروف بـ"Strix Halo") مع وحدة رسومية مدمجة Radeon 8060S على نفس شريحة المعالج. لا وجود لبطاقة رسومية منفصلة في أي مكان.

هذا هو الجزء المهم. البرنامج الثابت (firmware) يقتطع 64 جيبيبايت من تلك الـ128GB ويمنحها للوحدة الرسومية المدمجة كـ"VRAM" مخصّصة — سجلّ بدء تشغيل ComfyUI نفسه يقول Total VRAM 65536 MB, total RAM 63920 MB. هذا أكثر VRAM من أي بطاقة NVIDIA استهلاكية تُباع، لأنها ليست ذاكرة GDDR باهظة مُلحَمة على بطاقة رسومية. إنها فقط ذاكرة نظام خصّصها البرنامج الثابت للوحدة الرسومية، ووراءها نحو 31GB إضافية من GTT يمكن للوحدة الرسومية الوصول إليها عند الحاجة.

المكوّنالمواصفة
المعالجAMD Ryzen AI Max+ 395، 16 نواة / 32 خيط معالجة
الوحدة الرسومية المدمجةRadeon 8060S، معمارية ROCm gfx1151
الذاكرة128GB ذاكرة موحّدة LPDDR5X — 64GiB مقتطعة كـVRAM، ونحو 62GiB متبقية للينكس
نظام التشغيلBazzite (غير قابل للتعديل، مبني على Fedora Silverblue)
بطاقة رسومية منفصلةلا يوجد

أوزان النموذج لكامل هذا الإعداد تصل مجموعها إلى نحو 20.7GB. مريحة داخل 64GB؛ ميؤوس منها على بطاقة استهلاكية نموذجية بـ8–16GB إلا إذا نقلت طبقات إلى ذاكرة النظام العادية وتحمّلت عقوبة السرعة.

حزمة البرمجيات

الإصدارات التي تجعل هذا يعمل، كما هي مثبّتة الآن:

المكوّنالإصدار
ComfyUIv0.27.0 (نسخة git)
Python3.12.13، داخل بيئة venv بُنيت بـuv
PyTorch2.12.1+rocm7.2
torchvision0.27.1+rocm7.2
torchaudio2.11.0+rocm7.2
pytorch-triton-rocm3.5.1
ROCm7.2، دعم أصلي لـgfx1151

التفصيل الطريف: نسخة PyTorch الخاصة بـROCm تتنكّر بهيئة CUDA. سجلّ بدء التشغيل يقول حرفيًا Device: cuda:0 AMD Radeon 8060S : native. كود بايثون كُتب لبطاقة NVIDIA يعمل ببساطة، لأنه يظن أنه يتحدث مع واحدة. ComfyUI أيضًا يعطّل cuDNN تلقائيًا على هذا العتاد ويتراجع إلى انتباه (attention) PyTorch العادي (بلا xformers، بلا flash-attn)، ويعمل جيدًا بدونهما.

ترويض ROCm

معاناة الإعداد تكمن في حفنة من متغيرات البيئة داخل سكربت الإطلاق:

HSA_OVERRIDE_GFX_VERSION=11.5.1
PYTORCH_HIP_ALLOC_CONF=expandable_segments:True
HIP_VISIBLE_DEVICES=0
  • HSA_OVERRIDE_GFX_VERSION يخبر ROCm أن الوحدة الرسومية هي gfx1151. على ROCm 7.2 هذا زائد عن الحاجة (السجلّ يقول "native" أصلًا) لكنني أبقيه كإجراء احترازي، لأنه على إصدارات ROCm أقدم كان هذا التجاوز بالتحديد إلزاميًا لتشغيل وحدات رسومية مدمجة كهذه أصلًا.
  • PYTORCH_HIP_ALLOC_CONF=expandable_segments:True يمنع المخصِّص (allocator) من تفتيت VRAM على الذاكرة الموحّدة. بدونه قد تواجه أخطاء نفاد ذاكرة رغم توفر ذاكرة كثيرة نظريًا.
  • HIP_VISIBLE_DEVICES=0 يثبّت الاستخدام على الوحدة الرسومية الوحيدة. غير مثير، لكنه موجود احتياطًا ليوم تضيف فيه عتادًا آخر.

شيء آخر: عنوان استماع الخادم مثبّت بشكل صلب على 127.0.0.1 داخل سكربت الإطلاق — ليس مفتاح إعداد قابلًا للتبديل، بل قيمة مكتوبة مباشرة في الكود. التعليق هناك يصفه بأنه "نموذج الأمان بأكمله"، وهذا دقيق. تريده متاحًا من جهاز آخر؟ ذلك عبر بروكسي عكسي أو VPN خاص بك، ومتعمَّد ألا يكون علامة يمكنك قلبها.

كيف يصبح النص الوصفي صورة

يتخيّل الناس هذا الجزء غامضًا، وهو ليس كذلك. إنه خط أنابيب قصير وثابت يجمّعه ComfyUI من قالبه الرسمي:

إعدادات Z-Image Turbo

Z-Image Turbo هو النسخة المُقطَّرة والسريعة من نموذج Z-Image الخاص بعلي بابا (بحسب فهمي، من مختبر Tongyi التابع لها، بنحو 6 مليارات معامل، برخصة Apache-2.0). "المُقطَّر" يعني هنا شيئًا ملموسًا: 8 خطوات وCFG بقيمة 1.0 تنتج صورة مكتملة، بدل الـ20–30 خطوة أو أكثر التي تطلبها النماذج الأقدم. هذه هي الإعدادات من سير عملي المحفوظ، وهي ببساطة القيم الافتراضية للقالب الرسمي. لا مجموعة سحرية تبحث عنها.

الإعدادالقيمة
الخطوات8
CFG1.0
العيّنة (Sampler)res_multistep
المُجدوِل (Scheduler)simple
إزاحة ModelSamplingAuraFlow3
الدقة1024×1024
نوع CLIPLoaderlumina2
النص الوصفي السلبيمُصفَّر (ConditioningZeroOut)

السطر الأخير يستحق الشرح: عند CFG بقيمة 1.0 لا يملك النص الوصفي السلبي ما يدفع ضده، لذا يُصفّره سير العمل بعقدة ConditioningZeroOut بدل ترميز نص لا يفعل شيئًا. اكتب نصًا وصفيًا سلبيًا إن كان يشعرك بتحكّم أكبر. لن يغيّر الصورة.

الملفات الثلاثة التي تؤدي العمل الفعلي:

الملفالحجمالدور
z_image_turbo_bf16.safetensors12.3GBمحوّل الانتشار (bf16)
qwen_3_4b.safetensors8.0GBمُرمِّز نصي
ae.safetensors0.34GBVAE

الأداء المقاس

هذه ليست أرقامًا من منشور مدونة إطلاق؛ إنها من سجلّ هذا الجهاز نفسه. تشغيل لعشرين نصًا وصفيًا متتاليًا سجّل أزمنة بين 26.62 و30.41 ثانية، فـ"نحو 27 ثانية" متوسط مملّ وقابل للتكرار، لا انتقاء لأفضل حالة. هذا يعادل تقريبًا 2.5–3 ثوانٍ لكل خطوة أخذ عيّنات بعد احتساب الترميز النصي وفك ترميز VAE.

أول صورة بعد بدء بارد للخدمة استغرقت 43.54 ثانية، لأن ذلك هو التشغيل الذي يُحمَّل فيه نحو 20GB من الأوزان من القرص. كل ما بعده مُسخَّن. إن شعرت أن أول صورة في يومك بطيئة، هذا هو السبب، لا علامة على عطل.

تشغيله كخدمة

لا أريد مراقبة عملية بايثون في طرفية كل مرة أريد فيها صورة، لذا يعمل هذا كوحدة مستخدم في systemd، تبدأ مع جلسة تسجيل الدخول:

ExecStart=%h/comfy/start-comfyui.sh
WorkingDirectory=%h/comfy/ComfyUI
EnvironmentFile=-%h/comfy/comfy.env
Restart=on-failure
RestartSec=5
TimeoutStartSec=120

ملف البيئة يحفظ المنفذ ووسائط الإطلاق الإضافية في مكان واحد قابل للتعديل. فوق هذا يجلس غلاف صغير، comfyctl، فالاستخدام اليومي يصبح:

comfyctl start      # starts the service, waits for it to answer, opens the workflow
comfyctl status     # server health + unit state + newest output file
comfyctl generate "a foggy harbor at dawn, cinematic"
comfyctl stop
comfyctl logs

إن ماتت العملية، يُعيدها Restart=on-failure بعد 5 ثوانٍ، حتى 5 مرات في الدقيقة قبل أن يستسلم systemd (فلا تدور حلقة انهيار حقيقية إلى الأبد). مؤقّت أسبوعي يسحب التحديثات بـgit pull --ff-only، يعيد تشغيل الخدمة، ويتحقق من /system_stats قبل أن يُعلن النجاح. أيقونة سطح المكتب لهذه الأداة ولّدها النموذج نفسه، وهو أمر يعجبني أكثر مما ينبغي.

القيام بذلك بلا واجهة رسومية

واجهة الويب مناسبة للاستخدامات الفردية، لكن الاستخدام اليومي هنا مُبرمَج. سكربت بايثون بمكتبة قياسية فقط يبني الرسم البياني كـJSON، يرسله، يستطلع النتيجة، ويطبع مسار ملف PNG المكتمل:

python3 ~/comfy/comfy-generate.py "a foggy harbor at dawn, cinematic" \
  --steps 8 --width 1024 --height 1024 --out ~/Pictures/harbor.png

واجهة HTTP البرمجية، وسكربت التحكم، والوصول عن بُعد الآمن من أجهزة أخرى، كل ذلك له مقال خاص كامل به: ComfyUI بلا واجهة رسومية: شغّله كخدمة، واستخدمه من أي مكان.

مطبّات شائعة

  • ظهور "cuda:0" في السجلات أمر طبيعي. نسخة PyTorch الخاصة بـROCm تُبلّغ عن وحدة AMD الرسومية كجهاز CUDA. ليس خطأ إعداد، وليس استخدامًا سريًا لبطاقة NVIDIA.
  • أول صورة بعد إعادة التشغيل بطيئة. نحو 43 ثانية أثناء تحميل الأوزان، ثم تستقر عند نحو 27. لا تُعِد التشغيل في منتصف الجلسة ثم تُصاب بالذعر ظنًا أن شيئًا تعطّل.
  • النصوص الوصفية السلبية لا تفعل شيئًا هنا. CFG بقيمة 1.0 يُصفّرها بالتصميم. إن كنت تُصحّح صورة سيئة، فالنص الوصفي السلبي ليس مكان المشكلة.
  • لا يمكنك ببساطة فتح هذا على هاتفك. عنوان الاستماع مثبّت عمدًا على 127.0.0.1. الوصول عن بُعد يعني إعداد بروكسي عكسي أو VPN خاص بك، لا تعديل ملف إعدادات.
  • يُحدِّث نفسه أسبوعيًا. مفيد إلى أن يأتي الأسبوع الذي لا يكون فيه كذلك. السحب المقتصر على التقديم السريع (fast-forward-only) يمنع الدمج الصامت، لكن تغييرًا كاسرًا من المصدر الأعلى قد يصل رغم ذلك بينما أنت غير منتبه.
  • 64GB تبدو كثيرة إلى أن تُحمِّل المزيد. يستخدم سير العمل هذا نحو 20.7GB من الأوزان. حمّل عدة نماذج كبيرة دفعة واحدة، أو شغّل شيئًا آخر جائعًا للوحدة الرسومية بجانبه، وتختفي المساحة الحرة بسرعة.

← المزيد من الذكاء الاصطناعي والنماذج المحلية